From 39a4f1a064ae6d7d3c5abf425b2c1a6f53b69c66 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Tue, 13 May 2025 15:10:28 +0000 Subject: [PATCH] import UBI glibc-2.34-168.el9_6.14 --- SOURCES/glibc-RHEL-1915-1.patch | 337 + SOURCES/glibc-RHEL-1915-2.patch | 218 + SOURCES/glibc-RHEL-1915-3.patch | 91 + SOURCES/glibc-RHEL-1915-4.patch | 62 + SOURCES/glibc-RHEL-1915-5.patch | 1064 + SOURCES/glibc-RHEL-1915-6.patch | 715 + SOURCES/glibc-RHEL-1915-7.patch | 41 + SOURCES/glibc-RHEL-1915-8.patch | 323 + SOURCES/glibc-RHEL-1915-9.patch | 37 + ...-78939-1.patch => glibc-RHEL-2419-1.patch} | 0 ...8939-10.patch => glibc-RHEL-2419-10.patch} | 0 ...-78939-2.patch => glibc-RHEL-2419-2.patch} | 0 ...-78939-3.patch => glibc-RHEL-2419-3.patch} | 0 ...-78939-4.patch => glibc-RHEL-2419-4.patch} | 0 ...-78939-5.patch => glibc-RHEL-2419-5.patch} | 0 ...-78939-6.patch => glibc-RHEL-2419-6.patch} | 0 ...-78939-7.patch => glibc-RHEL-2419-7.patch} | 0 ...-78939-8.patch => glibc-RHEL-2419-8.patch} | 0 ...-78939-9.patch => glibc-RHEL-2419-9.patch} | 0 SOURCES/glibc-RHEL-24740-1.patch | 315 + SOURCES/glibc-RHEL-24740-2.patch | 435 + SOURCES/glibc-RHEL-24740-3.patch | 218 + SOURCES/glibc-RHEL-38225-1.patch | 69 + SOURCES/glibc-RHEL-38225-2.patch | 529 + SOURCES/glibc-RHEL-41189.patch | 320 + SOURCES/glibc-RHEL-46724.patch | 70 + SOURCES/glibc-RHEL-46725-1.patch | 2531 ++ SOURCES/glibc-RHEL-46725-10.patch | 428 + SOURCES/glibc-RHEL-46725-11.patch | 458 + SOURCES/glibc-RHEL-46725-12.patch | 458 + SOURCES/glibc-RHEL-46725-2.patch | 459 + SOURCES/glibc-RHEL-46725-3.patch | 452 + SOURCES/glibc-RHEL-46725-4.patch | 423 + SOURCES/glibc-RHEL-46725-5.patch | 454 + SOURCES/glibc-RHEL-46725-6.patch | 454 + SOURCES/glibc-RHEL-46725-7.patch | 428 + SOURCES/glibc-RHEL-46725-8.patch | 454 + SOURCES/glibc-RHEL-46725-9.patch | 456 + SOURCES/glibc-RHEL-46728.patch | 287 + SOURCES/glibc-RHEL-46729.patch | 578 + SOURCES/glibc-RHEL-46733-1.patch | 171 + SOURCES/glibc-RHEL-46733-2.patch | 79 + SOURCES/glibc-RHEL-46733-3.patch | 155 + SOURCES/glibc-RHEL-46734.patch | 273 + SOURCES/glibc-RHEL-46735.patch | 167 + SOURCES/glibc-RHEL-46736-1.patch | 67 + SOURCES/glibc-RHEL-46736-10.patch | 30 + SOURCES/glibc-RHEL-46736-11.patch | 216 + SOURCES/glibc-RHEL-46736-2.patch | 168 + SOURCES/glibc-RHEL-46736-3.patch | 261 + SOURCES/glibc-RHEL-46736-4.patch | 739 + SOURCES/glibc-RHEL-46736-5.patch | 69 + SOURCES/glibc-RHEL-46736-6.patch | 119 + SOURCES/glibc-RHEL-46736-7.patch | 86 + SOURCES/glibc-RHEL-46736-8.patch | 33 + SOURCES/glibc-RHEL-46736-9.patch | 495 + SOURCES/glibc-RHEL-46738-1.patch | 34 + SOURCES/glibc-RHEL-46738-2.patch | 52 + SOURCES/glibc-RHEL-46738-3.patch | 21 + SOURCES/glibc-RHEL-46738-4.patch | 405 + SOURCES/glibc-RHEL-46738-5.patch | 26 + SOURCES/glibc-RHEL-46739-1.patch | 49 + SOURCES/glibc-RHEL-46739-10.patch | 38 + SOURCES/glibc-RHEL-46739-11.patch | 439 + SOURCES/glibc-RHEL-46739-2.patch | 16723 ++++++++ SOURCES/glibc-RHEL-46739-3.patch | 445 + SOURCES/glibc-RHEL-46739-4.patch | 598 + SOURCES/glibc-RHEL-46739-5.patch | 140 + SOURCES/glibc-RHEL-46739-6.patch | 147 + SOURCES/glibc-RHEL-46739-7.patch | 76 + SOURCES/glibc-RHEL-46739-8.patch | 254 + SOURCES/glibc-RHEL-46739-9.patch | 79 + SOURCES/glibc-RHEL-46740.patch | 58 + SOURCES/glibc-RHEL-46761-1.patch | 76 + SOURCES/glibc-RHEL-46761-2.patch | 183 + SOURCES/glibc-RHEL-46761-3.patch | 102 + SOURCES/glibc-RHEL-46761-4.patch | 17 + SOURCES/glibc-RHEL-46761-5.patch | 120 + SOURCES/glibc-RHEL-46761-6.patch | 111 + SOURCES/glibc-RHEL-47467.patch | 146 + SOURCES/glibc-RHEL-50545-1.patch | 121 + SOURCES/glibc-RHEL-50545-10.patch | 1337 + SOURCES/glibc-RHEL-50545-11.patch | 501 + SOURCES/glibc-RHEL-50545-12.patch | 40 + SOURCES/glibc-RHEL-50545-13.patch | 32 + SOURCES/glibc-RHEL-50545-14.patch | 24 + SOURCES/glibc-RHEL-50545-2.patch | 785 + SOURCES/glibc-RHEL-50545-3.patch | 30 + SOURCES/glibc-RHEL-50545-4.patch | 91 + SOURCES/glibc-RHEL-50545-5.patch | 410 + SOURCES/glibc-RHEL-50545-6.patch | 452 + SOURCES/glibc-RHEL-50545-7.patch | 47 + SOURCES/glibc-RHEL-50545-8.patch | 1661 + SOURCES/glibc-RHEL-50545-9.patch | 438 + SOURCES/glibc-RHEL-50548-1.patch | 94 + SOURCES/glibc-RHEL-50548-2.patch | 44 + SOURCES/glibc-RHEL-50548-3.patch | 149 + SOURCES/glibc-RHEL-50550.patch | 89 + SOURCES/glibc-RHEL-50662-1.patch | 58 + SOURCES/glibc-RHEL-50662-2.patch | 200 + SOURCES/glibc-RHEL-50662-3.patch | 208 + SOURCES/glibc-RHEL-50662-4.patch | 83 + SOURCES/glibc-RHEL-50662-5.patch | 208 + SOURCES/glibc-RHEL-50662-6.patch | 28 + SOURCES/glibc-RHEL-54250.patch | 60 + SOURCES/glibc-RHEL-54413.patch | 630 + ...HEL-69003.patch => glibc-RHEL-56032.patch} | 0 SOURCES/glibc-RHEL-56539.patch | 146 + SOURCES/glibc-RHEL-56540-1.patch | 526 + SOURCES/glibc-RHEL-56540-2.patch | 34 + SOURCES/glibc-RHEL-56540-3.patch | 241 + SOURCES/glibc-RHEL-56542-1.patch | 56 + SOURCES/glibc-RHEL-56542-2.patch | 236 + SOURCES/glibc-RHEL-56542-3.patch | 104 + SOURCES/glibc-RHEL-56542-4.patch | 80 + SOURCES/glibc-RHEL-56542-5.patch | 48 + SOURCES/glibc-RHEL-56542-6.patch | 136 + SOURCES/glibc-RHEL-56542-7.patch | 389 + SOURCES/glibc-RHEL-56542-8.patch | 264 + SOURCES/glibc-RHEL-56542-9.patch | 214 + SOURCES/glibc-RHEL-56743.patch | 79 + SOURCES/glibc-RHEL-57586.patch | 36 + SOURCES/glibc-RHEL-58671.patch | 90 + SOURCES/glibc-RHEL-58979.patch | 1527 + SOURCES/glibc-RHEL-58987-1.patch | 26 + SOURCES/glibc-RHEL-58987-2.patch | 333 + SOURCES/glibc-RHEL-58989-1.patch | 228 + SOURCES/glibc-RHEL-58989-2.patch | 495 + SOURCES/glibc-RHEL-59494-1.patch | 65 + SOURCES/glibc-RHEL-59494-2.patch | 107 + SOURCES/glibc-RHEL-59494-3.patch | 79 + ...49489-3.patch => glibc-RHEL-60466-1.patch} | 0 ...49489-4.patch => glibc-RHEL-60466-2.patch} | 0 SOURCES/glibc-RHEL-61559-1.patch | 394 + SOURCES/glibc-RHEL-61559-2.patch | 353 + SOURCES/glibc-RHEL-61559-3.patch | 103 + SOURCES/glibc-RHEL-61559-4.patch | 20 + SOURCES/glibc-RHEL-61568.patch | 114 + SOURCES/glibc-RHEL-61569-1.patch | 111 + SOURCES/glibc-RHEL-61569-2.patch | 395 + SOURCES/glibc-RHEL-62716-1.patch | 214 + SOURCES/glibc-RHEL-62716-2.patch | 291 + SOURCES/glibc-RHEL-65354.patch | 109 + SOURCES/glibc-RHEL-65356-1.patch | 93 + SOURCES/glibc-RHEL-65356-2.patch | 332 + SOURCES/glibc-RHEL-65358-1.patch | 106 + SOURCES/glibc-RHEL-65358-2.patch | 23 + SOURCES/glibc-RHEL-65358-3.patch | 131 + SOURCES/glibc-RHEL-65358-4.patch | 230 + SOURCES/glibc-RHEL-65358-5.patch | 427 + ...83294-2.patch => glibc-RHEL-65359-1.patch} | 0 SOURCES/glibc-RHEL-65359-2.patch | 255 + SOURCES/glibc-RHEL-65359-3.patch | 23 + SOURCES/glibc-RHEL-65359-4.patch | 20 + SOURCES/glibc-RHEL-65910.patch | 417 + SOURCES/glibc-RHEL-66253-1.patch | 140 + SOURCES/glibc-RHEL-66253-2.patch | 28 + SOURCES/glibc-RHEL-66253-3.patch | 120 + SOURCES/glibc-RHEL-67592-1.patch | 27 + SOURCES/glibc-RHEL-67592-2.patch | 89 + SOURCES/glibc-RHEL-67592-3.patch | 38 + SOURCES/glibc-RHEL-67592-4.patch | 85 + ...70707-1.patch => glibc-RHEL-67692-1.patch} | 2 +- ...70707-2.patch => glibc-RHEL-67692-2.patch} | 2 +- ...70707-3.patch => glibc-RHEL-67692-3.patch} | 2 +- ...70707-4.patch => glibc-RHEL-67692-4.patch} | 117 +- SOURCES/glibc-RHEL-68850-1.patch | 76 + SOURCES/glibc-RHEL-68850-2.patch | 20 + SOURCES/glibc-RHEL-68857.patch | 164 + SOURCES/glibc-RHEL-69028.patch | 223 + SOURCES/glibc-RHEL-69633-1.patch | 87 + SOURCES/glibc-RHEL-69633-2.patch | 45 + SOURCES/glibc-RHEL-70395-1.patch | 85 + SOURCES/glibc-RHEL-70395-2.patch | 51 + SOURCES/glibc-RHEL-71547.patch | 108 + SOURCES/glibc-RHEL-75810-2.patch | 236 + SOURCES/glibc-RHEL-75810-3.patch | 299 + SOURCES/glibc-RHEL-75810.patch | 249 + ...L-83294-1.patch => glibc-RHEL-75938.patch} | 16 +- ...65285-1.patch => glibc-RHEL-80088-1.patch} | 0 ...65285-2.patch => glibc-RHEL-80088-2.patch} | 2 +- ...65285-3.patch => glibc-RHEL-80088-3.patch} | 4 +- ...65285-4.patch => glibc-RHEL-80088-4.patch} | 0 ...65285-5.patch => glibc-RHEL-80088-5.patch} | 0 ...HEL-83524.patch => glibc-RHEL-83525.patch} | 2 +- SOURCES/glibc-RHEL-83528-1.patch | 24 + ...83294-3.patch => glibc-RHEL-83528-2.patch} | 4 +- SOURCES/glibc-RHEL-83581.patch | 62 + SOURCES/glibc-RHEL-83968.patch | 151 + SOURCES/glibc-RHEL-83970-1.patch | 451 + SOURCES/glibc-RHEL-83970-2.patch | 143 + SOURCES/glibc-RHEL-83970-3.patch | 73 + SOURCES/glibc-RHEL-83970-4.patch | 47 + SOURCES/glibc-RHEL-83970-5.patch | 223 + SOURCES/glibc-RHEL-83970-6.patch | 20 + SOURCES/glibc-RHEL-83970-7.patch | 21 + SOURCES/glibc-RHEL-83970-8.patch | 149 + SOURCES/glibc-RHEL-83980-1.patch | 35 + SOURCES/glibc-RHEL-83980-2.patch | 121 + SOURCES/glibc-RHEL-83980-3.patch | 722 + SOURCES/glibc-RHEL-83980-4.patch | 70 + SOURCES/glibc-RHEL-83982-1.patch | 124 + SOURCES/glibc-RHEL-83982-2.patch | 1092 + SOURCES/glibc-RHEL-83982-3.patch | 112 + SOURCES/glibc-RHEL-83984-1.patch | 135 + SOURCES/glibc-RHEL-83984-2.patch | 168 + SOURCES/glibc-RHEL-83984-3.patch | 81 + SOURCES/glibc-RHEL-83984-4.patch | 26 + SOURCES/glibc-RHEL-83984-5.patch | 277 + SOURCES/glibc-RHEL-83984-6.patch | 23 + SOURCES/glibc-RHEL-83984-7.patch | 471 + SOURCES/glibc-RHEL-83984-8.patch | 176 + SOURCES/glibc-RHEL-84306-1.patch | 15932 ++++++++ SOURCES/glibc-RHEL-84306-10.patch | 451 + SOURCES/glibc-RHEL-84306-11.patch | 495 + SOURCES/glibc-RHEL-84306-12.patch | 458 + SOURCES/glibc-RHEL-84306-13.patch | 458 + SOURCES/glibc-RHEL-84306-14.patch | 499 + SOURCES/glibc-RHEL-84306-15.patch | 32483 ++++++++++++++++ SOURCES/glibc-RHEL-84306-2.patch | 9159 +++++ SOURCES/glibc-RHEL-84306-3.patch | 9223 +++++ SOURCES/glibc-RHEL-84306-4.patch | 5032 +++ SOURCES/glibc-RHEL-84306-5.patch | 5035 +++ SOURCES/glibc-RHEL-84306-6.patch | 4911 +++ SOURCES/glibc-RHEL-84306-7.patch | 5116 +++ SOURCES/glibc-RHEL-84306-8.patch | 4984 +++ SOURCES/glibc-RHEL-84306-9.patch | 4953 +++ ...HEL-84324.patch => glibc-RHEL-84325.patch} | 14 +- SOURCES/wrap-find-debuginfo.sh | 16 +- SPECS/glibc.spec | 1182 +- 230 files changed, 161332 insertions(+), 538 deletions(-) create mode 100644 SOURCES/glibc-RHEL-1915-1.patch create mode 100644 SOURCES/glibc-RHEL-1915-2.patch create mode 100644 SOURCES/glibc-RHEL-1915-3.patch create mode 100644 SOURCES/glibc-RHEL-1915-4.patch create mode 100644 SOURCES/glibc-RHEL-1915-5.patch create mode 100644 SOURCES/glibc-RHEL-1915-6.patch create mode 100644 SOURCES/glibc-RHEL-1915-7.patch create mode 100644 SOURCES/glibc-RHEL-1915-8.patch create mode 100644 SOURCES/glibc-RHEL-1915-9.patch rename SOURCES/{glibc-RHEL-78939-1.patch => glibc-RHEL-2419-1.patch} (100%) rename SOURCES/{glibc-RHEL-78939-10.patch => glibc-RHEL-2419-10.patch} (100%) rename SOURCES/{glibc-RHEL-78939-2.patch => glibc-RHEL-2419-2.patch} (100%) rename SOURCES/{glibc-RHEL-78939-3.patch => glibc-RHEL-2419-3.patch} (100%) rename SOURCES/{glibc-RHEL-78939-4.patch => glibc-RHEL-2419-4.patch} (100%) rename SOURCES/{glibc-RHEL-78939-5.patch => glibc-RHEL-2419-5.patch} (100%) rename SOURCES/{glibc-RHEL-78939-6.patch => glibc-RHEL-2419-6.patch} (100%) rename SOURCES/{glibc-RHEL-78939-7.patch => glibc-RHEL-2419-7.patch} (100%) rename SOURCES/{glibc-RHEL-78939-8.patch => glibc-RHEL-2419-8.patch} (100%) rename SOURCES/{glibc-RHEL-78939-9.patch => glibc-RHEL-2419-9.patch} (100%) create mode 100644 SOURCES/glibc-RHEL-24740-1.patch create mode 100644 SOURCES/glibc-RHEL-24740-2.patch create mode 100644 SOURCES/glibc-RHEL-24740-3.patch create mode 100644 SOURCES/glibc-RHEL-38225-1.patch create mode 100644 SOURCES/glibc-RHEL-38225-2.patch create mode 100644 SOURCES/glibc-RHEL-41189.patch create mode 100644 SOURCES/glibc-RHEL-46724.patch create mode 100644 SOURCES/glibc-RHEL-46725-1.patch create mode 100644 SOURCES/glibc-RHEL-46725-10.patch create mode 100644 SOURCES/glibc-RHEL-46725-11.patch create mode 100644 SOURCES/glibc-RHEL-46725-12.patch create mode 100644 SOURCES/glibc-RHEL-46725-2.patch create mode 100644 SOURCES/glibc-RHEL-46725-3.patch create mode 100644 SOURCES/glibc-RHEL-46725-4.patch create mode 100644 SOURCES/glibc-RHEL-46725-5.patch create mode 100644 SOURCES/glibc-RHEL-46725-6.patch create mode 100644 SOURCES/glibc-RHEL-46725-7.patch create mode 100644 SOURCES/glibc-RHEL-46725-8.patch create mode 100644 SOURCES/glibc-RHEL-46725-9.patch create mode 100644 SOURCES/glibc-RHEL-46728.patch create mode 100644 SOURCES/glibc-RHEL-46729.patch create mode 100644 SOURCES/glibc-RHEL-46733-1.patch create mode 100644 SOURCES/glibc-RHEL-46733-2.patch create mode 100644 SOURCES/glibc-RHEL-46733-3.patch create mode 100644 SOURCES/glibc-RHEL-46734.patch create mode 100644 SOURCES/glibc-RHEL-46735.patch create mode 100644 SOURCES/glibc-RHEL-46736-1.patch create mode 100644 SOURCES/glibc-RHEL-46736-10.patch create mode 100644 SOURCES/glibc-RHEL-46736-11.patch create mode 100644 SOURCES/glibc-RHEL-46736-2.patch create mode 100644 SOURCES/glibc-RHEL-46736-3.patch create mode 100644 SOURCES/glibc-RHEL-46736-4.patch create mode 100644 SOURCES/glibc-RHEL-46736-5.patch create mode 100644 SOURCES/glibc-RHEL-46736-6.patch create mode 100644 SOURCES/glibc-RHEL-46736-7.patch create mode 100644 SOURCES/glibc-RHEL-46736-8.patch create mode 100644 SOURCES/glibc-RHEL-46736-9.patch create mode 100644 SOURCES/glibc-RHEL-46738-1.patch create mode 100644 SOURCES/glibc-RHEL-46738-2.patch create mode 100644 SOURCES/glibc-RHEL-46738-3.patch create mode 100644 SOURCES/glibc-RHEL-46738-4.patch create mode 100644 SOURCES/glibc-RHEL-46738-5.patch create mode 100644 SOURCES/glibc-RHEL-46739-1.patch create mode 100644 SOURCES/glibc-RHEL-46739-10.patch create mode 100644 SOURCES/glibc-RHEL-46739-11.patch create mode 100644 SOURCES/glibc-RHEL-46739-2.patch create mode 100644 SOURCES/glibc-RHEL-46739-3.patch create mode 100644 SOURCES/glibc-RHEL-46739-4.patch create mode 100644 SOURCES/glibc-RHEL-46739-5.patch create mode 100644 SOURCES/glibc-RHEL-46739-6.patch create mode 100644 SOURCES/glibc-RHEL-46739-7.patch create mode 100644 SOURCES/glibc-RHEL-46739-8.patch create mode 100644 SOURCES/glibc-RHEL-46739-9.patch create mode 100644 SOURCES/glibc-RHEL-46740.patch create mode 100644 SOURCES/glibc-RHEL-46761-1.patch create mode 100644 SOURCES/glibc-RHEL-46761-2.patch create mode 100644 SOURCES/glibc-RHEL-46761-3.patch create mode 100644 SOURCES/glibc-RHEL-46761-4.patch create mode 100644 SOURCES/glibc-RHEL-46761-5.patch create mode 100644 SOURCES/glibc-RHEL-46761-6.patch create mode 100644 SOURCES/glibc-RHEL-47467.patch create mode 100644 SOURCES/glibc-RHEL-50545-1.patch create mode 100644 SOURCES/glibc-RHEL-50545-10.patch create mode 100644 SOURCES/glibc-RHEL-50545-11.patch create mode 100644 SOURCES/glibc-RHEL-50545-12.patch create mode 100644 SOURCES/glibc-RHEL-50545-13.patch create mode 100644 SOURCES/glibc-RHEL-50545-14.patch create mode 100644 SOURCES/glibc-RHEL-50545-2.patch create mode 100644 SOURCES/glibc-RHEL-50545-3.patch create mode 100644 SOURCES/glibc-RHEL-50545-4.patch create mode 100644 SOURCES/glibc-RHEL-50545-5.patch create mode 100644 SOURCES/glibc-RHEL-50545-6.patch create mode 100644 SOURCES/glibc-RHEL-50545-7.patch create mode 100644 SOURCES/glibc-RHEL-50545-8.patch create mode 100644 SOURCES/glibc-RHEL-50545-9.patch create mode 100644 SOURCES/glibc-RHEL-50548-1.patch create mode 100644 SOURCES/glibc-RHEL-50548-2.patch create mode 100644 SOURCES/glibc-RHEL-50548-3.patch create mode 100644 SOURCES/glibc-RHEL-50550.patch create mode 100644 SOURCES/glibc-RHEL-50662-1.patch create mode 100644 SOURCES/glibc-RHEL-50662-2.patch create mode 100644 SOURCES/glibc-RHEL-50662-3.patch create mode 100644 SOURCES/glibc-RHEL-50662-4.patch create mode 100644 SOURCES/glibc-RHEL-50662-5.patch create mode 100644 SOURCES/glibc-RHEL-50662-6.patch create mode 100644 SOURCES/glibc-RHEL-54250.patch create mode 100644 SOURCES/glibc-RHEL-54413.patch rename SOURCES/{glibc-RHEL-69003.patch => glibc-RHEL-56032.patch} (100%) create mode 100644 SOURCES/glibc-RHEL-56539.patch create mode 100644 SOURCES/glibc-RHEL-56540-1.patch create mode 100644 SOURCES/glibc-RHEL-56540-2.patch create mode 100644 SOURCES/glibc-RHEL-56540-3.patch create mode 100644 SOURCES/glibc-RHEL-56542-1.patch create mode 100644 SOURCES/glibc-RHEL-56542-2.patch create mode 100644 SOURCES/glibc-RHEL-56542-3.patch create mode 100644 SOURCES/glibc-RHEL-56542-4.patch create mode 100644 SOURCES/glibc-RHEL-56542-5.patch create mode 100644 SOURCES/glibc-RHEL-56542-6.patch create mode 100644 SOURCES/glibc-RHEL-56542-7.patch create mode 100644 SOURCES/glibc-RHEL-56542-8.patch create mode 100644 SOURCES/glibc-RHEL-56542-9.patch create mode 100644 SOURCES/glibc-RHEL-56743.patch create mode 100644 SOURCES/glibc-RHEL-57586.patch create mode 100644 SOURCES/glibc-RHEL-58671.patch create mode 100644 SOURCES/glibc-RHEL-58979.patch create mode 100644 SOURCES/glibc-RHEL-58987-1.patch create mode 100644 SOURCES/glibc-RHEL-58987-2.patch create mode 100644 SOURCES/glibc-RHEL-58989-1.patch create mode 100644 SOURCES/glibc-RHEL-58989-2.patch create mode 100644 SOURCES/glibc-RHEL-59494-1.patch create mode 100644 SOURCES/glibc-RHEL-59494-2.patch create mode 100644 SOURCES/glibc-RHEL-59494-3.patch rename SOURCES/{glibc-RHEL-49489-3.patch => glibc-RHEL-60466-1.patch} (100%) rename SOURCES/{glibc-RHEL-49489-4.patch => glibc-RHEL-60466-2.patch} (100%) create mode 100644 SOURCES/glibc-RHEL-61559-1.patch create mode 100644 SOURCES/glibc-RHEL-61559-2.patch create mode 100644 SOURCES/glibc-RHEL-61559-3.patch create mode 100644 SOURCES/glibc-RHEL-61559-4.patch create mode 100644 SOURCES/glibc-RHEL-61568.patch create mode 100644 SOURCES/glibc-RHEL-61569-1.patch create mode 100644 SOURCES/glibc-RHEL-61569-2.patch create mode 100644 SOURCES/glibc-RHEL-62716-1.patch create mode 100644 SOURCES/glibc-RHEL-62716-2.patch create mode 100644 SOURCES/glibc-RHEL-65354.patch create mode 100644 SOURCES/glibc-RHEL-65356-1.patch create mode 100644 SOURCES/glibc-RHEL-65356-2.patch create mode 100644 SOURCES/glibc-RHEL-65358-1.patch create mode 100644 SOURCES/glibc-RHEL-65358-2.patch create mode 100644 SOURCES/glibc-RHEL-65358-3.patch create mode 100644 SOURCES/glibc-RHEL-65358-4.patch create mode 100644 SOURCES/glibc-RHEL-65358-5.patch rename SOURCES/{glibc-RHEL-83294-2.patch => glibc-RHEL-65359-1.patch} (100%) create mode 100644 SOURCES/glibc-RHEL-65359-2.patch create mode 100644 SOURCES/glibc-RHEL-65359-3.patch create mode 100644 SOURCES/glibc-RHEL-65359-4.patch create mode 100644 SOURCES/glibc-RHEL-65910.patch create mode 100644 SOURCES/glibc-RHEL-66253-1.patch create mode 100644 SOURCES/glibc-RHEL-66253-2.patch create mode 100644 SOURCES/glibc-RHEL-66253-3.patch create mode 100644 SOURCES/glibc-RHEL-67592-1.patch create mode 100644 SOURCES/glibc-RHEL-67592-2.patch create mode 100644 SOURCES/glibc-RHEL-67592-3.patch create mode 100644 SOURCES/glibc-RHEL-67592-4.patch rename SOURCES/{glibc-RHEL-70707-1.patch => glibc-RHEL-67692-1.patch} (95%) rename SOURCES/{glibc-RHEL-70707-2.patch => glibc-RHEL-67692-2.patch} (98%) rename SOURCES/{glibc-RHEL-70707-3.patch => glibc-RHEL-67692-3.patch} (97%) rename SOURCES/{glibc-RHEL-70707-4.patch => glibc-RHEL-67692-4.patch} (94%) create mode 100644 SOURCES/glibc-RHEL-68850-1.patch create mode 100644 SOURCES/glibc-RHEL-68850-2.patch create mode 100644 SOURCES/glibc-RHEL-68857.patch create mode 100644 SOURCES/glibc-RHEL-69028.patch create mode 100644 SOURCES/glibc-RHEL-69633-1.patch create mode 100644 SOURCES/glibc-RHEL-69633-2.patch create mode 100644 SOURCES/glibc-RHEL-70395-1.patch create mode 100644 SOURCES/glibc-RHEL-70395-2.patch create mode 100644 SOURCES/glibc-RHEL-71547.patch create mode 100644 SOURCES/glibc-RHEL-75810-2.patch create mode 100644 SOURCES/glibc-RHEL-75810-3.patch create mode 100644 SOURCES/glibc-RHEL-75810.patch rename SOURCES/{glibc-RHEL-83294-1.patch => glibc-RHEL-75938.patch} (79%) rename SOURCES/{glibc-RHEL-65285-1.patch => glibc-RHEL-80088-1.patch} (100%) rename SOURCES/{glibc-RHEL-65285-2.patch => glibc-RHEL-80088-2.patch} (99%) rename SOURCES/{glibc-RHEL-65285-3.patch => glibc-RHEL-80088-3.patch} (97%) rename SOURCES/{glibc-RHEL-65285-4.patch => glibc-RHEL-80088-4.patch} (100%) rename SOURCES/{glibc-RHEL-65285-5.patch => glibc-RHEL-80088-5.patch} (100%) rename SOURCES/{glibc-RHEL-83524.patch => glibc-RHEL-83525.patch} (97%) create mode 100644 SOURCES/glibc-RHEL-83528-1.patch rename SOURCES/{glibc-RHEL-83294-3.patch => glibc-RHEL-83528-2.patch} (98%) create mode 100644 SOURCES/glibc-RHEL-83581.patch create mode 100644 SOURCES/glibc-RHEL-83968.patch create mode 100644 SOURCES/glibc-RHEL-83970-1.patch create mode 100644 SOURCES/glibc-RHEL-83970-2.patch create mode 100644 SOURCES/glibc-RHEL-83970-3.patch create mode 100644 SOURCES/glibc-RHEL-83970-4.patch create mode 100644 SOURCES/glibc-RHEL-83970-5.patch create mode 100644 SOURCES/glibc-RHEL-83970-6.patch create mode 100644 SOURCES/glibc-RHEL-83970-7.patch create mode 100644 SOURCES/glibc-RHEL-83970-8.patch create mode 100644 SOURCES/glibc-RHEL-83980-1.patch create mode 100644 SOURCES/glibc-RHEL-83980-2.patch create mode 100644 SOURCES/glibc-RHEL-83980-3.patch create mode 100644 SOURCES/glibc-RHEL-83980-4.patch create mode 100644 SOURCES/glibc-RHEL-83982-1.patch create mode 100644 SOURCES/glibc-RHEL-83982-2.patch create mode 100644 SOURCES/glibc-RHEL-83982-3.patch create mode 100644 SOURCES/glibc-RHEL-83984-1.patch create mode 100644 SOURCES/glibc-RHEL-83984-2.patch create mode 100644 SOURCES/glibc-RHEL-83984-3.patch create mode 100644 SOURCES/glibc-RHEL-83984-4.patch create mode 100644 SOURCES/glibc-RHEL-83984-5.patch create mode 100644 SOURCES/glibc-RHEL-83984-6.patch create mode 100644 SOURCES/glibc-RHEL-83984-7.patch create mode 100644 SOURCES/glibc-RHEL-83984-8.patch create mode 100644 SOURCES/glibc-RHEL-84306-1.patch create mode 100644 SOURCES/glibc-RHEL-84306-10.patch create mode 100644 SOURCES/glibc-RHEL-84306-11.patch create mode 100644 SOURCES/glibc-RHEL-84306-12.patch create mode 100644 SOURCES/glibc-RHEL-84306-13.patch create mode 100644 SOURCES/glibc-RHEL-84306-14.patch create mode 100644 SOURCES/glibc-RHEL-84306-15.patch create mode 100644 SOURCES/glibc-RHEL-84306-2.patch create mode 100644 SOURCES/glibc-RHEL-84306-3.patch create mode 100644 SOURCES/glibc-RHEL-84306-4.patch create mode 100644 SOURCES/glibc-RHEL-84306-5.patch create mode 100644 SOURCES/glibc-RHEL-84306-6.patch create mode 100644 SOURCES/glibc-RHEL-84306-7.patch create mode 100644 SOURCES/glibc-RHEL-84306-8.patch create mode 100644 SOURCES/glibc-RHEL-84306-9.patch rename SOURCES/{glibc-RHEL-84324.patch => glibc-RHEL-84325.patch} (92%) diff --git a/SOURCES/glibc-RHEL-1915-1.patch b/SOURCES/glibc-RHEL-1915-1.patch new file mode 100644 index 0000000..8a5b994 --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-1.patch @@ -0,0 +1,337 @@ +commit f58a8c1c15d8b5d8a08e8553f82867202b88a5cc +Author: Paul Pluzhnikov +Date: Sat May 27 06:48:33 2023 +0000 + + Fix misspellings in iconv/ and iconvdata/ -- BZ 25337 + + All the changes are in comments or '#error' messages. + Applying this commit results in bit-identical rebuild of iconvdata/*.so + + Reviewed-by: Florian Weimer + +diff --git a/iconv/gconv_charset.c b/iconv/gconv_charset.c +index 5696058298..0cf3226be6 100644 +--- a/iconv/gconv_charset.c ++++ b/iconv/gconv_charset.c +@@ -181,10 +181,10 @@ __gconv_create_spec (struct gconv_spec *conv_spec, const char *fromcode, + implementation has always handled them. Only suffixes in the tocode are + processed and handled. The reality is that invalid input in the input + character set should only be ignored if the fromcode specifies IGNORE. +- The current implementation ignores invalid intput in the input character ++ The current implementation ignores invalid input in the input character + set if the tocode contains IGNORE. We preserve this behavior for + backwards compatibility. In the future we may split the handling of +- IGNORE to allow a finer grained specification of ignorning invalid input ++ IGNORE to allow a finer grained specification of ignoring invalid input + and/or ignoring invalid output. */ + conv_spec->translit = ptc.translit; + conv_spec->ignore = ptc.ignore; +diff --git a/iconv/gconv_charset.h b/iconv/gconv_charset.h +index 00744aad56..07815b0eee 100644 +--- a/iconv/gconv_charset.h ++++ b/iconv/gconv_charset.h +@@ -48,7 +48,7 @@ + + + /* This function copies in-order, characters from the source 's' that are +- either alpha-numeric or one in one of these: "_-.,:/" - into the destination ++ either alphanumeric or one in one of these: "_-.,:/" - into the destination + 'wp' while dropping all other characters. In the process, it converts all + alphabetical characters to upper case. It then appends up to two '/' + characters so that the total number of '/'es in the destination is 2. */ +diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c +index c76011d6bc..ee9e97e1bd 100644 +--- a/iconv/gconv_conf.c ++++ b/iconv/gconv_conf.c +@@ -153,7 +153,7 @@ static void + add_alias (char *rp) + { + /* We now expect two more string. The strings are normalized +- (converted to UPPER case) and strored in the alias database. */ ++ (converted to UPPER case) and stored in the alias database. */ + char *from, *to, *wp; + + while (__isspace_l (*rp, _nl_C_locobj_ptr)) +diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h +index 4b247a815f..19d042faff 100644 +--- a/iconv/gconv_int.h ++++ b/iconv/gconv_int.h +@@ -172,7 +172,7 @@ __libc_lock_define (extern, __gconv_lock attribute_hidden) + }) + + +-/* Return in *HANDLE, a decriptor for the transformation. The function expects ++/* Return in *HANDLE, a descriptor for the transformation. The function expects + the specification of the transformation in the structure pointed to by + CONV_SPEC. It only reads *CONV_SPEC and does not take ownership of it. */ + extern int __gconv_open (struct gconv_spec *conv_spec, +diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c +index c60cffad4c..e936e171d7 100644 +--- a/iconv/gconv_simple.c ++++ b/iconv/gconv_simple.c +@@ -56,7 +56,7 @@ __gconv_btwoc_ascii (struct __gconv_step *step, unsigned char c) + + /* Transform from the internal, UCS4-like format, to UCS4. The + difference between the internal ucs4 format and the real UCS4 +- format is, if any, the endianess. The Unicode/ISO 10646 says that ++ format is, if any, the endianness. The Unicode/ISO 10646 says that + unless some higher protocol specifies it differently, the byte + order is big endian.*/ + #define DEFINE_INIT 0 +@@ -100,7 +100,7 @@ internal_ucs4_loop (struct __gconv_step *step, + *inptrp = inptr + n_convert * 4; + *outptrp = __mempcpy (outptr, inptr, n_convert * 4); + #else +-# error "This endianess is not supported." ++# error "This endianness is not supported." + #endif + + /* Determine the status. */ +@@ -153,7 +153,7 @@ internal_ucs4_loop_single (struct __gconv_step *step, + (*outptrp)[2] = state->__value.__wchb[2]; + (*outptrp)[3] = state->__value.__wchb[3]; + #else +-# error "This endianess is not supported." ++# error "This endianness is not supported." + #endif + *outptrp += 4; + +@@ -347,7 +347,7 @@ internal_ucs4le_loop (struct __gconv_step *step, + *inptrp = inptr + n_convert * 4; + *outptrp = __mempcpy (outptr, inptr, n_convert * 4); + #else +-# error "This endianess is not supported." ++# error "This endianness is not supported." + #endif + + /* Determine the status. */ +diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c +index 1d90938d71..bee898c63c 100644 +--- a/iconv/iconv_prog.c ++++ b/iconv/iconv_prog.c +@@ -537,7 +537,7 @@ incomplete character or shift sequence at end of buffer")); + static int + process_fd (iconv_t cd, int fd, FILE **output, const char *output_file) + { +- /* we have a problem with reading from a desriptor since we must not ++ /* we have a problem with reading from a descriptor since we must not + provide the iconv() function an incomplete character or shift + sequence at the end of the buffer. Since we have to deal with + arbitrary encodings we must read the whole text in a buffer and +diff --git a/iconv/iconvconfig.c b/iconv/iconvconfig.c +index a319e2f762..f3f4baa4e7 100644 +--- a/iconv/iconvconfig.c ++++ b/iconv/iconvconfig.c +@@ -445,7 +445,7 @@ static void + add_alias (char *rp) + { + /* We now expect two more string. The strings are normalized +- (converted to UPPER case) and strored in the alias database. */ ++ (converted to UPPER case) and stored in the alias database. */ + char *from; + char *to; + char *wp; +diff --git a/iconvdata/bug-iconv8.c b/iconvdata/bug-iconv8.c +index e32d891b5c..1ebb674c91 100644 +--- a/iconvdata/bug-iconv8.c ++++ b/iconvdata/bug-iconv8.c +@@ -29,7 +29,7 @@ do_test (void) + /* + * result: -1 84 0 0 (84=EILSEQ) + * +- * Error is returnd but inbuf is consumed. ++ * Error is returned but inbuf is consumed. + * + * \x83\xd9 is valid shift-jis sequence but no character is assigned + * to it. +diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c +index 4d6ec71139..5203f30e79 100644 +--- a/iconvdata/ibm1364.c ++++ b/iconvdata/ibm1364.c +@@ -91,7 +91,7 @@ + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_curcs = *curcsp; \ +diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c +index 2939d4d29e..fe2fe1f15b 100644 +--- a/iconvdata/ibm930.c ++++ b/iconvdata/ibm930.c +@@ -80,7 +80,7 @@ + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_curcs = *curcsp; \ +diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c +index 95935b8b36..4db0699a68 100644 +--- a/iconvdata/ibm933.c ++++ b/iconvdata/ibm933.c +@@ -79,7 +79,7 @@ + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_curcs = *curcsp; \ +diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c +index 1d8240a758..3c3d697a24 100644 +--- a/iconvdata/ibm935.c ++++ b/iconvdata/ibm935.c +@@ -80,7 +80,7 @@ + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_curcs = *curcsp; \ +diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c +index 9e02aba122..1586036c1e 100644 +--- a/iconvdata/ibm937.c ++++ b/iconvdata/ibm937.c +@@ -80,7 +80,7 @@ + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_curcs = *curcsp; \ +diff --git a/iconvdata/ibm939.c b/iconvdata/ibm939.c +index ce719cb29f..9b053c696e 100644 +--- a/iconvdata/ibm939.c ++++ b/iconvdata/ibm939.c +@@ -80,7 +80,7 @@ + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_curcs = *curcsp; \ +diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c +index d0c3ca4f03..36727f0865 100644 +--- a/iconvdata/iso-2022-cn-ext.c ++++ b/iconvdata/iso-2022-cn-ext.c +@@ -154,7 +154,7 @@ enum + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_set = *setp; \ +diff --git a/iconvdata/iso-2022-cn.c b/iconvdata/iso-2022-cn.c +index 73eb5e77c6..5660ead668 100644 +--- a/iconvdata/iso-2022-cn.c ++++ b/iconvdata/iso-2022-cn.c +@@ -102,7 +102,7 @@ enum + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_set = *setp; \ +diff --git a/iconvdata/iso-2022-jp-3.c b/iconvdata/iso-2022-jp-3.c +index d341a14f51..c722bdbfc3 100644 +--- a/iconvdata/iso-2022-jp-3.c ++++ b/iconvdata/iso-2022-jp-3.c +@@ -156,7 +156,7 @@ enum + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + saved_state = *statep; \ +diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c +index f31dfb92e6..b023d3cf8e 100644 +--- a/iconvdata/iso-2022-jp.c ++++ b/iconvdata/iso-2022-jp.c +@@ -249,7 +249,7 @@ gconv_end (struct __gconv_step *data) + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_set = *setp; \ +@@ -679,7 +679,7 @@ static const cvlist_t conversion_lists[4] = + the character is unknown. \ + The CJK character sets partially overlap when seen as subsets \ + of ISO 10646; therefore there is no single correct result. \ +- We use a preferrence order which depends on the language tag. */ \ ++ We use a preference order which depends on the language tag. */ \ + \ + if (ch <= 0x7f) \ + { \ +diff --git a/iconvdata/iso-2022-kr.c b/iconvdata/iso-2022-kr.c +index e71198aee9..fd785fd8f9 100644 +--- a/iconvdata/iso-2022-kr.c ++++ b/iconvdata/iso-2022-kr.c +@@ -100,7 +100,7 @@ enum + + + /* Since we might have to reset input pointer we must be able to save +- and retore the state. */ ++ and restore the state. */ + #define SAVE_RESET_STATE(Save) \ + if (Save) \ + save_set = *setp; \ +diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c +index f7111a3759..1800dc8fdb 100644 +--- a/iconvdata/iso646.c ++++ b/iconvdata/iso646.c +@@ -21,7 +21,7 @@ + zillions of ISO 646 derivates and supporting them all in a separate + module is overkill since these coded character sets are hardly ever + used anymore (except ANSI_X3.4-1968 == ASCII, which is compatible +- with ISO 8859-1). The European variants are superceded by the ++ with ISO 8859-1). The European variants are superseded by the + various ISO 8859-? standards and the Asian variants are embedded in + larger character sets. Therefore this implementation is simply + here to make it possible to do the conversion if it is necessary. +diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c +index 93c28db13e..5ab821bbff 100644 +--- a/iconvdata/sjis.c ++++ b/iconvdata/sjis.c +@@ -2001,7 +2001,7 @@ static const char from_ucs4_greek[193][2] = + + + /* The mapping of the Kanji is horrible. The glyphs covered by Shift JIS +- are spreaded all around the Unicode CJK area. We use one big table ++ are spread all around the Unicode CJK area. We use one big table + since using the gaps will not buy us much. + + The following table can be generated using +diff --git a/iconvdata/tst-table.sh b/iconvdata/tst-table.sh +index d5b1f3c87d..bc6f542b24 100755 +--- a/iconvdata/tst-table.sh ++++ b/iconvdata/tst-table.sh +@@ -44,7 +44,7 @@ if test ${charset} = GB18030; then + mv ${objpfx}tst-${charset}.truncated.table ${objpfx}tst-${charset}.charmap.table + fi + +-# Precomputed expexted differences between the charmap and iconv forward. ++# Precomputed expected differences between the charmap and iconv forward. + precomposed=${charset}.precomposed + + # Precompute expected differences between the charmap and iconv backward. diff --git a/SOURCES/glibc-RHEL-1915-2.patch b/SOURCES/glibc-RHEL-1915-2.patch new file mode 100644 index 0000000..1b24e63 --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-2.patch @@ -0,0 +1,218 @@ +commit 422ed8ede312f786369e4850e47b8d32beaae4e4 +Author: Florian Weimer +Date: Fri Sep 20 13:10:54 2024 +0200 + + iconv: Base tests for buffer management + + Reviewed-by: DJ Delorie + Conflicts: + iconv/Makefile - tests-special list differences + +diff --git a/iconv/Makefile b/iconv/Makefile +index 65b4a44ab8..b0fa550141 100644 +--- a/iconv/Makefile 2024-11-18 12:41:42.539981355 -0500 ++++ b/iconv/Makefile 2024-11-18 12:40:54.861651890 -0500 +@@ -72,7 +72,10 @@ include $(patsubst %,$(..)libof-iterator + + ifeq ($(run-built-tests),yes) + xtests-special += $(objpfx)test-iconvconfig.out +-tests-special += $(objpfx)tst-iconv_prog.out ++tests-special += \ ++ $(objpfx)tst-iconv_prog-buffer.out \ ++ $(objpfx)tst-iconv_prog.out \ ++ # tests-special + endif + + # Make a copy of the file because gconv module names are constructed +@@ -125,3 +128,8 @@ $(objpfx)tst-iconv_prog.out: tst-iconv_p + $(BASH) $< $(common-objdir) '$(test-wrapper-env)' \ + '$(run-program-env)' > $@; \ + $(evaluate-test) ++ ++$(objpfx)tst-iconv_prog-buffer.out: \ ++ tst-iconv_prog-buffer.sh $(objpfx)iconv_prog ++ $(BASH) $< $(common-objdir) '$(test-program-prefix)' > $@; \ ++ $(evaluate-test) +diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh +new file mode 100644 +index 0000000000..a27107f02b +--- /dev/null ++++ b/iconv/tst-iconv_prog-buffer.sh +@@ -0,0 +1,177 @@ ++#!/bin/bash ++# Test for iconv (the program) buffer management. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++exec 2>&1 ++set -e ++ ++exec {logfd}>&1 ++ ++codir=$1 ++test_program_prefix="$2" ++ ++# Use internal converters to avoid issues with module loading. ++iconv_args="-f ASCII -t UTF-8" ++ ++failure=false ++ ++tmp=`mktemp -d` ++trap 'rm -rf "$tmp"' 0 ++echo ABC > "$tmp/abc" ++echo DEF > "$tmp/def" ++echo GGG > "$tmp/ggg" ++echo HH > "$tmp/hh" ++echo XY > "$tmp/xy" ++echo ZT > "$tmp/zt" ++echo OUT > "$tmp/out-template" ++printf '\xff' > "$tmp/0xff" ++cat "$tmp/xy" "$tmp/0xff" "$tmp/zt" > "$tmp/0xff-wrapped" ++ ++run_iconv () { ++ local c=0 ++ if test "${FUNCNAME[2]}" = main; then ++ c=1 ++ fi ++ echo "${BASH_SOURCE[$c]}:${BASH_LINENO[$c]}: iconv $iconv_args $@" >&$logfd ++ $test_program_prefix $codir/iconv/iconv_prog $iconv_args "$@" ++} ++ ++check_out_expected () { ++ if ! cmp -s "$tmp/out" "$tmp/expected" ; then ++ echo "error: iconv output difference" >&$logfd ++ echo "*** expected ***" >&$logfd ++ cat "$tmp/expected" >&$logfd ++ echo "*** actual ***" >&$logfd ++ cat "$tmp/out" >&$logfd ++ failure=true ++ fi ++} ++ ++expect_files () { ++ local f ++ ! test -z "$1" ++ cp "$tmp/$1" "$tmp/expected" ++ shift ++ for f in "$@" ; do ++ cat "$tmp/$f" >> "$tmp/expected" ++ done ++ check_out_expected ++} ++ ++check_out () { ++ cat > "$tmp/expected" ++ check_out_expected ++} ++ ++expect_exit () { ++ local expected=$1 ++ shift ++ # Prevent failure for stopping the script. ++ if "$@" ; then ++ actual=$? ++ else ++ actual=$? ++ fi ++ if test "$actual" -ne "$expected"; then ++ echo "error: expected exit status $expected, not $actual" >&$logfd ++ exit 1 ++ fi ++} ++ ++ignore_failure () { ++ set +e ++ "$@" ++ status=$? ++ set -e ++} ++ ++# Concatentation test. ++run_iconv -o "$tmp/out" "$tmp/abc" "$tmp/def" ++expect_files abc def ++ ++# Single-file in-place conversion. ++run_iconv -o "$tmp/out" "$tmp/out" ++expect_files abc def ++ ++# Multiple input files with in-place conversion. ++ ++run_iconv -o "$tmp/out" "$tmp/out" "$tmp/abc" ++expect_files abc def abc ++ ++# But not if we are writing to standard output. ++ ++cp "$tmp/out-template" "$tmp/out" ++run_iconv >"$tmp/out" ++expect_files out-template ++ ++cp "$tmp/out-template" "$tmp/out" ++run_iconv - >"$tmp/out" ++expect_files out-template ++ ++cp "$tmp/out-template" "$tmp/out" ++run_iconv /dev/null >>"$tmp/out" ++expect_files out-template ++ ++# Conversion errors should avoid clobbering an existing file if ++# it is also an input file. ++ ++cp "$tmp/0xff" "$tmp/out" ++expect_exit 1 run_iconv -o "$tmp/out" "$tmp/out" ++expect_files 0xff ++ ++cp "$tmp/0xff" "$tmp/out" ++expect_exit 1 run_iconv -o "$tmp/out" < "$tmp/out" ++expect_files 0xff ++ ++cp "$tmp/0xff" "$tmp/out" ++expect_exit 1 run_iconv -o "$tmp/out" - < "$tmp/out" ++expect_files 0xff ++ ++# If errors are ignored, the file should be overwritten. ++ ++cp "$tmp/out-template" "$tmp/out" ++expect_exit 1 \ ++ run_iconv -c -o "$tmp/out" "$tmp/abc" "$tmp/0xff" "$tmp/def" 2>"$tmp/err" ++! test -s "$tmp/err" ++expect_files abc def ++ ++# FIXME: This is not correct, -c should not change the exit status. ++cp "$tmp/out-template" "$tmp/out" ++run_iconv -c -o "$tmp/out" \ ++ "$tmp/abc" "$tmp/0xff-wrapped" "$tmp/def" 2>"$tmp/err" ++! test -s "$tmp/err" ++expect_files abc xy zt def ++ ++# If the file does not exist yet, it should not be created on error. ++ ++rm "$tmp/out" ++expect_exit 1 run_iconv -o "$tmp/out" "$tmp/0xff" ++! test -e "$tmp/out" ++ ++expect_exit 1 run_iconv -o "$tmp/out" < "$tmp/0xff" ++! test -e "$tmp/out" ++ ++expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" "$tmp/0xff" "$tmp/def" ++! test -e "$tmp/out" ++ ++expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" - < "$tmp/0xff" "$tmp/def" ++! test -e "$tmp/out" ++ ++if $failure ; then ++ exit 1 ++fi diff --git a/SOURCES/glibc-RHEL-1915-3.patch b/SOURCES/glibc-RHEL-1915-3.patch new file mode 100644 index 0000000..db6e942 --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-3.patch @@ -0,0 +1,91 @@ +commit 0cb64617a6f691b611406427c8e24b7f04c4983f +Author: Florian Weimer +Date: Fri Sep 20 13:10:54 2024 +0200 + + iconv: Do not use mmap in iconv (the program) (bug 17703) + + On current systems, very large files are needed before + mmap becomes beneficial. Simplify the implementation. + + This exposed that inptr was not initialized correctly in + process_fd. Handling multiple input files resulted in + EFAULT in read because a null pointer was passed. This + could be observed previously if an input file was not + mappable and was reported as bug 17703. + + Reviewed-by: DJ Delorie + +diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c +index a765b1af21..88a928557e 100644 +--- a/iconv/iconv_prog.c ++++ b/iconv/iconv_prog.c +@@ -31,9 +31,6 @@ + #include + #include + #include +-#ifdef _POSIX_MAPPED_FILES +-# include +-#endif + #include + #include + #include "iconv_prog.h" +@@ -253,10 +250,6 @@ conversions from `%s' and to `%s' are not supported"), + else + do + { +-#ifdef _POSIX_MAPPED_FILES +- struct stat64 st; +- char *addr; +-#endif + int fd, ret; + + if (verbose) +@@ -276,39 +269,6 @@ conversions from `%s' and to `%s' are not supported"), + } + } + +-#ifdef _POSIX_MAPPED_FILES +- /* We have possibilities for reading the input file. First try +- to mmap() it since this will provide the fastest solution. */ +- if (fstat64 (fd, &st) == 0 +- && ((addr = mmap (NULL, st.st_size, PROT_READ, MAP_PRIVATE, +- fd, 0)) != MAP_FAILED)) +- { +- /* Yes, we can use mmap(). The descriptor is not needed +- anymore. */ +- if (close (fd) != 0) +- error (EXIT_FAILURE, errno, +- _("error while closing input `%s'"), +- argv[remaining]); +- +- ret = process_block (cd, addr, st.st_size, &output, +- output_file); +- +- /* We don't need the input data anymore. */ +- munmap ((void *) addr, st.st_size); +- +- if (ret != 0) +- { +- status = EXIT_FAILURE; +- +- if (ret < 0) +- /* We cannot go on with producing output since it might +- lead to problem because the last output might leave +- the output stream in an undefined state. */ +- break; +- } +- } +- else +-#endif /* _POSIX_MAPPED_FILES */ + { + /* Read the file in pieces. */ + ret = process_fd (cd, fd, &output, output_file); +@@ -544,7 +504,7 @@ process_fd (iconv_t cd, int fd, FILE **output, const char *output_file) + process it in one step. */ + static char *inbuf = NULL; + static size_t maxlen = 0; +- char *inptr = NULL; ++ char *inptr = inbuf; + size_t actlen = 0; + + while (actlen < maxlen) diff --git a/SOURCES/glibc-RHEL-1915-4.patch b/SOURCES/glibc-RHEL-1915-4.patch new file mode 100644 index 0000000..711b6db --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-4.patch @@ -0,0 +1,62 @@ +commit 00ba299787c2ea9e5c4986301e2f4965dffbfded +Author: Florian Weimer +Date: Fri Sep 20 13:10:54 2024 +0200 + + manual: __is_last is no longer part of iconv internals + + The __is_last field was replaced with a bitmask in + commit 85830c4c4688b30d3d76111aa9a26745c7b141d6 in 2000, + and multiple bits are in use today. + + Reviewed-by: DJ Delorie + +diff --git a/manual/charset.texi b/manual/charset.texi +index 427db3bc80..3aaa62d088 100644 +--- a/manual/charset.texi ++++ b/manual/charset.texi +@@ -2422,11 +2422,11 @@ written into the buffer to signal how much output is available. If this + conversion step is not the last one, the element must not be modified. + The @code{__outbufend} element must not be modified. + +-@item int __is_last +-This element is nonzero if this conversion step is the last one. This +-information is necessary for the recursion. See the description of the +-conversion function internals below. This element must never be +-modified. ++@item int __flags ++This field is a set of flags. The @code{__GCONV_IS_LAST} bit is set if ++this conversion step is the last one. This information is necessary for ++the recursion. See the description of the conversion function internals ++below. This element must never be modified. + + @item int __invocation_counter + The conversion function can use this element to see how many calls of +@@ -2731,8 +2731,8 @@ Otherwise the function has to emit a byte sequence to bring the state + object into the initial state. Once this all happened the other + conversion modules in the chain of conversions have to get the same + chance. Whether another step follows can be determined from the +-@code{__is_last} element of the step data structure to which the first +-parameter points. ++@code{__GCONV_IS_LAST} flag in the @code{__flags} field of the step ++data structure to which the first parameter points. + + The more interesting mode is when actual text has to be converted. The + first step in this case is to convert as much text as possible from the +@@ -2866,7 +2866,7 @@ gconv (struct __gconv_step *step, struct __gconv_step_data *data, + + /* @r{Call the steps down the chain if there are any but only} + @r{if we successfully emitted the escape sequence.} */ +- if (status == __GCONV_OK && ! data->__is_last) ++ if (status == __GCONV_OK && ! (data->__flags & __GCONV_IS_LAST)) + status = fct (next_step, next_data, NULL, NULL, + written, 1); + @} +@@ -2892,7 +2892,7 @@ gconv (struct __gconv_step *step, struct __gconv_step_data *data, + + /* @r{If this is the last step, leave the loop. There is} + @r{nothing we can do.} */ +- if (data->__is_last) ++ if (data->__flags & __GCONV_IS_LAST) + @{ + /* @r{Store information about how many bytes are} + @r{available.} */ diff --git a/SOURCES/glibc-RHEL-1915-5.patch b/SOURCES/glibc-RHEL-1915-5.patch new file mode 100644 index 0000000..ee6b9e0 --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-5.patch @@ -0,0 +1,1064 @@ +commit 6cbf845fcdc76131d0e674cee454fe738b69c69d +Author: Florian Weimer +Date: Fri Sep 20 13:10:54 2024 +0200 + + iconv: Preserve iconv -c error exit on invalid inputs (bug 32046) + + In several converters, a __GCONV_ILLEGAL_INPUT result gets overwritten + with __GCONV_FULL_OUTPUT. As a result, iconv (the function) returns + E2BIG instead of EILSEQ. The iconv program does not see the original + EILSEQ failure, does not recognize the invalid input, and may + incorrectly exit successfully. + + To address this, a new __flags bit is used to indicate a sticky input + error state. All __GCONV_ILLEGAL_INPUT results are replaced with a + function call that sets this new __GCONV_ENCOUNTERED_ILLEGAL_INPUT and + returns __GCONV_ILLEGAL_INPUT. The iconv program checks for + __GCONV_ENCOUNTERED_ILLEGAL_INPUT and overrides the exit status. + + The converter changes introducing __gconv_mark_illegal_input are + mostly mechanical, except for the res variable initialization in + iconvdata/iso-2022-jp.c: this error gets overwritten with __GCONV_OK + and other results in the following code. If res == + __GCONV_ILLEGAL_INPUT afterwards, STANDARD_TO_LOOP_ERR_HANDLER below + will handle it. + + The __gconv_mark_illegal_input changes do not alter the errno value + set by the iconv function. This is simpler to implement than + reviewing each __GCONV_FULL_OUTPUT result and adjust it not to + override a previous __GCONV_ILLEGAL_INPUT result. Doing it that way + would also change some E2BIG errors in to EILSEQ errors, so it had to + be done conditionally (under a flag set by the iconv program only), to + avoid confusing buffer management in other applications. + + Reviewed-by: DJ Delorie + +diff -Nrup a/iconv/Makefile b/iconv/Makefile +--- a/iconv/Makefile 2024-11-20 10:56:00.793668915 -0500 ++++ b/iconv/Makefile 2024-11-20 11:21:08.986113631 -0500 +@@ -57,6 +57,10 @@ tests = \ + tst-iconv-opt \ + # tests + ++tests-internal = \ ++ tst-iconv-sticky-input-error \ ++ # tests-internal ++ + others = iconv_prog iconvconfig + install-others-programs = $(inst_bindir)/iconv + install-sbin = iconvconfig +diff -Nrup a/iconv/gconv_int.h b/iconv/gconv_int.h +--- a/iconv/gconv_int.h 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconv/gconv_int.h 2024-11-20 11:11:29.577105363 -0500 +@@ -304,4 +304,34 @@ extern wint_t __gconv_btwoc_ascii (struc + + __END_DECLS + ++/* Internal extensions for . */ ++ ++/* Internal flags for __flags in struct __gconv_step_data. Overlaps ++ with flags for __gconv_open. */ ++enum ++ { ++ /* The conversion encountered an illegal input character at one ++ point. */ ++ __GCONV_ENCOUNTERED_ILLEGAL_INPUT = 1U << 30, ++ }; ++ ++/* Mark *STEP_DATA as having seen illegal input, and return ++ __GCONV_ILLEGAL_INPUT. */ ++static inline int ++__gconv_mark_illegal_input (struct __gconv_step_data *step_data) ++{ ++ step_data->__flags |= __GCONV_ENCOUNTERED_ILLEGAL_INPUT; ++ return __GCONV_ILLEGAL_INPUT; ++} ++ ++/* Returns true if any of the conversion steps encountered illegal input. */ ++static _Bool __attribute__ ((unused)) ++__gconv_has_illegal_input (__gconv_t cd) ++{ ++ for (size_t i = 0; i < cd->__nsteps; ++i) ++ if (cd->__data[i].__flags & __GCONV_ENCOUNTERED_ILLEGAL_INPUT) ++ return true; ++ return false; ++} ++ + #endif /* gconv_int.h */ +diff -Nrup a/iconv/gconv_simple.c b/iconv/gconv_simple.c +--- a/iconv/gconv_simple.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconv/gconv_simple.c 2024-11-20 11:18:28.273006314 -0500 +@@ -259,7 +259,7 @@ ucs4_internal_loop (struct __gconv_step + UCS4 does not allow such values. */ + if (irreversible == NULL) + /* We are transliterating, don't try to correct anything. */ +- return __GCONV_ILLEGAL_INPUT; ++ return __gconv_mark_illegal_input (step_data); + + if (flags & __GCONV_IGNORE_ERRORS) + { +@@ -270,7 +270,7 @@ ucs4_internal_loop (struct __gconv_step + + *inptrp = inptr; + *outptrp = outptr; +- return __GCONV_ILLEGAL_INPUT; ++ return __gconv_mark_illegal_input (step_data); + } + + *((uint32_t *) outptr) = inval; +@@ -397,7 +397,7 @@ ucs4_internal_loop_single (struct __gcon + if (!(flags & __GCONV_IGNORE_ERRORS)) + { + *inptrp -= cnt - (state->__count & 7); +- return __GCONV_ILLEGAL_INPUT; ++ return __gconv_mark_illegal_input (step_data); + } + } + else +@@ -629,7 +629,7 @@ ucs4le_internal_loop (struct __gconv_ste + UCS4 does not allow such values. */ + if (irreversible == NULL) + /* We are transliterating, don't try to correct anything. */ +- return __GCONV_ILLEGAL_INPUT; ++ return __gconv_mark_illegal_input (step_data); + + if (flags & __GCONV_IGNORE_ERRORS) + { +@@ -640,7 +640,7 @@ ucs4le_internal_loop (struct __gconv_ste + + *inptrp = inptr; + *outptrp = outptr; +- return __GCONV_ILLEGAL_INPUT; ++ return __gconv_mark_illegal_input (step_data); + } + + *((uint32_t *) outptr) = inval; +@@ -772,7 +772,7 @@ ucs4le_internal_loop_single (struct __gc + represent the result. This is a genuine bug in the input since + UCS4 does not allow such values. */ + if (!(flags & __GCONV_IGNORE_ERRORS)) +- return __GCONV_ILLEGAL_INPUT; ++ return __gconv_mark_illegal_input (step_data); + } + else + { +@@ -1218,7 +1218,7 @@ ucs4le_internal_loop_single (struct __gc + surrogates pass through, attackers could make a security \ + hole exploit by synthesizing any desired plane 1-16 \ + character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + if (! ignore_errors_p ()) \ + break; \ + inptr += 4; \ +@@ -1261,7 +1261,7 @@ ucs4le_internal_loop_single (struct __gc + them. (Catching this here is not security relevant.) */ \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + inptr += 2; \ +@@ -1310,7 +1310,7 @@ ucs4le_internal_loop_single (struct __gc + character. */ \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + inptr += 4; \ +diff -Nrup a/iconv/gconv_trans.c b/iconv/gconv_trans.c +--- a/iconv/gconv_trans.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconv/gconv_trans.c 2024-11-20 11:11:29.578105370 -0500 +@@ -234,6 +234,6 @@ __gconv_transliterate (struct __gconv_st + } + + /* Haven't found a match. */ +- return __GCONV_ILLEGAL_INPUT; ++ return __gconv_mark_illegal_input (step_data); + } + libc_hidden_def (__gconv_transliterate) +diff -Nrup a/iconv/iconv_prog.c b/iconv/iconv_prog.c +--- a/iconv/iconv_prog.c 2024-11-20 10:56:00.795668928 -0500 ++++ b/iconv/iconv_prog.c 2024-11-20 11:11:29.578105370 -0500 +@@ -292,6 +292,11 @@ conversions from `%s' and to `%s' are no + } + while (++remaining < argc); + ++ /* Ensure that iconv -c still exits with failure if iconv (the ++ function) has failed with E2BIG instead of EILSEQ. */ ++ if (__gconv_has_illegal_input (cd)) ++ status = EXIT_FAILURE; ++ + /* Close the output file now. */ + if (output != NULL && fclose (output)) + error (EXIT_FAILURE, errno, _("error while closing output file")); +diff -Nrup a/iconv/loop.c b/iconv/loop.c +--- a/iconv/loop.c 2024-11-20 10:56:00.242665095 -0500 ++++ b/iconv/loop.c 2024-11-20 11:11:29.578105370 -0500 +@@ -194,8 +194,7 @@ + `continue' must reach certain points. */ + #define STANDARD_FROM_LOOP_ERR_HANDLER(Incr) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ +- \ ++ result = __gconv_mark_illegal_input (step_data); \ + if (! ignore_errors_p ()) \ + break; \ + \ +@@ -213,7 +212,7 @@ + points. */ + #define STANDARD_TO_LOOP_ERR_HANDLER(Incr) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + \ + if (irreversible == NULL) \ + /* This means we are in call from __gconv_transliterate. In this \ +diff -Nrup a/iconv/tst-iconv-sticky-input-error.c b/iconv/tst-iconv-sticky-input-error.c +--- a/iconv/tst-iconv-sticky-input-error.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/iconv/tst-iconv-sticky-input-error.c 2024-11-20 11:11:29.578105370 -0500 +@@ -0,0 +1,135 @@ ++/* Test __GCONV_ENCOUNTERED_ILLEGAL_INPUT, as used by iconv -c (bug 32046). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* FROM is the input character set, TO the output character set. If ++ IGNORE is true, the iconv descriptor is set up in the same way as ++ iconv -c would. INPUT is the input string, EXPECTED_OUTPUT the ++ output. OUTPUT_LIMIT is a byte count, specifying how many input ++ bytes are passed to the iconv function on each invocation. */ ++static void ++one_direction (const char *from, const char *to, bool ignore, ++ const char *input, const char *expected_output, ++ size_t output_limit) ++{ ++ if (test_verbose) ++ { ++ char *quoted_input = support_quote_string (input); ++ char *quoted_output = support_quote_string (expected_output); ++ printf ("info: testing from=\"%s\" to=\"%s\" ignore=%d input=\"%s\"" ++ " expected_output=\"%s\" output_limit=%zu\n", ++ from, to, (int) ignore, quoted_input, ++ quoted_output, output_limit); ++ free (quoted_output); ++ free (quoted_input); ++ } ++ ++ __gconv_t cd; ++ if (ignore) ++ { ++ struct gconv_spec conv_spec; ++ TEST_VERIFY_EXIT (__gconv_create_spec (&conv_spec, from, to) ++ == &conv_spec); ++ conv_spec.ignore = true; ++ cd = (iconv_t) -1; ++ TEST_COMPARE (__gconv_open (&conv_spec, &cd, 0), __GCONV_OK); ++ __gconv_destroy_spec (&conv_spec); ++ } ++ else ++ cd = iconv_open (to, from); ++ TEST_VERIFY_EXIT (cd != (iconv_t) -1); ++ ++ char *input_ptr = (char *) input; ++ size_t input_len = strlen (input); ++ char output_buf[20]; ++ char *output_ptr = output_buf; ++ size_t output_len; ++ do ++ { ++ output_len = array_end (output_buf) - output_ptr; ++ if (output_len > output_limit) ++ /* Limit the buffer size as requested by the caller. */ ++ output_len = output_limit; ++ TEST_VERIFY_EXIT (output_len > 0); ++ if (input_len == 0) ++ /* Trigger final flush. */ ++ input_ptr = NULL; ++ char *old_input_ptr = input_ptr; ++ size_t ret = iconv (cd, &input_ptr, &input_len, ++ &output_ptr, &output_len); ++ if (ret == (size_t) -1) ++ { ++ if (errno != EILSEQ) ++ TEST_COMPARE (errno, E2BIG); ++ } ++ ++ if (input_ptr == old_input_ptr) ++ /* Avoid endless loop if stuck on an invalid input character. */ ++ break; ++ } ++ while (input_ptr != NULL); ++ ++ /* Test the sticky illegal input bit. */ ++ TEST_VERIFY (__gconv_has_illegal_input (cd)); ++ ++ TEST_COMPARE_BLOB (expected_output, strlen (expected_output), ++ output_buf, output_ptr - output_buf); ++ ++ TEST_COMPARE (iconv_close (cd), 0); ++} ++ ++static int ++do_test (void) ++{ ++ static const char charsets[][14] = ++ { ++ "ASCII", ++ "ASCII//IGNORE", ++ "UTF-8", ++ "UTF-8//IGNORE", ++ }; ++ ++ for (size_t from_idx = 0; from_idx < array_length (charsets); ++from_idx) ++ for (size_t to_idx = 0; to_idx < array_length (charsets); ++to_idx) ++ for (int do_ignore = 0; do_ignore < 2; ++do_ignore) ++ for (int limit = 1; limit < 5; ++limit) ++ for (int skip = 0; skip < 3; ++skip) ++ { ++ const char *expected_output; ++ if (do_ignore || strstr (charsets[to_idx], "//IGNORE") != NULL) ++ expected_output = "ABXY" + skip; ++ else ++ expected_output = "AB" + skip; ++ one_direction (charsets[from_idx], charsets[to_idx], do_ignore, ++ "AB\xffXY" + skip, expected_output, limit); ++ } ++ ++ return 0; ++} ++ ++#include +diff -Nrup a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh +--- a/iconv/tst-iconv_prog-buffer.sh 2024-11-20 10:56:00.793668915 -0500 ++++ b/iconv/tst-iconv_prog-buffer.sh 2024-11-20 11:11:29.578105370 -0500 +@@ -150,9 +150,8 @@ expect_exit 1 \ + ! test -s "$tmp/err" + expect_files abc def + +-# FIXME: This is not correct, -c should not change the exit status. + cp "$tmp/out-template" "$tmp/out" +-run_iconv -c -o "$tmp/out" \ ++expect_exit 1 run_iconv -c -o "$tmp/out" \ + "$tmp/abc" "$tmp/0xff-wrapped" "$tmp/def" 2>"$tmp/err" + ! test -s "$tmp/err" + expect_files abc xy zt def +diff -Nrup a/iconvdata/cp932.c b/iconvdata/cp932.c +--- a/iconvdata/cp932.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/cp932.c 2024-11-20 11:11:29.579105377 -0500 +@@ -4560,7 +4560,7 @@ static const char from_ucs4_extra[229][2 + if (! ignore_errors_p ()) \ + { \ + /* This is an illegal character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + \ +@@ -4600,7 +4600,7 @@ static const char from_ucs4_extra[229][2 + if (! ignore_errors_p ()) \ + { \ + /* This is an illegal character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + \ +@@ -4635,7 +4635,7 @@ static const char from_ucs4_extra[229][2 + if (! ignore_errors_p ()) \ + { \ + /* This is an illegal character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + \ +diff -Nrup a/iconvdata/euc-jp-ms.c b/iconvdata/euc-jp-ms.c +--- a/iconvdata/euc-jp-ms.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/euc-jp-ms.c 2024-11-20 11:11:29.580105384 -0500 +@@ -4660,7 +4660,7 @@ static const unsigned char from_ucs4_ext + /* This is illegal. */ \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + \ +@@ -4690,7 +4690,7 @@ static const unsigned char from_ucs4_ext + /* This is an illegal character. */ \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + \ +@@ -4710,7 +4710,7 @@ static const unsigned char from_ucs4_ext + if (! ignore_errors_p ()) \ + { \ + /* This is an illegal character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + } \ +@@ -4821,7 +4821,7 @@ static const unsigned char from_ucs4_ext + if (! ignore_errors_p ()) \ + { \ + /* This is an illegal character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + \ +diff -Nrup a/iconvdata/gbbig5.c b/iconvdata/gbbig5.c +--- a/iconvdata/gbbig5.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/gbbig5.c 2024-11-20 11:11:29.581105391 -0500 +@@ -4832,7 +4832,7 @@ const char __from_big5_to_gb2312 [13973] + { \ + /* We do not have a mapping for this character. \ + If ignore errors, map it to 0xa1bc - big5 box character */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + if (! ignore_errors_p ()) \ + break; \ + \ +@@ -4923,7 +4923,7 @@ const char __from_big5_to_gb2312 [13973] + { \ + /* We do not have a mapping for this character. \ + If ignore errors, map it to 0xa1f5 - gb box character */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + if (! ignore_errors_p ()) \ + break; \ + \ +diff -Nrup a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c +--- a/iconvdata/ibm1364.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/ibm1364.c 2024-11-20 11:11:29.581105391 -0500 +@@ -180,7 +180,7 @@ enum + /* This is an illegal character. */ \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + ++*irreversible; \ +@@ -220,7 +220,7 @@ enum + /* This is an illegal character. */ \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + ++*irreversible; \ +@@ -301,7 +301,7 @@ enum + \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + ++*irreversible; \ +@@ -333,7 +333,7 @@ enum + /* This is an illegal character. */ \ + if (! ignore_errors_p ()) \ + { \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + ++*irreversible; \ +diff -Nrup a/iconvdata/iso646.c b/iconvdata/iso646.c +--- a/iconvdata/iso646.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/iso646.c 2024-11-20 11:11:29.581105391 -0500 +@@ -314,7 +314,7 @@ gconv_end (struct __gconv_step *data) + ch = 0xf9; \ + else if (var == JP_OCR_B) \ + /* Illegal character. */ \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + else if (var == YU) \ + ch = 0x17e; \ + else if (var == HU) \ +@@ -388,7 +388,7 @@ gconv_end (struct __gconv_step *data) + ch = 0xec; \ + else if (var == JP_OCR_B) \ + /* Illegal character. */ \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + else if (var == YU) \ + ch = 0x10d; \ + else if (var == HU) \ +@@ -404,7 +404,7 @@ gconv_end (struct __gconv_step *data) + break; \ + case 0x80 ... 0xff: \ + /* Illegal character. */ \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + } \ + \ +@@ -441,17 +441,17 @@ gconv_end (struct __gconv_step *data) + case 0x23: \ + if (var == GB || var == ES || var == IT || var == FR || var == FR1 \ + || var == NO2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x24: \ + if (var == CN || var == HU || var == CU || var == SE || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x40: \ + if (var == CA || var == CA2 || var == DE || var == ES || var == ES2 \ + || var == IT || var == YU || var == HU || var == FR || var == FR1 \ + || var == PT || var == PT2 || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x5b: \ + if (var == CA || var == CA2 || var == DE || var == DK || var == ES \ +@@ -459,7 +459,7 @@ gconv_end (struct __gconv_step *data) + || var == HU || var == FR || var == FR1 || var == NO \ + || var == NO2 || var == PT || var == PT2 || var == SE \ + || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + else if (var == CU) \ + ch = 0x7d; \ + break; \ +@@ -469,7 +469,7 @@ gconv_end (struct __gconv_step *data) + || var == YU || var == KR || var == HU || var == CU || var == FR \ + || var == FR1 || var == NO || var == NO2 || var == PT \ + || var == PT2 || var == SE || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x5d: \ + if (var == CA || var == CA2 || var == DE || var == DK || var == ES \ +@@ -477,17 +477,17 @@ gconv_end (struct __gconv_step *data) + || var == HU || var == FR || var == FR1 || var == NO \ + || var == NO2 || var == PT || var == PT2 || var == SE \ + || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x5e: \ + if (var == CA || var == CA2 || var == ES2 || var == YU || var == CU \ + || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x60: \ + if (var == CA || var == CA2 || var == IT || var == JP_OCR_B \ + || var == YU || var == HU || var == FR || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x7b: \ + if (var == CA || var == CA2 || var == DE || var == DK || var == ES \ +@@ -495,14 +495,14 @@ gconv_end (struct __gconv_step *data) + || var == CU || var == FR || var == FR1 || var == NO \ + || var == NO2 || var == PT || var == PT2 || var == SE \ + || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x7c: \ + if (var == CA || var == CA2 || var == DE || var == DK || var == ES \ + || var == ES2 || var == IT || var == YU || var == HU || var == CU \ + || var == FR || var == FR1 || var == NO || var == PT \ + || var == PT2 || var == SE || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + else if (var == NO2) \ + ch = 0x7e; \ + break; \ +@@ -511,7 +511,7 @@ gconv_end (struct __gconv_step *data) + || var == ES2 || var == IT || var == YU || var == HU || var == CU \ + || var == FR || var == FR1 || var == NO || var == NO2 \ + || var == PT || var == PT2 || var == SE || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x7e: \ + if (var == GB || var == CA || var == CA2 || var == DE || var == ES2 \ +@@ -519,21 +519,21 @@ gconv_end (struct __gconv_step *data) + || var == YU || var == HU || var == CU || var == FR || var == FR1 \ + || var == NO || var == NO2 || var == PT || var == SE \ + || var == SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xa1: \ + if (var != ES && var != ES2 && var != CU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5b; \ + break; \ + case 0xa3: \ + if (var != GB && var != ES && var != IT && var != FR && var != FR1) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x23; \ + break; \ + case 0xa4: \ + if (var != HU && var != CU && var != SE && var != SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x24; \ + break; \ + case 0xa5: \ +@@ -542,7 +542,7 @@ gconv_end (struct __gconv_step *data) + else if (var == JP || var == JP_OCR_B) \ + ch = 0x5c; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xa7: \ + if (var == DE || var == ES || var == IT || var == PT) \ +@@ -552,11 +552,11 @@ gconv_end (struct __gconv_step *data) + else if (var == NO2) \ + ch = 0x23; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xa8: \ + if (var != ES2 && var != CU && var != FR && var != FR1) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7e; \ + break; \ + case 0xb0: \ +@@ -567,7 +567,7 @@ gconv_end (struct __gconv_step *data) + else if (var == PT) \ + ch = 0x7e; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xb4: \ + if (var == ES2 || var == CU) \ +@@ -575,11 +575,11 @@ gconv_end (struct __gconv_step *data) + else if (var == PT2) \ + ch = 0x40; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xb5: \ + if (var != FR) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x60; \ + break; \ + case 0xbf: \ +@@ -588,31 +588,31 @@ gconv_end (struct __gconv_step *data) + else if (var == ES2 || var == CU) \ + ch = 0x5e; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xc1: \ + if (var != HU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x40; \ + break; \ + case 0xc3: \ + if (var != PT && var != PT2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5b; \ + break; \ + case 0xc4: \ + if (var != DE && var != SE && var != SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5b; \ + break; \ + case 0xc5: \ + if (var != DK && var != NO && var != NO2 && var != SE && var != SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5d; \ + break; \ + case 0xc6: \ + if (var != DK && var != NO && var != NO2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5b; \ + break; \ + case 0xc7: \ +@@ -621,7 +621,7 @@ gconv_end (struct __gconv_step *data) + else if (var == PT || var == PT2) \ + ch = 0x5c; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xc9: \ + if (var == CA2) \ +@@ -631,26 +631,26 @@ gconv_end (struct __gconv_step *data) + else if (var == SE2) \ + ch = 0x40; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xd1: \ + if (var != ES && var != ES2 && var != CU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5c; \ + break; \ + case 0xd5: \ + if (var != PT && var != PT2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5d; \ + break; \ + case 0xd6: \ + if (var != DE && var != HU && var != SE && var != SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5c; \ + break; \ + case 0xd8: \ + if (var != DK && var != NO && var != NO2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5c; \ + break; \ + case 0xdc: \ +@@ -659,11 +659,11 @@ gconv_end (struct __gconv_step *data) + else if (var == SE2) \ + ch = 0x5e; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xdf: \ + if (var != DE) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7e; \ + break; \ + case 0xe0: \ +@@ -672,36 +672,36 @@ gconv_end (struct __gconv_step *data) + else if (var == IT) \ + ch = 0x7b; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xe1: \ + if (var != HU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x60; \ + break; \ + case 0xe2: \ + if (var != CA && var != CA2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5b; \ + break; \ + case 0xe3: \ + if (var != PT && var != PT2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7b; \ + break; \ + case 0xe4: \ + if (var != DE && var != SE && var != SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7b; \ + break; \ + case 0xe5: \ + if (var != DK && var != NO && var != NO2 && var != SE && var != SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7d; \ + break; \ + case 0xe6: \ + if (var != DK && var != NO && var != NO2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7b; \ + break; \ + case 0xe7: \ +@@ -712,11 +712,11 @@ gconv_end (struct __gconv_step *data) + else if (var == PT || var == PT2) \ + ch = 0x7c; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xe8: \ + if (var != CA && var != CA2 && var != IT && var != FR && var != FR1) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7d; \ + break; \ + case 0xe9: \ +@@ -727,51 +727,51 @@ gconv_end (struct __gconv_step *data) + else if (var == SE2) \ + ch = 0x60; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xea: \ + if (var != CA && var != CA2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5d; \ + break; \ + case 0xec: \ + if (var != IT) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7e; \ + break; \ + case 0xee: \ + if (var != CA) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5e; \ + break; \ + case 0xf1: \ + if (var != ES && var != ES2 && var != CU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7c; \ + break; \ + case 0xf2: \ + if (var != IT) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7c; \ + break; \ + case 0xf4: \ + if (var != CA && var != CA2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x60; \ + break; \ + case 0xf5: \ + if (var != PT && var != PT2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7d; \ + break; \ + case 0xf6: \ + if (var != DE && var != HU && var != SE && var != SE2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7c; \ + break; \ + case 0xf8: \ + if (var != DK && var != NO && var != NO2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7c; \ + break; \ + case 0xf9: \ +@@ -780,11 +780,11 @@ gconv_end (struct __gconv_step *data) + else if (var == IT) \ + ch = 0x60; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0xfb: \ + if (var != CA && var != CA2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7e; \ + break; \ + case 0xfc: \ +@@ -793,93 +793,93 @@ gconv_end (struct __gconv_step *data) + else if (var == SE2) \ + ch = 0x7e; \ + else \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + break; \ + case 0x160: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5b; \ + break; \ + case 0x106: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5d; \ + break; \ + case 0x107: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7d; \ + break; \ + case 0x10c: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5e; \ + break; \ + case 0x10d: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7e; \ + break; \ + case 0x110: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5c; \ + break; \ + case 0x111: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7c; \ + break; \ + case 0x161: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7b; \ + break; \ + case 0x17d: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x40; \ + break; \ + case 0x17e: \ + if (var != YU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x60; \ + break; \ + case 0x2dd: \ + if (var != HU) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7e; \ + break; \ + case 0x2022: \ + if (var != ES2) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x40; \ + break; \ + case 0x203e: \ + if (var != GB && var != CN && var != JP && var != NO && var != SE) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x7e; \ + break; \ + case 0x20a9: \ + if (var != KR) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5c; \ + break; \ + case 0x2329: \ + if (var != JP_OCR_B) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5b; \ + break; \ + case 0x232a: \ + if (var != JP_OCR_B) \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + ch = 0x5d; \ + break; \ + default: \ + if (__glibc_unlikely (ch > 0x7f)) \ + { \ + UNICODE_TAG_HANDLER (ch, 4); \ +- failure = __GCONV_ILLEGAL_INPUT; \ ++ failure = __gconv_mark_illegal_input (step_data); \ + } \ + break; \ + } \ +diff -Nrup a/iconvdata/unicode.c b/iconvdata/unicode.c +--- a/iconvdata/unicode.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/unicode.c 2024-11-20 11:11:29.582105398 -0500 +@@ -164,7 +164,7 @@ gconv_end (struct __gconv_step *data) + surrogates pass through, attackers could make a security \ + hole exploit by synthesizing any desired plane 1-16 \ + character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + if (! ignore_errors_p ()) \ + break; \ + inptr += 4; \ +diff -Nrup a/iconvdata/utf-16.c b/iconvdata/utf-16.c +--- a/iconvdata/utf-16.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/utf-16.c 2024-11-20 11:11:29.582105398 -0500 +@@ -207,7 +207,7 @@ gconv_end (struct __gconv_step *data) + We must catch this. If we let surrogates pass through, \ + attackers could make a security hole exploit by \ + synthesizing any desired plane 1-16 character. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + if (! ignore_errors_p ()) \ + break; \ + inptr += 4; \ +diff -Nrup a/iconvdata/utf-32.c b/iconvdata/utf-32.c +--- a/iconvdata/utf-32.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/iconvdata/utf-32.c 2024-11-20 11:11:29.582105398 -0500 +@@ -207,7 +207,7 @@ gconv_end (struct __gconv_step *data) + We must catch this. If we let surrogates pass through, \ + attackers could make a security hole exploit by \ + generating "irregular UTF-32" sequences. */ \ +- result = __GCONV_ILLEGAL_INPUT; \ ++ result = __gconv_mark_illegal_input (step_data); \ + if (! ignore_errors_p ()) \ + break; \ + inptr += 4; \ diff --git a/SOURCES/glibc-RHEL-1915-6.patch b/SOURCES/glibc-RHEL-1915-6.patch new file mode 100644 index 0000000..d70b98c --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-6.patch @@ -0,0 +1,715 @@ +commit 8ef3cff9d1ceafe369f982d980678d749fb93bd2 +Author: Florian Weimer +Date: Fri Sep 20 13:10:54 2024 +0200 + + iconv: Support in-place conversions (bug 10460, bug 32033) + + Check if any of the input files overlaps with the output file, and use + a temporary file in this case, so that the input is no clobbered + before it is read. This fixes bug 10460. It allows to use iconv + more easily as a functional replacement for GNU recode. + + The updated output buffer management truncates the output file + if there is no input, fixing bug 32033. + + Reviewed-by: DJ Delorie + + Conflicts: + NEWS - Dropped + iconv/Makefile - tests-special list diffs + iconv/iconv_prog.c - Manual merge + +diff -Nrup a/iconv/Makefile b/iconv/Makefile +--- a/iconv/Makefile 2024-11-21 11:08:26.166051531 -0500 ++++ b/iconv/Makefile 2024-11-21 11:08:51.325219751 -0500 +@@ -77,6 +77,8 @@ include $(patsubst %,$(..)libof-iterator + ifeq ($(run-built-tests),yes) + xtests-special += $(objpfx)test-iconvconfig.out + tests-special += \ ++ $(objpfx)tst-iconv_prog-buffer-large.out \ ++ $(objpfx)tst-iconv_prog-buffer-tiny.out \ + $(objpfx)tst-iconv_prog-buffer.out \ + $(objpfx)tst-iconv_prog.out \ + # tests-special +@@ -137,3 +139,12 @@ $(objpfx)tst-iconv_prog-buffer.out: \ + tst-iconv_prog-buffer.sh $(objpfx)iconv_prog + $(BASH) $< $(common-objdir) '$(test-program-prefix)' > $@; \ + $(evaluate-test) ++$(objpfx)tst-iconv_prog-buffer-tiny.out: \ ++ tst-iconv_prog-buffer.sh $(objpfx)iconv_prog ++ $(BASH) $< $(common-objdir) '$(test-program-prefix)' \ ++ '--buffer-size=1' > $@; \ ++ $(evaluate-test) ++$(objpfx)tst-iconv_prog-buffer-large.out: \ ++ tst-iconv_prog-buffer.sh $(objpfx)iconv_prog ++ $(BASH) $< $(common-objdir) '$(test-program-prefix)' '' '22' > $@; \ ++ $(evaluate-test) +diff -Nrup a/iconv/iconv_prog.c b/iconv/iconv_prog.c +--- a/iconv/iconv_prog.c 2024-11-21 11:08:26.167051537 -0500 ++++ b/iconv/iconv_prog.c 2024-11-21 11:10:10.028745981 -0500 +@@ -48,7 +48,11 @@ + static void print_version (FILE *stream, struct argp_state *state); + void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; + +-#define OPT_VERBOSE 1000 ++enum ++ { ++ OPT_VERBOSE = 1000, ++ OPT_BUFFER_SIZE, ++ }; + #define OPT_LIST 'l' + + /* Definitions of arguments for argp functions. */ +@@ -64,6 +68,10 @@ static const struct argp_option options[ + { "output", 'o', N_("FILE"), 0, N_("output file") }, + { "silent", 's', NULL, 0, N_("suppress warnings") }, + { "verbose", OPT_VERBOSE, NULL, 0, N_("print progress information") }, ++ /* This is an internal option intended for testing only. Very small ++ buffers do not work with all character sets. */ ++ { "buffer-size", OPT_BUFFER_SIZE, N_("BYTE-COUNT"), OPTION_HIDDEN, ++ N_("size of in-memory scratch buffer") }, + { NULL, 0, NULL, 0, NULL } + }; + +@@ -101,13 +109,20 @@ static int list; + /* If nonzero omit invalid character from output. */ + int omit_invalid; + ++/* Current index in argv (after command line processing) with the ++ input file name. */ ++static int current_input_file_index; ++ ++/* Size of the temporary, in-memory buffer. Exceeding it needs ++ spooling to disk in a temporary file. Controlled by --buffer_size. */ ++static size_t output_buffer_size = 1024 * 1024; ++ + /* Prototypes for the functions doing the actual work. */ +-static int process_block (iconv_t cd, char *addr, size_t len, FILE **output, +- const char *output_file); +-static int process_fd (iconv_t cd, int fd, FILE **output, +- const char *output_file); +-static int process_file (iconv_t cd, FILE *input, FILE **output, +- const char *output_file); ++static void prepare_output_file (char **argv); ++static void close_output_file (int status); ++static int process_block (iconv_t cd, char *addr, size_t len); ++static int process_fd (iconv_t cd, int fd); ++static int process_file (iconv_t cd, FILE *input); + static void print_known_names (void); + + +@@ -115,7 +130,6 @@ int + main (int argc, char *argv[]) + { + int status = EXIT_SUCCESS; +- int remaining; + __gconv_t cd; + struct charmap_t *from_charmap = NULL; + struct charmap_t *to_charmap = NULL; +@@ -127,7 +141,7 @@ main (int argc, char *argv[]) + textdomain (_libc_intl_domainname); + + /* Parse and process arguments. */ +- argp_parse (&argp, argc, argv, 0, &remaining, NULL); ++ argp_parse (&argp, argc, argv, 0, ¤t_input_file_index, NULL); + + /* List all coded character sets if wanted. */ + if (list) +@@ -162,7 +176,8 @@ main (int argc, char *argv[]) + if (from_charmap != NULL || to_charmap != NULL) + /* Construct the conversion table and do the conversion. */ + status = charmap_conversion (from_code, from_charmap, to_code, to_charmap, +- argc, remaining, argv, output_file); ++ argc, current_input_file_index, argv, ++ output_file); + else + { + struct gconv_spec conv_spec; +@@ -236,16 +251,14 @@ conversions from `%s' and to `%s' are no + _("failed to start conversion processing")); + } + +- /* The output file. Will be opened when we are ready to produce +- output. */ +- FILE *output = NULL; ++ prepare_output_file (argv); + + /* Now process the remaining files. Write them to stdout or the file + specified with the `-o' parameter. If we have no file given as + the parameter process all from stdin. */ +- if (remaining == argc) ++ if (current_input_file_index == argc) + { +- if (process_file (cd, stdin, &output, output_file) != 0) ++ if (process_file (cd, stdin) != 0) + status = EXIT_FAILURE; + } + else +@@ -254,17 +267,17 @@ conversions from `%s' and to `%s' are no + int fd, ret; + + if (verbose) +- fprintf (stderr, "%s:\n", argv[remaining]); +- if (strcmp (argv[remaining], "-") == 0) +- fd = 0; ++ fprintf (stderr, "%s:\n", argv[current_input_file_index]); ++ if (strcmp (argv[current_input_file_index], "-") == 0) ++ fd = STDIN_FILENO; + else + { +- fd = open (argv[remaining], O_RDONLY); ++ fd = open (argv[current_input_file_index], O_RDONLY); + + if (fd == -1) + { + error (0, errno, _("cannot open input file `%s'"), +- argv[remaining]); ++ argv[current_input_file_index]); + status = EXIT_FAILURE; + continue; + } +@@ -272,7 +285,7 @@ conversions from `%s' and to `%s' are no + + { + /* Read the file in pieces. */ +- ret = process_fd (cd, fd, &output, output_file); ++ ret = process_fd (cd, fd); + + /* Now close the file. */ + close (fd); +@@ -290,7 +303,7 @@ conversions from `%s' and to `%s' are no + } + } + } +- while (++remaining < argc); ++ while (++current_input_file_index < argc); + + /* Ensure that iconv -c still exits with failure if iconv (the + function) has failed with E2BIG instead of EILSEQ. */ +@@ -298,8 +311,7 @@ conversions from `%s' and to `%s' are no + status = EXIT_FAILURE; + + /* Close the output file now. */ +- if (output != NULL && fclose (output)) +- error (EXIT_FAILURE, errno, _("error while closing output file")); ++ close_output_file (status); + } + + return status; +@@ -329,6 +341,14 @@ parse_opt (int key, char *arg, struct ar + /* Omit invalid characters from output. */ + omit_invalid = 1; + break; ++ case OPT_BUFFER_SIZE: ++ { ++ int i = atoi (arg); ++ if (i <= 0) ++ error (EXIT_FAILURE, 0, _("invalid buffer size: %s"), arg); ++ output_buffer_size = i; ++ } ++ break; + case OPT_VERBOSE: + verbose = 1; + break; +@@ -375,59 +395,247 @@ warranty; not even for MERCHANTABILITY o + fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); + } + ++/* Command line index of the last input file that overlaps with the ++ output file. Zero means no temporary file is ever required. */ ++static int last_overlapping_file_index; + +-static int +-write_output (const char *outbuf, const char *outptr, FILE **output, +- const char *output_file) ++/* This is set to true if the output is written to a temporary file. */ ++static bool output_using_temporary_file; ++ ++/* This is the file descriptor that will be used by write_output. */ ++static int output_fd = -1; ++ ++/* Pointers at the start and end of the fixed-size output buffer. */ ++static char *output_buffer_start; ++ ++/* Current write position in the output buffer. */ ++static char *output_buffer_current; ++ ++/* Remaining bytes after output_buffer_current in the output buffer. */ ++static size_t output_buffer_remaining; ++ ++ ++/* Reduce the buffer size when writing directly to the output file, to ++ reduce cache utilization. */ ++static size_t copy_buffer_size = BUFSIZ; ++ ++static void ++output_error (void) ++{ ++ error (EXIT_FAILURE, errno, _("cannot open output file")); ++} ++ ++static void ++input_error (const char *path) + { +- /* We have something to write out. */ +- int errno_save = errno; ++ error (0, errno, _("cannot open input file `%s'"), path); ++} + +- if (*output == NULL) ++/* Opens output_file for writing, truncating it. */ ++static void ++open_output_direct (void) ++{ ++ output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_TRUNC, 0777); ++ if (output_fd < 0) ++ output_error (); ++} ++ ++static void ++prepare_output_file (char **argv) ++{ ++ if (copy_buffer_size > output_buffer_size) ++ copy_buffer_size = output_buffer_size; ++ ++ if (output_file == NULL || strcmp (output_file, "-") == 0) ++ { ++ /* No buffering is required when writing to standard output ++ because input overlap is expected to be solved externally. */ ++ output_fd = STDOUT_FILENO; ++ output_buffer_size = copy_buffer_size; ++ } ++ else + { +- /* Determine output file. */ +- if (output_file != NULL && strcmp (output_file, "-") != 0) ++ /* If iconv creates the output file, no overlap is possible. */ ++ output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_EXCL, 0777); ++ if (output_fd >= 0) ++ output_buffer_size = copy_buffer_size; ++ else + { +- *output = fopen (output_file, "w"); +- if (*output == NULL) +- error (EXIT_FAILURE, errno, _("cannot open output file")); ++ /* Otherwise, check if any of the input files overlap with the ++ output file. */ ++ struct statx st; ++ if (statx (AT_FDCWD, output_file, 0, STATX_INO | STATX_MODE, &st) ++ != 0) ++ output_error (); ++ uint32_t out_dev_minor = st.stx_dev_minor; ++ uint32_t out_dev_major = st.stx_dev_major; ++ uint64_t out_ino = st.stx_ino; ++ ++ int idx = current_input_file_index; ++ while (true) ++ { ++ /* Special case: no input files means standard input. */ ++ if (argv[idx] == NULL && idx != current_input_file_index) ++ break; ++ ++ int ret; ++ if (argv[idx] == NULL || strcmp (argv[idx], "-") == 0) ++ ret = statx (STDIN_FILENO, "", AT_EMPTY_PATH, STATX_INO, &st); ++ else ++ ret = statx (AT_FDCWD, argv[idx], 0, STATX_INO, &st); ++ if (ret != 0) ++ { ++ input_error (argv[idx]); ++ exit (EXIT_FAILURE); ++ } ++ if (out_dev_minor == st.stx_dev_minor ++ && out_dev_major == st.stx_dev_major ++ && out_ino == st.stx_ino) ++ { ++ if (argv[idx] == NULL) ++ /* Corner case: index of NULL would be larger than ++ idx while converting, triggering a switch away ++ from the temporary file. */ ++ last_overlapping_file_index = INT_MAX; ++ else ++ last_overlapping_file_index = idx; ++ } ++ ++ if (argv[idx] == NULL) ++ break; ++ ++idx; ++ } ++ ++ /* If there is no overlap, avoid using a temporary file. */ ++ if (last_overlapping_file_index == 0) ++ { ++ open_output_direct (); ++ output_buffer_size = copy_buffer_size; ++ } + } +- else +- *output = stdout; + } + +- if (fwrite (outbuf, 1, outptr - outbuf, *output) < (size_t) (outptr - outbuf) +- || ferror (*output)) ++ output_buffer_start = malloc (output_buffer_size); ++ if (output_buffer_start == NULL) ++ output_error (); ++ output_buffer_current = output_buffer_start; ++ output_buffer_remaining = output_buffer_size; ++} ++ ++/* Write out the range [first, last), terminating the process on write ++ error. */ ++static void ++write_fully (int fd, const char *first, const char *last) ++{ ++ while (first < last) + { +- /* Error occurred while printing the result. */ +- error (0, 0, _("\ ++ ssize_t ret = write (fd, first, last - first); ++ if (ret == 0) ++ { ++ errno = ENOSPC; ++ output_error (); ++ } ++ if (ret < 0) ++ error (EXIT_FAILURE, errno, _("\ + conversion stopped due to problem in writing the output")); +- return -1; ++ first += ret; + } ++} + +- errno = errno_save; ++static void ++flush_output (void) ++{ ++ bool temporary_file_not_needed ++ = current_input_file_index > last_overlapping_file_index; ++ if (output_fd < 0) ++ { ++ if (temporary_file_not_needed) ++ open_output_direct (); ++ else ++ { ++ /* Create an anonymous temporary file. */ ++ FILE *fp = tmpfile (); ++ if (fp == NULL) ++ output_error (); ++ output_fd = dup (fileno (fp)); ++ if (output_fd < 0) ++ output_error (); ++ fclose (fp); ++ output_using_temporary_file = true; ++ } ++ /* Either way, no longer use a memory-only staging buffer. */ ++ output_buffer_size = copy_buffer_size; ++ } ++ else if (output_using_temporary_file && temporary_file_not_needed) ++ { ++ /* The temporary file is no longer needed. Switch to direct ++ output, replacing output_fd. */ ++ int temp_fd = output_fd; ++ open_output_direct (); ++ ++ /* Copy over the data spooled to the temporary file. */ ++ if (lseek (temp_fd, 0, SEEK_SET) < 0) ++ output_error (); ++ while (true) ++ { ++ char buf[BUFSIZ]; ++ ssize_t ret = read (temp_fd, buf, sizeof (buf)); ++ if (ret < 0) ++ output_error (); ++ if (ret == 0) ++ break; ++ write_fully (output_fd, buf, buf + ret); ++ } ++ close (temp_fd); + +- return 0; ++ /* No longer using a temporary file from now on. */ ++ output_using_temporary_file = false; ++ output_buffer_size = copy_buffer_size; ++ } ++ ++ write_fully (output_fd, output_buffer_start, output_buffer_current); ++ output_buffer_current = output_buffer_start; ++ output_buffer_remaining = output_buffer_size; + } + ++static void ++close_output_file (int status) ++{ ++ /* Do not perform a flush if a temporary file or the in-memory ++ buffer is in use and there was an error. It would clobber the ++ overlapping input file. */ ++ if (status != EXIT_SUCCESS && !omit_invalid && ++ (output_using_temporary_file || output_fd < 0)) ++ return; ++ ++ /* The current_input_file_index variable is now larger than ++ last_overlapping_file_index, so the flush_output call switches ++ away from the temporary file. */ ++ flush_output (); ++ ++ if (output_fd == STDOUT_FILENO) ++ { ++ /* Close standard output in safe manner, to report certain ++ ENOSPC errors. */ ++ output_fd = dup (output_fd); ++ if (output_fd < 0) ++ output_error (); ++ } ++ if (close (output_fd) < 0) ++ output_error (); ++} + + static int +-process_block (iconv_t cd, char *addr, size_t len, FILE **output, +- const char *output_file) ++process_block (iconv_t cd, char *addr, size_t len) + { +-#define OUTBUF_SIZE 32768 + const char *start = addr; +- char outbuf[OUTBUF_SIZE]; +- char *outptr; +- size_t outlen; + size_t n; + int ret = 0; + + while (len > 0) + { +- outptr = outbuf; +- outlen = OUTBUF_SIZE; +- n = iconv (cd, &addr, &len, &outptr, &outlen); ++ n = iconv (cd, &addr, &len, ++ &output_buffer_current, &output_buffer_remaining); + + if (n == (size_t) -1 && omit_invalid && errno == EILSEQ) + { +@@ -438,39 +646,34 @@ process_block (iconv_t cd, char *addr, s + errno = E2BIG; + } + +- if (outptr != outbuf) +- { +- ret = write_output (outbuf, outptr, output, output_file); +- if (ret != 0) +- break; +- } +- + if (n != (size_t) -1) + { + /* All the input test is processed. For state-dependent + character sets we have to flush the state now. */ +- outptr = outbuf; +- outlen = OUTBUF_SIZE; +- n = iconv (cd, NULL, NULL, &outptr, &outlen); +- +- if (outptr != outbuf) ++ n = iconv (cd, NULL, NULL, ++ &output_buffer_current, &output_buffer_remaining); ++ if (n == (size_t) -1 && errno == E2BIG) + { +- ret = write_output (outbuf, outptr, output, output_file); +- if (ret != 0) +- break; ++ /* Try again if the state flush exceeded the buffer space. */ ++ flush_output (); ++ n = iconv (cd, NULL, NULL, ++ &output_buffer_current, &output_buffer_remaining); + } ++ bool errno_is_EILSEQ = errno == EILSEQ; + + if (n != (size_t) -1) + break; + +- if (omit_invalid && errno == EILSEQ) ++ if (omit_invalid && errno_is_EILSEQ) + { + ret = 1; + break; + } + } + +- if (errno != E2BIG) ++ if (errno == E2BIG) ++ flush_output (); ++ else + { + /* iconv() ran into a problem. */ + switch (errno) +@@ -501,7 +704,7 @@ incomplete character or shift sequence a + + + static int +-process_fd (iconv_t cd, int fd, FILE **output, const char *output_file) ++process_fd (iconv_t cd, int fd) + { + /* we have a problem with reading from a descriptor since we must not + provide the iconv() function an incomplete character or shift +@@ -575,16 +778,16 @@ process_fd (iconv_t cd, int fd, FILE **o + } + + /* Now we have all the input in the buffer. Process it in one run. */ +- return process_block (cd, inbuf, actlen, output, output_file); ++ return process_block (cd, inbuf, actlen); + } + + + static int +-process_file (iconv_t cd, FILE *input, FILE **output, const char *output_file) ++process_file (iconv_t cd, FILE *input) + { + /* This should be safe since we use this function only for `stdin' and + we haven't read anything so far. */ +- return process_fd (cd, fileno (input), output, output_file); ++ return process_fd (cd, fileno (input)); + } + + +diff -Nrup a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh +--- a/iconv/tst-iconv_prog-buffer.sh 2024-11-21 11:08:26.168051544 -0500 ++++ b/iconv/tst-iconv_prog-buffer.sh 2024-11-21 11:08:51.326219757 -0500 +@@ -17,6 +17,12 @@ + # License along with the GNU C Library; if not, see + # . + ++# Arguments: ++# root of the build tree ($(objpfx-common)) ++# test command wrapper (for running on the board/with new ld.so) ++# extra flags to pass to iconv ++# number of times to double the input files in size (default: 0) ++ + exec 2>&1 + set -e + +@@ -26,7 +32,9 @@ codir=$1 + test_program_prefix="$2" + + # Use internal converters to avoid issues with module loading. +-iconv_args="-f ASCII -t UTF-8" ++iconv_args="-f ASCII -t UTF-8 $3" ++ ++file_size_doublings=${4-0} + + failure=false + +@@ -39,7 +47,19 @@ echo HH > "$tmp/hh" + echo XY > "$tmp/xy" + echo ZT > "$tmp/zt" + echo OUT > "$tmp/out-template" ++: > "$tmp/empty" + printf '\xff' > "$tmp/0xff" ++ ++# Double all files to produce larger buffers. ++for p in "$tmp"/* ; do ++ i=0 ++ while test $i -lt $file_size_doublings; do ++ cat "$p" "$p" > "$tmp/scratch" ++ mv "$tmp/scratch" "$p" ++ i=$(($i + 1)) ++ done ++done ++ + cat "$tmp/xy" "$tmp/0xff" "$tmp/zt" > "$tmp/0xff-wrapped" + + run_iconv () { +@@ -113,6 +133,38 @@ expect_files abc def + run_iconv -o "$tmp/out" "$tmp/out" "$tmp/abc" + expect_files abc def abc + ++run_iconv -o "$tmp/out" "$tmp/ggg" "$tmp/out" ++expect_files ggg abc def abc ++ ++run_iconv -o "$tmp/out" "$tmp/hh" "$tmp/out" "$tmp/hh" ++expect_files hh ggg abc def abc hh ++ ++cp "$tmp/out-template" "$tmp/out" ++run_iconv -o "$tmp/out" "$tmp/ggg" "$tmp/out" "$tmp/out" "$tmp/ggg" ++expect_files ggg out-template out-template ggg ++ ++cp "$tmp/out-template" "$tmp/out" ++run_iconv -o "$tmp/out" "$tmp/ggg" "$tmp/out" "$tmp/hh" "$tmp/out" "$tmp/ggg" ++expect_files ggg out-template hh out-template ggg ++ ++# Empty output should truncate the output file if exists. ++ ++cp "$tmp/out-template" "$tmp/out" ++run_iconv -o "$tmp/out" "$tmp/err" +@@ -156,6 +236,20 @@ expect_exit 1 run_iconv -c -o "$tmp/out" + ! test -s "$tmp/err" + expect_files abc xy zt def + ++cp "$tmp/0xff-wrapped" "$tmp/out" ++expect_exit 1 run_iconv -c -o "$tmp/out" "$tmp/out" "$tmp/abc" "$tmp/out" "$tmp/def" ++expect_files xy zt abc xy zt def ++ ++cp "$tmp/0xff-wrapped" "$tmp/out" ++expect_exit 1 run_iconv -o "$tmp/out" \ ++ "$tmp/out" "$tmp/abc" "$tmp/out" "$tmp/def" ++expect_files 0xff-wrapped ++ ++cp "$tmp/0xff-wrapped" "$tmp/out" ++expect_exit 1 run_iconv -c -o "$tmp/out" \ ++ "$tmp/abc" "$tmp/out" "$tmp/def" "$tmp/out" ++expect_files abc xy zt def xy zt ++ + # If the file does not exist yet, it should not be created on error. + + rm "$tmp/out" diff --git a/SOURCES/glibc-RHEL-1915-7.patch b/SOURCES/glibc-RHEL-1915-7.patch new file mode 100644 index 0000000..d3b62f0 --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-7.patch @@ -0,0 +1,41 @@ +commit 75819cdd29a193cc2db980878bec305905b22bbc +Author: Florian Weimer +Date: Fri Sep 20 13:10:54 2024 +0200 + + iconv: Multiple - on command line should not fail (bug 32050) + + Usually, the second and subsequent - return EOF immediately + and do not contribute to the output, but this is not an error. + + Reviewed-by: DJ Delorie + +diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c +index 3e02db7319..dd4bc3a59a 100644 +--- a/iconv/iconv_prog.c ++++ b/iconv/iconv_prog.c +@@ -287,7 +287,8 @@ conversions from `%s' and to `%s' are not supported"), + ret = process_fd (cd, fd); + + /* Now close the file. */ +- close (fd); ++ if (fd != STDIN_FILENO) ++ close (fd); + + if (ret != 0) + { +diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh +index 54ff871d32..a9c3729d94 100644 +--- a/iconv/tst-iconv_prog-buffer.sh ++++ b/iconv/tst-iconv_prog-buffer.sh +@@ -265,6 +265,11 @@ expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" "$tmp/0xff" "$tmp/def" + expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" - < "$tmp/0xff" "$tmp/def" + ! test -e "$tmp/out" + ++# Listing standard input multiple times should not fail (bug 32050). ++ ++run_iconv -o "$tmp/out" "$tmp/xy" - - "$tmp/zt" < "$tmp/abc" ++expect_files xy abc zt ++ + if $failure ; then + exit 1 + fi diff --git a/SOURCES/glibc-RHEL-1915-8.patch b/SOURCES/glibc-RHEL-1915-8.patch new file mode 100644 index 0000000..823cc16 --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-8.patch @@ -0,0 +1,323 @@ +commit fa1b0d5e9f6e0353e16339430770a7a8824c0468 +Author: Florian Weimer +Date: Fri Sep 20 13:10:54 2024 +0200 + + iconv: Input buffering for the iconv program (bug 6050) + + Do not read the entire input file into memory. + + Reviewed-by: DJ Delorie + +diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c +index dd4bc3a59a..a2f1d34e45 100644 +--- a/iconv/iconv_prog.c ++++ b/iconv/iconv_prog.c +@@ -118,8 +118,9 @@ static size_t output_buffer_size = 1024 * 1024; + + /* Prototypes for the functions doing the actual work. */ + static void prepare_output_file (char **argv); +-static void close_output_file (int status); +-static int process_block (iconv_t cd, char *addr, size_t len); ++static void close_output_file (__gconv_t cd, int status); ++static int process_block (iconv_t cd, char **addr, size_t *len, ++ off64_t file_offset, bool *incomplete); + static int process_fd (iconv_t cd, int fd); + static int process_file (iconv_t cd, FILE *input); + static void print_known_names (void); +@@ -311,7 +312,7 @@ conversions from `%s' and to `%s' are not supported"), + status = EXIT_FAILURE; + + /* Close the output file now. */ +- close_output_file (status); ++ close_output_file (cd, status); + } + + return status; +@@ -599,7 +600,7 @@ flush_output (void) + } + + static void +-close_output_file (int status) ++close_output_file (__gconv_t cd, int status) + { + /* Do not perform a flush if a temporary file or the in-memory + buffer is in use and there was an error. It would clobber the +@@ -608,10 +609,28 @@ close_output_file (int status) + (output_using_temporary_file || output_fd < 0)) + return; + +- /* The current_input_file_index variable is now larger than +- last_overlapping_file_index, so the flush_output call switches ++ /* All the input text is processed. For state-dependent character ++ sets we have to flush the state now. ++ ++ The current_input_file_index variable is now larger than ++ last_overlapping_file_index, so the flush_output calls switch + away from the temporary file. */ ++ size_t n = iconv (cd, NULL, NULL, ++ &output_buffer_current, &output_buffer_remaining); ++ if (n == (size_t) -1 && errno == E2BIG) ++ { ++ /* Try again if the state flush exceeded the buffer space. */ ++ flush_output (); ++ n = iconv (cd, NULL, NULL, ++ &output_buffer_current, &output_buffer_remaining); ++ } ++ int saved_errno = errno; + flush_output (); ++ if (n == (size_t) -1 && !omit_invalid) ++ { ++ errno = saved_errno; ++ output_error (); ++ } + + if (output_fd == STDOUT_FILENO) + { +@@ -625,51 +644,35 @@ close_output_file (int status) + output_error (); + } + ++/* CD is the iconv handle. Input processing starts at *ADDR, and ++ consumes upto *LEN bytes. *ADDR and *LEN are updated. FILE_OFFSET ++ is the file offset of the data initially at ADDR. *INCOMPLETE is ++ set to true if conversion stops due to an incomplete input ++ sequence. */ + static int +-process_block (iconv_t cd, char *addr, size_t len) ++process_block (iconv_t cd, char **addr, size_t *len, off64_t file_offset, ++ bool *incomplete) + { +- const char *start = addr; ++ const char *start = *addr; + size_t n; + int ret = 0; + +- while (len > 0) ++ while (*len > 0) + { +- n = iconv (cd, &addr, &len, ++ n = iconv (cd, addr, len, + &output_buffer_current, &output_buffer_remaining); + + if (n == (size_t) -1 && omit_invalid && errno == EILSEQ) + { + ret = 1; +- if (len == 0) ++ if (*len == 0) + n = 0; + else + errno = E2BIG; + } + + if (n != (size_t) -1) +- { +- /* All the input test is processed. For state-dependent +- character sets we have to flush the state now. */ +- n = iconv (cd, NULL, NULL, +- &output_buffer_current, &output_buffer_remaining); +- if (n == (size_t) -1 && errno == E2BIG) +- { +- /* Try again if the state flush exceeded the buffer space. */ +- flush_output (); +- n = iconv (cd, NULL, NULL, +- &output_buffer_current, &output_buffer_remaining); +- } +- bool errno_is_EILSEQ = errno == EILSEQ; +- +- if (n != (size_t) -1) +- break; +- +- if (omit_invalid && errno_is_EILSEQ) +- { +- ret = 1; +- break; +- } +- } ++ break; + + if (errno == E2BIG) + flush_output (); +@@ -680,13 +683,12 @@ process_block (iconv_t cd, char *addr, size_t len) + { + case EILSEQ: + if (! omit_invalid) +- error (0, 0, _("illegal input sequence at position %ld"), +- (long int) (addr - start)); ++ error (0, 0, _("illegal input sequence at position %lld"), ++ (long long int) (file_offset + (*addr - start))); + break; + case EINVAL: +- error (0, 0, _("\ +-incomplete character or shift sequence at end of buffer")); +- break; ++ *incomplete = true; ++ return ret; + case EBADF: + error (0, 0, _("internal error (illegal descriptor)")); + break; +@@ -706,79 +708,49 @@ incomplete character or shift sequence at end of buffer")); + static int + process_fd (iconv_t cd, int fd) + { +- /* we have a problem with reading from a descriptor since we must not +- provide the iconv() function an incomplete character or shift +- sequence at the end of the buffer. Since we have to deal with +- arbitrary encodings we must read the whole text in a buffer and +- process it in one step. */ +- static char *inbuf = NULL; +- static size_t maxlen = 0; +- char *inptr = inbuf; +- size_t actlen = 0; +- +- while (actlen < maxlen) ++ char inbuf[BUFSIZ]; ++ char *inbuf_end = inbuf + sizeof (inbuf); ++ size_t inbuf_used = 0; ++ off64_t file_offset = 0; ++ int status = 0; ++ bool incomplete = false; ++ ++ while (true) + { +- ssize_t n = read (fd, inptr, maxlen - actlen); +- +- if (n == 0) +- /* No more text to read. */ +- break; +- +- if (n == -1) ++ char *p = inbuf + inbuf_used; ++ ssize_t read_ret = read (fd, p, inbuf_end - p); ++ if (read_ret == 0) ++ { ++ /* On EOF, check if the previous iconv invocation saw an ++ incomplete sequence. */ ++ if (incomplete) ++ { ++ error (0, 0, _("\ ++incomplete character or shift sequence at end of buffer")); ++ return 1; ++ } ++ return 0; ++ } ++ if (read_ret < 0) + { +- /* Error while reading. */ + error (0, errno, _("error while reading the input")); + return -1; + } +- +- inptr += n; +- actlen += n; ++ inbuf_used += read_ret; ++ incomplete = false; ++ p = inbuf; ++ int ret = process_block (cd, &p, &inbuf_used, file_offset, &incomplete); ++ if (ret != 0) ++ { ++ status = ret; ++ if (ret < 0) ++ break; ++ } ++ /* The next loop iteration consumes the leftover bytes. */ ++ memmove (inbuf, p, inbuf_used); ++ file_offset += read_ret - inbuf_used; + } +- +- if (actlen == maxlen) +- while (1) +- { +- ssize_t n; +- char *new_inbuf; +- +- /* Increase the buffer. */ +- new_inbuf = (char *) realloc (inbuf, maxlen + 32768); +- if (new_inbuf == NULL) +- { +- error (0, errno, _("unable to allocate buffer for input")); +- return -1; +- } +- inbuf = new_inbuf; +- maxlen += 32768; +- inptr = inbuf + actlen; +- +- do +- { +- n = read (fd, inptr, maxlen - actlen); +- +- if (n == 0) +- /* No more text to read. */ +- break; +- +- if (n == -1) +- { +- /* Error while reading. */ +- error (0, errno, _("error while reading the input")); +- return -1; +- } +- +- inptr += n; +- actlen += n; +- } +- while (actlen < maxlen); +- +- if (n == 0) +- /* Break again so we leave both loops. */ +- break; +- } +- +- /* Now we have all the input in the buffer. Process it in one run. */ +- return process_block (cd, inbuf, actlen); ++ return status; + } + + +diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh +index a9c3729d94..23098ac56a 100644 +--- a/iconv/tst-iconv_prog-buffer.sh ++++ b/iconv/tst-iconv_prog-buffer.sh +@@ -50,6 +50,9 @@ echo OUT > "$tmp/out-template" + : > "$tmp/empty" + printf '\xff' > "$tmp/0xff" + ++# Length should be a prime number, to help with buffer alignment testing. ++printf '\xc3\xa4\xe2\x80\x94\xe2\x80\x94\xc3\xa4\n' > "$tmp/utf8-sequence" ++ + # Double all files to produce larger buffers. + for p in "$tmp"/* ; do + i=0 +@@ -270,6 +273,34 @@ expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" - < "$tmp/0xff" "$tmp/def" + run_iconv -o "$tmp/out" "$tmp/xy" - - "$tmp/zt" < "$tmp/abc" + expect_files xy abc zt + ++# NB: Extra iconv args are ignored after this point. Actual ++# multi-byte conversion does not work with tiny buffers. ++iconv_args="-f UTF-8 -t ASCII" ++ ++printf 'x\n\xc3' > "$tmp/incomplete" ++expect_exit 1 run_iconv -o "$tmp/out" "$tmp/incomplete" ++check_out <&$logfd ++ printf "%s" "$prefix" > "$tmp/prefix" ++ cat "$tmp/prefix" "$tmp/utf8-sequence" > "$tmp/tmp" ++ iconv_args="-f UTF-8 -t UCS-4" ++ run_iconv -o "$tmp/out1" "$tmp/tmp" ++ iconv_args="-f UCS-4 -t UTF-8" ++ run_iconv -o "$tmp/out" "$tmp/out1" ++ expect_files prefix utf8-sequence ++ ++ prefix="$prefix@" ++ prefix_length=$(($prefix_length + 1)) ++done ++ + if $failure ; then + exit 1 + fi diff --git a/SOURCES/glibc-RHEL-1915-9.patch b/SOURCES/glibc-RHEL-1915-9.patch new file mode 100644 index 0000000..c1828f7 --- /dev/null +++ b/SOURCES/glibc-RHEL-1915-9.patch @@ -0,0 +1,37 @@ +commit 079ebf7624e7fd0ad7fe94a7176a2e132c996d86 +Author: Florian Weimer +Date: Tue Sep 24 10:41:35 2024 +0200 + + iconv: Use $(run-program-prefix) for running iconv (bug 32197) + + With --enable-hardcoded-path-in-tests, $(test-program-prefix) + does not redirect to the built glibc, but we need to run + iconv (the program) against the built glibc even with + --enable-hardcoded-path-in-tests, as it is using the ABI + path for the dynamic linker (as an installed program). + Use $(run-program-prefix) instead. + + Reviewed-by: H.J. Lu + +diff --git a/iconv/Makefile b/iconv/Makefile +index c9af0c4d44..de9d964ed3 100644 +--- a/iconv/Makefile ++++ b/iconv/Makefile +@@ -153,14 +153,14 @@ $(objpfx)tst-translit-mchar.out: tst-translit-mchar.sh \ + + $(objpfx)tst-iconv_prog-buffer.out: \ + tst-iconv_prog-buffer.sh $(objpfx)iconv_prog +- $(BASH) $< $(common-objdir) '$(test-program-prefix)' > $@; \ ++ $(BASH) $< $(common-objdir) '$(run-program-prefix)' > $@; \ + $(evaluate-test) + $(objpfx)tst-iconv_prog-buffer-tiny.out: \ + tst-iconv_prog-buffer.sh $(objpfx)iconv_prog +- $(BASH) $< $(common-objdir) '$(test-program-prefix)' \ ++ $(BASH) $< $(common-objdir) '$(run-program-prefix)' \ + '--buffer-size=1' > $@; \ + $(evaluate-test) + $(objpfx)tst-iconv_prog-buffer-large.out: \ + tst-iconv_prog-buffer.sh $(objpfx)iconv_prog +- $(BASH) $< $(common-objdir) '$(test-program-prefix)' '' '22' > $@; \ ++ $(BASH) $< $(common-objdir) '$(run-program-prefix)' '' '22' > $@; \ + $(evaluate-test) diff --git a/SOURCES/glibc-RHEL-78939-1.patch b/SOURCES/glibc-RHEL-2419-1.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-1.patch rename to SOURCES/glibc-RHEL-2419-1.patch diff --git a/SOURCES/glibc-RHEL-78939-10.patch b/SOURCES/glibc-RHEL-2419-10.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-10.patch rename to SOURCES/glibc-RHEL-2419-10.patch diff --git a/SOURCES/glibc-RHEL-78939-2.patch b/SOURCES/glibc-RHEL-2419-2.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-2.patch rename to SOURCES/glibc-RHEL-2419-2.patch diff --git a/SOURCES/glibc-RHEL-78939-3.patch b/SOURCES/glibc-RHEL-2419-3.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-3.patch rename to SOURCES/glibc-RHEL-2419-3.patch diff --git a/SOURCES/glibc-RHEL-78939-4.patch b/SOURCES/glibc-RHEL-2419-4.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-4.patch rename to SOURCES/glibc-RHEL-2419-4.patch diff --git a/SOURCES/glibc-RHEL-78939-5.patch b/SOURCES/glibc-RHEL-2419-5.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-5.patch rename to SOURCES/glibc-RHEL-2419-5.patch diff --git a/SOURCES/glibc-RHEL-78939-6.patch b/SOURCES/glibc-RHEL-2419-6.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-6.patch rename to SOURCES/glibc-RHEL-2419-6.patch diff --git a/SOURCES/glibc-RHEL-78939-7.patch b/SOURCES/glibc-RHEL-2419-7.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-7.patch rename to SOURCES/glibc-RHEL-2419-7.patch diff --git a/SOURCES/glibc-RHEL-78939-8.patch b/SOURCES/glibc-RHEL-2419-8.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-8.patch rename to SOURCES/glibc-RHEL-2419-8.patch diff --git a/SOURCES/glibc-RHEL-78939-9.patch b/SOURCES/glibc-RHEL-2419-9.patch similarity index 100% rename from SOURCES/glibc-RHEL-78939-9.patch rename to SOURCES/glibc-RHEL-2419-9.patch diff --git a/SOURCES/glibc-RHEL-24740-1.patch b/SOURCES/glibc-RHEL-24740-1.patch new file mode 100644 index 0000000..7fd8043 --- /dev/null +++ b/SOURCES/glibc-RHEL-24740-1.patch @@ -0,0 +1,315 @@ +commit 3367d8e180848030d1646f088759f02b8dfe0d6f +Author: Amrita H S +Date: Wed Dec 6 11:43:11 2023 -0500 + + powerpc: Optimized strcmp for power10 + + This patch is based on __strcmp_power9 and __strlen_power10. + + Improvements from __strcmp_power9: + + 1. Uses new POWER10 instructions + - This code uses lxvp to decrease contention on load + by loading 32 bytes per instruction. + + 2. Performance implication + - This version has around 30% better performance on average. + - Performance regression is seen for a specific combination + of sizes and alignments. Some of them is observed without + changes also, while rest may be induced by the patch. + + Signed-off-by: Amrita H S + Reviewed-by: Paul E. Murphy + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +new file mode 100644 +index 0000000000000000..a3c1adad539978e0 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +@@ -0,0 +1,204 @@ ++/* Optimized strcmp implementation for PowerPC64/POWER10. ++ Copyright (C) 2021-2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++#include ++ ++#ifndef STRCMP ++# define STRCMP strcmp ++#endif ++ ++/* Implements the function ++ int [r3] strcmp (const char *s1 [r3], const char *s2 [r4]). */ ++ ++/* TODO: Change this to actual instructions when minimum binutils is upgraded ++ to 2.27. Macros are defined below for these newer instructions in order ++ to maintain compatibility. */ ++ ++#define LXVP(xtp,dq,ra) \ ++ .long(((6)<<(32-6)) \ ++ | ((((xtp)-32)>>1)<<(32-10)) \ ++ | ((1)<<(32-11)) \ ++ | ((ra)<<(32-16)) \ ++ | dq) ++ ++#define COMPARE_16(vreg1,vreg2,offset) \ ++ lxv vreg1+32,offset(r3); \ ++ lxv vreg2+32,offset(r4); \ ++ vcmpnezb. v7,vreg1,vreg2; \ ++ bne cr6,L(different); \ ++ ++#define COMPARE_32(vreg1,vreg2,offset,label1,label2) \ ++ LXVP(vreg1+32,offset,r3); \ ++ LXVP(vreg2+32,offset,r4); \ ++ vcmpnezb. v7,vreg1+1,vreg2+1; \ ++ bne cr6,L(label1); \ ++ vcmpnezb. v7,vreg1,vreg2; \ ++ bne cr6,L(label2); \ ++ ++#define TAIL(vreg1,vreg2) \ ++ vctzlsbb r6,v7; \ ++ vextubrx r5,r6,vreg1; \ ++ vextubrx r4,r6,vreg2; \ ++ subf r3,r4,r5; \ ++ blr; \ ++ ++#define CHECK_N_BYTES(reg1,reg2,len_reg) \ ++ sldi r0,len_reg,56; \ ++ lxvl 32+v4,reg1,r0; \ ++ lxvl 32+v5,reg2,r0; \ ++ add reg1,reg1,len_reg; \ ++ add reg2,reg2,len_reg; \ ++ vcmpnezb. v7,v4,v5; \ ++ vctzlsbb r6,v7; \ ++ cmpld cr7,r6,len_reg; \ ++ blt cr7,L(different); \ ++ ++ /* TODO: change this to .machine power10 when the minimum required ++ binutils allows it. */ ++ ++ .machine power9 ++ENTRY_TOCLESS (STRCMP, 4) ++ li r11,16 ++ /* eq bit of cr1 used as swap status flag to indicate if ++ source pointers were swapped. */ ++ crclr 4*cr1+eq ++ vspltisb v19,-1 ++ andi. r7,r3,15 ++ sub r7,r11,r7 /* r7(nalign1) = 16 - (str1 & 15). */ ++ andi. r9,r4,15 ++ sub r5,r11,r9 /* r5(nalign2) = 16 - (str2 & 15). */ ++ cmpld cr7,r7,r5 ++ beq cr7,L(same_aligned) ++ blt cr7,L(nalign1_min) ++ /* Swap r3 and r4, and r7 and r5 such that r3 and r7 hold the ++ pointer which is closer to the next 16B boundary so that only ++ one CHECK_N_BYTES is needed before entering the loop below. */ ++ mr r8,r4 ++ mr r4,r3 ++ mr r3,r8 ++ mr r12,r7 ++ mr r7,r5 ++ mr r5,r12 ++ crset 4*cr1+eq /* Set bit on swapping source pointers. */ ++ ++ .p2align 5 ++L(nalign1_min): ++ CHECK_N_BYTES(r3,r4,r7) ++ ++ .p2align 5 ++L(s1_aligned): ++ /* r9 and r5 is number of bytes to be read after and before ++ page boundary correspondingly. */ ++ sub r5,r5,r7 ++ subfic r9,r5,16 ++ /* Now let r7 hold the count of quadwords which can be ++ checked without crossing a page boundary. quadword offset is ++ (str2>>4)&0xFF. */ ++ rlwinm r7,r4,28,0xFF ++ /* Below check is required only for first iteration. For second ++ iteration and beyond, the new loop counter is always 255. */ ++ cmpldi r7,255 ++ beq L(L3) ++ /* Get the initial loop count by 255-((str2>>4)&0xFF). */ ++ subfic r11,r7,255 ++ ++ .p2align 5 ++L(L1): ++ mtctr r11 ++ ++ .p2align 5 ++L(L2): ++ COMPARE_16(v4,v5,0) /* Load 16B blocks using lxv. */ ++ addi r3,r3,16 ++ addi r4,r4,16 ++ bdnz L(L2) ++ /* Cross the page boundary of s2, carefully. */ ++ ++ .p2align 5 ++L(L3): ++ CHECK_N_BYTES(r3,r4,r5) ++ CHECK_N_BYTES(r3,r4,r9) ++ li r11,255 /* Load the new loop counter. */ ++ b L(L1) ++ ++ .p2align 5 ++L(same_aligned): ++ CHECK_N_BYTES(r3,r4,r7) ++ /* Align s1 to 32B and adjust s2 address. ++ Use lxvp only if both s1 and s2 are 32B aligned. */ ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ ++ clrldi r6,r3,59 ++ subfic r5,r6,32 ++ add r3,r3,r5 ++ add r4,r4,r5 ++ andi. r5,r4,0x1F ++ beq cr0,L(32B_aligned_loop) ++ ++ .p2align 5 ++L(16B_aligned_loop): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ b L(16B_aligned_loop) ++ ++ /* Calculate and return the difference. */ ++L(different): ++ vctzlsbb r6,v7 ++ vextubrx r5,r6,v4 ++ vextubrx r4,r6,v5 ++ bt 4*cr1+eq,L(swapped) ++ subf r3,r4,r5 ++ blr ++ ++ /* If src pointers were swapped, then swap the ++ indices and calculate the return value. */ ++L(swapped): ++ subf r3,r5,r4 ++ blr ++ ++ .p2align 5 ++L(32B_aligned_loop): ++ COMPARE_32(v14,v16,0,tail1,tail2) ++ COMPARE_32(v18,v20,32,tail3,tail4) ++ COMPARE_32(v22,v24,64,tail5,tail6) ++ COMPARE_32(v26,v28,96,tail7,tail8) ++ addi r3,r3,128 ++ addi r4,r4,128 ++ b L(32B_aligned_loop) ++ ++L(tail1): TAIL(v15,v17) ++L(tail2): TAIL(v14,v16) ++L(tail3): TAIL(v19,v21) ++L(tail4): TAIL(v18,v20) ++L(tail5): TAIL(v23,v25) ++L(tail6): TAIL(v22,v24) ++L(tail7): TAIL(v27,v29) ++L(tail8): TAIL(v26,v28) ++ ++END (STRCMP) ++libc_hidden_builtin_def (strcmp) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile +index 0ee7ce39d6470d80..91ed88a9c716800d 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile ++++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile +@@ -33,7 +33,8 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \ + ifneq (,$(filter %le,$(config-machine))) + sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \ + rawmemchr-power9 rawmemchr-power10 \ +- strcmp-power9 strncmp-power9 strcpy-power9 stpcpy-power9 \ ++ strcmp-power9 strcmp-power10 strncmp-power9 \ ++ strcpy-power9 stpcpy-power9 \ + strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10 + endif + CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops +diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +index 2c84d287ee76a7ea..caec2047ab10d209 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +@@ -416,6 +416,10 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, + /* Support sysdeps/powerpc/powerpc64/multiarch/strcmp.c. */ + IFUNC_IMPL (i, name, strcmp, + #ifdef __LITTLE_ENDIAN__ ++ IFUNC_IMPL_ADD (array, i, strcmp, ++ (hwcap2 & PPC_FEATURE2_ARCH_3_1) ++ && (hwcap & PPC_FEATURE_HAS_VSX), ++ __strcmp_power10) + IFUNC_IMPL_ADD (array, i, strcmp, + hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC, +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S +new file mode 100644 +index 0000000000000000..c80067ce3305de81 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S +@@ -0,0 +1,26 @@ ++/* Optimized strcmp implementation for POWER10/PPC64. ++ Copyright (C) 2021-2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#if defined __LITTLE_ENDIAN__ && IS_IN (libc) ++#define STRCMP __strcmp_power10 ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#include ++#endif /* __LITTLE_ENDIAN__ && IS_IN (libc) */ +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c +index 8132682a992edb7a..4e77005117525edb 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c +@@ -29,12 +29,16 @@ extern __typeof (strcmp) __strcmp_power7 attribute_hidden; + extern __typeof (strcmp) __strcmp_power8 attribute_hidden; + # ifdef __LITTLE_ENDIAN__ + extern __typeof (strcmp) __strcmp_power9 attribute_hidden; ++extern __typeof (strcmp) __strcmp_power10 attribute_hidden; + # endif + + # undef strcmp + + libc_ifunc_redirected (__redirect_strcmp, strcmp, + # ifdef __LITTLE_ENDIAN__ ++ (hwcap2 & PPC_FEATURE2_ARCH_3_1 ++ && hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strcmp_power10 : + (hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC) + ? __strcmp_power9 : diff --git a/SOURCES/glibc-RHEL-24740-2.patch b/SOURCES/glibc-RHEL-24740-2.patch new file mode 100644 index 0000000..11f9510 --- /dev/null +++ b/SOURCES/glibc-RHEL-24740-2.patch @@ -0,0 +1,435 @@ +commit b9182c793caa05df5d697427c0538936e6396d4b +Author: MAHESH BODAPATI +Date: Tue Dec 12 08:52:45 2023 -0600 + + powerpc : Add optimized memchr for POWER10 + + Optimized memchr for POWER10 based on existing rawmemchr and strlen. + Reordering instructions and loop unrolling helped in getting better performance. + Reviewed-by: Rajalakshmi Srinivasaraghavan + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/memchr.S b/sysdeps/powerpc/powerpc64/le/power10/memchr.S +new file mode 100644 +index 0000000000000000..faf293f3447e6fc6 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/le/power10/memchr.S +@@ -0,0 +1,315 @@ ++/* Optimized memchr implementation for POWER10 LE. ++ Copyright (C) 2021-2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++# ifndef MEMCHR ++# define MEMCHR __memchr ++# endif ++# define M_VREG_ZERO v20 ++# define M_OFF_START_LOOP 256 ++# define MEMCHR_SUBTRACT_VECTORS \ ++ vsububm v4,v4,v18; \ ++ vsububm v5,v5,v18; \ ++ vsububm v6,v6,v18; \ ++ vsububm v7,v7,v18; ++# define M_TAIL(vreg,increment) \ ++ vctzlsbb r4,vreg; \ ++ cmpld r5,r4; \ ++ ble L(null); \ ++ addi r4,r4,increment; \ ++ add r3,r6,r4; \ ++ blr ++ ++/* TODO: Replace macros by the actual instructions when minimum binutils becomes ++ >= 2.35. This is used to keep compatibility with older versions. */ ++#define M_VEXTRACTBM(rt,vrb) \ ++ .long(((4)<<(32-6)) \ ++ | ((rt)<<(32-11)) \ ++ | ((8)<<(32-16)) \ ++ | ((vrb)<<(32-21)) \ ++ | 1602) ++ ++#define M_LXVP(xtp,dq,ra) \ ++ .long(((6)<<(32-6)) \ ++ | ((((xtp)-32)>>1)<<(32-10)) \ ++ | ((1)<<(32-11)) \ ++ | ((ra)<<(32-16)) \ ++ | dq) ++ ++#define CHECK16B(vreg,offset,addr,label) \ ++ lxv vreg+32,offset(addr); \ ++ vcmpequb. vreg,vreg,v18; \ ++ bne cr6,L(label); \ ++ cmpldi r5,16; \ ++ ble L(null); \ ++ addi r5,r5,-16; ++ ++/* Load 4 quadwords, merge into one VR for speed and check for NULLs. r6 has # ++ of bytes already checked. */ ++#define CHECK64B(offset,addr,label) \ ++ M_LXVP(v4+32,offset,addr); \ ++ M_LXVP(v6+32,offset+32,addr); \ ++ MEMCHR_SUBTRACT_VECTORS; \ ++ vminub v14,v4,v5; \ ++ vminub v15,v6,v7; \ ++ vminub v16,v14,v15; \ ++ vcmpequb. v0,v16,M_VREG_ZERO; \ ++ beq cr6,$+12; \ ++ li r7,offset; \ ++ b L(label); \ ++ cmpldi r5,64; \ ++ ble L(null); \ ++ addi r5,r5,-64 ++ ++/* Implements the function ++ void *[r3] memchr (const void *s [r3], int c [r4], size_t n [r5]). */ ++ ++ .machine power9 ++ ++ENTRY_TOCLESS (MEMCHR) ++ CALL_MCOUNT 3 ++ ++ cmpldi r5,0 ++ beq L(null) ++ mr r0,r5 ++ xori r6,r4,0xff ++ ++ mtvsrd v18+32,r4 /* matching char in v18 */ ++ mtvsrd v19+32,r6 /* non matching char in v19 */ ++ ++ vspltb v18,v18,7 /* replicate */ ++ vspltb v19,v19,7 /* replicate */ ++ vspltisb M_VREG_ZERO,0 ++ ++ /* Next 16B-aligned address. Prepare address for L(aligned). */ ++ addi r6,r3,16 ++ clrrdi r6,r6,4 ++ ++ /* Align data and fill bytes not loaded with non matching char. */ ++ lvx v0,0,r3 ++ lvsr v1,0,r3 ++ vperm v0,v19,v0,v1 ++ ++ vcmpequb. v6,v0,v18 ++ bne cr6,L(found) ++ sub r4,r6,r3 ++ cmpld r5,r4 ++ ble L(null) ++ sub r5,r5,r4 ++ ++ /* Test up to OFF_START_LOOP-16 bytes in 16B chunks. The main loop is ++ optimized for longer strings, so checking the first bytes in 16B ++ chunks benefits a lot small strings. */ ++ .p2align 5 ++L(aligned): ++ cmpldi r5,0 ++ beq L(null) ++ ++ CHECK16B(v0,0,r6,tail1) ++ CHECK16B(v1,16,r6,tail2) ++ CHECK16B(v2,32,r6,tail3) ++ CHECK16B(v3,48,r6,tail4) ++ CHECK16B(v4,64,r6,tail5) ++ CHECK16B(v5,80,r6,tail6) ++ CHECK16B(v6,96,r6,tail7) ++ CHECK16B(v7,112,r6,tail8) ++ CHECK16B(v8,128,r6,tail9) ++ CHECK16B(v9,144,r6,tail10) ++ CHECK16B(v10,160,r6,tail11) ++ CHECK16B(v0,176,r6,tail12) ++ CHECK16B(v1,192,r6,tail13) ++ CHECK16B(v2,208,r6,tail14) ++ CHECK16B(v3,224,r6,tail15) ++ ++ cmpdi cr5,r4,0 /* Check if c == 0. This will be useful to ++ choose how we will perform the main loop. */ ++ ++ /* Prepare address for the loop. */ ++ addi r4,r3,M_OFF_START_LOOP ++ clrrdi r4,r4,6 ++ sub r6,r4,r3 ++ sub r5,r0,r6 ++ addi r6,r4,128 ++ ++ /* If c == 0, use the loop without the vsububm. */ ++ beq cr5,L(loop) ++ ++ /* This is very similar to the block after L(loop), the difference is ++ that here MEMCHR_SUBTRACT_VECTORS is not empty, and we subtract ++ each byte loaded by the char we are looking for, this way we can keep ++ using vminub to merge the results and checking for nulls. */ ++ .p2align 5 ++L(memchr_loop): ++ CHECK64B(0,r4,pre_tail_64b) ++ CHECK64B(64,r4,pre_tail_64b) ++ addi r4,r4,256 ++ ++ CHECK64B(0,r6,tail_64b) ++ CHECK64B(64,r6,tail_64b) ++ addi r6,r6,256 ++ ++ CHECK64B(0,r4,pre_tail_64b) ++ CHECK64B(64,r4,pre_tail_64b) ++ addi r4,r4,256 ++ ++ CHECK64B(0,r6,tail_64b) ++ CHECK64B(64,r6,tail_64b) ++ addi r6,r6,256 ++ ++ b L(memchr_loop) ++ /* Switch to a more aggressive approach checking 64B each time. Use 2 ++ pointers 128B apart and unroll the loop once to make the pointer ++ updates and usages separated enough to avoid stalls waiting for ++ address calculation. */ ++ .p2align 5 ++L(loop): ++#undef MEMCHR_SUBTRACT_VECTORS ++#define MEMCHR_SUBTRACT_VECTORS /* nothing */ ++ CHECK64B(0,r4,pre_tail_64b) ++ CHECK64B(64,r4,pre_tail_64b) ++ addi r4,r4,256 ++ ++ CHECK64B(0,r6,tail_64b) ++ CHECK64B(64,r6,tail_64b) ++ addi r6,r6,256 ++ ++ CHECK64B(0,r4,pre_tail_64b) ++ CHECK64B(64,r4,pre_tail_64b) ++ addi r4,r4,256 ++ ++ CHECK64B(0,r6,tail_64b) ++ CHECK64B(64,r6,tail_64b) ++ addi r6,r6,256 ++ ++ b L(loop) ++ ++ .p2align 5 ++L(pre_tail_64b): ++ mr r6,r4 ++L(tail_64b): ++ /* OK, we found a null byte. Let's look for it in the current 64-byte ++ block and mark it in its corresponding VR. lxvp vx,0(ry) puts the ++ low 16B bytes into vx+1, and the high into vx, so the order here is ++ v5, v4, v7, v6. */ ++ vcmpequb v1,v5,M_VREG_ZERO ++ vcmpequb v2,v4,M_VREG_ZERO ++ vcmpequb v3,v7,M_VREG_ZERO ++ vcmpequb v4,v6,M_VREG_ZERO ++ ++ /* Take into account the other 64B blocks we had already checked. */ ++ add r6,r6,r7 ++ /* Extract first bit of each byte. */ ++ M_VEXTRACTBM(r8,v1) ++ M_VEXTRACTBM(r9,v2) ++ M_VEXTRACTBM(r10,v3) ++ M_VEXTRACTBM(r11,v4) ++ ++ /* Shift each value into their corresponding position. */ ++ sldi r9,r9,16 ++ sldi r10,r10,32 ++ sldi r11,r11,48 ++ ++ /* Merge the results. */ ++ or r8,r8,r9 ++ or r9,r10,r11 ++ or r11,r9,r8 ++ ++ cnttzd r0,r11 /* Count trailing zeros before the match. */ ++ cmpld r5,r0 ++ ble L(null) ++ add r3,r6,r0 /* Compute final address. */ ++ blr ++ ++ .p2align 5 ++L(tail1): ++ M_TAIL(v0,0) ++ ++ .p2align 5 ++L(tail2): ++ M_TAIL(v1,16) ++ ++ .p2align 5 ++L(tail3): ++ M_TAIL(v2,32) ++ ++ .p2align 5 ++L(tail4): ++ M_TAIL(v3,48) ++ ++ .p2align 5 ++L(tail5): ++ M_TAIL(v4,64) ++ ++ .p2align 5 ++L(tail6): ++ M_TAIL(v5,80) ++ ++ .p2align 5 ++L(tail7): ++ M_TAIL(v6,96) ++ ++ .p2align 5 ++L(tail8): ++ M_TAIL(v7,112) ++ ++ .p2align 5 ++L(tail9): ++ M_TAIL(v8,128) ++ ++ .p2align 5 ++L(tail10): ++ M_TAIL(v9,144) ++ ++ .p2align 5 ++L(tail11): ++ M_TAIL(v10,160) ++ ++ .p2align 5 ++L(tail12): ++ M_TAIL(v0,176) ++ ++ .p2align 5 ++L(tail13): ++ M_TAIL(v1,192) ++ ++ .p2align 5 ++L(tail14): ++ M_TAIL(v2,208) ++ ++ .p2align 5 ++L(tail15): ++ M_TAIL(v3,224) ++ ++ .p2align 5 ++L(found): ++ vctzlsbb r7,v6 ++ cmpld r5,r7 ++ ble L(null) ++ add r3,r3,r7 ++ blr ++ ++ .p2align 5 ++L(null): ++ li r3,0 ++ blr ++ ++END (MEMCHR) ++ ++weak_alias (__memchr, memchr) ++libc_hidden_builtin_def (memchr) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile +index 91ed88a9c716800d..b4251932de1854c2 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile ++++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile +@@ -31,10 +31,10 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \ + strncase-power8 + + ifneq (,$(filter %le,$(config-machine))) +-sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \ +- rawmemchr-power9 rawmemchr-power10 \ +- strcmp-power9 strcmp-power10 strncmp-power9 \ +- strcpy-power9 stpcpy-power9 \ ++sysdep_routines += memchr-power10 memcmp-power10 memcpy-power10 \ ++ memmove-power10 memset-power10 rawmemchr-power9 \ ++ rawmemchr-power10 strcmp-power9 strcmp-power10 \ ++ strncmp-power9 strcpy-power9 stpcpy-power9 \ + strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10 + endif + CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops +diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +index caec2047ab10d209..e8a38fd4d5e1357e 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +@@ -265,6 +265,12 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, + + /* Support sysdeps/powerpc/powerpc64/multiarch/memchr.c. */ + IFUNC_IMPL (i, name, memchr, ++#ifdef __LITTLE_ENDIAN__ ++ IFUNC_IMPL_ADD (array, i, memchr, ++ hwcap2 & PPC_FEATURE2_ARCH_3_1 ++ && hwcap & PPC_FEATURE_HAS_VSX, ++ __memchr_power10) ++#endif + IFUNC_IMPL_ADD (array, i, memchr, + hwcap2 & PPC_FEATURE2_ARCH_2_07 + && hwcap & PPC_FEATURE_HAS_ALTIVEC, +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S b/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S +new file mode 100644 +index 0000000000000000..b9ed7926762e2b6f +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/multiarch/memchr-power10.S +@@ -0,0 +1,28 @@ ++/* Optimized memchr implementation for POWER10/PPC64. ++ Copyright (C) 2016-2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#if defined __LITTLE_ENDIAN__ && IS_IN (libc) ++#define MEMCHR __memchr_power10 ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++#undef weak_alias ++#define weak_alias(name,alias) ++ ++#include ++#endif +diff --git a/sysdeps/powerpc/powerpc64/multiarch/memchr.c b/sysdeps/powerpc/powerpc64/multiarch/memchr.c +index f40013e06113096f..389d5f18683c2dfc 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/memchr.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/memchr.c +@@ -25,15 +25,23 @@ extern __typeof (__memchr) __memchr_ppc attribute_hidden; + extern __typeof (__memchr) __memchr_power7 attribute_hidden; + extern __typeof (__memchr) __memchr_power8 attribute_hidden; + ++# ifdef __LITTLE_ENDIAN__ ++extern __typeof (__memchr) __memchr_power10 attribute_hidden; ++# endif + /* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle + ifunc symbol properly. */ + libc_ifunc (__memchr, +- (hwcap2 & PPC_FEATURE2_ARCH_2_07 +- && hwcap & PPC_FEATURE_HAS_ALTIVEC) +- ? __memchr_power8 : +- (hwcap & PPC_FEATURE_ARCH_2_06) +- ? __memchr_power7 +- : __memchr_ppc); ++# ifdef __LITTLE_ENDIAN__ ++ (hwcap2 & PPC_FEATURE2_ARCH_3_1 ++ && hwcap & PPC_FEATURE_HAS_VSX) ++ ? __memchr_power10 : ++# endif ++ (hwcap2 & PPC_FEATURE2_ARCH_2_07 ++ && hwcap & PPC_FEATURE_HAS_ALTIVEC) ++ ? __memchr_power8 : ++ (hwcap & PPC_FEATURE_ARCH_2_06) ++ ? __memchr_power7 ++ : __memchr_ppc); + + weak_alias (__memchr, memchr) + libc_hidden_builtin_def (memchr) diff --git a/SOURCES/glibc-RHEL-24740-3.patch b/SOURCES/glibc-RHEL-24740-3.patch new file mode 100644 index 0000000..353966c --- /dev/null +++ b/SOURCES/glibc-RHEL-24740-3.patch @@ -0,0 +1,218 @@ +commit 90bcc8721ef82b7378d2b080141228660e862d56 +Author: Amrita H S +Date: Fri Dec 15 11:48:17 2023 -0500 + + powerpc: Fix performance issues of strcmp power10 + + Current implementation of strcmp for power10 has + performance regression for multiple small sizes + and alignment combination. + + Most of these performance issues are fixed by this + patch. The compare loop is unrolled and page crosses + of unrolled loop is handled. + + Thanks to Paul E. Murphy for helping in fixing the + performance issues. + + Signed-off-by: Amrita H S + Co-Authored-By: Paul E. Murphy + Reviewed-by: Rajalakshmi Srinivasaraghavan + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +index a3c1adad539978e0..3406f4f26a214270 100644 +--- a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S ++++ b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +@@ -62,7 +62,7 @@ + lxvl 32+v5,reg2,r0; \ + add reg1,reg1,len_reg; \ + add reg2,reg2,len_reg; \ +- vcmpnezb. v7,v4,v5; \ ++ vcmpnezb v7,v4,v5; \ + vctzlsbb r6,v7; \ + cmpld cr7,r6,len_reg; \ + blt cr7,L(different); \ +@@ -72,70 +72,110 @@ + + .machine power9 + ENTRY_TOCLESS (STRCMP, 4) +- li r11,16 +- /* eq bit of cr1 used as swap status flag to indicate if +- source pointers were swapped. */ +- crclr 4*cr1+eq +- vspltisb v19,-1 +- andi. r7,r3,15 +- sub r7,r11,r7 /* r7(nalign1) = 16 - (str1 & 15). */ +- andi. r9,r4,15 +- sub r5,r11,r9 /* r5(nalign2) = 16 - (str2 & 15). */ +- cmpld cr7,r7,r5 +- beq cr7,L(same_aligned) +- blt cr7,L(nalign1_min) +- /* Swap r3 and r4, and r7 and r5 such that r3 and r7 hold the +- pointer which is closer to the next 16B boundary so that only +- one CHECK_N_BYTES is needed before entering the loop below. */ +- mr r8,r4 +- mr r4,r3 +- mr r3,r8 +- mr r12,r7 +- mr r7,r5 +- mr r5,r12 +- crset 4*cr1+eq /* Set bit on swapping source pointers. */ ++ andi. r7,r3,4095 ++ andi. r8,r4,4095 ++ cmpldi cr0,r7,4096-16 ++ cmpldi cr1,r8,4096-16 ++ bgt cr0,L(crosses) ++ bgt cr1,L(crosses) ++ COMPARE_16(v4,v5,0) + +- .p2align 5 ++L(crosses): ++ andi. r7,r3,15 ++ subfic r7,r7,16 /* r7(nalign1) = 16 - (str1 & 15). */ ++ andi. r9,r4,15 ++ subfic r5,r9,16 /* r5(nalign2) = 16 - (str2 & 15). */ ++ cmpld cr7,r7,r5 ++ beq cr7,L(same_aligned) ++ blt cr7,L(nalign1_min) ++ ++ /* nalign2 is minimum and s2 pointer is aligned. */ ++ CHECK_N_BYTES(r3,r4,r5) ++ /* Are we on the 64B hunk which crosses a page? */ ++ andi. r10,r3,63 /* Determine offset into 64B hunk. */ ++ andi. r8,r3,15 /* The offset into the 16B hunk. */ ++ neg r7,r3 ++ andi. r9,r7,15 /* Number of bytes after a 16B cross. */ ++ rlwinm. r7,r7,26,0x3F /* ((r3-4096))>>6&63. */ ++ beq L(compare_64_pagecross) ++ mtctr r7 ++ b L(compare_64B_unaligned) ++ ++ /* nalign1 is minimum and s1 pointer is aligned. */ + L(nalign1_min): + CHECK_N_BYTES(r3,r4,r7) ++ /* Are we on the 64B hunk which crosses a page? */ ++ andi. r10,r4,63 /* Determine offset into 64B hunk. */ ++ andi. r8,r4,15 /* The offset into the 16B hunk. */ ++ neg r7,r4 ++ andi. r9,r7,15 /* Number of bytes after a 16B cross. */ ++ rlwinm. r7,r7,26,0x3F /* ((r4-4096))>>6&63. */ ++ beq L(compare_64_pagecross) ++ mtctr r7 + + .p2align 5 +-L(s1_aligned): +- /* r9 and r5 is number of bytes to be read after and before +- page boundary correspondingly. */ +- sub r5,r5,r7 +- subfic r9,r5,16 +- /* Now let r7 hold the count of quadwords which can be +- checked without crossing a page boundary. quadword offset is +- (str2>>4)&0xFF. */ +- rlwinm r7,r4,28,0xFF +- /* Below check is required only for first iteration. For second +- iteration and beyond, the new loop counter is always 255. */ +- cmpldi r7,255 +- beq L(L3) +- /* Get the initial loop count by 255-((str2>>4)&0xFF). */ +- subfic r11,r7,255 ++L(compare_64B_unaligned): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ bdnz L(compare_64B_unaligned) + +- .p2align 5 +-L(L1): ++ /* Cross the page boundary of s2, carefully. Only for first ++ iteration we have to get the count of 64B blocks to be checked. ++ From second iteration and beyond, loop counter is always 63. */ ++L(compare_64_pagecross): ++ li r11, 63 + mtctr r11 +- +- .p2align 5 +-L(L2): +- COMPARE_16(v4,v5,0) /* Load 16B blocks using lxv. */ ++ cmpldi r10,16 ++ ble L(cross_4) ++ cmpldi r10,32 ++ ble L(cross_3) ++ cmpldi r10,48 ++ ble L(cross_2) ++L(cross_1): ++ CHECK_N_BYTES(r3,r4,r9) ++ CHECK_N_BYTES(r3,r4,r8) ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ addi r3,r3,48 ++ addi r4,r4,48 ++ b L(compare_64B_unaligned) ++L(cross_2): ++ COMPARE_16(v4,v5,0) + addi r3,r3,16 + addi r4,r4,16 +- bdnz L(L2) +- /* Cross the page boundary of s2, carefully. */ +- +- .p2align 5 +-L(L3): +- CHECK_N_BYTES(r3,r4,r5) + CHECK_N_BYTES(r3,r4,r9) +- li r11,255 /* Load the new loop counter. */ +- b L(L1) ++ CHECK_N_BYTES(r3,r4,r8) ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ addi r3,r3,32 ++ addi r4,r4,32 ++ b L(compare_64B_unaligned) ++L(cross_3): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ addi r3,r3,32 ++ addi r4,r4,32 ++ CHECK_N_BYTES(r3,r4,r9) ++ CHECK_N_BYTES(r3,r4,r8) ++ COMPARE_16(v4,v5,0) ++ addi r3,r3,16 ++ addi r4,r4,16 ++ b L(compare_64B_unaligned) ++L(cross_4): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ addi r3,r3,48 ++ addi r4,r4,48 ++ CHECK_N_BYTES(r3,r4,r9) ++ CHECK_N_BYTES(r3,r4,r8) ++ b L(compare_64B_unaligned) + +- .p2align 5 + L(same_aligned): + CHECK_N_BYTES(r3,r4,r7) + /* Align s1 to 32B and adjust s2 address. +@@ -168,18 +208,7 @@ L(16B_aligned_loop): + + /* Calculate and return the difference. */ + L(different): +- vctzlsbb r6,v7 +- vextubrx r5,r6,v4 +- vextubrx r4,r6,v5 +- bt 4*cr1+eq,L(swapped) +- subf r3,r4,r5 +- blr +- +- /* If src pointers were swapped, then swap the +- indices and calculate the return value. */ +-L(swapped): +- subf r3,r5,r4 +- blr ++ TAIL(v4,v5) + + .p2align 5 + L(32B_aligned_loop): diff --git a/SOURCES/glibc-RHEL-38225-1.patch b/SOURCES/glibc-RHEL-38225-1.patch new file mode 100644 index 0000000..4a2a2b4 --- /dev/null +++ b/SOURCES/glibc-RHEL-38225-1.patch @@ -0,0 +1,69 @@ +commit f942a732d37a96217ef828116ebe64a644db18d7 +Author: Joe Talbott +Date: Tue May 14 14:39:38 2024 +0000 + + math: Add GLIBC_TEST_LIBM_VERBOSE environment variable support. + + Allow the libm-test-driver based tests to have their verbosity set based + on the GLIBC_TEST_LIBM_VERBOSE environment variable. This allows the entire + testsuite to be run with a non-default verbosity. + + While here check the conversion for the verbose option as well. + + Reviewed-by: Carlos O'Donell + +diff --git a/math/libm-test-support.c b/math/libm-test-support.c +index 9b4cb2ee7d072578..9e64dcfc99234bc7 100644 +--- a/math/libm-test-support.c ++++ b/math/libm-test-support.c +@@ -130,7 +130,7 @@ static int noTests; /* number of tests (without testing exceptions) */ + static int noExcTests; /* number of tests for exception flags */ + static int noErrnoTests;/* number of tests for errno values */ + +-static int verbose; ++static unsigned int verbose; + static int output_max_error; /* Should the maximal errors printed? */ + static int output_points; /* Should the single function results printed? */ + static int ignore_max_ulp; /* Should we ignore max_ulp? */ +@@ -1057,7 +1057,14 @@ parse_opt (int key, char *arg, struct argp_state *state) + break; + case 'v': + if (optarg) +- verbose = (unsigned int) strtoul (optarg, NULL, 0); ++ { ++ char *optstr_conv = optarg; ++ unsigned int opt_verbose; ++ ++ opt_verbose = (unsigned int) strtoul (optarg, &optstr_conv, 0); ++ if (*optstr_conv == '\0' && optstr_conv != optarg) ++ verbose = opt_verbose; ++ } + else + verbose = 3; + break; +@@ -1139,6 +1146,7 @@ libm_test_init (int argc, char **argv) + int remaining; + char *ulps_file_path; + size_t dir_len = 0; ++ char *envstr_verbose; + + verbose = 1; + output_ulps = 0; +@@ -1148,6 +1156,17 @@ libm_test_init (int argc, char **argv) + /* XXX set to 0 for releases. */ + ignore_max_ulp = 0; + ++ envstr_verbose = getenv("GLIBC_TEST_LIBM_VERBOSE"); ++ if (envstr_verbose != NULL) ++ { ++ char *envstr_conv = envstr_verbose; ++ unsigned int env_verbose; ++ ++ env_verbose = (unsigned int) strtoul (envstr_verbose, &envstr_conv, 0); ++ if (*envstr_conv == '\0' && envstr_conv != envstr_verbose) ++ verbose = env_verbose; ++ } ++ + /* Parse and process arguments. */ + argp_parse (&argp, argc, argv, 0, &remaining, NULL); + diff --git a/SOURCES/glibc-RHEL-38225-2.patch b/SOURCES/glibc-RHEL-38225-2.patch new file mode 100644 index 0000000..fc29da0 --- /dev/null +++ b/SOURCES/glibc-RHEL-38225-2.patch @@ -0,0 +1,529 @@ +commit ae18044f95271ed422ed847bd8d8c6d8e84674ce +Author: Joe Simmons-Talbott +Date: Mon May 20 14:09:35 2024 +0000 + + math: Add more details to the test driver output. + + Add start and end indicators that identify the test being run in the + verbose output. Better identify the tests for max errors in the + summary output. Count each exception checked for each test. Remove + double counting of tests for the check_ functions other than + check_float_internal. Rename print_max_error and + print_complex_max_error to check_max_error and check_complex_max_error + respectively since they have side effects. + + Co-Authored-By: Carlos O'Donell + Reviewed-By: Joseph Myers + +diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c +index 0a430a86067766e3..5448ea2109a264b7 100644 +--- a/math/libm-test-driver.c ++++ b/math/libm-test-driver.c +@@ -1059,9 +1059,9 @@ struct test_Ff_b1_data + = STR_CON3 (FUN, SUFF, TEST_SUFF) TEST_SUFF_STR; \ + init_max_error (this_func, EXACT, TEST_COND_any_ibm128) + #define END \ +- print_max_error (this_func) ++ check_max_error (this_func) + #define END_COMPLEX \ +- print_complex_max_error (this_func) ++ check_complex_max_error (this_func) + + /* Run tests for a given function in all rounding modes. */ + #define ALL_RM_TEST(FUNC, EXACT, ARRAY, LOOP_MACRO, END_MACRO, ...) \ +diff --git a/math/libm-test-support.c b/math/libm-test-support.c +index 9e64dcfc99234bc7..5cf5aa5df2cacb24 100644 +--- a/math/libm-test-support.c ++++ b/math/libm-test-support.c +@@ -112,6 +112,7 @@ + #include + #include + #include ++#include + + /* This header defines func_ulps, func_real_ulps and func_imag_ulps + arrays. */ +@@ -125,10 +126,13 @@ static FILE *ulps_file; /* File to document difference. */ + static int output_ulps; /* Should ulps printed? */ + static char *output_dir; /* Directory where generated files will be written. */ + +-static int noErrors; /* number of errors */ +-static int noTests; /* number of tests (without testing exceptions) */ +-static int noExcTests; /* number of tests for exception flags */ +-static int noErrnoTests;/* number of tests for errno values */ ++#define TEST_INPUT 1 ++#define TEST_MAXERROR 2 ++static int noErrors; /* number of errors */ ++static int noTests; /* number of tests (without testing exceptions) */ ++static int noMaxErrorTests; /* number of max error tests */ ++static int noExcTests; /* number of tests for exception flags */ ++static int noErrnoTests; /* number of tests for errno values */ + + static unsigned int verbose; + static int output_max_error; /* Should the maximal errors printed? */ +@@ -299,9 +303,19 @@ print_screen_max_error (int ok) + + /* Update statistic counters. */ + static void +-update_stats (int ok) ++update_stats (int ok, int testType) + { +- ++noTests; ++ switch (testType) ++ { ++ case TEST_INPUT: ++ ++noTests; ++ break; ++ case TEST_MAXERROR: ++ ++noMaxErrorTests; ++ break; ++ default: ++ abort(); ++ } + if (!ok) + ++noErrors; + } +@@ -367,11 +381,30 @@ fpstack_test (const char *test_name) + #endif + } + ++static void ++print_test_start (int test_num, const char *test_name, int test_type) ++{ ++ if (print_screen (1)) ++ printf ("--- Start of%s test # %d, named \"%s\" ---\n", ++ test_type == TEST_MAXERROR ? " max error" : "", test_num, test_name); ++} + ++static void ++print_test_end (int test_num, const char *test_name, int test_type) ++{ ++ if (print_screen (1)) ++ printf ("--- End of%s test # %d, named \"%s\" ---\n", ++ test_type == TEST_MAXERROR ? " max error" : "", test_num, test_name); ++} ++ ++/* This is a builtin test of overall max error. */ + void +-print_max_error (const char *func_name) ++check_max_error (const char *func_name) + { + int ok = 0; ++ int thisTest = noMaxErrorTests; ++ ++ print_test_start (thisTest, func_name, TEST_MAXERROR); + + if (max_error == 0.0 || (max_error <= prev_max_error && !ignore_max_ulp)) + { +@@ -392,14 +425,19 @@ print_max_error (const char *func_name) + printf (" accepted: %s ulp\n", pmestr); + } + +- update_stats (ok); +-} ++ update_stats (ok, TEST_MAXERROR); + ++ print_test_end (thisTest, func_name, TEST_MAXERROR); ++} + ++/* This is a builtin test of overall max error. */ + void +-print_complex_max_error (const char *func_name) ++check_complex_max_error (const char *func_name) + { + int real_ok = 0, imag_ok = 0, ok; ++ int thisTest = noMaxErrorTests; ++ ++ print_test_start (thisTest, func_name, TEST_MAXERROR); + + if (real_max_error == 0 + || (real_max_error <= prev_real_max_error && !ignore_max_ulp)) +@@ -436,7 +474,8 @@ print_complex_max_error (const char *func_name) + printf (" accepted: %s ulp\n", pimestr); + } + +- update_stats (ok); ++ update_stats (ok, TEST_MAXERROR); ++ print_test_end (thisTest, func_name, TEST_MAXERROR); + } + + +@@ -477,12 +516,13 @@ test_single_exception (const char *test_name, + else + { + if (print_screen (1)) +- printf ("%s: Exception \"%s\" not set\n", test_name, ++ printf ("Pass: %s: Exception \"%s\" not set\n", test_name, + flag_name); + } + } + if (!ok) + ++noErrors; ++ ++noExcTests; + } + #endif + +@@ -494,23 +534,32 @@ test_exceptions (const char *test_name, int exception) + { + if (flag_test_exceptions && EXCEPTION_TESTS (FLOAT)) + { +- ++noExcTests; ++ int ran = 0; + #ifdef FE_DIVBYZERO + if ((exception & DIVIDE_BY_ZERO_EXCEPTION_OK) == 0) +- test_single_exception (test_name, exception, +- DIVIDE_BY_ZERO_EXCEPTION, FE_DIVBYZERO, +- "Divide by zero"); ++ { ++ test_single_exception (test_name, exception, ++ DIVIDE_BY_ZERO_EXCEPTION, FE_DIVBYZERO, ++ "Divide by zero"); ++ ran = 1; ++ } + #endif + #ifdef FE_INVALID + if ((exception & INVALID_EXCEPTION_OK) == 0) +- test_single_exception (test_name, exception, +- INVALID_EXCEPTION, FE_INVALID, +- "Invalid operation"); ++ { ++ test_single_exception (test_name, exception, ++ INVALID_EXCEPTION, FE_INVALID, ++ "Invalid operation"); ++ ran = 1; ++ } + #endif + #ifdef FE_OVERFLOW + if ((exception & OVERFLOW_EXCEPTION_OK) == 0) +- test_single_exception (test_name, exception, OVERFLOW_EXCEPTION, +- FE_OVERFLOW, "Overflow"); ++ { ++ test_single_exception (test_name, exception, OVERFLOW_EXCEPTION, ++ FE_OVERFLOW, "Overflow"); ++ ran = 1; ++ } + #endif + /* Spurious "underflow" and "inexact" exceptions are always + allowed for IBM long double, in line with the underlying +@@ -519,17 +568,30 @@ test_exceptions (const char *test_name, int exception) + if ((exception & UNDERFLOW_EXCEPTION_OK) == 0 + && !(test_ibm128 + && (exception & UNDERFLOW_EXCEPTION) == 0)) +- test_single_exception (test_name, exception, UNDERFLOW_EXCEPTION, +- FE_UNDERFLOW, "Underflow"); ++ { ++ test_single_exception (test_name, exception, UNDERFLOW_EXCEPTION, ++ FE_UNDERFLOW, "Underflow"); ++ ran = 1; ++ } ++ + #endif + #ifdef FE_INEXACT + if ((exception & (INEXACT_EXCEPTION | NO_INEXACT_EXCEPTION)) != 0 + && !(test_ibm128 + && (exception & NO_INEXACT_EXCEPTION) != 0)) +- test_single_exception (test_name, exception, INEXACT_EXCEPTION, +- FE_INEXACT, "Inexact"); ++ { ++ test_single_exception (test_name, exception, INEXACT_EXCEPTION, ++ FE_INEXACT, "Inexact"); ++ ran = 1; ++ } + #endif ++ assert (ran == 1); + } ++ else ++ { ++ if (print_screen (1)) ++ printf ("Info: %s: No exceptions tested\n", test_name); ++ } + feclearexcept (FE_ALL_EXCEPT); + } + +@@ -552,6 +614,7 @@ test_single_errno (const char *test_name, int errno_value, + printf ("Failure: %s: errno set to %d, expected %d (%s)\n", + test_name, errno_value, expected_value, expected_name); + } ++ ++noErrnoTests; + } + + /* Test whether errno (value ERRNO_VALUE) has been for TEST_NAME set +@@ -561,13 +624,39 @@ test_errno (const char *test_name, int errno_value, int exceptions) + { + if (flag_test_errno) + { +- ++noErrnoTests; ++ int ran = 0; ++ ++ if ((exceptions & (ERRNO_UNCHANGED|ERRNO_EDOM|ERRNO_ERANGE)) == 0) ++ { ++ if (print_screen (1)) ++ printf ("Info: %s: The value of errno was not tested\n", ++ test_name); ++ return; ++ } ++ ++ + if (exceptions & ERRNO_UNCHANGED) +- test_single_errno (test_name, errno_value, 0, "unchanged"); ++ { ++ test_single_errno (test_name, errno_value, 0, "unchanged"); ++ ran = 1; ++ } + if (exceptions & ERRNO_EDOM) +- test_single_errno (test_name, errno_value, EDOM, "EDOM"); ++ { ++ test_single_errno (test_name, errno_value, EDOM, "EDOM"); ++ ran = 1; ++ } + if (exceptions & ERRNO_ERANGE) +- test_single_errno (test_name, errno_value, ERANGE, "ERANGE"); ++ { ++ test_single_errno (test_name, errno_value, ERANGE, "ERANGE"); ++ ran = 1; ++ } ++ ++ assert (ran == 1); ++ } ++ else ++ { ++ if (print_screen (1)) ++ printf ("Info: %s: No errno tests\n", test_name); + } + } + +@@ -619,6 +708,9 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected, + FLOAT diff = 0; + FLOAT ulps = 0; + int errno_value = errno; ++ int thisTest = noTests; ++ ++ print_test_start (thisTest, test_name, TEST_INPUT); + + test_exceptions (test_name, exceptions); + test_errno (test_name, errno_value, exceptions); +@@ -716,12 +808,13 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected, + printf (" max.ulp : %s\n", mustrn); + } + } +- update_stats (ok); ++ update_stats (ok, TEST_INPUT); + + out: + fpstack_test (test_name); + feclearexcept (FE_ALL_EXCEPT); + errno = 0; ++ print_test_end (thisTest, test_name, TEST_INPUT); + } + + +@@ -776,12 +869,14 @@ check_int (const char *test_name, int computed, int expected, + { + int ok = 0; + int errno_value = errno; ++ int thisTest = noTests; ++ ++ print_test_start (thisTest, test_name, TEST_INPUT); + + test_exceptions (test_name, exceptions); + test_errno (test_name, errno_value, exceptions); + if (exceptions & IGNORE_RESULT) + goto out; +- noTests++; + if (computed == expected) + ok = 1; + +@@ -795,11 +890,12 @@ check_int (const char *test_name, int computed, int expected, + printf (" should be: %d\n", expected); + } + +- update_stats (ok); ++ update_stats (ok, TEST_INPUT); + out: + fpstack_test (test_name); + feclearexcept (FE_ALL_EXCEPT); + errno = 0; ++ print_test_end (thisTest, test_name, TEST_INPUT); + } + + +@@ -810,12 +906,14 @@ check_long (const char *test_name, long int computed, long int expected, + { + int ok = 0; + int errno_value = errno; ++ int thisTest = noTests; ++ ++ print_test_start (thisTest, test_name, TEST_INPUT); + + test_exceptions (test_name, exceptions); + test_errno (test_name, errno_value, exceptions); + if (exceptions & IGNORE_RESULT) + goto out; +- noTests++; + if (computed == expected) + ok = 1; + +@@ -829,11 +927,12 @@ check_long (const char *test_name, long int computed, long int expected, + printf (" should be: %ld\n", expected); + } + +- update_stats (ok); ++ update_stats (ok, TEST_INPUT); + out: + fpstack_test (test_name); + feclearexcept (FE_ALL_EXCEPT); + errno = 0; ++ print_test_end (thisTest, test_name, TEST_INPUT); + } + + +@@ -844,12 +943,14 @@ check_bool (const char *test_name, int computed, int expected, + { + int ok = 0; + int errno_value = errno; ++ int thisTest = noTests; ++ ++ print_test_start (thisTest, test_name, TEST_INPUT); + + test_exceptions (test_name, exceptions); + test_errno (test_name, errno_value, exceptions); + if (exceptions & IGNORE_RESULT) + goto out; +- noTests++; + if ((computed == 0) == (expected == 0)) + ok = 1; + +@@ -863,11 +964,12 @@ check_bool (const char *test_name, int computed, int expected, + printf (" should be: %d\n", expected); + } + +- update_stats (ok); ++ update_stats (ok, TEST_INPUT); + out: + fpstack_test (test_name); + feclearexcept (FE_ALL_EXCEPT); + errno = 0; ++ print_test_end (thisTest, test_name, TEST_INPUT); + } + + +@@ -879,12 +981,14 @@ check_longlong (const char *test_name, long long int computed, + { + int ok = 0; + int errno_value = errno; ++ int thisTest = noTests; ++ ++ print_test_start (thisTest, test_name, TEST_INPUT); + + test_exceptions (test_name, exceptions); + test_errno (test_name, errno_value, exceptions); + if (exceptions & IGNORE_RESULT) + goto out; +- noTests++; + if (computed == expected) + ok = 1; + +@@ -898,11 +1002,12 @@ check_longlong (const char *test_name, long long int computed, + printf (" should be: %lld\n", expected); + } + +- update_stats (ok); ++ update_stats (ok, TEST_INPUT); + out: + fpstack_test (test_name); + feclearexcept (FE_ALL_EXCEPT); + errno = 0; ++ print_test_end (thisTest, test_name, TEST_INPUT); + } + + +@@ -913,12 +1018,14 @@ check_intmax_t (const char *test_name, intmax_t computed, + { + int ok = 0; + int errno_value = errno; ++ int thisTest = noTests; ++ ++ print_test_start (thisTest, test_name, TEST_INPUT); + + test_exceptions (test_name, exceptions); + test_errno (test_name, errno_value, exceptions); + if (exceptions & IGNORE_RESULT) + goto out; +- noTests++; + if (computed == expected) + ok = 1; + +@@ -932,11 +1039,12 @@ check_intmax_t (const char *test_name, intmax_t computed, + printf (" should be: %jd\n", expected); + } + +- update_stats (ok); ++ update_stats (ok, TEST_INPUT); + out: + fpstack_test (test_name); + feclearexcept (FE_ALL_EXCEPT); + errno = 0; ++ print_test_end (thisTest, test_name, TEST_INPUT); + } + + +@@ -947,12 +1055,14 @@ check_uintmax_t (const char *test_name, uintmax_t computed, + { + int ok = 0; + int errno_value = errno; ++ int thisTest = noTests; ++ ++ print_test_start (thisTest, test_name, TEST_INPUT); + + test_exceptions (test_name, exceptions); + test_errno (test_name, errno_value, exceptions); + if (exceptions & IGNORE_RESULT) + goto out; +- noTests++; + if (computed == expected) + ok = 1; + +@@ -966,11 +1076,12 @@ check_uintmax_t (const char *test_name, uintmax_t computed, + printf (" should be: %ju\n", expected); + } + +- update_stats (ok); ++ update_stats (ok, TEST_INPUT); + out: + fpstack_test (test_name); + feclearexcept (FE_ALL_EXCEPT); + errno = 0; ++ print_test_end (thisTest, test_name, TEST_INPUT); + } + + /* Return whether a test with flags EXCEPTIONS should be run. */ +@@ -1211,9 +1322,11 @@ libm_test_finish (void) + fclose (ulps_file); + + printf ("\nTest suite completed:\n"); +- printf (" %d test cases plus %d tests for exception flags and\n" +- " %d tests for errno executed.\n", +- noTests, noExcTests, noErrnoTests); ++ printf (" %d max error test cases,\n", noMaxErrorTests); ++ printf (" %d input tests,\n", noTests); ++ printf (" - with %d tests for exception flags,\n", noExcTests); ++ printf (" - with %d tests for errno executed.\n", noErrnoTests); ++ + if (noErrors) + { + printf (" %d errors occurred.\n", noErrors); +diff --git a/math/libm-test-support.h b/math/libm-test-support.h +index ba670014548e73eb..e6f03ee154e7a65d 100644 +--- a/math/libm-test-support.h ++++ b/math/libm-test-support.h +@@ -170,8 +170,8 @@ extern const char doc[]; + + int enable_test (int); + void init_max_error (const char *, int, int); +-void print_max_error (const char *); +-void print_complex_max_error (const char *); ++void check_max_error (const char *); ++void check_complex_max_error (const char *); + void check_float (const char *, FLOAT, FLOAT, int); + void check_complex (const char *, CFLOAT, CFLOAT, int); + void check_int (const char *, int, int, int); diff --git a/SOURCES/glibc-RHEL-41189.patch b/SOURCES/glibc-RHEL-41189.patch new file mode 100644 index 0000000..3e31fbf --- /dev/null +++ b/SOURCES/glibc-RHEL-41189.patch @@ -0,0 +1,320 @@ +From 3de73f974fab55430177c811c9c9ba3f251d5747 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Wed, 7 Aug 2024 14:57:41 +0200 +Subject: manual: Add Descriptor-Relative Access section + +Reference this new section from the O_PATH documentation. + +And document the functions openat, openat64, fstatat, fstatat64. +(The safety assessment for fstatat was already obsolete because +current glibc assumes kernel support for the underlying system +call.) + +Reviewed-by: Adhemerval Zanella + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index 47d929744e..aabb68385b 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -15,6 +15,7 @@ access permissions and modification times. + @menu + * Working Directory:: This is used to resolve relative + file names. ++* Descriptor-Relative Access:: Ways to control file name lookup. + * Accessing Directories:: Finding out what files a directory + contains. + * Working with Directory Trees:: Apply actions to all files or a selectable +@@ -206,6 +207,151 @@ An I/O error occurred. + @end table + @end deftypefun + ++@node Descriptor-Relative Access ++@section Descriptor-Relative Access ++@cindex file name resolution based on descriptors ++@cindex descriptor-based file name resolution ++@cindex @code{@dots{}at} functions ++ ++Many functions that accept file names have @code{@dots{}at} variants ++which accept a file descriptor and a file name argument instead of just ++a file name argument. For example, @code{fstatat} is the ++descriptor-based variant of the @code{fstat} function. Most such ++functions also accept an additional flags argument which changes the ++behavior of the file name lookup based on the passed @code{AT_@dots{}} ++flags. ++ ++There are several reasons to use descriptor-relative access: ++ ++@itemize @bullet ++@item ++The working directory is a process-wide resource, so individual threads ++cannot change it without affecting other threads in the process. ++Explicitly specifying the directory against which relative paths are ++resolved can be a thread-safe alternative to changing the working ++directory. ++ ++@item ++If a program wishes to access a directory tree which is being modified ++concurrently, perhaps even by a different user on the system, the ++program must avoid looking up file names with multiple components, in ++order to detect symbolic links, using the @code{O_NOFOLLOW} flag ++(@pxref{Open-time Flags}) or the @code{AT_SYMLINK_FOLLOW} flag ++(described below). Without directory-relative access, it is necessary ++to use the @code{fchdir} function to change the working directory ++(@pxref{Working Directory}), which is not thread-safe. ++ ++@item ++Listing directory contents using the @code{readdir} or @code{readdir64} ++functions (@pxref{Reading/Closing Directory}) does not provide full file ++name paths. Using @code{@dots{}at} functions, it is possible to use the ++file names directly, without having to construct such full paths. ++ ++@item ++Additional flags available with some of the @code{@dots{}at} functions ++provide access to functionality which is not available otherwise. ++@end itemize ++ ++The file descriptor used by these @code{@dots{}at} functions has the ++following uses: ++ ++@itemize @bullet ++@item ++It can be a file descriptor referring to a directory. Such a descriptor ++can be created explicitly using the @code{open} function and the ++@code{O_RDONLY} file access mode, with or without the @code{O_DIRECTORY} ++flag. @xref{Opening and Closing Files}. Or it can be created ++implicitly by @code{opendir} and retrieved using the @code{dirfd} ++function. @xref{Opening a Directory}. ++ ++If a directory descriptor is used with one of the @code{@dots{}at} ++functions, a relative file name argument is resolved relative to ++directory referred to by the file descriptor, just as if that directory ++were the current working directory. Absolute file name arguments ++(starting with @samp{/}) are resolved against the file system root, and ++the descriptor argument is effectively ignored. ++ ++This means that file name lookup is not constrained to the directory of ++the descriptor. For example, it is possible to access a file ++@file{example} in the descriptor's parent directory using a file name ++argument @code{"../example"}, or in the root directory using ++@code{"/example"}. ++ ++If the file descriptor refers to a directory, the empty string @code{""} ++is not a valid file name argument. It is possible to use @code{"."} to ++refer to the directory itself. Also see @code{AT_EMPTY_PATH} below. ++ ++@item ++@vindex @code{AT_FDCWD} ++The special value @code{AT_FDCWD}. This means that the current working ++directory is used for the lookup if the file name is a relative. For ++@code{@dots{}at} functions with an @code{AT_@dots{}} flags argument, ++this provides a shortcut to use those flags with regular (not ++descriptor-based) file name lookups. ++ ++If @code{AT_FDCWD} is used, the empty string @code{""} is not a valid ++file name argument. ++ ++@item ++An arbitrary file descriptor, along with an empty string @code{""} as ++the file name argument, and the @code{AT_EMPTY_PATH} flag. In this ++case, the operation uses the file descriptor directly, without further ++file name resolution. On Linux, this allows operations on descriptors ++opened with the @code{O_PATH} flag. For regular descriptors (opened ++without @code{O_PATH}), the same functionality is also available through ++the plain descriptor-based functions (for example, @code{fstat} instead ++of @code{fstatat}). ++ ++This is a GNU extension. ++@end itemize ++ ++@cindex file name resolution flags ++@cindex @code{AT_*} file name resolution flags ++The flags argument in @code{@dots{}at} functions can be a combination of ++the following flags, defined in @file{fcntl.h}. Not all such functions ++support all flags, and some (such as @code{openat}) do not accept a ++flags argument at all. ++ ++In the flag descriptions below, the @dfn{effective final path component} ++refers to the final component (basename) of the full path constructed ++from the descriptor and file name arguments, using file name lookup, as ++described above. ++ ++@vtable @code ++@item AT_EMPTY_PATH ++This flag is used with an empty file name @code{""} and a descriptor ++which does not necessarily refer to a directory. It is most useful with ++@code{O_PATH} descriptors, as described above. This flag is a GNU ++extension. ++ ++@item AT_NO_AUTOMOUNT ++If the effective final path component refers to a potential file system ++mount point controlled by an auto-mounting service, the operation does ++not trigger auto-mounting and refers to the unmounted mount point ++instead. @xref{Mount-Unmount-Remount}. If a file system has already ++been mounted at the effective final path component, the operation ++applies to the file or directory in the mounted file system, not the ++underlying file system that was mounted over. This flag is a GNU ++extension. ++ ++@item AT_SYMLINK_FOLLOW ++If the effective final path component is a symbolic link, the ++operation follows the symbolic link and operates on its target. (For ++most functions, this is the default behavior.) ++ ++@item AT_SYMLINK_NOFOLLOW ++If the effective final path component is a symbolic link, the ++operation operates on the symbolic link, without following it. The ++difference in behavior enabled by this flag is similar to the difference ++between the @code{lstat} and @code{stat} functions, or the behavior ++activated by the @code{O_NOFOLLOW} argument to the @code{open} function. ++Even with the @code{AT_SYMLINK_NOFOLLOW} flag present, symbolic links in ++a non-final component of the file name are still followed. ++@end vtable ++ ++@strong{Note:} There is no relationship between these flags and the type ++argument to the @code{getauxval} function (with @code{AT_@dots{}} ++constants defined in @file{elf.h}). @xref{Auxiliary Vector}. + + @node Accessing Directories + @section Accessing Directories +@@ -1250,10 +1396,11 @@ A hardware error occurred while trying to read or write the to filesystem. + + The @code{linkat} function is analogous to the @code{link} function, + except that it identifies its source and target using a combination of a +-file descriptor (referring to a directory) and a pathname. If a +-pathnames is not absolute, it is resolved relative to the corresponding +-file descriptor. The special file descriptor @code{AT_FDCWD} denotes +-the current directory. ++file descriptor (referring to a directory) and a file name. ++@xref{Descriptor-Relative Access}. For @code{linkat}, if a file name is ++not absolute, it is resolved relative to the corresponding file ++descriptor. As usual, the special value @code{AT_FDCWD} denotes the ++current directory. + + The @var{flags} argument is a combination of the following flags: + +@@ -2091,9 +2238,44 @@ function is available under the name @code{fstat} and so transparently + replaces the interface for small files on 32-bit machines. + @end deftypefun + +-@c fstatat will call alloca and snprintf if the syscall is not +-@c available. +-@c @safety{@mtsafe{}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{}}} ++@deftypefun int fstatat (int @var{filedes}, const char *@var{filename}, struct stat *@var{buf}, int @var{flags}) ++@standards{POSIX.1, sys/stat.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++This function is a descriptor-relative version of the @code{fstat} ++function above. @xref{Descriptor-Relative Access}. The @var{flags} ++argument can contain a combination of the flags @code{AT_EMPTY_PATH}, ++@code{AT_NO_AUTOMOUNT}, @code{AT_SYMLINK_NOFOLLOW}. ++ ++Compared to @code{fstat}, the following additional error conditions can ++occur: ++ ++@table @code ++@item EBADF ++The @var{filedes} argument is not a valid file descriptor. ++ ++@item EINVAL ++The @var{flags} argument is not valid for this function. ++ ++@item ENOTDIR ++The descriptor @var{filedes} is not associated with a directory, and ++@var{filename} is a relative file name. ++@end table ++ ++When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} this ++function is in fact @code{fstatat64} since the LFS interface transparently ++replaces the normal implementation. ++@end deftypefun ++ ++@deftypefun int fstatat64 (int @var{filedes}, const char *@var{filename}, struct stat64 *@var{buf}, int @var{flags}) ++@standards{GNU, sys/stat.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++This function is the large-file variant of @code{fstatat}, similar to ++how @code{fstat64} is the variant of @code{fstat}. ++ ++When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} this ++function is available under the name @code{fstatat} and so transparently ++replaces the interface for small files on 32-bit machines. ++@end deftypefun + + @deftypefun int lstat (const char *@var{filename}, struct stat *@var{buf}) + @standards{BSD, sys/stat.h} +diff --git a/manual/llio.texi b/manual/llio.texi +index ea84196abd..a035c3e20f 100644 +--- a/manual/llio.texi ++++ b/manual/llio.texi +@@ -181,6 +181,43 @@ new, extended API using 64 bit file sizes and offsets transparently + replaces the old API. + @end deftypefun + ++@deftypefun int openat (int @var{filedes}, const char *@var{filename}, int @var{flags}[, mode_t @var{mode}]) ++@standards{POSIX.1, fcntl.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{@acsfd{}}} ++This function is the descriptor-relative variant of the @code{open} ++function. @xref{Descriptor-Relative Access}. ++ ++Note that the @var{flags} argument of @code{openat} does not accept ++@code{AT_@dots{}} flags, only the flags described for the @code{open} ++function above. ++ ++The @code{openat} function can fail for additional reasons: ++ ++@table @code ++@item EBADF ++The @var{filedes} argument is not a valid file descriptor. ++ ++@item ENOTDIR ++The descriptor @var{filedes} is not associated with a directory, and ++@var{filename} is a relative file name. ++@end table ++ ++When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} this ++function is in fact @code{openat64} since the LFS interface transparently ++replaces the normal implementation. ++@end deftypefun ++ ++@deftypefun int openat64 (int @var{filedes}, const char *@var{filename}, int @var{flags}[, mode_t @var{mode}]) ++@standards{GNU, fcntl.h} ++The large-file variant of the @code{openat}, similar to how ++@code{open64} is the large-file variant of @code{open}. ++ ++When the sources are translated with @code{_FILE_OFFSET_BITS == 64} this ++function is actually available under the name @code{openat}. I.e., the ++new, extended API using 64 bit file sizes and offsets transparently ++replaces the old API. ++@end deftypefun ++ + @deftypefn {Obsolete function} int creat (const char *@var{filename}, mode_t @var{mode}) + @standards{POSIX.1, fcntl.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{@acsfd{}}} +@@ -3775,7 +3812,9 @@ contains it is still needed), and permissions are checked when the + descriptor is used later on. + + For example, such descriptors can be used with the @code{fexecve} +-function (@pxref{Executing a File}). ++function (@pxref{Executing a File}). Other applications involve the ++@samp{*at} function variants, along with the @code{AT_EMPTY_PATH} flag. ++@xref{Descriptor-Relative Access}. + + This access mode is specific to Linux. On @gnuhurdsystems{}, it is + possible to use @code{O_EXEC} explicitly, or specify no access modes +diff --git a/manual/startup.texi b/manual/startup.texi +index 747beed4d9..8ac3b97eed 100644 +--- a/manual/startup.texi ++++ b/manual/startup.texi +@@ -665,8 +665,12 @@ basis there may be information that is not available any other way. + This function is used to inquire about the entries in the auxiliary + vector. The @var{type} argument should be one of the @samp{AT_} symbols + defined in @file{elf.h}. If a matching entry is found, the value is +-returned; if the entry is not found, zero is returned and @code{errno} is +-set to @code{ENOENT}. ++returned; if the entry is not found, zero is returned and @code{errno} ++is set to @code{ENOENT}. ++ ++@strong{Note:} There is no relationship between the @samp{AT_} contants ++defined in @file{elf.h} and the file name lookup flags in ++@file{fcntl.h}. @xref{Descriptor-Relative Access}. + @end deftypefun + + For some platforms, the key @code{AT_HWCAP} is the easiest way to inquire diff --git a/SOURCES/glibc-RHEL-46724.patch b/SOURCES/glibc-RHEL-46724.patch new file mode 100644 index 0000000..a9f04e4 --- /dev/null +++ b/SOURCES/glibc-RHEL-46724.patch @@ -0,0 +1,70 @@ +commit 7fe1fde499507126f7de10ebf12fecaf77ae6602 +Author: Joseph Myers +Date: Mon Oct 28 22:22:26 2024 +0000 + + Document further requirement on mixing streams / file descriptors + + The gilbc manual has some documentation in llio.texi of requirements + for moving between I/O on FILE * streams and file descriptors on the + same open file description. + + The documentation of what must be done on a FILE * stream to move from + it to either a file descriptor or another FILE * for the same open + file description seems to match POSIX. However, there is an + additional requirement in POSIX on the *second* of the two handles + being moved between, which is not mentioned in the glibc manual: "If + any previous active handle has been used by a function that explicitly + changed the file offset, except as required above for the first + handle, the application shall perform an lseek() or fseek() (as + appropriate to the type of handle) to an appropriate location.". + + Document this requirement on seeking in the glibc manual, limited to + the case that seems relevant to glibc (the new channel is a previously + active stream, on which the seeking previously occurred). Note that + I'm not sure what the "except as required above for the first handle" + is meant to be about, so I haven't documented anything for it. As far + as I can tell, nothing specified for moving from the first handle + actually list calling a seek function as one of the steps to be done. + (Current POSIX doesn't seem to have any relevant rationale for this + section. The rationale in the 1996 edition says "In requiring the + seek to an appropriate location for the new handle, the application is + required to know what it is doing if it is passing streams with seeks + involved. If the required seek is not done, the results are undefined + (and in fact the program probably will not work on many common + implementations)." - which also doesn't help in understanding the + purpose of "except as required above for the first handle".) + + Tested with "make info" and "make pdf". + +diff --git a/manual/llio.texi b/manual/llio.texi +index 12194273801adc18..0f84a593ee92b31f 100644 +--- a/manual/llio.texi ++++ b/manual/llio.texi +@@ -1097,6 +1097,27 @@ streams persist in other processes, their file positions become + undefined as a result. To prevent this, you must clean up the streams + before destroying them. + ++In addition to cleaning up a stream before doing I/O using another ++linked channel, additional precautions are needed to ensure a ++well-defined file position indicator in some cases. If both the ++following conditions hold, you must set the file position indicator on ++the new channel (a stream) using a function such as @code{fseek}. ++ ++@itemize @bullet ++@item ++The new linked channel is a stream that was previously active. ++ ++@item ++The file position indicator was previously set on that channel (while ++it was previously active) with a function such as @code{fseek}. ++@end itemize ++ ++POSIX requires such precautions in more cases: if either the old or ++the new linked channel is a stream (whether or not previously active) ++and the file position indicator was previously set on any channel ++linked to those channels with a function such as @code{fseek} or ++@code{lseek}. ++ + @node Independent Channels + @subsection Independent Channels + @cindex independent channels diff --git a/SOURCES/glibc-RHEL-46725-1.patch b/SOURCES/glibc-RHEL-46725-1.patch new file mode 100644 index 0000000..389e7d3 --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-1.patch @@ -0,0 +1,2531 @@ +commit 7ec4d7e3d1c0c6da11dbad1292fd9d94124c57ca +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted printf output specifiers + + This is a collection of tests for formatted printf output specifiers + covering the d, i, o, u, x, and X integer conversions, the e, E, f, F, + g, and G floating-point conversions, the c character conversion, and the + s string conversion. Also the hh, h, l, and ll length modifiers are + covered with the integer conversions as is the L length modifier with + the floating-point conversions. + + The -, +, space, #, and 0 flags are iterated over, as permitted by the + conversion handled, in tuples of 1..5, including tuples with repetitions + of 2, and combined with field width and/or precision, again as permitted + by the conversion. The resulting format string is then used to produce + output from respective sets of input data corresponding to the specific + conversion under test. POSIX extensions beyond ISO C are not used. + + Output is produced in the form of records which include both the format + string (and width and/or precision where given in the form of separate + arguments) and the conversion result, and is verified with GNU AWK using + the format obtained from each such record against the reference value + also supplied, relying on the fact that GNU AWK has its own independent + implementation of format processing, striving to be ISO C compatible. + + In the course of implementation I have determined that in the non-bignum + mode GNU AWK uses system sprintf(3) for the floating-point conversions, + defeating the objective of doing the verification against an independent + implementation. Additionally the bignum mode (using MPFR) is required + to correctly output wider integer and floating-point data. Therefore + for the conversions affected the relevant shell scripts sanity-check AWK + and terminate with unsupported status if the bignum mode is unavailable + for floating-point data or where data is output incorrectly. + + The f and F floating-point conversions are build-time options for GNU + AWK, depending on the environment, so they are probed for before being + used. Similarly the a and A floating-point conversions, however they + are currently not used, see below. Also GNU AWK does not handle the b + or B integer conversions at all at the moment, as at 5.3.0. Support for + the a, A, b, and B conversions can however be easily added following the + approach taken for the f and F conversions. + + Output produced by gawk for the a and A floating-point conversions does + not match one produced by us: insufficient precision is used where one + hasn't been explicitly given, e.g. for the negated maximum finite IEEE + 754 64-bit value of -1.79769313486231570814527423731704357e+308 and "%a" + format we produce -0x1.fffffffffffffp+1023 vs gawk's -0x1.000000p+1024 + and a different exponent is chosen otherwise, such as with "%.a" where + we output -0x2p+1023 vs gawk's -0x1p+1024 for the same value, or "%.20a" + where -0x1.fffffffffffff0000000p+1023 is our output, but gawk produces + -0xf.ffffffffffff80000000p+1020 instead. Consequently I chose not to + include a and A conversions in testing at this time. + + And last but not least there are numerous corner cases that GNU AWK does + not handle correctly, which are worked around by explicit handling in + the AWK script. These are in particular: + + - extraneous leading 0 produced for the alternative form with the o + conversion, e.g. { printf "%#.2o", 1 } produces "001" rather than + "01", + + - unexpected 0 produced where no characters are expected for the input + of 0 and the alternative form with the precision of 0 and the integer + hexadecimal conversions, e.g. { printf "%#.x", 0 } produces "0" rather + than "", + + - missing + character in the non-bignum mode only for the input of 0 + with the + flag, precision of 0 and the signed integer conversions, + e.g. { printf "%+.i", 0 } produces "" rather than "+", + + - missing space character in the non-bignum mode only for the input of 0 + with the space flag, precision of 0 and the signed integer + conversions, e.g. { printf "% .i", 0 } produces "" rather than " ", + + - for released gawk versions of up to 4.2.1 missing - character for the + input of -NaN with the floating-point conversions, e.g. { printf "%e", + "-nan" }' produces "nan" rather than "-nan", + + - for released gawk versions from 5.0.0 onwards + character output for + the input of -NaN with the floating-point conversions, e.g. { printf + "%e", "-nan" }' produces "+nan" rather than "-nan", + + - for released gawk versions from 5.0.0 onwards + character output for + the input of Inf or NaN in the absence of the + or space flags with + the floating-point conversions, e.g. { printf "%e", "inf" }' produces + "+inf" rather than "inf", + + - for released gawk versions of up to 4.2.1 missing + character for the + input of Inf or NaN with the + flag and the floating-point + conversions, e.g. { printf "%+e", "inf" }' produces "inf" rather than + "+inf", + + - for released gawk versions of up to 4.2.1 missing space character for + the input of Inf or NaN with the space flag and the floating-point + conversions, e.g. { printf "% e", "nan" }' produces "nan" rather than + " nan", + + - for released gawk versions from 5.0.0 onwards + character output for + the input of Inf or NaN with the space flag and the floating-point + conversions, e.g. { printf "% e", "inf" }' produces "+inf" rather than + " inf", + + - for released gawk versions from 5.0.0 onwards the field width is + ignored for the input of Inf or NaN and the floating-point + conversions, e.g. { printf "%20e", "-inf" }' produces "-inf" rather + than " -inf", + + NB for released gawk versions of up to 4.2.1 floating-point conversion + issues apply to the bignum mode only, as in the non-bignum mode system + sprintf(3) is used. As from version 5.0.0 specialized handling has been + added for [-]Inf and [-]NaN inputs and the issues listed apply to both + modes. The '--posix' flag makes gawk versions from 5.0.0 onwards avoid + the issue with field width and the + character unconditionally output + for the input of Inf or NaN, however not the remaining issues and then + the 'gensub' function is not supported in the POSIX mode, so to go this + path I deemed not worth it. + + Each test completes within single seconds except for the long double + one. There the F/f formats produce a large number of digits, which + appears to be computationally intensive and CPU-bound. Standalone + execution time for 'tst-printf-format-p-ldouble --direct f' is in the + range of 00m36s for POWER9@2.166GHz and 09m52s for FU740@1.2GHz and + output redirected locally to /dev/null, and 10m11s for FU740 and output + redirected over 100Mbps network via SSH to /dev/null, so the throughput + of the network adds very little (~3.2% in this case) to the processing + time. This is with IEEE 754 quad. + + So I have scaled the timeout for 'tst-printf-format-skeleton-ldouble' + accordingly. Regardless, following recent practice the test has been + added to the standard rather than extended set. However, unlike most + of the remaining tests it has been split by the conversion specifier, + so as to allow better parallelization of this long-running test. As + a side effect this lets the test report the unsupported status for the + F/f conversions where applicable, so 'tst-printf-format-p-double' has + been split for consistency as well. + + Only printf itself is handled at the moment, but the infrastructure + provides for all the printf family functions to be verified, changes + for which to be supplied separately. The complication around having + some tests iterating over all the relevant conversion specifiers and + other verifying conversion specifiers individually combined with + iterating over printf family functions has hit a peculiarity in GNU + make where the use of multiple targets with a pattern rule is handled + differently from such use with an ordinary rule. Consequently it + seems impossible to bulk-define a pattern rule using '$(foreach ...)', + where each target would simply trigger the recipe according to the + pattern and matching dependencies individually (such a rule does work, + but implies all targets to be updated with a single recipe execution). + + Therefore as a compromise a single single-target pattern rule has been + defined that has listed all the conversion-specific scripts and all the + test executables as dependencies. Consequently tests will be rerun in + the absence of changes to their actual sources or scripts whenever an + unrelated file has changed that has been listed. Also all the formatted + printf output tests will always be built whenever any single one is to + be run. This only affects test development and not test runs in the + field, though it does change the order of execution of the individual + steps and also acts as a Makefile barrier in parallel runs. As the + execution time dominates the compilation time for these tests it is not + seen as a serious shortcoming. + + As pointed out by Florian Weimer the malloc tracing + facility can take a substantial amount of time in calling dladdr(3) to + determine the caller's location. This is not needed by the verification + made with these tests, so I chose to interpose the symbol with a stub + implementation that always fails in the shared skeleton. We have total + control over the test environment, so I think it is a safe and minimal + impact approach. If there's ever anything else added to the tests that + would actually rely on dladdr(3) returning usable results, only then we + can think of a different approach. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 09d3622823203f74..0a45dcb4f45c0a5d 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -22,6 +22,34 @@ subdir := stdio-common + + include ../Makeconfig + ++# List of markers for printf family function tests. ++xprintf-funcs := p ++ ++# List of data types and formats for individual per-conversion printf tests. ++fmt-convs := double ldouble ++fmts := E e F f G g ++ ++# List of data types grouping all conversions in single printf tests. ++nonfmt-convs := c char int llong long s short ++nonfmt-convs += uchar uint ullong ulong ushort ++ ++convs := $(sort $(fmt-convs) $(nonfmt-convs)) ++ ++xprintf-srcs := \ ++ $(foreach p,$(xprintf-funcs), \ ++ $(foreach c,$(convs),tst-printf-format-$(p)-$(c))) ++ ++fmt-xprintf-stems := \ ++ $(foreach f,$(fmts), \ ++ $(foreach p,$(xprintf-funcs), \ ++ $(foreach c,$(fmt-convs), \ ++ tst-printf-format-$(p)-$(c)-$(f)))) ++nonfmt-xprintf-stems := \ ++ $(foreach p,$(xprintf-funcs), \ ++ $(foreach c,$(nonfmt-convs),tst-printf-format-$(p)-$(c))) ++ ++xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) ++ + headers := \ + bits/printf-ldbl.h \ + bits/stdio_lim.h \ +@@ -240,6 +268,7 @@ endif + endif + + test-srcs = \ ++ $(xprintf-srcs) \ + tst-printf \ + tst-printfsz-islongdouble \ + tst-unbputc \ +@@ -247,6 +276,7 @@ test-srcs = \ + + ifeq ($(run-built-tests),yes) + tests-special += \ ++ $(foreach f,$(xprintf-stems),$(objpfx)$(f).out) \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ + $(objpfx)tst-setvbuf1-cmp.out \ +@@ -257,6 +287,7 @@ tests-special += \ + ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ ++ $(foreach f,$(xprintf-stems),$(objpfx)$(f)-mem.out) \ + $(objpfx)tst-freopen2-mem.out \ + $(objpfx)tst-freopen3-mem.out \ + $(objpfx)tst-freopen4-mem.out \ +@@ -276,6 +307,8 @@ tests-special += \ + # tests-special + + generated += \ ++ $(foreach f,$(xprintf-stems),$(f)-mem.out) \ ++ $(foreach f,$(xprintf-stems),$(f).mtrace) \ + tst-freopen2-mem.out \ + tst-freopen2.mtrace \ + tst-freopen3-mem.out \ +@@ -402,6 +435,21 @@ $(objpfx)tst-printf.out: tst-printf.sh $(objpfx)tst-printf + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ + $(evaluate-test) + ++# We can't split a quoted recipe line, so do it via an auxiliary variable. ++make-tst-printf-format-out = \ ++ AWK='$(AWK)' BASH='$(BASH)' \ ++ $(BASH) $< $@ $(common-objpfx) \ ++ '$(run-program-prefix-before-env) \ ++ $(run-program-env) \ ++ MALLOC_TRACE=$(@:.out=.mtrace) \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so \ ++ $(run-program-prefix-after-env)' ++$(objpfx)tst-printf-format-%.out: \ ++ tst-printf-format.sh $(foreach c,$(convs),tst-printf-format-$(c).sh) \ ++ $(foreach f,$(xprintf-srcs),$(objpfx)$(f)) tst-printf-format.awk ++ $(make-tst-printf-format-out) > $@; \ ++ $(evaluate-test) ++ + $(objpfx)tst-printfsz-islongdouble.out: \ + tst-printfsz-islongdouble.sh $(objpfx)tst-printfsz-islongdouble + $(SHELL) $^ '$(test-program-prefix)' $@; \ +@@ -415,6 +463,10 @@ $(objpfx)tst-printf-bz18872.c: tst-printf-bz18872.sh + $(objpfx)tst-%-mem.out: $(objpfx)tst-%.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-$*.mtrace > $@; \ + $(evaluate-test) ++$(objpfx)tst-printf-format-%-mem.out: $(objpfx)tst-printf-format-%.out ++ $(common-objpfx)malloc/mtrace \ ++ $(objpfx)tst-printf-format-$*.mtrace > $@; \ ++ $(evaluate-test) + + errlist-h = $(firstword $(wildcard $(addsuffix /errlist.h,$(sysdirs) .))) + +diff --git a/stdio-common/tst-printf-format-c.sh b/stdio-common/tst-printf-format-c.sh +new file mode 100644 +index 0000000000000000..2b8d72050f670fd6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-c.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash ++# Testing of the 'c' printf conversion. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++echo Verifying c ++(set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-c c | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion c output error, first line:\n/") 2>&1 || ++ exit 1 +diff --git a/stdio-common/tst-printf-format-char.sh b/stdio-common/tst-printf-format-char.sh +new file mode 100644 +index 0000000000000000..99219679df2ddfb7 +--- /dev/null ++++ b/stdio-common/tst-printf-format-char.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of signed char printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-char $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-double.sh b/stdio-common/tst-printf-format-double.sh +new file mode 100644 +index 0000000000000000..b4e61acfdc615c22 +--- /dev/null ++++ b/stdio-common/tst-printf-format-double.sh +@@ -0,0 +1,74 @@ ++#!/bin/bash ++# Testing of double printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++format=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++# For floating-point formats we need to use the bignum mode even if the ++# regular mode would do, because GAWK in the latter mode uses sprintf(3) ++# internally to process the conversion requested, so any bug in our code ++# would then be verified against itself, defeating the objective of doing ++# the verification against an independent implementation. ++AWK="${AWK:-awk} -M" ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="-1.79769313486231570814527423731704357e+308" ++val=$(echo "$ref" | $AWK '{ printf "%.35e\n", $1 }' 2>&1) && ++ test "$val" = "$ref" && status=0 ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++# Check for any additional conversions that AWK handles conditionally ++# according to its version and/or the environment it has been built in. ++# The 'A' and 'a' conversions are not suitable to use at this point, as ++# output produced by AWK is different apparently due to a subtlety in ++# rounding, so do not try them. ++declare -A conversion_disabled ++ref="-inf" ++for f in f F; do ++ conversion_disabled[$f]=true ++ val=$(echo "$ref" | $AWK '{ printf "%'$f'\n", $1 }' 2>&1) && ++ test "${val^^}" = "${ref^^}" && unset conversion_disabled[$f] ++done ++ ++if test "${conversion_disabled[$format]+set}" = set; then ++ echo Unsupported $format ++ status=77 ++else ++ echo Verifying $format ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-double $format | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | ++ sed "s/^/Conversion $format output error, first line:\n/") 2>&1 || ++ status=1 ++fi ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-int.sh b/stdio-common/tst-printf-format-int.sh +new file mode 100644 +index 0000000000000000..32dcfb160a3ab5e9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-int.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="-2147483648" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-int $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ldouble.sh b/stdio-common/tst-printf-format-ldouble.sh +new file mode 100644 +index 0000000000000000..4bfecadea9d7fe80 +--- /dev/null ++++ b/stdio-common/tst-printf-format-ldouble.sh +@@ -0,0 +1,74 @@ ++#!/bin/bash ++# Testing of long double printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++format=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++# For floating-point formats we need to use the bignum mode even if the ++# regular mode would do, because GAWK in the latter mode uses sprintf(3) ++# internally to process the conversion requested, so any bug in our code ++# would then be verified against itself, defeating the objective of doing ++# the verification against an independent implementation. ++AWK="${AWK:-awk} -M" ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="-1.18973149535723176508575932662800702e+4932" ++val=$(echo "$ref" | $AWK '{ PREC=113; printf "%.35e\n", $1 }' 2>&1) && ++ test "$val" = "$ref" && status=0 ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++# Check for any additional conversions that AWK handles conditionally ++# according to its version and/or the environment it has been built in. ++# The 'A' and 'a' conversions are not suitable to use at this point, as ++# output produced by AWK is different apparently due to a subtlety in ++# rounding, so do not try them. ++declare -A conversion_disabled ++ref="-inf" ++for f in f F; do ++ conversion_disabled[$f]=true ++ val=$(echo "$ref" | $AWK '{ printf "%'$f'\n", $1 }' 2>&1) && ++ test "${val^^}" = "${ref^^}" && unset conversion_disabled[$f] ++done ++ ++if test "${conversion_disabled[$format]+set}" = set; then ++ echo Unsupported $format ++ status=77 ++else ++ echo Verifying $format ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ldouble $format | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | ++ sed "s/^/Conversion $format output error, first line:\n/") 2>&1 || ++ status=1 ++fi ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-llong.sh b/stdio-common/tst-printf-format-llong.sh +new file mode 100644 +index 0000000000000000..b028a2c89b30a9b6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-llong.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of long long int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="9223372036854775807" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-llong $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-long.sh b/stdio-common/tst-printf-format-long.sh +new file mode 100644 +index 0000000000000000..77c67ea5bff12c05 +--- /dev/null ++++ b/stdio-common/tst-printf-format-long.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of long int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="9223372036854775807" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-long $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-p-c.c b/stdio-common/tst-printf-format-p-c.c +new file mode 100644 +index 0000000000000000..ba46f55431aa59c1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-p-char.c b/stdio-common/tst-printf-format-p-char.c +new file mode 100644 +index 0000000000000000..7640bf8f662e3515 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-p-double.c b/stdio-common/tst-printf-format-p-double.c +new file mode 100644 +index 0000000000000000..8271ec7beaa9e57d +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-p-int.c b/stdio-common/tst-printf-format-p-int.c +new file mode 100644 +index 0000000000000000..cdfaaacc34772cc9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-p-ldouble.c b/stdio-common/tst-printf-format-p-ldouble.c +new file mode 100644 +index 0000000000000000..266989db32a848bb +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-p-llong.c b/stdio-common/tst-printf-format-p-llong.c +new file mode 100644 +index 0000000000000000..936f626a45e76211 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-p-long.c b/stdio-common/tst-printf-format-p-long.c +new file mode 100644 +index 0000000000000000..c82c3cac0957a1a3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-p-s.c b/stdio-common/tst-printf-format-p-s.c +new file mode 100644 +index 0000000000000000..4b0201ae9465a6a8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-p-short.c b/stdio-common/tst-printf-format-p-short.c +new file mode 100644 +index 0000000000000000..2bf17f1b2522f5ed +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-p-uchar.c b/stdio-common/tst-printf-format-p-uchar.c +new file mode 100644 +index 0000000000000000..02a70c3f1546c422 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-p-uint.c b/stdio-common/tst-printf-format-p-uint.c +new file mode 100644 +index 0000000000000000..e61455e01013aba0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-p-ullong.c b/stdio-common/tst-printf-format-p-ullong.c +new file mode 100644 +index 0000000000000000..16b2541acd66299f +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-p-ulong.c b/stdio-common/tst-printf-format-p-ulong.c +new file mode 100644 +index 0000000000000000..0b3a7fd2568f763b +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-p-ushort.c b/stdio-common/tst-printf-format-p-ushort.c +new file mode 100644 +index 0000000000000000..fa62f500ab00cbb3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-p.h b/stdio-common/tst-printf-format-p.h +new file mode 100644 +index 0000000000000000..a9ffbb0d0e76a485 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'printf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define printf_under_test(...) \ ++({ \ ++ int result; \ ++ \ ++ result = printf (__VA_ARGS__); \ ++ if (result < 0) \ ++ perror ("printf"); \ ++ result; \ ++}) +diff --git a/stdio-common/tst-printf-format-s.sh b/stdio-common/tst-printf-format-s.sh +new file mode 100644 +index 0000000000000000..fa0690f9800a60ce +--- /dev/null ++++ b/stdio-common/tst-printf-format-s.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash ++# Testing of the 's' printf conversion. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++echo Verifying s ++(set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-s s | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion s output error, first line:\n/") 2>&1 || ++ exit 1 +diff --git a/stdio-common/tst-printf-format-short.sh b/stdio-common/tst-printf-format-short.sh +new file mode 100644 +index 0000000000000000..a610a15fa1f6e96a +--- /dev/null ++++ b/stdio-common/tst-printf-format-short.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of short int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-short $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-skeleton-c.c b/stdio-common/tst-printf-format-skeleton-c.c +new file mode 100644 +index 0000000000000000..3f9bbc91e3a58e59 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-c.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 4 ++#define REF_FMT "c" ++#define REF_VAL(v) (v) ++typedef unsigned char type_t; ++static const type_t vals[] = { 0, 42, UCHAR_MAX }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-char.c b/stdio-common/tst-printf-format-skeleton-char.c +new file mode 100644 +index 0000000000000000..8c7b44b061f69cb6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-char.c +@@ -0,0 +1,31 @@ ++/* Test skeleton for formatted printf output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 5 ++#define REF_FMT "i" ++#define REF_VAL(v) ((((v) & 0xff) ^ 0x80) - 0x80) ++typedef int type_t; ++static const type_t vals[] = ++ { SCHAR_MIN - 123, SCHAR_MIN - 1, SCHAR_MIN, -123, -1, 0, 1, 42, SCHAR_MAX, ++ SCHAR_MAX + 1, SCHAR_MAX + 42 }; ++static const char length[] = "hh"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-double.c b/stdio-common/tst-printf-format-skeleton-double.c +new file mode 100644 +index 0000000000000000..03ac594736fd352f +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-double.c +@@ -0,0 +1,33 @@ ++/* Test skeleton for formatted printf output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define MID_WIDTH 20 ++#define HUGE_WIDTH 320 ++#define REF_FMT ".35e" ++#define REF_VAL(v) (v) ++#define PREC DBL_MANT_DIG ++typedef double type_t; ++static const type_t vals[] = ++ { -HUGE_VAL, -DBL_MAX, -DBL_MIN, copysign (0, -1), -NAN, NAN, 0, DBL_MIN, ++ DBL_MAX, HUGE_VAL }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-int.c b/stdio-common/tst-printf-format-skeleton-int.c +new file mode 100644 +index 0000000000000000..5d2076c53f6bbc2d +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-int.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 8 ++#define HUGE_WIDTH 15 ++#define REF_FMT "i" ++#define REF_VAL(v) (v) ++typedef int type_t; ++static const type_t vals[] = { INT_MIN, -123, -1, 0, 1, 42, INT_MAX }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ldouble.c b/stdio-common/tst-printf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..ed47e7796390ecaf +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ldouble.c +@@ -0,0 +1,38 @@ ++/* Test skeleton for formatted printf output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#define MID_WIDTH 20 ++#define HUGE_WIDTH 4950 ++#define REF_FMT ".35Le" ++#define REF_VAL(v) (v) ++#define PREC LDBL_MANT_DIG ++typedef long double type_t; ++static const type_t vals[] = ++ { -HUGE_VAL, -LDBL_MAX, -LDBL_MIN, copysign (0, -1), -NAN, NAN, 0, LDBL_MIN, ++ LDBL_MAX, HUGE_VAL }; ++static const char length[] = "L"; ++ ++#ifndef TIMEOUT ++# define TIMEOUT (DEFAULT_TIMEOUT * 64) ++#endif ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-llong.c b/stdio-common/tst-printf-format-skeleton-llong.c +new file mode 100644 +index 0000000000000000..9a4b7a39af660ba3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-llong.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 15 ++#define HUGE_WIDTH 25 ++#define REF_FMT "lli" ++#define REF_VAL(v) (v) ++typedef long long int type_t; ++static const type_t vals[] = { LLONG_MIN, -123, -1, 0, 1, 42, LLONG_MAX }; ++static const char length[] = "ll"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-long.c b/stdio-common/tst-printf-format-skeleton-long.c +new file mode 100644 +index 0000000000000000..bf011b7fdb375fc6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-long.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 15 ++#define HUGE_WIDTH 25 ++#define REF_FMT "li" ++#define REF_VAL(v) (v) ++typedef long int type_t; ++static const type_t vals[] = { LONG_MIN, -123, -1, 0, 1, 42, LONG_MAX }; ++static const char length[] = "l"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-s.c b/stdio-common/tst-printf-format-skeleton-s.c +new file mode 100644 +index 0000000000000000..59aab9fc89836ec6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-s.c +@@ -0,0 +1,30 @@ ++/* Test skeleton for formatted printf output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 5 ++#define HUGE_WIDTH 10 ++#define REF_FMT "s" ++#define REF_VAL(v) (v) ++typedef const char *type_t; ++static const type_t vals[] = ++ { "", "The", "quick", "brown fox", "jumps over the lazy dog" }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-short.c b/stdio-common/tst-printf-format-skeleton-short.c +new file mode 100644 +index 0000000000000000..1b7c8c09d71df95a +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-short.c +@@ -0,0 +1,31 @@ ++/* Test skeleton for formatted printf output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 4 ++#define HUGE_WIDTH 7 ++#define REF_FMT "i" ++#define REF_VAL(v) ((((v) & 0xffff) ^ 0x8000) - 0x8000) ++typedef int type_t; ++static const type_t vals[] = ++ { SHRT_MIN - 123, SHRT_MIN - 1, SHRT_MIN, -123, -1, 0, 1, 42, SHRT_MAX, ++ SHRT_MAX + 1, SHRT_MAX + 42 }; ++static const char length[] = "h"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-uchar.c b/stdio-common/tst-printf-format-skeleton-uchar.c +new file mode 100644 +index 0000000000000000..389188d746ffc508 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-uchar.c +@@ -0,0 +1,30 @@ ++/* Test skeleton for formatted printf output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 4 ++#define REF_FMT "u" ++#define REF_VAL(v) ((v) & 0xff) ++typedef unsigned int type_t; ++static const type_t vals[] = ++ { 0, 1, 42, UCHAR_MAX, UCHAR_MAX + 1, UCHAR_MAX + 42 }; ++static const char length[] = "hh"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-uint.c b/stdio-common/tst-printf-format-skeleton-uint.c +new file mode 100644 +index 0000000000000000..6a4159111402c467 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-uint.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 7 ++#define HUGE_WIDTH 14 ++#define REF_FMT "u" ++#define REF_VAL(v) (v) ++typedef unsigned int type_t; ++static const type_t vals[] = { 0, 1, 42, UINT_MAX }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ullong.c b/stdio-common/tst-printf-format-skeleton-ullong.c +new file mode 100644 +index 0000000000000000..a2ad7893cfec8b11 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ullong.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for unsigned long long int convs. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 14 ++#define HUGE_WIDTH 24 ++#define REF_FMT "llu" ++#define REF_VAL(v) (v) ++typedef unsigned long long int type_t; ++static const type_t vals[] = { 0, 1, 42, UINT_MAX, ULLONG_MAX }; ++static const char length[] = "ll"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ulong.c b/stdio-common/tst-printf-format-skeleton-ulong.c +new file mode 100644 +index 0000000000000000..05cd4e0efcc657e1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ulong.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 14 ++#define HUGE_WIDTH 24 ++#define REF_FMT "lu" ++#define REF_VAL(v) (v) ++typedef unsigned long int type_t; ++static const type_t vals[] = { 0, 1, 42, ULONG_MAX }; ++static const char length[] = "l"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ushort.c b/stdio-common/tst-printf-format-skeleton-ushort.c +new file mode 100644 +index 0000000000000000..5cc2e0283a54fa04 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ushort.c +@@ -0,0 +1,30 @@ ++/* Test skeleton for formatted printf output for unsigned short int convs. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 6 ++#define REF_FMT "u" ++#define REF_VAL(v) ((v) & 0xffff) ++typedef unsigned int type_t; ++static const type_t vals[] = ++ { 0, 1, 42, USHRT_MAX, USHRT_MAX + 1, USHRT_MAX + 42 }; ++static const char length[] = "h"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton.c b/stdio-common/tst-printf-format-skeleton.c +new file mode 100644 +index 0000000000000000..e564d3a85395507e +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton.c +@@ -0,0 +1,380 @@ ++/* Test skeleton for formatted printf output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The following definitions have to be supplied by the source including ++ this skeleton: ++ ++ Macros: ++ MID_WIDTH Medium width/precision positive integer constant. Choose ++ such as to cause some, but not all the strings produced ++ to be truncated for the conversions handled. ++ HUGE_WIDTH Large width/precision positive integer constant. Choose ++ such as to cause none of the strings produced to be ++ truncated for the conversions handled. ++ REF_FMT Reference output format string. Use no flags and such ++ a precision and length modifier, where applicable, and ++ a conversion as to make sure the output produced allows ++ the original value to be reproduced. ++ REF_VAL(v) Reference value V transformation. For conversions with ++ a truncating length modifier define such as to reproduce ++ the truncation operation, otherwise let V pass through. ++ PREC [optional] Working precision positive integer constant. ++ Set to the number of binary digits in the significand for ++ the argument type handled; usually for floating-point ++ conversions only, but it may be required for 128-bit or ++ wider integer data types as well. ++ ++ Typedefs: ++ type_t Variadic function argument type. Define to the promoted ++ type corresponding to the conversion argument type ++ handled. ++ ++ Variables: ++ vals Array of TYPE_T values. Choose such as to cover boundary ++ and any special cases. ++ length Length modifier string. Define according to the ++ conversion argument type handled. ++ ++ The feature to be tested is wrapped into 'printf_under_test'. It is up ++ to the source including this skeleton if this is going to be a macro ++ or an actual function. ++ ++ See tst-*printf-format-*.c for usage examples. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Set to nonzero to select all possible tuples with repetitions of 1..n ++ elements from the set of flags as defined in FLAGS array below; n is ++ the length of FLAGS array. Otherwise select all possible tuples with ++ repetitions of 1..2 elements, followed by tuples of 3..n elements where ++ the index of each element k; k = 2..n in FLAGS is lower than the index ++ of element k-1 in FLAGS. */ ++#ifndef TST_PRINTF_DUPS ++# define TST_PRINTF_DUPS 0 ++#endif ++/* Set to nonzero to report the precision (number of significand digits) ++ required for floating-point calculations. */ ++#ifndef PREC ++# define PREC 0 ++#endif ++ ++/* The list of conversions permitted for the '#' flag, the '0' flag, ++ and precision respectively. */ ++#define HASH_FORMATS "boxXaAeEfFgG" ++#define ZERO_FORMATS "bdiouxXaAeEfFgG" ++#define PREC_FORMATS "bdiouxXaAeEfFgGs" ++ ++/* Output format conversion flags. */ ++static struct ++{ ++ /* Flag character. */ ++ char f; ++ /* List of conversion specifiers the flag is valid for; NULL if all. */ ++ const char *s; ++} const flags[] = ++ { {'-'}, {'+'}, {' '}, {'#', HASH_FORMATS}, {'0', ZERO_FORMATS} }; ++ ++/* Helper to initialize elements of the PW array for the width and ++ precision to be specified as a positive integer directly in the ++ format, and then as both a negative and a positive argument to '*'. */ ++#define STR(v) #v ++#define WPINIT(v) {0, STR (v)}, {v, NULL}, {-v, NULL} ++ ++/* Width and precision settings to iterate over; zero is initialized ++ directly as it has no corresponding negated value and other values ++ use the helper above. */ ++static struct wp ++{ ++ /* Integer argument to '*', used if S is NULL. */ ++ int i; ++ /* String denoting an integer to use in the format, or NULL to use '*'. */ ++ const char *s; ++} const wp[] = ++ { {0, "0"}, {0, NULL}, WPINIT (1), WPINIT (2), ++ WPINIT (MID_WIDTH), WPINIT (HUGE_WIDTH) }; ++ ++/* Produce a record according to '%' and zero or more output format flags ++ already provided in FMT at indices 0..IDX-1, width W if non-NULL, '.' ++ precision specifier if POINT set to true, precision P if non-NULL, ++ any length modifiers L, conversion C, and value VAL. ++ ++ Record formats produced: ++ ++ %:: ++ %.:: ++ %:: ++ %.:: ++ %.

:: ++ %.

:: ++ %*::: ++ %*.::: ++ %.*:

:: ++ %*.*::

:: ++ ++ Return 0 on success, -1 on failure. */ ++ ++static int ++do_printf (char *fmt, size_t idx, ++ const struct wp *w, bool point, const struct wp *p, ++ const char *l, char c, type_t val) ++{ ++ int wpval[2] = { 0 }; ++ size_t nint = 0; ++ int result; ++ size_t i; ++ ++ if (w != NULL) ++ { ++ if (w->s == NULL) ++ { ++ fmt[idx++] = '*'; ++ wpval[nint++] = w->i; ++ } ++ else ++ for (i = 0; w->s[i] != '\0'; i++) ++ fmt[idx++] = w->s[i]; ++ } ++ if (point) ++ fmt[idx++] = '.'; ++ if (p != NULL) ++ { ++ if (p->s == NULL) ++ { ++ fmt[idx++] = '*'; ++ wpval[nint++] = p->i; ++ } ++ else ++ for (i = 0; p->s[i] != '\0'; i++) ++ fmt[idx++] = p->s[i]; ++ } ++ for (i = 0; length[i] != '\0'; i++) ++ fmt[idx++] = length[i]; ++ fmt[idx++] = c; ++ fmt[idx] = ':'; ++ fmt[idx + 1] = '\0'; ++ if (fputs (fmt, stdout) == EOF) ++ { ++ perror ("fputs"); ++ return -1; ++ } ++ fmt[idx++] = '\0'; ++ if (nint > 0) ++ { ++ result = printf ("%i:", wpval[0]); ++ if (result < 0) ++ { ++ perror ("printf"); ++ return -1; ++ } ++ if (nint > 1) ++ { ++ result = printf ("%i:", wpval[1]); ++ if (result < 0) ++ { ++ perror ("printf"); ++ return -1; ++ } ++ } ++ } ++ switch (nint) ++ { ++ case 0: ++ result = printf_under_test (fmt, val); ++ break; ++ case 1: ++ result = printf_under_test (fmt, wpval[0], val); ++ break; ++ case 2: ++ result = printf_under_test (fmt, wpval[0], wpval[1], val); ++ break; ++ default: ++ fputs ("Broken test, nint > 2\n", stderr); ++ return -1; ++ } ++ if (result < 0) ++ return -1; ++ if (fputs (":\n", stdout) == EOF) ++ { ++ perror ("fputs"); ++ return -1; ++ } ++ return 0; ++} ++ ++/* Produce a list of records according to '%' and zero or more output ++ format flags already provided in FMT at indices 0..IDX-1, iterating ++ over widths and precisions defined in global WP array, any length ++ modifiers L, conversion C, and value VAL. Inline '0' is omitted for ++ the width, as it is a flag already handled among the flags supplied. ++ Precision is omitted where the conversion does not allow it. ++ ++ Return 0 on success, -1 on failure. */ ++ ++static int ++do_printf_flags (char *fmt, size_t idx, const char *l, char c, type_t val) ++{ ++ bool do_prec = strchr (PREC_FORMATS, c) != NULL; ++ size_t i; ++ ++ if (do_printf (fmt, idx, NULL, false, NULL, l, c, val) < 0) ++ return -1; ++ if (do_prec && do_printf (fmt, idx, NULL, true, NULL, l, c, val) < 0) ++ return -1; ++ for (i = 0; i < array_length (wp); i++) ++ { ++ size_t j; ++ ++ if (do_prec && do_printf (fmt, idx, NULL, true, wp + i, l, c, val) < 0) ++ return -1; ++ /* Inline '0' is a flag rather than width and is handled elsewhere. */ ++ if (wp[i].s != NULL && wp[i].s[0] == '0' && wp[i].s[1] == '\0') ++ continue; ++ if (do_printf (fmt, idx, wp + i, false, NULL, l, c, val) < 0) ++ return -1; ++ if (do_prec) ++ { ++ if (do_printf (fmt, idx, wp + i, true, NULL, l, c, val) < 0) ++ return -1; ++ for (j = 0; j < array_length (wp); j++) ++ if (do_printf (fmt, idx, wp + i, true, wp + j, l, c, val) < 0) ++ return -1; ++ } ++ } ++ return 0; ++} ++ ++/* Produce a list of records using the formatted output specifier ++ supplied in ARGV[1] preceded by any length modifier supplied in ++ the global LENGTH variable, iterating over format flags defined ++ in the global FLAGS array, and values supplied in the global VALS ++ array. Note that the output specifier supplied is not verified ++ against TYPE_T, so undefined behavior will result if this is used ++ incorrectly. ++ ++ If PREC is nonzero, then this record: ++ ++ prec: ++ ++ is produced at the beginning. Then for each VAL from VALS a block ++ of records is produced starting with: ++ ++ val: ++ ++ where VAL is formatted according to REF_FMT output format. The ++ block continues with records as shown with DO_PRINTF above using ++ flags iterated over according to TST_PRINTF_DUPS. ++ ++ See the top of this file for the definitions that have to be ++ provided by the source including this skeleton. */ ++ ++static int ++do_test (int argc, char *argv[]) ++{ ++ char fmt[100] = {'%'}; ++ size_t j; ++ size_t v; ++ char c; ++ ++ if (argc < 2 || *argv[1] == '\0') ++ { ++ fprintf (stderr, "Usage: %s \n", basename (argv[0])); ++ return EXIT_FAILURE; ++ } ++ ++ mtrace (); ++ ++ if (PREC && printf ("prec:%i\n", PREC) < 0) ++ { ++ perror ("printf"); ++ return EXIT_FAILURE; ++ } ++ ++ c = *argv[1]; ++ for (v = 0; v < array_length (vals); v++) ++ { ++ if (printf ("val:%" REF_FMT "\n", REF_VAL (vals[v])) < 0) ++ { ++ perror ("printf"); ++ return EXIT_FAILURE; ++ } ++ ++ if (do_printf_flags (fmt, 1, length, c, vals[v]) < 0) ++ return EXIT_FAILURE; ++ for (j = 0; j < array_length (flags); j++) ++ { ++ bool done = false; ++ size_t i[j + 1]; ++ size_t k; ++ ++ memset (i, 0, sizeof (i)); ++ while (!done) ++ { ++ bool skip = false; ++ size_t idx = 1; ++ char f; ++ ++ for (k = 0; k <= j; k++) ++ { ++ const char *s = flags[i[k]].s; ++ ++ if (s && strchr (s, c) == NULL) ++ skip = true; ++ if (!TST_PRINTF_DUPS && j > 1 && k > 0 && i[k] >= i[k - 1]) ++ skip = true; ++ if (skip) ++ break; ++ ++ f = flags[i[k]].f; ++ fmt[idx++] = f; ++ } ++ if (!skip && do_printf_flags (fmt, idx, length, c, vals[v]) < 0) ++ return EXIT_FAILURE; ++ for (k = 0; k <= j; k++) ++ { ++ i[k]++; ++ if (i[k] < array_length (flags)) ++ break; ++ else if (k == j) ++ done = true; ++ else ++ i[k] = 0; ++ } ++ } ++ } ++ } ++ ++ return EXIT_SUCCESS; ++} ++ ++/* Interpose 'dladdr' with a stub to speed up malloc tracing. */ ++ ++int ++dladdr (const void *, Dl_info *) ++{ ++ return 0; ++} ++ ++#define TEST_FUNCTION_ARGV do_test ++#include +diff --git a/stdio-common/tst-printf-format-uchar.sh b/stdio-common/tst-printf-format-uchar.sh +new file mode 100644 +index 0000000000000000..8385d479cccf597f +--- /dev/null ++++ b/stdio-common/tst-printf-format-uchar.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of unsigned char printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-uchar $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-uint.sh b/stdio-common/tst-printf-format-uint.sh +new file mode 100644 +index 0000000000000000..6806c99ce0470f1a +--- /dev/null ++++ b/stdio-common/tst-printf-format-uint.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of unsigned int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="4294967295" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-uint $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ullong.sh b/stdio-common/tst-printf-format-ullong.sh +new file mode 100644 +index 0000000000000000..c4fa69c2d16f85ce +--- /dev/null ++++ b/stdio-common/tst-printf-format-ullong.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of unsigned long long int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="18446744073709551615" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ullong $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ulong.sh b/stdio-common/tst-printf-format-ulong.sh +new file mode 100644 +index 0000000000000000..fce881afe3c0be72 +--- /dev/null ++++ b/stdio-common/tst-printf-format-ulong.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of unsigned long int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="18446744073709551615" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ulong $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ushort.sh b/stdio-common/tst-printf-format-ushort.sh +new file mode 100644 +index 0000000000000000..2f411b777e67e220 +--- /dev/null ++++ b/stdio-common/tst-printf-format-ushort.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of unsigned short int printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ushort $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format.awk b/stdio-common/tst-printf-format.awk +new file mode 100644 +index 0000000000000000..8b4bc7b1e45202eb +--- /dev/null ++++ b/stdio-common/tst-printf-format.awk +@@ -0,0 +1,127 @@ ++# Testing of printf conversions. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++BEGIN { ++ FS = ":" ++} ++ ++/^prec:/ { ++ PREC = $2 ++ next ++} ++ ++/^val:/ { ++ val = $2 ++ # Prepend "+" for +Inf or +NaN value lacking a sign, because gawk ++ # interpretes them as strings rather than numeric values in the ++ # non-bignum mode unless a sign has been explicitly given. Keep ++ # original 'val' for reporting. ++ value = gensub(/^(INF|NAN|inf|nan)/, "+\\1", 1, val) ++ next ++} ++ ++/^%/ { ++ # Discard the trailing empty field, used to improve legibility of data. ++ input = $--NF ++ format = $1 ++ width = $2 ++ precision = "." $(NF - 1) ++ # Discard any negative precision, which is to be taken as if omitted. ++ sub(/\.-.*/, "", precision) ++ # Simplify handling and paste the precision and width specified as ++ # arguments to '*' directly into the format. ++ sub(/\.\*/, precision, format) ++ sub(/\*/, width, format) ++ # Discard length modifiers. They are only relevant to C data types. ++ sub(/([DHLjhltz]|wf?[1-9][0-9]*)/, "", format) ++ # Discard the '#' flag with the octal conversion if output starts with ++ # 0 in the absence of this flag. In that case no extra 0 is supposed ++ # to be produced, but gawk prepends it anyway. ++ if (format ~ /#.*o/) ++ { ++ tmpfmt = gensub(/#/, "", "g", format) ++ tmpout = sprintf(tmpfmt, value) ++ if (tmpout ~ /^ *0/) ++ format = tmpfmt ++ } ++ # Likewise with the hexadecimal conversion where zero value with the ++ # precision of zero is supposed to produce no characters, but gawk ++ # outputs 0 instead. ++ else if (format ~ /#.*[Xx]/) ++ { ++ tmpfmt = gensub(/#/, "", "g", format) ++ tmpout = sprintf(tmpfmt, value) ++ if (tmpout ~ /^ *$/) ++ format = tmpfmt ++ } ++ # AWK interpretes input opportunistically as a number, which interferes ++ # with how the 'c' conversion works: "a" input will result in "a" output ++ # however "0" input will result in "^@" output rather than "0". Force ++ # the value to be interpreted as a string then, by appending "". ++ output = sprintf(format, value "") ++ # Make up for various anomalies with the handling of +/-Inf and +/-NaN ++ # values and reprint the output produced using the string conversion, ++ # with the field width carried over and the relevant flags handled by ++ # hand. ++ if (format ~ /[EFGefg]/ && value ~ /(INF|NAN|inf|nan)/) ++ { ++ minus = format ~ /-/ ? "-" : "" ++ sign = value ~ /-/ ? "-" : format ~ /\+/ ? "+" : format ~ / / ? " " : "" ++ if (format ~ /^%[^\.1-9]*[1-9][0-9]*/) ++ width = gensub(/^%[^\.1-9]*([1-9][0-9]*).*$/, "\\1", 1, format) ++ else ++ width = "" ++ output = gensub(/[-+ ]/, "", "g", output) ++ output = sprintf("%" minus width "s", sign output) ++ } ++ # Produce "+" where the '+' flag has been used with a signed integer ++ # conversion for zero value, observing any field width in effect. ++ # In that case "+" is always supposed to be produced, but with the ++ # precision of zero gawk in the non-bignum mode produces any padding ++ # requested only. ++ else if (format ~ /\+.*[di]/ && value == 0) ++ { ++ output = gensub(/^( *) $/, format ~ /-/ ? "+\\1" : "\\1+", 1, output) ++ output = gensub(/^$/, "+", 1, output) ++ } ++ # Produce " " where the space flag has been used with a signed integer ++ # conversion for zero value. In that case at least one " " is ++ # supposed to be produced, but with the precision of zero gawk in the ++ # non-bignum mode produces nothing. ++ else if (format ~ / .*[di]/ && value == 0) ++ { ++ output = gensub(/^$/, " ", 1, output) ++ } ++ if (output != input) ++ { ++ printf "(\"%s\"%s%s, %s) => \"%s\", expected \"%s\"\n", \ ++ $1, (NF > 2 ? ", " $2 : ""), (NF > 3 ? ", " $3 : ""), val, \ ++ input, output > "/dev/stderr" ++ status = 1 ++ } ++ next ++} ++ ++{ ++ printf "unrecognized input: \"%s\"\n", $0 > "/dev/stderr" ++ status = 1 ++} ++ ++END { ++ exit status ++} +diff --git a/stdio-common/tst-printf-format.sh b/stdio-common/tst-printf-format.sh +new file mode 100644 +index 0000000000000000..466c4a5f4feac231 +--- /dev/null ++++ b/stdio-common/tst-printf-format.sh +@@ -0,0 +1,39 @@ ++#!/bin/bash ++# Formatted printf output test script dispatcher. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++set -e ++ ++output=${1##*/}; shift ++ ++tmp=${output#tst-printf-format-} ++tmp=${tmp%.out} ++ ++# We are given the name of the make target in $1. With the common prefix ++# and suffix both removed we are left with the inner part, which encodes ++# the function under test, the conversion type, and optionally the format ++# specifier, all separated with hyphens, i.e. F-T-S or F-T. Extract them ++# and call the script corresponding to the conversion type, passing the ++# function under test and any format specifier as arguments. ++ ++xprintf=${tmp%%-*}; tmp=${tmp#*-} ++conv=${tmp%%-*}; tmp=${tmp#${conv}} ++fmt=${tmp#*-} ++script=tst-printf-format-$conv.sh ++ ++exec ${BASH:-bash} $script $xprintf $fmt "$@" diff --git a/SOURCES/glibc-RHEL-46725-10.patch b/SOURCES/glibc-RHEL-46725-10.patch new file mode 100644 index 0000000..95d1f17 --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-10.patch @@ -0,0 +1,428 @@ +commit 6018ba05c01b1e17d77742a123e8c443f8fc713c +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vfprintf output specifiers + + Wire vfprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 437acef216b04237..dc825f415af283ad 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas vd ++xprintf-funcs := p as d f s sn v vas vd vf + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vf-c.c b/stdio-common/tst-printf-format-vf-c.c +new file mode 100644 +index 0000000000000000..b31b551327bb4ebe +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vf-char.c b/stdio-common/tst-printf-format-vf-char.c +new file mode 100644 +index 0000000000000000..daa2886adb9f1636 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vf-double.c b/stdio-common/tst-printf-format-vf-double.c +new file mode 100644 +index 0000000000000000..63ec8c0cae6c272e +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vf-int.c b/stdio-common/tst-printf-format-vf-int.c +new file mode 100644 +index 0000000000000000..e687099b1052d040 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vf-ldouble.c b/stdio-common/tst-printf-format-vf-ldouble.c +new file mode 100644 +index 0000000000000000..801e359dab8ca159 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vf-llong.c b/stdio-common/tst-printf-format-vf-llong.c +new file mode 100644 +index 0000000000000000..a1b9ae340c4aa5ff +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vf-long.c b/stdio-common/tst-printf-format-vf-long.c +new file mode 100644 +index 0000000000000000..7afc127b844d1e10 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vf-s.c b/stdio-common/tst-printf-format-vf-s.c +new file mode 100644 +index 0000000000000000..6faa6d0dfe4b4132 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vf-short.c b/stdio-common/tst-printf-format-vf-short.c +new file mode 100644 +index 0000000000000000..c3d17ca501974f83 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vf-uchar.c b/stdio-common/tst-printf-format-vf-uchar.c +new file mode 100644 +index 0000000000000000..643438c693abf51f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vf-uint.c b/stdio-common/tst-printf-format-vf-uint.c +new file mode 100644 +index 0000000000000000..844192cc9ccf5db8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vf-ullong.c b/stdio-common/tst-printf-format-vf-ullong.c +new file mode 100644 +index 0000000000000000..ab58abd7f8c4e267 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vf-ulong.c b/stdio-common/tst-printf-format-vf-ulong.c +new file mode 100644 +index 0000000000000000..e76251f9d0e3337f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vf-ushort.c b/stdio-common/tst-printf-format-vf-ushort.c +new file mode 100644 +index 0000000000000000..bf78a919a6599054 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vf.h b/stdio-common/tst-printf-format-vf.h +new file mode 100644 +index 0000000000000000..f824364f4c041ab8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf.h +@@ -0,0 +1,34 @@ ++/* Test feature wrapper for formatted 'vfprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vfprintf (stdout, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ perror ("vfprintf"); ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46725-11.patch b/SOURCES/glibc-RHEL-46725-11.patch new file mode 100644 index 0000000..dc87993 --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-11.patch @@ -0,0 +1,458 @@ +commit ac72dd90905e1693c108c9f36f0c7e79d6ad5501 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vsprintf output specifiers + + Wire vsprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index dc825f415af283ad..f0c414427ab109c7 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas vd vf ++xprintf-funcs := p as d f s sn v vas vd vf vs + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vs-c.c b/stdio-common/tst-printf-format-vs-c.c +new file mode 100644 +index 0000000000000000..72bcb5f04957c4ef +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vs-char.c b/stdio-common/tst-printf-format-vs-char.c +new file mode 100644 +index 0000000000000000..30135cf1be1616ac +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vs-double.c b/stdio-common/tst-printf-format-vs-double.c +new file mode 100644 +index 0000000000000000..56290d383ebc33c8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vs-int.c b/stdio-common/tst-printf-format-vs-int.c +new file mode 100644 +index 0000000000000000..f954e1f4f8277c64 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vs-ldouble.c b/stdio-common/tst-printf-format-vs-ldouble.c +new file mode 100644 +index 0000000000000000..3088e42813abd537 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vs-llong.c b/stdio-common/tst-printf-format-vs-llong.c +new file mode 100644 +index 0000000000000000..348ec2c3d73b8f88 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vs-long.c b/stdio-common/tst-printf-format-vs-long.c +new file mode 100644 +index 0000000000000000..874e3ba479eda8fb +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vs-s.c b/stdio-common/tst-printf-format-vs-s.c +new file mode 100644 +index 0000000000000000..051f1b79bf2cb028 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vs-short.c b/stdio-common/tst-printf-format-vs-short.c +new file mode 100644 +index 0000000000000000..36595a82b445e8a3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vs-uchar.c b/stdio-common/tst-printf-format-vs-uchar.c +new file mode 100644 +index 0000000000000000..8e35614110bd7d57 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vs-uint.c b/stdio-common/tst-printf-format-vs-uint.c +new file mode 100644 +index 0000000000000000..4a13d6c409ad4245 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vs-ullong.c b/stdio-common/tst-printf-format-vs-ullong.c +new file mode 100644 +index 0000000000000000..313dfaf02bda3059 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vs-ulong.c b/stdio-common/tst-printf-format-vs-ulong.c +new file mode 100644 +index 0000000000000000..5ab7e2e7fe9b237a +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vs-ushort.c b/stdio-common/tst-printf-format-vs-ushort.c +new file mode 100644 +index 0000000000000000..a4af138a2f8485ab +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vs.h b/stdio-common/tst-printf-format-vs.h +new file mode 100644 +index 0000000000000000..e00e1b085bc58150 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs.h +@@ -0,0 +1,64 @@ ++/* Test feature wrapper for formatted 'vsprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ char *str = ntf.buffer; ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vsprintf (str, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vsprintf"); ++ goto out; ++ } ++ if (fwrite (str, sizeof (*str), result, stdout) != result) ++ { ++ perror ("fwrite"); ++ result = -1; ++ } ++out: ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46725-12.patch b/SOURCES/glibc-RHEL-46725-12.patch new file mode 100644 index 0000000..4017bda --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-12.patch @@ -0,0 +1,458 @@ +commit 11a2169e4066e6b848f1e6e4c31ec4e2210cecd8 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vsnprintf output specifiers + + Wire vsnprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index f0c414427ab109c7..905a5a510f1e5bc6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas vd vf vs ++xprintf-funcs := p as d f s sn v vas vd vf vs vsn + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vsn-c.c b/stdio-common/tst-printf-format-vsn-c.c +new file mode 100644 +index 0000000000000000..47c8a0f5dfbddb49 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vsn-char.c b/stdio-common/tst-printf-format-vsn-char.c +new file mode 100644 +index 0000000000000000..48d4393a46d80e33 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vsn-double.c b/stdio-common/tst-printf-format-vsn-double.c +new file mode 100644 +index 0000000000000000..06c1003fb5fde4b0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vsn-int.c b/stdio-common/tst-printf-format-vsn-int.c +new file mode 100644 +index 0000000000000000..2aae92616f2f6007 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vsn-ldouble.c b/stdio-common/tst-printf-format-vsn-ldouble.c +new file mode 100644 +index 0000000000000000..0b5aafb124307526 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vsn-llong.c b/stdio-common/tst-printf-format-vsn-llong.c +new file mode 100644 +index 0000000000000000..8e79b8384f6858c6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vsn-long.c b/stdio-common/tst-printf-format-vsn-long.c +new file mode 100644 +index 0000000000000000..e94f7dec23ece2ca +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vsn-s.c b/stdio-common/tst-printf-format-vsn-s.c +new file mode 100644 +index 0000000000000000..efd8a4c23f5f42e6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vsn-short.c b/stdio-common/tst-printf-format-vsn-short.c +new file mode 100644 +index 0000000000000000..3d375b59e7a990f0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vsn-uchar.c b/stdio-common/tst-printf-format-vsn-uchar.c +new file mode 100644 +index 0000000000000000..6d0f396481d3e2d6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vsn-uint.c b/stdio-common/tst-printf-format-vsn-uint.c +new file mode 100644 +index 0000000000000000..b637f7bdb11f7913 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vsn-ullong.c b/stdio-common/tst-printf-format-vsn-ullong.c +new file mode 100644 +index 0000000000000000..d2442715f087acaf +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vsn-ulong.c b/stdio-common/tst-printf-format-vsn-ulong.c +new file mode 100644 +index 0000000000000000..67417d174043a605 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vsn-ushort.c b/stdio-common/tst-printf-format-vsn-ushort.c +new file mode 100644 +index 0000000000000000..396ea43ae7067c86 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vsn.h b/stdio-common/tst-printf-format-vsn.h +new file mode 100644 +index 0000000000000000..4f25f1af767dc221 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn.h +@@ -0,0 +1,64 @@ ++/* Test feature wrapper for formatted 'vsnprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ char *str = ntf.buffer; ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vsnprintf (str, ntf.length, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vsnprintf"); ++ goto out; ++ } ++ if (fwrite (str, sizeof (*str), result, stdout) != result) ++ { ++ perror ("fwrite"); ++ result = -1; ++ } ++out: ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46725-2.patch b/SOURCES/glibc-RHEL-46725-2.patch new file mode 100644 index 0000000..03f480f --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-2.patch @@ -0,0 +1,459 @@ +commit b350a60b6ecd77b7ec30c7969de1df8b73642e55 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted asprintf output specifiers + + Wire asprintf into test infrastructure for formatted printf output + specifiers. + + Owing to mtrace logging of lots of memory allocation calls these tests + take a considerable amount of time to complete, except for the character + conversion, taking from 00m20s for 'tst-printf-format-as-s --direct s', + through 01m10s and 03m53s for 'tst-printf-format-as-char --direct i' and + 'tst-printf-format-as-double --direct f' respectively, to 19m24s for + 'tst-printf-format-as-ldouble --direct f', all in standalone execution + from NFS on a RISC-V FU740@1.2GHz system and with output redirected over + 100Mbps network via SSH. It is with the skeleton's stub implementation + of dladdr(3); execution times with regular dladdr(3) are up to over + twice longer. + + Set timeouts for the tests accordingly then, with a global default for + all the asprintf tests, and then individual higher settings for double + and long double tests each. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 0a45dcb4f45c0a5d..da279a969f7a8785 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p ++xprintf-funcs := p as + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-as-c.c b/stdio-common/tst-printf-format-as-c.c +new file mode 100644 +index 0000000000000000..9eaf7aec73201b4d +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-as-char.c b/stdio-common/tst-printf-format-as-char.c +new file mode 100644 +index 0000000000000000..d9266d5760fb8808 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-as-double.c b/stdio-common/tst-printf-format-as-double.c +new file mode 100644 +index 0000000000000000..370ce8c11bd94fe8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'asprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 32) ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-as-int.c b/stdio-common/tst-printf-format-as-int.c +new file mode 100644 +index 0000000000000000..e6e10a9769f079a4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-as-ldouble.c b/stdio-common/tst-printf-format-as-ldouble.c +new file mode 100644 +index 0000000000000000..e7f72208cec76078 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'asprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 128) ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-as-llong.c b/stdio-common/tst-printf-format-as-llong.c +new file mode 100644 +index 0000000000000000..beaad73c235c344e +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-as-long.c b/stdio-common/tst-printf-format-as-long.c +new file mode 100644 +index 0000000000000000..7d968a873c3b5e29 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-as-s.c b/stdio-common/tst-printf-format-as-s.c +new file mode 100644 +index 0000000000000000..baa883d5316cbf2f +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-as-short.c b/stdio-common/tst-printf-format-as-short.c +new file mode 100644 +index 0000000000000000..8d0b078815f299a6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-as-uchar.c b/stdio-common/tst-printf-format-as-uchar.c +new file mode 100644 +index 0000000000000000..8e46254a2f32b457 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-as-uint.c b/stdio-common/tst-printf-format-as-uint.c +new file mode 100644 +index 0000000000000000..8cf38d71a2f53358 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-as-ullong.c b/stdio-common/tst-printf-format-as-ullong.c +new file mode 100644 +index 0000000000000000..30b31ed8f7b36ae1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-as-ulong.c b/stdio-common/tst-printf-format-as-ulong.c +new file mode 100644 +index 0000000000000000..9b108aa2b5132686 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-as-ushort.c b/stdio-common/tst-printf-format-as-ushort.c +new file mode 100644 +index 0000000000000000..44b912fc38c46d28 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-as.h b/stdio-common/tst-printf-format-as.h +new file mode 100644 +index 0000000000000000..c30d2e2c42822f24 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as.h +@@ -0,0 +1,46 @@ ++/* Test feature wrapper for formatted 'asprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ int result; \ ++ char *str; \ ++ \ ++ result = asprintf (&str, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("asprintf"); \ ++ goto out; \ ++ } \ ++ if (fwrite (str, sizeof (*str), result, stdout) != result) \ ++ { \ ++ perror ("fwrite"); \ ++ result = -1; \ ++ } \ ++ free (str); \ ++out: \ ++ result; \ ++}) ++ ++#ifndef TIMEOUT ++# define TIMEOUT (DEFAULT_TIMEOUT * 12) ++#endif diff --git a/SOURCES/glibc-RHEL-46725-3.patch b/SOURCES/glibc-RHEL-46725-3.patch new file mode 100644 index 0000000..3312e21 --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-3.patch @@ -0,0 +1,452 @@ +commit b3e8a756ad569fd31181b74b3729d29df3eb55f3 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted dprintf output specifiers + + Wire dprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index da279a969f7a8785..2bc830597085678a 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as ++xprintf-funcs := p as d + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-d-c.c b/stdio-common/tst-printf-format-d-c.c +new file mode 100644 +index 0000000000000000..61fd06654d2a957e +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-d-char.c b/stdio-common/tst-printf-format-d-char.c +new file mode 100644 +index 0000000000000000..baa6e1683e923841 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-d-double.c b/stdio-common/tst-printf-format-d-double.c +new file mode 100644 +index 0000000000000000..e432a9570d46e776 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-d-int.c b/stdio-common/tst-printf-format-d-int.c +new file mode 100644 +index 0000000000000000..6d59b23517b54a85 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-d-ldouble.c b/stdio-common/tst-printf-format-d-ldouble.c +new file mode 100644 +index 0000000000000000..67a2bae1bc4e0301 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-d-llong.c b/stdio-common/tst-printf-format-d-llong.c +new file mode 100644 +index 0000000000000000..950a2b84b9fc1abc +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-d-long.c b/stdio-common/tst-printf-format-d-long.c +new file mode 100644 +index 0000000000000000..4fabb41b0b013011 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-d-s.c b/stdio-common/tst-printf-format-d-s.c +new file mode 100644 +index 0000000000000000..1ef896e6e7d146bc +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-d-short.c b/stdio-common/tst-printf-format-d-short.c +new file mode 100644 +index 0000000000000000..17767bb30d2f0d3e +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-d-uchar.c b/stdio-common/tst-printf-format-d-uchar.c +new file mode 100644 +index 0000000000000000..732479ecab2cdc4e +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-d-uint.c b/stdio-common/tst-printf-format-d-uint.c +new file mode 100644 +index 0000000000000000..5b68aec803f653ac +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-d-ullong.c b/stdio-common/tst-printf-format-d-ullong.c +new file mode 100644 +index 0000000000000000..0e20a1dccd58e84b +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-d-ulong.c b/stdio-common/tst-printf-format-d-ulong.c +new file mode 100644 +index 0000000000000000..62085ace806b6d33 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-d-ushort.c b/stdio-common/tst-printf-format-d-ushort.c +new file mode 100644 +index 0000000000000000..7d8ef76d60b70e2d +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-d.h b/stdio-common/tst-printf-format-d.h +new file mode 100644 +index 0000000000000000..af7f26c17bde88ea +--- /dev/null ++++ b/stdio-common/tst-printf-format-d.h +@@ -0,0 +1,58 @@ ++/* Test feature wrapper for formatted 'dprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* We need to go through the POSIX-mandated dance to switch between ++ handles on an open file description. */ ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ int result; \ ++ \ ++ result = fflush (stdout); \ ++ if (result == EOF) \ ++ { \ ++ perror ("fflush"); \ ++ goto out; \ ++ } \ ++ result = lseek (STDOUT_FILENO, 0, SEEK_END); \ ++ if (result < 0 && errno == ESPIPE) \ ++ result = 0; \ ++ if (result < 0) \ ++ { \ ++ perror ("lseek"); \ ++ goto out; \ ++ } \ ++ result = dprintf (STDOUT_FILENO, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("dprintf"); \ ++ goto out; \ ++ } \ ++ result = fseek (stdout, 0, SEEK_END); \ ++ if (result < 0 && errno == ESPIPE) \ ++ result = 0; \ ++ if (result < 0) \ ++ perror ("fseek"); \ ++out: \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-46725-4.patch b/SOURCES/glibc-RHEL-46725-4.patch new file mode 100644 index 0000000..5a69126 --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-4.patch @@ -0,0 +1,423 @@ +commit 1dc5cdc3da19e10d47e50a5ea2ea3ce62ee2fa82 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted fprintf output specifiers + + Wire fprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 2bc830597085678a..3a812073784fa3b6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d ++xprintf-funcs := p as d f + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-f-c.c b/stdio-common/tst-printf-format-f-c.c +new file mode 100644 +index 0000000000000000..1db9e2b5f3bb2d32 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-f-char.c b/stdio-common/tst-printf-format-f-char.c +new file mode 100644 +index 0000000000000000..a492f318620bc82e +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-f-double.c b/stdio-common/tst-printf-format-f-double.c +new file mode 100644 +index 0000000000000000..906ef0b90b9e7d1d +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-f-int.c b/stdio-common/tst-printf-format-f-int.c +new file mode 100644 +index 0000000000000000..92dc0c919771ae26 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-f-ldouble.c b/stdio-common/tst-printf-format-f-ldouble.c +new file mode 100644 +index 0000000000000000..0a0c88d64c873061 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-f-llong.c b/stdio-common/tst-printf-format-f-llong.c +new file mode 100644 +index 0000000000000000..ceb8d035faaf0a12 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-f-long.c b/stdio-common/tst-printf-format-f-long.c +new file mode 100644 +index 0000000000000000..a4a5dca5ebd7b3a4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-f-s.c b/stdio-common/tst-printf-format-f-s.c +new file mode 100644 +index 0000000000000000..da0e0f8bacab6992 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-f-short.c b/stdio-common/tst-printf-format-f-short.c +new file mode 100644 +index 0000000000000000..3abd134d0aeeef87 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-f-uchar.c b/stdio-common/tst-printf-format-f-uchar.c +new file mode 100644 +index 0000000000000000..f104cde37b322b60 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-f-uint.c b/stdio-common/tst-printf-format-f-uint.c +new file mode 100644 +index 0000000000000000..0e1fdb4b367032a2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-f-ullong.c b/stdio-common/tst-printf-format-f-ullong.c +new file mode 100644 +index 0000000000000000..b4669fcbb7dd3282 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-f-ulong.c b/stdio-common/tst-printf-format-f-ulong.c +new file mode 100644 +index 0000000000000000..3f4f900362a153b5 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-f-ushort.c b/stdio-common/tst-printf-format-f-ushort.c +new file mode 100644 +index 0000000000000000..d49c2371403e20a6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-f.h b/stdio-common/tst-printf-format-f.h +new file mode 100644 +index 0000000000000000..efb3283a032f44a7 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'fprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define printf_under_test(...) \ ++({ \ ++ int result; \ ++ \ ++ result = fprintf (stdout, __VA_ARGS__); \ ++ if (result < 0) \ ++ perror ("fprintf"); \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-46725-5.patch b/SOURCES/glibc-RHEL-46725-5.patch new file mode 100644 index 0000000..411003a --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-5.patch @@ -0,0 +1,454 @@ +commit c683ac8520e8064e7be3a22922d80849271290ac +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted sprintf output specifiers + + Wire sprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 3a812073784fa3b6..7522cd76cc26a3a5 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f ++xprintf-funcs := p as d f s + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-s-c.c b/stdio-common/tst-printf-format-s-c.c +new file mode 100644 +index 0000000000000000..87dad077b9c05216 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-s-char.c b/stdio-common/tst-printf-format-s-char.c +new file mode 100644 +index 0000000000000000..f67ac94a5dd70cf4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-s-double.c b/stdio-common/tst-printf-format-s-double.c +new file mode 100644 +index 0000000000000000..16186b5dc55eabaf +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-s-int.c b/stdio-common/tst-printf-format-s-int.c +new file mode 100644 +index 0000000000000000..2ed7b2df471cd96d +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-s-ldouble.c b/stdio-common/tst-printf-format-s-ldouble.c +new file mode 100644 +index 0000000000000000..0362cc50f78ffdfa +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-s-llong.c b/stdio-common/tst-printf-format-s-llong.c +new file mode 100644 +index 0000000000000000..b49f84998a7e7ca2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-s-long.c b/stdio-common/tst-printf-format-s-long.c +new file mode 100644 +index 0000000000000000..49224d7f29d7e65c +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-s-s.c b/stdio-common/tst-printf-format-s-s.c +new file mode 100644 +index 0000000000000000..3a400f8907895db0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-s-short.c b/stdio-common/tst-printf-format-s-short.c +new file mode 100644 +index 0000000000000000..c98a808cff51c52a +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-s-uchar.c b/stdio-common/tst-printf-format-s-uchar.c +new file mode 100644 +index 0000000000000000..befc36894975a9a1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-s-uint.c b/stdio-common/tst-printf-format-s-uint.c +new file mode 100644 +index 0000000000000000..f3a4c49632a3be07 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-s-ullong.c b/stdio-common/tst-printf-format-s-ullong.c +new file mode 100644 +index 0000000000000000..4ce559037921e01f +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-s-ulong.c b/stdio-common/tst-printf-format-s-ulong.c +new file mode 100644 +index 0000000000000000..81f9eea893c194d2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-s-ushort.c b/stdio-common/tst-printf-format-s-ushort.c +new file mode 100644 +index 0000000000000000..4b1cca6e6cf6b342 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-s.h b/stdio-common/tst-printf-format-s.h +new file mode 100644 +index 0000000000000000..7d1e72cffb7b20fb +--- /dev/null ++++ b/stdio-common/tst-printf-format-s.h +@@ -0,0 +1,60 @@ ++/* Test feature wrapper for formatted 'sprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ char *str = ntf.buffer; \ ++ int result; \ ++ \ ++ result = sprintf (str, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("sprintf"); \ ++ goto out; \ ++ } \ ++ if (fwrite (str, sizeof (*str), result, stdout) != result) \ ++ { \ ++ perror ("fwrite"); \ ++ result = -1; \ ++ } \ ++out: \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-46725-6.patch b/SOURCES/glibc-RHEL-46725-6.patch new file mode 100644 index 0000000..6d13904 --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-6.patch @@ -0,0 +1,454 @@ +commit 0b6379cb98590c28088f017ddcc0edb8ad7d0131 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted snprintf output specifiers + + Wire snprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 7522cd76cc26a3a5..88b89ce13ffbadc4 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s ++xprintf-funcs := p as d f s sn + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-sn-c.c b/stdio-common/tst-printf-format-sn-c.c +new file mode 100644 +index 0000000000000000..59f51d635bc46d28 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-sn-char.c b/stdio-common/tst-printf-format-sn-char.c +new file mode 100644 +index 0000000000000000..8b682dd2d52f04d2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-sn-double.c b/stdio-common/tst-printf-format-sn-double.c +new file mode 100644 +index 0000000000000000..4719a58d84bda809 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-sn-int.c b/stdio-common/tst-printf-format-sn-int.c +new file mode 100644 +index 0000000000000000..94c42f246fc8ce49 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-sn-ldouble.c b/stdio-common/tst-printf-format-sn-ldouble.c +new file mode 100644 +index 0000000000000000..921f3ffe3b79a05d +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-sn-llong.c b/stdio-common/tst-printf-format-sn-llong.c +new file mode 100644 +index 0000000000000000..013552791e087d0c +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-sn-long.c b/stdio-common/tst-printf-format-sn-long.c +new file mode 100644 +index 0000000000000000..58c8912746c1108b +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-sn-s.c b/stdio-common/tst-printf-format-sn-s.c +new file mode 100644 +index 0000000000000000..aa3f170c14790926 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-sn-short.c b/stdio-common/tst-printf-format-sn-short.c +new file mode 100644 +index 0000000000000000..f7baa1211d16e203 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-sn-uchar.c b/stdio-common/tst-printf-format-sn-uchar.c +new file mode 100644 +index 0000000000000000..6ae5f121bd76ab9d +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-sn-uint.c b/stdio-common/tst-printf-format-sn-uint.c +new file mode 100644 +index 0000000000000000..f0a0c3063f89781a +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-sn-ullong.c b/stdio-common/tst-printf-format-sn-ullong.c +new file mode 100644 +index 0000000000000000..0dc0a50c4f2362a2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-sn-ulong.c b/stdio-common/tst-printf-format-sn-ulong.c +new file mode 100644 +index 0000000000000000..23ff5a27d7c25c34 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-sn-ushort.c b/stdio-common/tst-printf-format-sn-ushort.c +new file mode 100644 +index 0000000000000000..1c5cffbeb414048e +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-sn.h b/stdio-common/tst-printf-format-sn.h +new file mode 100644 +index 0000000000000000..ec2645bf57da8bbb +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn.h +@@ -0,0 +1,60 @@ ++/* Test feature wrapper for formatted 'snprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ char *str = ntf.buffer; \ ++ int result; \ ++ \ ++ result = snprintf (str, ntf.length, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("snprintf"); \ ++ goto out; \ ++ } \ ++ if (fwrite (str, sizeof (*str), result, stdout) != result) \ ++ { \ ++ perror ("fwrite"); \ ++ result = -1; \ ++ } \ ++out: \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-46725-7.patch b/SOURCES/glibc-RHEL-46725-7.patch new file mode 100644 index 0000000..d4ff4ba --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-7.patch @@ -0,0 +1,428 @@ +commit bad554d9b4f10988eb7fdb814fbaa5e89416d781 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vprintf output specifiers + + Wire vprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 88b89ce13ffbadc4..fd34891ea439c684 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn ++xprintf-funcs := p as d f s sn v + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-v-c.c b/stdio-common/tst-printf-format-v-c.c +new file mode 100644 +index 0000000000000000..94aa3042aaee6d97 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-v-char.c b/stdio-common/tst-printf-format-v-char.c +new file mode 100644 +index 0000000000000000..c813d81e53956295 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-v-double.c b/stdio-common/tst-printf-format-v-double.c +new file mode 100644 +index 0000000000000000..90cc1704eb3da2f3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-v-int.c b/stdio-common/tst-printf-format-v-int.c +new file mode 100644 +index 0000000000000000..6529425b263975c8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-v-ldouble.c b/stdio-common/tst-printf-format-v-ldouble.c +new file mode 100644 +index 0000000000000000..813f4a510dc833cc +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-v-llong.c b/stdio-common/tst-printf-format-v-llong.c +new file mode 100644 +index 0000000000000000..270ad08bf5e948fd +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-v-long.c b/stdio-common/tst-printf-format-v-long.c +new file mode 100644 +index 0000000000000000..2f5f653fecb25040 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-v-s.c b/stdio-common/tst-printf-format-v-s.c +new file mode 100644 +index 0000000000000000..ebc253b3e83291f2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-v-short.c b/stdio-common/tst-printf-format-v-short.c +new file mode 100644 +index 0000000000000000..92a59d9fd3972f1e +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-v-uchar.c b/stdio-common/tst-printf-format-v-uchar.c +new file mode 100644 +index 0000000000000000..045ffd2864f8158f +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-v-uint.c b/stdio-common/tst-printf-format-v-uint.c +new file mode 100644 +index 0000000000000000..17b1ce3aa7780209 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-v-ullong.c b/stdio-common/tst-printf-format-v-ullong.c +new file mode 100644 +index 0000000000000000..590b04f339e01cf6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-v-ulong.c b/stdio-common/tst-printf-format-v-ulong.c +new file mode 100644 +index 0000000000000000..6747677a42b38e37 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-v-ushort.c b/stdio-common/tst-printf-format-v-ushort.c +new file mode 100644 +index 0000000000000000..1e782715627f7b77 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-v.h b/stdio-common/tst-printf-format-v.h +new file mode 100644 +index 0000000000000000..711b290b59df8781 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v.h +@@ -0,0 +1,34 @@ ++/* Test feature wrapper for formatted 'vprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vprintf (fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ perror ("vprintf"); ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46725-8.patch b/SOURCES/glibc-RHEL-46725-8.patch new file mode 100644 index 0000000..8f0a2be --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-8.patch @@ -0,0 +1,454 @@ +commit 349670f8093d920d4d683472c88029f6901f7ae7 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vasprintf output specifiers + + Wire vasprintf into test infrastructure for formatted printf output + specifiers. + + Owing to mtrace logging these tests take amounts of time to complete + similar to those of corresponding asprintf tests, so set timeouts for + the tests accordingly, with a global default for all the vasprintf + tests, and then individual higher settings for double and long double + tests each. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index fd34891ea439c684..2675d7741fe496d4 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v ++xprintf-funcs := p as d f s sn v vas + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vas-c.c b/stdio-common/tst-printf-format-vas-c.c +new file mode 100644 +index 0000000000000000..f8cf814c8c3bc293 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vas-char.c b/stdio-common/tst-printf-format-vas-char.c +new file mode 100644 +index 0000000000000000..39c6e73977f3f32f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vas-double.c b/stdio-common/tst-printf-format-vas-double.c +new file mode 100644 +index 0000000000000000..25a21bb0adc2726f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vasprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 32) ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vas-int.c b/stdio-common/tst-printf-format-vas-int.c +new file mode 100644 +index 0000000000000000..9cd70c8fcbae1c03 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vas-ldouble.c b/stdio-common/tst-printf-format-vas-ldouble.c +new file mode 100644 +index 0000000000000000..60c3933fab1b9216 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vasprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 128) ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vas-llong.c b/stdio-common/tst-printf-format-vas-llong.c +new file mode 100644 +index 0000000000000000..5d5322b8b9dfe0a4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vas-long.c b/stdio-common/tst-printf-format-vas-long.c +new file mode 100644 +index 0000000000000000..d9651053f8f14dcd +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vas-s.c b/stdio-common/tst-printf-format-vas-s.c +new file mode 100644 +index 0000000000000000..6d74ab83e3038b44 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vas-short.c b/stdio-common/tst-printf-format-vas-short.c +new file mode 100644 +index 0000000000000000..a6d76a97055fbb89 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vas-uchar.c b/stdio-common/tst-printf-format-vas-uchar.c +new file mode 100644 +index 0000000000000000..c3dee11b7d8092d9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vas-uint.c b/stdio-common/tst-printf-format-vas-uint.c +new file mode 100644 +index 0000000000000000..e56e89374db69c3f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vas-ullong.c b/stdio-common/tst-printf-format-vas-ullong.c +new file mode 100644 +index 0000000000000000..05691bc3181c6d18 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vas-ulong.c b/stdio-common/tst-printf-format-vas-ulong.c +new file mode 100644 +index 0000000000000000..767d9cb6a6ac64a2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vas-ushort.c b/stdio-common/tst-printf-format-vas-ushort.c +new file mode 100644 +index 0000000000000000..284d79f75364504f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vas.h b/stdio-common/tst-printf-format-vas.h +new file mode 100644 +index 0000000000000000..3e38e729ec97ceed +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas.h +@@ -0,0 +1,50 @@ ++/* Test feature wrapper for formatted 'vasprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ char *str; ++ ++ va_start (ap, fmt); ++ result = vasprintf (&str, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vasprintf"); ++ goto out; ++ } ++ if (fwrite (str, sizeof (*str), result, stdout) != result) ++ { ++ perror ("fwrite"); ++ result = -1; ++ } ++ free (str); ++out: ++ return result; ++} ++ ++#ifndef TIMEOUT ++# define TIMEOUT (DEFAULT_TIMEOUT * 12) ++#endif diff --git a/SOURCES/glibc-RHEL-46725-9.patch b/SOURCES/glibc-RHEL-46725-9.patch new file mode 100644 index 0000000..14f90da --- /dev/null +++ b/SOURCES/glibc-RHEL-46725-9.patch @@ -0,0 +1,456 @@ +commit fae4eacae75e4f2767998aca703d6efaae2a747f +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vdprintf output specifiers + + Wire vdprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 2675d7741fe496d4..437acef216b04237 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,7 +23,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas ++xprintf-funcs := p as d f s sn v vas vd + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vd-c.c b/stdio-common/tst-printf-format-vd-c.c +new file mode 100644 +index 0000000000000000..209b1784896a0bfd +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for the 'c' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vd-char.c b/stdio-common/tst-printf-format-vd-char.c +new file mode 100644 +index 0000000000000000..8286b6d5b227e83a +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for signed char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vd-double.c b/stdio-common/tst-printf-format-vd-double.c +new file mode 100644 +index 0000000000000000..e89a2ca5983697ce +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vd-int.c b/stdio-common/tst-printf-format-vd-int.c +new file mode 100644 +index 0000000000000000..598a888b1c937361 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vd-ldouble.c b/stdio-common/tst-printf-format-vd-ldouble.c +new file mode 100644 +index 0000000000000000..d3ada6ff0bcdd9c1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for long double conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vd-llong.c b/stdio-common/tst-printf-format-vd-llong.c +new file mode 100644 +index 0000000000000000..ea6ea7b2157dc0c9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vd-long.c b/stdio-common/tst-printf-format-vd-long.c +new file mode 100644 +index 0000000000000000..4ee1cdacffb4fe77 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vd-s.c b/stdio-common/tst-printf-format-vd-s.c +new file mode 100644 +index 0000000000000000..df7cf9a6fbf04c9b +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for the 's' conversion. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vd-short.c b/stdio-common/tst-printf-format-vd-short.c +new file mode 100644 +index 0000000000000000..87128c8303b57cd8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vd-uchar.c b/stdio-common/tst-printf-format-vd-uchar.c +new file mode 100644 +index 0000000000000000..90dea719471dcb30 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned char conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vd-uint.c b/stdio-common/tst-printf-format-vd-uint.c +new file mode 100644 +index 0000000000000000..feb95dc018ee20fe +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vd-ullong.c b/stdio-common/tst-printf-format-vd-ullong.c +new file mode 100644 +index 0000000000000000..8f62fb0aeeaca3a3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vd-ulong.c b/stdio-common/tst-printf-format-vd-ulong.c +new file mode 100644 +index 0000000000000000..59b2015cd33aaede +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vd-ushort.c b/stdio-common/tst-printf-format-vd-ushort.c +new file mode 100644 +index 0000000000000000..5d096502d9f44959 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vd.h b/stdio-common/tst-printf-format-vd.h +new file mode 100644 +index 0000000000000000..d721edadc6f7786b +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd.h +@@ -0,0 +1,62 @@ ++/* Test feature wrapper for formatted 'vdprintf' output. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* We need to go through the POSIX-mandated dance to switch between ++ handles on an open file description. */ ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ result = fflush (stdout); ++ if (result == EOF) ++ { ++ perror ("fflush"); ++ goto out; ++ } ++ result = lseek (STDOUT_FILENO, 0, SEEK_END); ++ if (result < 0 && errno == ESPIPE) ++ result = 0; ++ if (result < 0) ++ { ++ perror ("lseek"); ++ goto out; ++ } ++ va_start (ap, fmt); ++ result = vdprintf (STDOUT_FILENO, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vdprintf"); ++ goto out; ++ } ++ result = fseek (stdout, 0, SEEK_END); ++ if (result < 0 && errno == ESPIPE) ++ result = 0; ++ if (result < 0) ++ perror ("fseek"); ++out: ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-46728.patch b/SOURCES/glibc-RHEL-46728.patch new file mode 100644 index 0000000..439d9ab --- /dev/null +++ b/SOURCES/glibc-RHEL-46728.patch @@ -0,0 +1,287 @@ +From 4945ffc88a8ad49280bae64165683ddfd12b2390 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Wed, 7 Aug 2024 16:55:16 -0400 +Subject: fgets: more tests + +Add more tests for unusual situations fgets() might see: + +* zero size file +* zero sized buffer +* NULL buffer +* NUL data +* writable stream +* closed stream + +Reviewed-by: Florian Weimer + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 89871d0de8..03d597f8e6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -209,6 +209,7 @@ tests := \ + tst-fdopen \ + tst-ferror \ + tst-fgets \ ++ tst-fgets2 \ + tst-fileno \ + tst-fmemopen \ + tst-fmemopen2 \ +diff --git a/stdio-common/tst-fgets2.c b/stdio-common/tst-fgets2.c +new file mode 100644 +index 0000000000..5b78447ea9 +--- /dev/null ++++ b/stdio-common/tst-fgets2.c +@@ -0,0 +1,253 @@ ++/* Test for additional fgets error handling. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* This avoids compiler warnings about passing NULL where a valid ++ pointer is expected. */ ++static void *volatile null = NULL; ++ ++/* Implementation of our FILE stream backend. */ ++ ++static int bytes_read; ++static int cookie_valid = 0; ++struct Cookie { ++ const char *buffer; ++ int bufptr; ++ int bufsz; ++}; ++ ++#define VALIDATE_COOKIE() if (! cookie_valid) { \ ++ FAIL ("call to %s after file closed", __FUNCTION__); \ ++ return -1; \ ++ } ++ ++static ssize_t ++io_read (void *vcookie, char *buf, size_t size) ++{ ++ struct Cookie *cookie = (struct Cookie *) vcookie; ++ ++ VALIDATE_COOKIE (); ++ ++ if (size > cookie->bufsz - cookie->bufptr) ++ size = cookie->bufsz - cookie->bufptr; ++ ++ memcpy (buf, cookie->buffer + cookie->bufptr, size); ++ cookie->bufptr += size; ++ bytes_read += size; ++ return size; ++} ++ ++static ssize_t ++io_write (void *vcookie, const char *buf, size_t size) ++{ ++ VALIDATE_COOKIE (); ++ FAIL_EXIT1 ("io_write called"); ++} ++ ++static int ++io_seek (void *vcookie, off64_t *position, int whence) ++{ ++ VALIDATE_COOKIE (); ++ FAIL_EXIT1 ("io_seek called"); ++} ++ ++static int ++io_clean (void *vcookie) ++{ ++ struct Cookie *cookie = (struct Cookie *) vcookie; ++ ++ VALIDATE_COOKIE (); ++ ++ cookie->buffer = NULL; ++ cookie->bufsz = 0; ++ cookie->bufptr = 0; ++ ++ cookie_valid = 0; ++ free (cookie); ++ return 0; ++} ++ ++cookie_io_functions_t io_funcs = { ++ .read = io_read, ++ .write = io_write, ++ .seek = io_seek, ++ .close = io_clean ++}; ++ ++FILE * ++io_open (const char *buffer, int buflen, const char *mode, void **vcookie) ++{ ++ FILE *f; ++ struct Cookie *cookie; ++ ++ cookie = (struct Cookie *) xcalloc (1, sizeof (struct Cookie)); ++ *vcookie = cookie; ++ cookie_valid = 1; ++ ++ cookie->buffer = buffer; ++ cookie->bufsz = buflen; ++ bytes_read = 0; ++ ++ f = fopencookie (cookie, mode, io_funcs); ++ if (f == NULL) ++ FAIL_EXIT1 ("fopencookie failed"); ++ ++ clearerr (f); ++ return f; ++} ++ ++/* The test cases. */ ++ ++#define my_open(s,l,m) io_open (s, l, m, (void *) &cookie) ++ ++#define TEST_COMPARE_0x11(buf, len) \ ++ TEST_COMPARE_BLOB (buf + (len), sizeof (buf) - (len), \ ++ buf2, sizeof (buf) - (len)); ++ ++#define check_flags(f, expected_eof, expected_err) \ ++ { \ ++ if (expected_eof) \ ++ TEST_VERIFY (feof (f) != 0); \ ++ else \ ++ TEST_VERIFY (feof (f) == 0); \ ++ if (expected_err) \ ++ TEST_VERIFY (ferror (f) != 0); \ ++ else \ ++ TEST_VERIFY (ferror (f) == 0); \ ++ } ++ ++static int ++do_test (void) ++{ ++ FILE *f; ++ struct Cookie *cookie; ++ char buf [10]; ++ char buf2 [10]; ++ char *returned_string; ++ ++ memset (buf2, 0x11, sizeof (buf2)); ++ ++ printf ("testing base operation...\n"); ++ f = my_open ("hello\n", 6, "r"); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, sizeof (buf) - 1, f); ++ TEST_VERIFY (returned_string == buf); ++ TEST_COMPARE_BLOB (buf, bytes_read + 1, "hello\n\0", 7); ++ TEST_COMPARE_0x11 (buf, bytes_read + 1); ++ check_flags (f, 0, 0); ++ ++ fclose (f); ++ ++ printf ("testing zero size file...\n"); ++ f = my_open ("hello\n", 0, "r"); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, sizeof (buf) - 1, f); ++ TEST_VERIFY (returned_string == NULL); ++ TEST_VERIFY (bytes_read == 0); ++ check_flags (f, 1, 0); ++ fclose (f); ++ ++ printf ("testing zero size buffer...\n"); ++ f = my_open ("hello\n", 6, "r"); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, 0, f); ++ TEST_VERIFY (returned_string == NULL); ++ TEST_VERIFY (bytes_read == 0); ++ check_flags (f, 0, 0); ++ fclose (f); ++ ++ printf ("testing NULL buffer with empty stream...\n"); ++ f = my_open ("hello\n", 0, "r"); ++ memset (buf, 0x11, sizeof (buf)); ++ ++ returned_string = fgets (null, sizeof (buf), f); ++ ++ TEST_VERIFY (returned_string == NULL); ++ TEST_VERIFY (bytes_read == 0); ++ check_flags (f, 1, 0); ++ fclose (f); ++ ++ printf ("testing embedded NUL...\n"); ++ f = my_open ("hel\0lo\n", 7, "r"); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, sizeof (buf) - 1, f); ++ TEST_VERIFY (returned_string == buf); ++ TEST_COMPARE_BLOB (buf, bytes_read + 1, "hel\0lo\n\0", 8); ++ TEST_COMPARE_0x11 (buf, bytes_read + 1); ++ check_flags (f, 0, 0); ++ fclose (f); ++ ++ printf ("testing writable stream...\n"); ++ f = my_open ("hel\0lo\n", 7, "w"); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, sizeof (buf) - 1, f); ++ TEST_VERIFY (returned_string == NULL); ++ TEST_VERIFY (bytes_read == 0); ++ check_flags (f, 0, 1); ++ fclose (f); ++ ++ printf ("testing closed fd stream...\n"); ++ int fd = open ("/dev/null", O_RDONLY); ++ f = fdopen (fd, "r"); ++ close (fd); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, sizeof (buf) - 1, f); ++ TEST_VERIFY (returned_string == NULL); ++ TEST_VERIFY (bytes_read == 0); ++ check_flags (f, 0, 1); ++ fclose (f); ++ ++#ifdef IO_DEBUG ++ /* These tests only pass if glibc is built with -DIO_DEBUG, but are ++ included for reference. */ ++ ++ printf ("testing NULL descriptor...\n"); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, sizeof (buf) - 1, null); ++ TEST_VERIFY (returned_string == NULL); ++ TEST_VERIFY (bytes_read == 0); ++ ++ printf ("testing closed descriptor...\n"); ++ f = my_open ("hello\n", 7, "r"); ++ fclose (f); ++ memset (buf, 0x11, sizeof (buf)); ++ returned_string = fgets (buf, sizeof (buf) - 1, f); ++ TEST_VERIFY (returned_string == NULL); ++ TEST_VERIFY (bytes_read == 0); ++#endif ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46729.patch b/SOURCES/glibc-RHEL-46729.patch new file mode 100644 index 0000000..f835f99 --- /dev/null +++ b/SOURCES/glibc-RHEL-46729.patch @@ -0,0 +1,578 @@ +commit 45c42b65c29422b773ac94771aa71165e245f8f8 +Author: Martin Coufal +Date: Thu Jan 23 13:04:06 2025 +0100 + + Add new tests for fopen + + Adding some basic tests for fopen, testing different modes, stream + positioning and concurrent read/write operation on files. + Reviewed-by: DJ Delorie + +# Conflicts: +# sysdeps/pthread/Makefile (new test added) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 74e0edff73a9e468..fe69e48849cb9819 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -201,6 +201,7 @@ tests := \ + tst-fmemopen2 \ + tst-fmemopen3 \ + tst-fmemopen4 \ ++ tst-fopen \ + tst-fphex \ + tst-fphex-wide \ + tst-fread \ +diff --git a/stdio-common/tst-fopen.c b/stdio-common/tst-fopen.c +new file mode 100644 +index 0000000000000000..8c1fefd116f9f581 +--- /dev/null ++++ b/stdio-common/tst-fopen.c +@@ -0,0 +1,279 @@ ++/* Basic test for fopen. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define APPENDED_TEXT "This is appended text. " ++#define DEFAULT_TEXT "Lorem ipsum dolor sit amet, consectetur " \ ++ "adipiscing elit, sed do eiusmod tempor incididunt ut labore et " \ ++ "dolore magna aliqua." ++#define MAX_BUFFER_SIZE 300 ++ ++ ++static int ++do_test (void) ++{ ++ char *temp_file; ++ FILE *fd_file = NULL; ++ char read_buffer[MAX_BUFFER_SIZE] = ""; ++ size_t ret; ++ ++ /* Prepare files. */ ++ int fd = create_temp_file ("tst-fopen.", &temp_file); ++ TEST_VERIFY_EXIT (fd != -1); ++ fd_file = fdopen (fd, "w"); ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ xfclose (fd_file); ++ ++ /* Test 1: This checks for fopen with mode "r". Open text file for ++ reading. The stream is positioned at the beginning of the file. */ ++ printf ("Test 1: This checks for fopen with mode \"r\".\n"); ++ fd_file = fopen (temp_file, "r"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ TEST_VERIFY (strcmp (read_buffer, DEFAULT_TEXT) == 0); ++ /* Write should fail. */ ++ errno = 0; ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_VERIFY (ferror (fd_file) != 0); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (ret, 0); ++ clearerr (fd_file); ++ /* Opening non-existent file should fail. */ ++ xfclose (fd_file); ++ errno = 0; ++ fd_file = fopen ("file-that-does-not-exist", "r"); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, ENOENT); ++ TEST_VERIFY (fd_file == NULL); ++ ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 2: This checks for fopen with mode "r+". Open for reading and ++ writing. The stream is positioned at the beginning of the file. */ ++ printf ("Test 2: This checks for fopen with mode \"r+\".\n"); ++ fd_file = fopen (temp_file, "r+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ TEST_VERIFY (strcmp (read_buffer, DEFAULT_TEXT) == 0); ++ fflush (fd_file); ++ /* File position indicator expected at 0 + read bytes. */ ++ TEST_COMPARE (ftell (fd_file), ret); ++ /* Write should succeed. */ ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ /* Opening non-existent file should fail. */ ++ xfclose (fd_file); ++ errno = 0; ++ fd_file = fopen ("file-that-does-not-exist", "r+"); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, ENOENT); ++ TEST_VERIFY (fd_file == NULL); ++ ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 3: This checks for fopen with mode "w". Truncate file to zero ++ length or create text file for writing. The stream is positioned ++ at the beginning of the file. */ ++ printf ("Test 3: This checks for fopen with mode \"w\".\n"); ++ fd_file = fopen (temp_file, "w"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should fail. */ ++ errno = 0; ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_VERIFY (ferror (fd_file) != 0); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (ret, 0); ++ clearerr (fd_file); ++ /* Write should succeed. */ ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "w"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 4: This checks for fopen with mode "w+". Open for reading and ++ writing. The file is created if it does not exist, otherwise it is ++ truncated. The stream is positioned at the beginning of the file. ++ */ ++ printf ("Test 4: This checks for fopen with mode \"w+\".\n"); ++ fd_file = fopen (temp_file, "w+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, 0); ++ TEST_VERIFY (read_buffer[0] == '\0'); ++ /* Write should succeed. */ ++ ret = fwrite (DEFAULT_TEXT, sizeof (char), strlen (DEFAULT_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT)); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "w+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 5: This checks for fopen with mode "a". Open for appending ++ (writing at end of file). The file is created if it does not ++ exist. The stream is positioned at the end of the file. */ ++ printf ("Test 5: This checks for fopen with mode \"a\".\n"); ++ fd_file = fopen (temp_file, "a"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), strlen (DEFAULT_TEXT)); ++ /* Read should fail. */ ++ errno = 0; ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_VERIFY (ferror (fd_file) != 0); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (ret, 0); ++ clearerr (fd_file); ++ /* Write should succeed. */ ++ ret = fwrite (APPENDED_TEXT, sizeof (char), strlen (APPENDED_TEXT), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (APPENDED_TEXT)); ++ /* The file position indicator for the stream is advanced by the ++ * number of bytes successfully read or written. */ ++ TEST_COMPARE (ftell (fd_file), strlen (DEFAULT_TEXT) + ret); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "a"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 6: This checks for fopen with mode "a+". Open for reading and ++ appending (writing at end of file). The file is created if it does ++ not exist. Output is always appended to the end of the file. The ++ initial file position for reading is at the beginning of the file, ++ but it is advanced to the end prior to each write. */ ++ printf ("Test 6: This checks for fopen with mode \"a+\".\n"); ++ errno = 0; ++ fd_file = fopen (temp_file, "a+"); ++ TEST_COMPARE (errno, 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ /* Read should succeed. */ ++ ret = fread (read_buffer, sizeof (char), MAX_BUFFER_SIZE, fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (DEFAULT_TEXT) + strlen (APPENDED_TEXT)); ++ TEST_VERIFY (strcmp (read_buffer, DEFAULT_TEXT APPENDED_TEXT) == 0); ++ /* Write should succeed. */ ++ const char* SECOND_APPEND = "This is second append."; ++ ret = fwrite (SECOND_APPEND, sizeof (char), strlen (SECOND_APPEND), fd_file); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_COMPARE (ret, strlen (SECOND_APPEND)); ++ /* The file position indicator for the stream is advanced by the ++ number of bytes successfully read or written. */ ++ TEST_COMPARE (ftell (fd_file), ++ strlen (DEFAULT_TEXT) + strlen (APPENDED_TEXT) + ret); ++ /* Opening non-existent file should succeed. */ ++ xfclose (fd_file); ++ fd_file = fopen ("/tmp/file-that-does-not-exist", "a+"); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ TEST_COMPARE (ftell (fd_file), 0); ++ ++ xfclose (fd_file); ++ remove ("/tmp/file-that-does-not-exist"); ++ memset (read_buffer, 0, MAX_BUFFER_SIZE); ++ ++ /* Test 7: This checks for fopen with other valid modes set, such as ++ "rc", "we" or "am". The test calls fopen with these modes and ++ checks that no errors appear. */ ++ printf ("Test 7: This checks for fopen with other valid modes set, " ++ "such as \"rc\", \"we\" or \"am\".\n"); ++ /* These modes all operate correctly with the file already present. */ ++ static const char *valid_modes[] = ++ { "rc", "we", "am", "r+x", "wb+", "ab", 0 }; ++ const char **p = valid_modes; ++ while (*p != 0) ++ { ++ fd_file = fopen (temp_file, *p); ++ TEST_COMPARE (ferror (fd_file), 0); ++ TEST_VERIFY (fd_file != NULL); ++ xfclose (fd_file); ++ ++p; ++ } ++ ++ /* Test 8: This checks for fopen with invalid modes. The test calls ++ fopen with these modes and checks that opening existing files with ++ invalid mode fails and that opening non-existing files with invalid ++ mode doesn't create a new file. */ ++ printf ("Test 8: This checks for fopen with invalid modes.\n"); ++ static const char *invalid_modes[] = { "0", "tr", "z", "x", " ", 0 }; ++ p = invalid_modes; ++ while (*p != 0) ++ { ++ errno = 0; ++ fd_file = fopen (temp_file, *p); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, EINVAL); ++ errno = 0; ++ fd_file = fopen ("/tmp/file-that-does-not-exist", *p); ++ TEST_VERIFY (fd_file == NULL); ++ TEST_COMPARE (errno, EINVAL); ++ ++p; ++ TEST_VERIFY (access ("/tmp/file-that-does-not-exist", F_OK) == -1); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 43fcdf1182e735e1..58c33a8e49d517ad 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -131,6 +131,7 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ + tst-sem18 \ + tst-sem19 \ + tst-join16 \ ++ tst-fopen-threaded \ + # tests + + tests-time64 := \ +diff --git a/sysdeps/pthread/tst-fopen-threaded.c b/sysdeps/pthread/tst-fopen-threaded.c +new file mode 100644 +index 0000000000000000..5c792c93e3711621 +--- /dev/null ++++ b/sysdeps/pthread/tst-fopen-threaded.c +@@ -0,0 +1,250 @@ ++/* Test for fread and fwrite with multiple threads. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Description of test intent. ++ The test creates NUM_THREADS threads for reading and writing to the ++ prepared file. The prepared file contains 'NUM_THREADS - 1' bytes ++ where each byte is unique number from 0 to 'NUM_THREADS - 2'. If all ++ operations are correctly multi-threaded safe then all concurent read ++ operations should succeed and read a unique 1 byte value. The last ++ thread to read should get an EOF. In concurrent write, all write ++ operations should succeed and the file should contain all unique 1 ++ byte values from 0 to 'NUM_THREADS - 1'. Both concurrent read and ++ concurrent write tests are repeated ITERS times to increase ++ the probability of detecting concurrency issues. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#define NUM_THREADS 100 ++#define ITERS 10 ++ ++char *temp_file; ++pthread_barrier_t barrier; ++ ++struct thread_data ++{ ++ FILE *fd; ++ /* Read value or value to be written. */ ++ unsigned char value; ++ bool eof; ++}; ++ ++static void * ++threadReadRoutine (void *argv) ++{ ++ struct thread_data *my_data; ++ unsigned char read_buffer; ++ int ret = 0; ++ my_data = (struct thread_data *) argv; ++ /* Wait for all threads to be ready to read. */ ++ xpthread_barrier_wait (&barrier); ++ ++ ret = ++ fread (&read_buffer, sizeof (char), sizeof (read_buffer), my_data->fd); ++ if (feof (my_data->fd) != 0) ++ { ++ clearerr (my_data->fd); ++ my_data->eof = true; ++ } ++ else ++ { ++ TEST_COMPARE (ret, 1); ++ /* Save the read value. */ ++ my_data->value = read_buffer; ++ } ++ TEST_COMPARE (ferror (my_data->fd), 0); ++ return NULL; ++} ++ ++void * ++threadWriteRoutine (void *argv) ++{ ++ struct thread_data *my_data; ++ int ret = 0; ++ my_data = (struct thread_data *) argv; ++ /* Wait for all threads to be ready to write. */ ++ xpthread_barrier_wait (&barrier); ++ ++ ret = fwrite (&my_data->value, sizeof (unsigned char), 1, my_data->fd); ++ TEST_COMPARE (ferror (my_data->fd), 0); ++ TEST_COMPARE (feof (my_data->fd), 0); ++ TEST_COMPARE (ret, 1); ++ return NULL; ++} ++ ++void * ++threadOpenCloseRoutine (void *argv) ++{ ++ /* Wait for all threads to be ready to call fopen and fclose. */ ++ xpthread_barrier_wait (&barrier); ++ ++ FILE *fd = xfopen ("/tmp/openclosetest", "w+"); ++ xfclose (fd); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ FILE *fd_file = NULL; ++ unsigned char buffer[NUM_THREADS] = "0"; ++ size_t ret = 0; ++ pthread_t threads[NUM_THREADS]; ++ struct thread_data thread_data_array[NUM_THREADS]; ++ bool present_values[NUM_THREADS] = { false }; ++ ++ /* Prepare files. */ ++ for (int i = 0; i < NUM_THREADS; i++) ++ buffer[i] = i; ++ int fd = create_temp_file ("tst-fopen.", &temp_file); ++ TEST_VERIFY_EXIT (fd != -1); ++ fd_file = fdopen (fd, "w"); ++ /* NUM_THREADS - 1: last thread will read EOF */ ++ ret = fwrite (buffer, sizeof (unsigned char), NUM_THREADS - 1, fd_file); ++ TEST_COMPARE (ret, NUM_THREADS - 1); ++ xfclose (fd_file); ++ ++ /* Test 1: Concurrent read. */ ++ for (int reps = 1; reps <= ITERS; reps++) ++ { ++ fd_file = xfopen (temp_file, "r"); ++ xpthread_barrier_init (&barrier, NULL, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ thread_data_array[i].fd = fd_file; ++ /* Initialize with highest possible value so it's easier to debug if ++ anything goes wrong. */ ++ thread_data_array[i].value = 255; ++ thread_data_array[i].eof = false; ++ ++ threads[i] = ++ xpthread_create (support_small_stack_thread_attribute (), ++ threadReadRoutine, ++ (void *) &thread_data_array[i]); ++ } ++ ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ xpthread_join (threads[i]); ++ } ++ xpthread_barrier_destroy (&barrier); ++ xfclose (fd_file); ++ ++ /* Verify read values. */ ++ int eof_cnt = 0; ++ for (int i = 0; i < NUM_THREADS; i++) ++ present_values[i] = false; ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ if (thread_data_array[i].eof) ++ { ++ /* EOF was read. */ ++ present_values[NUM_THREADS - 1] = true; ++ eof_cnt++; ++ } ++ else ++ { ++ /* The same value shouldn't be read twice. */ ++ TEST_VERIFY (!present_values[thread_data_array[i].value]); ++ present_values[thread_data_array[i].value] = true; ++ } ++ } ++ /* EOF is read exactly once. */ ++ TEST_COMPARE (eof_cnt, 1); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ /* All values should be read. */ ++ TEST_VERIFY (present_values[i]); ++ } ++ } ++ ++ /* Test 2: Concurrent write. */ ++ for (int reps = 1; reps <= ITERS; reps++) ++ { ++ fd_file = xfopen (temp_file, "w"); ++ xpthread_barrier_init (&barrier, NULL, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ thread_data_array[i].fd = fd_file; ++ thread_data_array[i].value = i; ++ ++ threads[i] = ++ xpthread_create (support_small_stack_thread_attribute (), ++ threadWriteRoutine, ++ (void *) &thread_data_array[i]); ++ } ++ ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ xpthread_join (threads[i]); ++ } ++ xpthread_barrier_destroy (&barrier); ++ xfclose (fd_file); ++ ++ /* Verify written values. */ ++ for (int i = 0; i < NUM_THREADS; i++) ++ present_values[i] = false; ++ memset (buffer, 0, NUM_THREADS); ++ fd_file = xfopen (temp_file, "r"); ++ ret = fread (buffer, sizeof (unsigned char), NUM_THREADS, fd_file); ++ TEST_COMPARE (ret, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ /* The same value shouldn't be written twice. */ ++ TEST_VERIFY (!present_values[buffer[i]]); ++ present_values[buffer[i]] = true; ++ } ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ /* All values should be written. */ ++ TEST_VERIFY (present_values[i]); ++ } ++ xfclose (fd_file); ++ } ++ ++ /* Test 3: Concurrent open/close. */ ++ for (int reps = 1; reps <= ITERS; reps++) ++ { ++ xpthread_barrier_init (&barrier, NULL, NUM_THREADS); ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ threads[i] = ++ xpthread_create (support_small_stack_thread_attribute (), ++ threadOpenCloseRoutine, NULL); ++ } ++ for (int i = 0; i < NUM_THREADS; i++) ++ { ++ xpthread_join (threads[i]); ++ } ++ xpthread_barrier_destroy (&barrier); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46733-1.patch b/SOURCES/glibc-RHEL-46733-1.patch new file mode 100644 index 0000000..acab115 --- /dev/null +++ b/SOURCES/glibc-RHEL-46733-1.patch @@ -0,0 +1,171 @@ +Partial backport (libio/Makefile, stdio-common/Makefile only) of: + +commit a7fe3e805d2ee128ac5f43b2a24201726d41cc04 +Author: Carlos O'Donell +Date: Wed Jun 19 11:48:05 2024 -0400 + + Fix conditionals on mtrace-based tests (bug 31892) + + The conditionals for several mtrace-based tests in catgets, elf, libio, + malloc, misc, nptl, posix, and stdio-common were incorrect leading to + test failures when bootstrapping glibc without perl. + + The correct conditional for mtrace-based tests requires three checks: + first checking for run-built-tests, then build-shared, and lastly that + PERL is not equal to "no" (missing perl). + Reviewed-by: Adhemerval Zanella + +Conflicts: + stdio-common/Makefile + (missing C2x tests tst-printf-binary, tst-printf-intn, + tst-printf-oct, missing test tst-vfprintf-width-i18n + in the downstream tree, but downstream backported + tst-ungetc-leak-mem earlier) + + +diff --git a/libio/Makefile b/libio/Makefile +index 418102c4c0d8c25a..2ef144268af98f34 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -231,15 +231,28 @@ tst-bz22415-ENV = MALLOC_TRACE=$(objpfx)tst-bz22415.mtrace \ + tst-bz24228-ENV = MALLOC_TRACE=$(objpfx)tst-bz24228.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + +-generated += test-fmemopen.mtrace test-fmemopen.check +-generated += tst-fdopen-seek-failure.mtrace tst-fdopen-seek-failure.check +-generated += tst-fopenloc.mtrace tst-fopenloc.check +-generated += tst-bz22415.mtrace tst-bz22415.check +- + aux := fileops genops stdfiles stdio strops + ++ifeq ($(run-built-tests),yes) ++ifeq ($(build-shared),yes) ++ifneq ($(PERL),no) ++generated += \ ++ test-fmemopen.check \ ++ test-fmemopen.mtrace \ ++ tst-bz22415.check \ ++ tst-bz22415.mtrace \ ++ tst-bz24228.check \ ++ tst-bz24228.mtrace \ ++ tst-fdopen-seek-failure.check \ ++ tst-fdopen-seek-failure.mtrace \ ++ tst-fopenloc.check \ ++ tst-fopenloc.mtrace \ ++ # generated ++endif ++endif ++endif ++ + ifeq ($(build-shared),yes) +-generated += tst-bz24228.mtrace tst-bz24228.check + aux += oldfileops oldstdfiles + endif + +@@ -250,16 +263,23 @@ shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \ + + ifeq ($(run-built-tests),yes) + tests-special += \ +- $(objpfx)test-fmemopen-mem.out \ + $(objpfx)test-freopen.out \ +- $(objpfx)tst-bz22415-mem.out \ +- $(objpfx)tst-fdopen-seek-failure-mem.out \ + # tests-special + ifeq (yes,$(build-shared)) + # Run tst-fopenloc-cmp.out and tst-openloc-mem.out only if shared + # library is enabled since they depend on tst-fopenloc.out. +-tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out \ +- $(objpfx)tst-bz24228-mem.out ++tests-special += $(objpfx)tst-fopenloc-cmp.out ++ifeq ($(build-shared),yes) ++ifneq ($(PERL),no) ++tests-special += \ ++ $(objpfx)test-fmemopen-mem.out \ ++ $(objpfx)tst-bz22415-mem.out \ ++ $(objpfx)tst-bz24228-mem.out \ ++ $(objpfx)tst-fdopen-seek-failure-mem.out \ ++ $(objpfx)tst-fopenloc-mem.out \ ++ # tests-special ++endif ++endif + endif + + tests += \ +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 1eaea991dd63e20c..bc314af0617e1647 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -184,10 +184,6 @@ tests := \ + tst-perror \ + tst-popen \ + tst-popen2 \ +- tst-printf-bz18872 \ +- tst-printf-bz25691 \ +- tst-printf-fp-free \ +- tst-printf-fp-leak \ + tst-printf-round \ + tst-printfsz \ + tst-put-error \ +@@ -208,7 +204,6 @@ tests := \ + tst-unlockedio \ + tst-vfprintf-mbs-prec \ + tst-vfprintf-user-type \ +- tst-vfprintf-width-prec \ + tst-vfprintf-width-prec-alloc \ + tst-wc-printf \ + tstdiomisc \ +@@ -217,6 +212,20 @@ tests := \ + xbug \ + # tests + ++ifeq ($(run-built-tests),yes) ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests += \ ++ tst-printf-bz18872 \ ++ tst-printf-bz25691 \ ++ tst-printf-fp-free \ ++ tst-printf-fp-leak \ ++ tst-vfprintf-width-prec \ ++ # tests ++endif ++endif ++endif ++ + test-srcs = \ + tst-printf \ + tst-printfsz-islongdouble \ +@@ -225,15 +234,20 @@ test-srcs = \ + + ifeq ($(run-built-tests),yes) + tests-special += \ +- $(objpfx)tst-printf-bz18872-mem.out \ +- $(objpfx)tst-printf-bz25691-mem.out \ +- $(objpfx)tst-printf-fp-free-mem.out \ +- $(objpfx)tst-printf-fp-leak-mem.out \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ + $(objpfx)tst-setvbuf1-cmp.out \ + $(objpfx)tst-unbputc.out \ + $(objpfx)tst-ungetc-leak-mem.out \ ++ # tests-special ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $(objpfx)tst-printf-bz18872-mem.out \ ++ $(objpfx)tst-printf-bz25691-mem.out \ ++ $(objpfx)tst-printf-fp-free-mem.out \ ++ $(objpfx)tst-printf-fp-leak-mem.out \ + $(objpfx)tst-vfprintf-width-prec-mem.out \ + # tests-special + +@@ -253,6 +267,8 @@ generated += \ + tst-vfprintf-width-prec-mem.out \ + tst-vfprintf-width-prec.mtrace \ + # generated ++endif ++endif + endif # $(run-built-tests) + + tests-special += $(objpfx)tst-errno-manual.out diff --git a/SOURCES/glibc-RHEL-46733-2.patch b/SOURCES/glibc-RHEL-46733-2.patch new file mode 100644 index 0000000..16a0bf4 --- /dev/null +++ b/SOURCES/glibc-RHEL-46733-2.patch @@ -0,0 +1,79 @@ +commit 3e4a01870ef9605ccf6475215a4b32aa86d5d206 +Author: Aaron Merey +Date: Thu Aug 29 12:02:25 2024 -0400 + + Test fclose on an unopened file. + + Add new file libio/tst-fclosed-unopened.c that tests whether fclose on + an unopened file returns EOF. + + Calling fclose on unopened files normally causes a use-after-free bug, + however the standard streams are an exception since they are not + deallocated by fclose. + + fclose returning EOF for unopened files is not part of the external + contract but there are dependancies on this behaviour. For example, + gnulib's close_stdout in lib/closeout.c. + + Tested for x86_64. + + Signed-off-by: Aaron Merey + +diff --git a/libio/Makefile b/libio/Makefile +index 2ef144268af98f34..f0ecb6b775a543af 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -76,6 +76,7 @@ tests = \ + tst-eof \ + tst-ext \ + tst-ext2 \ ++ tst-fclose-unopened \ + tst-fdopen-seek-failure \ + tst-fgetc-after-eof \ + tst-fgetwc \ +diff --git a/libio/tst-fclose-unopened.c b/libio/tst-fclose-unopened.c +new file mode 100644 +index 0000000000000000..1f1cad042d8d72bf +--- /dev/null ++++ b/libio/tst-fclose-unopened.c +@@ -0,0 +1,40 @@ ++/* Test using fclose on an unopened file. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++/* Verify that fclose on an unopened file returns EOF. This is not part ++ of the fclose external contract but there are dependancies on this ++ behaviour. */ ++ ++static int ++do_test (void) ++{ ++ TEST_COMPARE (fclose (stdin), 0); ++ ++ /* Attempt to close the unopened file and verify that EOF is returned. ++ Calling fclose on a file twice normally causes a use-after-free bug, ++ however the standard streams are an exception since they are not ++ deallocated by fclose. */ ++ TEST_COMPARE (fclose (stdin), EOF); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46733-3.patch b/SOURCES/glibc-RHEL-46733-3.patch new file mode 100644 index 0000000..753c87b --- /dev/null +++ b/SOURCES/glibc-RHEL-46733-3.patch @@ -0,0 +1,155 @@ +commit 35dc62de3d5d73a91d4ca8fa9799b510a34d170d +Author: Aaron Merey +Date: Thu Sep 19 09:53:23 2024 -0400 + + Add another test for fclose on an unopened file + + Add new file libio/tst-fclose-unopened2.c that tests whether fclose on an + unopened file returns EOF. + + This test differs from tst-fclose-unopened.c by ensuring the file's buffer + is allocated prior to double-fclose. A comment in tst-fclose-unopened.c + now clarifies that it is testing a file with an unallocated buffer. + + Calling fclose on unopened files normally causes a use-after-free bug, + however the standard streams are an exception since they are not + deallocated by fclose. + + Tested for x86_64. + + Reviewed-by: Carlos O'Donell + +diff --git a/libio/Makefile b/libio/Makefile +index f0ecb6b775a543af..8b2d8aaae563788b 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -77,6 +77,7 @@ tests = \ + tst-ext \ + tst-ext2 \ + tst-fclose-unopened \ ++ tst-fclose-unopened2 \ + tst-fdopen-seek-failure \ + tst-fgetc-after-eof \ + tst-fgetwc \ +@@ -220,6 +221,9 @@ LDFLAGS-tst-bz24228 = -Wl,--version-script=tst-bz24228.map + + tst_wprintf2-ARGS = "Some Text" + ++tst-fclose-unopened2-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-fclose-unopened2.mtrace \ ++ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + test-fmemopen-ENV = MALLOC_TRACE=$(objpfx)test-fmemopen.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + tst-fdopen-seek-failure-ENV = \ +@@ -244,6 +248,8 @@ generated += \ + tst-bz22415.mtrace \ + tst-bz24228.check \ + tst-bz24228.mtrace \ ++ tst-fclose-unopened2.check \ ++ tst-fclose-unopened2.mtrace \ + tst-fdopen-seek-failure.check \ + tst-fdopen-seek-failure.mtrace \ + tst-fopenloc.check \ +@@ -276,6 +282,7 @@ tests-special += \ + $(objpfx)test-fmemopen-mem.out \ + $(objpfx)tst-bz22415-mem.out \ + $(objpfx)tst-bz24228-mem.out \ ++ $(objpfx)tst-fclose-unopened2-mem.out \ + $(objpfx)tst-fdopen-seek-failure-mem.out \ + $(objpfx)tst-fopenloc-mem.out \ + # tests-special +@@ -363,6 +370,11 @@ $(objpfx)test-fmemopen-mem.out: $(objpfx)test-fmemopen.out + $(common-objpfx)malloc/mtrace $(objpfx)test-fmemopen.mtrace > $@; \ + $(evaluate-test) + ++$(objpfx)tst-fclose-unopened2-mem.out: $(objpfx)tst-fclose-unopened2.out ++ $(common-objpfx)malloc/mtrace \ ++ $(objpfx)tst-fclose-unopened2.mtrace > $@; \ ++ $(evaluate-test) ++ + $(objpfx)tst-fdopen-seek-failure-mem.out: $(objpfx)tst-fdopen-seek-failure.out + $(common-objpfx)malloc/mtrace \ + $(objpfx)tst-fdopen-seek-failure.mtrace > $@; \ +diff --git a/libio/tst-fclose-unopened.c b/libio/tst-fclose-unopened.c +index 1f1cad042d8d72bf..4fed2ffdfe8cf9b4 100644 +--- a/libio/tst-fclose-unopened.c ++++ b/libio/tst-fclose-unopened.c +@@ -19,9 +19,11 @@ + #include + #include + +-/* Verify that fclose on an unopened file returns EOF. This is not part +- of the fclose external contract but there are dependancies on this +- behaviour. */ ++/* Verify that fclose on an unopened file returns EOF. This test uses ++ a file with an unallocated buffer. ++ ++ This is not part of the fclose external contract but there are ++ dependencies on this behaviour. */ + + static int + do_test (void) +diff --git a/libio/tst-fclose-unopened2.c b/libio/tst-fclose-unopened2.c +new file mode 100644 +index 0000000000000000..1e99d9dc3d561b80 +--- /dev/null ++++ b/libio/tst-fclose-unopened2.c +@@ -0,0 +1,51 @@ ++/* Test using fclose on an unopened file. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* Verify that fclose on an unopened file returns EOF. This test uses ++ a file with an allocated buffer. ++ ++ This is not part of the fclose external contract but there are ++ dependencies on this behaviour. */ ++ ++static int ++do_test (void) ++{ ++ mtrace (); ++ ++ /* Input file tst-fclose-unopened2.input has 6 bytes plus newline. */ ++ char buf[6]; ++ ++ /* Read from the file to ensure its internal buffer is allocated. */ ++ TEST_COMPARE (fread (buf, 1, sizeof (buf), stdin), sizeof (buf)); ++ ++ TEST_COMPARE (fclose (stdin), 0); ++ ++ /* Attempt to close the unopened file and verify that EOF is returned. ++ Calling fclose on a file twice normally causes a use-after-free bug, ++ however the standard streams are an exception since they are not ++ deallocated by fclose. */ ++ TEST_COMPARE (fclose (stdin), EOF); ++ ++ return 0; ++} ++ ++#include +diff --git a/libio/tst-fclose-unopened2.input b/libio/tst-fclose-unopened2.input +new file mode 100644 +index 0000000000000000..399f9ba41aff870b +--- /dev/null ++++ b/libio/tst-fclose-unopened2.input +@@ -0,0 +1 @@ ++fclose diff --git a/SOURCES/glibc-RHEL-46734.patch b/SOURCES/glibc-RHEL-46734.patch new file mode 100644 index 0000000..d63056b --- /dev/null +++ b/SOURCES/glibc-RHEL-46734.patch @@ -0,0 +1,273 @@ +commit 1d72fa3cfa046f7293421a7e58f2a272474ea901 +Author: Sergey Kolosov +Date: Wed Sep 25 15:51:23 2024 +0200 + + stdio-common: Add new test for fdopen + + This commit adds fdopen test with all modes. + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a6816f8bffbd21e0..8c94f0aea0049f56 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -163,6 +163,7 @@ tests := \ + tst-bz11319-fortify2 \ + tst-cookie \ + tst-fdopen \ ++ tst-fdopen2 \ + tst-ferror \ + tst-fgets \ + tst-fgets2 \ +diff --git a/stdio-common/tst-fdopen2.c b/stdio-common/tst-fdopen2.c +new file mode 100644 +index 0000000000000000..0c6625f25853aed5 +--- /dev/null ++++ b/stdio-common/tst-fdopen2.c +@@ -0,0 +1,246 @@ ++/* Test the fdopen function. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++char *tmp_dir; ++char *path_to_file; ++ ++void ++prepare_tmp_dir (void) ++{ ++ tmp_dir = support_create_temp_directory ("tst-fdopen2"); ++ path_to_file = xasprintf ("%s/tst-fdopen2.txt", tmp_dir); ++} ++ ++/* open temp file descriptor with mode. */ ++int ++open_tmp_fd (int mode) ++{ ++ int fd = xopen (path_to_file, mode, 0644); ++ return fd; ++} ++ ++ ++/* close and remove temp file with close. */ ++void ++close_tmp_fd (int fd) ++{ ++ xclose (fd); ++ xunlink (path_to_file); ++} ++ ++/* close and remove temp file with fclose. */ ++void ++close_tmp_fp (FILE *fp) ++{ ++ fclose (fp); ++ xunlink (path_to_file); ++} ++ ++/* test "w" fdopen mode. */ ++void ++do_test_fdopen_w (void) ++{ ++ int fd, ret; ++ FILE *fp; ++ fd = open_tmp_fd (O_WRONLY | O_CREAT | O_TRUNC); ++ ++ /* test mode mismatch. */ ++ fp = fdopen (fd, "r"); ++ if (fp != NULL || errno != EINVAL) ++ { ++ close_tmp_fd (fd); ++ FAIL_EXIT1 ("fdopen (%d, r) should fail with EINVAL: %m", fd); ++ } ++ ++ fp = fdopen (fd, "w"); ++ if (fp == NULL) ++ { ++ close_tmp_fd (fd); ++ FAIL_EXIT1 ("fdopen (%d, w): %m", fd); ++ } ++ ++ const void *buf = "AAAA"; ++ ret = fwrite (buf, 1, 4, fp); ++ if (ret != 4) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fwrite (): %m"); ++ } ++ ++ unsigned char buf2[4]; ++ rewind (fp); ++ clearerr (fp); ++ /* fread should fail in "w" mode */ ++ ret = fread (buf2, 1, 4, fp); ++ if (ret != 0 || ferror (fp) == 0) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fread should fail in \"w\" mode"); ++ } ++ ++ fclose (fp); ++} ++ ++/* test "r" fdopen mode. */ ++void ++do_test_fdopen_r (void) ++{ ++ int fd, ret; ++ FILE *fp; ++ fd = open_tmp_fd (O_RDONLY); ++ ++ /* test mode mismatch. */ ++ fp = fdopen (fd, "w"); ++ if (fp != NULL || errno != EINVAL) ++ { ++ close_tmp_fd (fd); ++ FAIL_EXIT1 ("fdopen (%d, w) should fail with EINVAL: %m", fd); ++ } ++ ++ fp = fdopen (fd, "r"); ++ if (fp == NULL) ++ { ++ close_tmp_fd (fd); ++ FAIL_EXIT1 ("fdopen (%d, w): %m", fd); ++ } ++ ++ const void *buf = "BBBB"; ++ /* fwrite should fail in "r" mode. */ ++ ret = fwrite (buf, 1, 4, fp); ++ if (ret != 0 || ferror (fp) == 0) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fwrite should fail in \"r\" mode"); ++ } ++ ++ unsigned char buf2[4]; ++ ret = fread (buf2, 1, 4, fp); ++ if (ret != 4) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fread (): %m"); ++ } ++ ++ fclose (fp); ++} ++ ++/* test "a" fdopen mode. */ ++void ++do_test_fdopen_a (void) ++{ ++ int fd, ret; ++ FILE *fp; ++ fd = open_tmp_fd (O_WRONLY | O_CREAT | O_APPEND); ++ ++ /* test mode mismatch. */ ++ fp = fdopen (fd, "r+"); ++ if (fp != NULL || errno != EINVAL) ++ { ++ close_tmp_fd (fd); ++ FAIL_EXIT1 ("fdopen (%d, \"r+\") should fail with EINVAL: %m", fd); ++ } ++ ++ fp = fdopen (fd, "a"); ++ if (fp == NULL) ++ { ++ close_tmp_fd (fd); ++ FAIL_EXIT1 ("fdopen (%d, w): %m", fd); ++ } ++ ++ const void *buf = "CCCC"; ++ ret = fwrite (buf, 1, 4, fp); ++ if (ret != 4) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fwrite (): %m"); ++ } ++ ++ /* fread should fail in "a" mode. */ ++ unsigned char buf2[4]; ++ clearerr (fp); ++ ret = fread (buf2, 1, 4, fp); ++ if (ret != 0 || ferror (fp) == 0) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fread should fail \"a\" mode"); ++ } ++ ++ fclose (fp); ++} ++ ++void ++do_test_fdopen_mode (int mode, const char *fmode) ++{ ++ int fd, ret; ++ FILE *fp; ++ fd = open_tmp_fd (mode); ++ ++ fp = fdopen (fd, fmode); ++ if (fp == NULL) ++ { ++ close_tmp_fd (fd); ++ FAIL_EXIT1 ("fdopen (%d, %s): %m", fd, fmode); ++ } ++ ++ const void *buf = "EEEE"; ++ ret = fwrite (buf, 1, 4, fp); ++ if (ret != 4) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fwrite () in mode:%s returns %d: %m", fmode, ret); ++ } ++ ++ rewind (fp); ++ unsigned char buf2[4]; ++ ret = fread (buf2, 1, 4, fp); ++ if (ret != 4) ++ { ++ close_tmp_fp (fp); ++ FAIL_EXIT1 ("fread () in mode:%s returns %d: %m", fmode, ret); ++ } ++ ++ fclose (fp); ++} ++ ++static int ++do_test (void) ++{ ++ ++ prepare_tmp_dir (); ++ ++ do_test_fdopen_w (); ++ do_test_fdopen_r (); ++ do_test_fdopen_a (); ++ ++ /* test r+ w+ a+ fdopen modes. */ ++ do_test_fdopen_mode (O_RDWR, "r+"); ++ do_test_fdopen_mode (O_RDWR | O_CREAT | O_TRUNC, "w+"); ++ do_test_fdopen_mode (O_RDWR | O_CREAT | O_APPEND, "a+"); ++ xunlink (path_to_file); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46735.patch b/SOURCES/glibc-RHEL-46735.patch new file mode 100644 index 0000000..7dd21db --- /dev/null +++ b/SOURCES/glibc-RHEL-46735.patch @@ -0,0 +1,167 @@ +commit d14c977c65aac7db35bb59380ef99d6582c4f930 +Author: Joseph Myers +Date: Tue Sep 24 14:06:22 2024 +0000 + + Add tests of fread + + There seem to be no glibc tests specifically for the fread function. + Add basic tests of that function. + + Tested for x86_64. + +Conflicts: + stdio-common/Makefile + (usual tests conflict) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 8c94f0aea0049f56..1eaea991dd63e20c 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -174,6 +174,7 @@ tests := \ + tst-fmemopen4 \ + tst-fphex \ + tst-fphex-wide \ ++ tst-fread \ + tst-fseek \ + tst-fwrite \ + tst-gets \ +diff --git a/stdio-common/tst-fread.c b/stdio-common/tst-fread.c +new file mode 100644 +index 0000000000000000..4d9a7895f66a7980 +--- /dev/null ++++ b/stdio-common/tst-fread.c +@@ -0,0 +1,134 @@ ++/* Test fread. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *temp_dir = support_create_temp_directory ("tst-fread"); ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ FILE *fp; ++ size_t ret; ++ char buf[1024]; ++ ++ verbose_printf ("test single-byte reads\n"); ++ fp = xfopen (file1, "r"); ++ memset (buf, 0, sizeof buf); ++ ret = fread (buf, 1, 2, fp); ++ TEST_COMPARE (ret, 2); ++ TEST_COMPARE (buf[0], 'f'); ++ TEST_COMPARE (buf[1], 'i'); ++ TEST_COMPARE (feof (fp), 0); ++ TEST_COMPARE (ftell (fp), 2); ++ memset (buf, 0, sizeof buf); ++ ret = fread (buf, 1, 3, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE (buf[0], 'l'); ++ TEST_COMPARE (buf[1], 'e'); ++ TEST_COMPARE (buf[2], '1'); ++ TEST_COMPARE (ftell (fp), 5); ++ TEST_COMPARE (feof (fp), 0); ++ memset (buf, 0, sizeof buf); ++ ret = fread (buf, 1, 1, fp); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (ftell (fp), 5); ++ xfclose (fp); ++ ++ verbose_printf ("test single-byte reads, EOF part way through\n"); ++ fp = xfopen (file1, "r"); ++ memset (buf, 0, sizeof buf); ++ ret = fread (buf, 1, sizeof buf, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE (buf[0], 'f'); ++ TEST_COMPARE (buf[1], 'i'); ++ TEST_COMPARE (buf[2], 'l'); ++ TEST_COMPARE (buf[3], 'e'); ++ TEST_COMPARE (buf[4], '1'); ++ TEST_COMPARE (!!feof (fp), 1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (ftell (fp), 5); ++ xfclose (fp); ++ ++ verbose_printf ("test multi-byte reads\n"); ++ fp = xfopen (file1, "r"); ++ memset (buf, 0, sizeof buf); ++ ret = fread (buf, 2, 2, fp); ++ TEST_COMPARE (ret, 2); ++ TEST_COMPARE (buf[0], 'f'); ++ TEST_COMPARE (buf[1], 'i'); ++ TEST_COMPARE (buf[2], 'l'); ++ TEST_COMPARE (buf[3], 'e'); ++ TEST_COMPARE (feof (fp), 0); ++ TEST_COMPARE (ftell (fp), 4); ++ memset (buf, 0, sizeof buf); ++ ret = fread (buf, 3, 3, fp); ++ TEST_COMPARE (ret, 0); ++ /* The bytes written for a partial element read are unspecified. */ ++ TEST_COMPARE (!!feof (fp), 1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (ftell (fp), 5); ++ xfclose (fp); ++ ++ verbose_printf ("test read error\n"); ++ fp = xfopen (file1, "r"); ++ xclose (fileno (fp)); ++ memset (buf, 0, sizeof buf); ++ ret = fread (buf, 1, sizeof buf, fp); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE (feof (fp), 0); ++ TEST_COMPARE (!!ferror (fp), 1); ++ fclose (fp); ++ ++ verbose_printf ("test zero size\n"); ++ fp = xfopen (file1, "r"); ++ ret = fread (buf, 0, SIZE_MAX, fp); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE (feof (fp), 0); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (ftell (fp), 0); ++ xfclose (fp); ++ ++ verbose_printf ("test zero items\n"); ++ fp = xfopen (file1, "r"); ++ ret = fread (buf, SIZE_MAX, 0, fp); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE (feof (fp), 0); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (ftell (fp), 0); ++ xfclose (fp); ++ ++ free (temp_dir); ++ free (file1); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46736-1.patch b/SOURCES/glibc-RHEL-46736-1.patch new file mode 100644 index 0000000..16146ee --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-1.patch @@ -0,0 +1,67 @@ +commit e3fdbe9f39747206b9c3fbb0219f29fd5b35d020 +Author: Adhemerval Zanella +Date: Thu Apr 8 17:36:07 2021 -0300 + + support: Add xmkfifo + + Wrapper support mkfifo. + +diff --git a/support/Makefile b/support/Makefile +index 25e8bbefd78c2268..0273c0f6306720c9 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -137,6 +137,7 @@ libsupport-routines = \ + xmemstream \ + xmkdir \ + xmkdirp \ ++ xmkfifo \ + xmmap \ + xmprotect \ + xmunmap \ +diff --git a/support/xmkfifo.c b/support/xmkfifo.c +new file mode 100644 +index 0000000000000000..a8e196dbc209a47d +--- /dev/null ++++ b/support/xmkfifo.c +@@ -0,0 +1,29 @@ ++/* mkfifo with error checking. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++void ++xmkfifo (const char *pathname, mode_t mode) ++{ ++ int r = mkfifo (pathname, mode); ++ if (r < 0) ++ FAIL_EXIT1 ("mkfifo (%s, 0%o): %m", pathname, mode); ++} +diff --git a/support/xunistd.h b/support/xunistd.h +index a25ecf1cf38ef328..94b1e1eb1b1e8253 100644 +--- a/support/xunistd.h ++++ b/support/xunistd.h +@@ -61,6 +61,7 @@ void xsymlink (const char *target, const char *linkpath); + void xchdir (const char *path); + void xfchmod (int fd, mode_t mode); + void xchmod (const char *pathname, mode_t mode); ++void xmkfifo (const char *pathname, mode_t mode); + + /* Equivalent of "mkdir -p". */ + void xmkdirp (const char *, mode_t); diff --git a/SOURCES/glibc-RHEL-46736-10.patch b/SOURCES/glibc-RHEL-46736-10.patch new file mode 100644 index 0000000..d65bf05 --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-10.patch @@ -0,0 +1,30 @@ +commit 6948ee4edf0c57c556f8d5f394d9191216d05780 +Author: Florian Weimer +Date: Sat Sep 28 21:06:11 2024 +0200 + + stdio-common: Fix memory leak in tst-freopen4* tests on UNSUPPORTED + + The temp_dir allocation leaks if support_can_chroot returns false. + +diff --git a/stdio-common/tst-freopen4-main.c b/stdio-common/tst-freopen4-main.c +index e169442cf4df2e9d..7284677a97e10af6 100644 +--- a/stdio-common/tst-freopen4-main.c ++++ b/stdio-common/tst-freopen4-main.c +@@ -33,7 +33,7 @@ int + do_test (void) + { + mtrace (); +- char *temp_dir = support_create_temp_directory ("tst-freopen4"); ++ char *temp_dir; + FILE *fp; + int ret; + +@@ -45,6 +45,8 @@ do_test (void) + support_become_root (); + if (!support_can_chroot ()) + return EXIT_UNSUPPORTED; ++ ++ temp_dir = support_create_temp_directory ("tst-freopen4"); + xchroot (temp_dir); + + /* Test freopen with NULL, renamed file. This verifies that diff --git a/SOURCES/glibc-RHEL-46736-11.patch b/SOURCES/glibc-RHEL-46736-11.patch new file mode 100644 index 0000000..ed7722a --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-11.patch @@ -0,0 +1,216 @@ +commit 42c810c2cf3554afbdd60885b7da6bb4e702466f +Author: Joseph Myers +Date: Mon Oct 7 19:44:25 2024 +0000 + + Add freopen special-case tests: thread cancellation + + Add tests of freopen adding or removing "c" (non-cancelling I/O) from + the mode string (so completing my planned tests of freopen with + different features used in the mode strings). Note that it's in the + nature of the uncertain time at which cancellation might act (possibly + during freopen, possibly during subsequent reads) that these can leak + memory or file descriptors, so these do not include leak tests. + + Tested for x86_64. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index c920f55ed2119900..09d3622823203f74 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -180,10 +180,12 @@ tests := \ + tst-freopen4 \ + tst-freopen5 \ + tst-freopen6 \ ++ tst-freopen7 \ + tst-freopen64-2 \ + tst-freopen64-3 \ + tst-freopen64-4 \ + tst-freopen64-6 \ ++ tst-freopen64-7 \ + tst-fseek \ + tst-fwrite \ + tst-getline \ +@@ -480,3 +482,6 @@ $(objpfx)tst-setvbuf1-cmp.out: tst-setvbuf1.expect $(objpfx)tst-setvbuf1.out + + $(objpfx)tst-printf-round: $(libm) + $(objpfx)tst-scanf-round: $(libm) ++ ++$(objpfx)tst-freopen7: $(shared-thread-library) ++$(objpfx)tst-freopen64-7: $(shared-thread-library) +diff --git a/stdio-common/tst-freopen64-7.c b/stdio-common/tst-freopen64-7.c +new file mode 100644 +index 0000000000000000..f34c2805210079b9 +--- /dev/null ++++ b/stdio-common/tst-freopen64-7.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include +diff --git a/stdio-common/tst-freopen7-main.c b/stdio-common/tst-freopen7-main.c +new file mode 100644 +index 0000000000000000..965e0b4adce750cc +--- /dev/null ++++ b/stdio-common/tst-freopen7-main.c +@@ -0,0 +1,155 @@ ++/* Test freopen cancellation handling. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++char *file1, *file2, *file3, *fifo; ++ ++sem_t sem; ++ ++void * ++test_rc_to_r (void *p) ++{ ++ int ret; ++ FILE *fp, *fp2; ++ ret = sem_post (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ fp = xfopen (file1, "rc"); ++ for (int i = 0; i < 1000000; i++) ++ { ++ fgetc (fp); ++ fseek (fp, 0, SEEK_SET); ++ } ++ fp2 = xfopen (file3, "wc"); ++ fputs ("rc_to_r got to freopen", fp2); ++ xfclose (fp2); ++ /* Cancellation should occur at some point from here onwards ++ (possibly leaking memory and file descriptors associated with the ++ FILE). */ ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ for (;;) ++ { ++ fgetc (fp); ++ fseek (fp, 0, SEEK_SET); ++ } ++} ++ ++void * ++test_r_to_rc (void *p) ++{ ++ int ret; ++ FILE *fp; ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (fifo, "rc", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = sem_post (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ /* No cancellation should occur for I/O on fifo. */ ++ ret = fgetc (fp); ++ /* At this point, the other thread has called pthread_cancel and ++ then written a byte to the fifo, so this thread is cancelled at ++ the next cancellation point. */ ++ TEST_VERIFY (ret == 'x'); ++ xfclose (fp); ++ fp = xfopen (file3, "wc"); ++ fputs ("r_to_rc got to fclose", fp); ++ xfclose (fp); ++ pthread_testcancel (); ++ FAIL_EXIT1 ("test_r_to_rc not cancelled\n"); ++} ++ ++int ++do_test (void) ++{ ++ char *temp_dir = support_create_temp_directory ("tst-freopen-cancel"); ++ file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ file2 = xasprintf ("%s/file2", temp_dir); ++ support_write_file_string (file2, "file2"); ++ add_temp_file (file2); ++ file3 = xasprintf ("%s/file3", temp_dir); ++ support_write_file_string (file3, "file3"); ++ add_temp_file (file3); ++ fifo = xasprintf ("%s/fifo", temp_dir); ++ xmkfifo (fifo, 0666); ++ add_temp_file (fifo); ++ int ret; ++ pthread_t thr; ++ void *retval; ++ ++ /* Test changing to/from c (cancellation disabled). */ ++ ++ verbose_printf ("Testing rc -> r\n"); ++ ret = sem_init (&sem, 0, 0); ++ TEST_VERIFY_EXIT (ret == 0); ++ thr = xpthread_create (NULL, test_rc_to_r, NULL); ++ ret = sem_wait (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ xpthread_cancel (thr); ++ ret = pthread_join (thr, &retval); ++ TEST_COMPARE (ret, 0); ++ TEST_VERIFY (retval == PTHREAD_CANCELED); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file3, "rc_to_r got to freopen"); ++ ++ verbose_printf ("Testing r -> rc\n"); ++ ret = sem_init (&sem, 0, 0); ++ TEST_VERIFY_EXIT (ret == 0); ++ thr = xpthread_create (NULL, test_r_to_rc, NULL); ++ FILE *fp = xfopen (fifo, "w"); ++ ret = sem_wait (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ /* This call happens while, or before, the other thread is waiting ++ to read a character from the fifo. It thus verifies that ++ cancellation does not occur from the fgetc call in that thread ++ (it should instead occur only in pthread_testcancel call), ++ because the expected string is only written to file3 after that ++ thread closes the fifo. */ ++ xpthread_cancel (thr); ++ fputc ('x', fp); ++ xfclose (fp); ++ ret = pthread_join (thr, &retval); ++ TEST_COMPARE (ret, 0); ++ TEST_VERIFY (retval == PTHREAD_CANCELED); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file3, "r_to_rc got to fclose"); ++ ++ free (temp_dir); ++ free (file1); ++ free (file2); ++ free (file3); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen7.c b/stdio-common/tst-freopen7.c +new file mode 100644 +index 0000000000000000..03d0de798e3d2616 +--- /dev/null ++++ b/stdio-common/tst-freopen7.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include diff --git a/SOURCES/glibc-RHEL-46736-2.patch b/SOURCES/glibc-RHEL-46736-2.patch new file mode 100644 index 0000000..9adda66 --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-2.patch @@ -0,0 +1,168 @@ +commit da55fae9e277a0c138d4395fee505e5d2f8b2b84 +Author: Carlos O'Donell +Date: Tue May 23 08:34:56 2023 -0400 + + support: Reformat Makefile. + + Add list end markers. + Sort text using scripts/sort-makefile-lines.py. + + No code generation changes observed in non-test binary artifacts. + No regressions on x86_64 and i686. + +Conflicts: + support/Makefile + (different backport order) + + +diff --git a/support/Makefile b/support/Makefile +index 0273c0f6306720c9..17a4157563f9ecd6 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -41,7 +41,7 @@ libsupport-routines = \ + resolv_response_context_free \ + resolv_test \ + set_fortify_handler \ +- support_stack_alloc \ ++ support-open-dev-null-range \ + support_become_root \ + support_can_chroot \ + support_capture_subprocess \ +@@ -65,12 +65,11 @@ libsupport-routines = \ + support_fuse \ + support_isolate_in_subprocess \ + support_need_proc \ ++ support_openpty \ + support_path_support_time64 \ ++ support_paths \ + support_process_state \ + support_ptrace \ +- support-open-dev-null-range \ +- support_openpty \ +- support_paths \ + support_quote_blob \ + support_quote_blob_wide \ + support_quote_string \ +@@ -84,6 +83,8 @@ libsupport-routines = \ + support_shared_allocate \ + support_small_stack_thread_attribute \ + support_socket_so_timestamp_time64 \ ++ support_stack_alloc \ ++ support_stack_alloc \ + support_stat_nanoseconds \ + support_subprocess \ + support_test_compare_blob \ +@@ -96,11 +97,11 @@ libsupport-routines = \ + support_write_file_string \ + temp_file \ + timespec \ +- timespec-time64 \ + timespec-add \ + timespec-add-time64 \ + timespec-sub \ + timespec-sub-time64 \ ++ timespec-time64 \ + write_message \ + xaccept \ + xaccept4 \ +@@ -108,6 +109,8 @@ libsupport-routines = \ + xbind \ + xcalloc \ + xchdir \ ++ xchmod \ ++ xchmod \ + xchroot \ + xclock_gettime \ + xclock_gettime_time64 \ +@@ -116,7 +119,6 @@ libsupport-routines = \ + xclone \ + xclose \ + xclosedir \ +- xchmod \ + xconnect \ + xcopy_file_range \ + xdlfcn \ +@@ -147,11 +149,17 @@ libsupport-routines = \ + xpipe \ + xpoll \ + xposix_memalign \ ++ xposix_spawn \ ++ xposix_spawn \ ++ xposix_spawn_file_actions_addclose \ ++ xposix_spawn_file_actions_addclose \ ++ xposix_spawn_file_actions_adddup2 \ ++ xposix_spawn_file_actions_adddup2 \ + xpthread_attr_destroy \ + xpthread_attr_init \ ++ xpthread_attr_setaffinity_np \ + xpthread_attr_setdetachstate \ + xpthread_attr_setguardsize \ +- xpthread_attr_setaffinity_np \ + xpthread_attr_setstack \ + xpthread_attr_setstacksize \ + xpthread_barrier_destroy \ +@@ -162,8 +170,8 @@ libsupport-routines = \ + xpthread_barrierattr_setpshared \ + xpthread_cancel \ + xpthread_check_return \ +- xpthread_cond_wait \ + xpthread_cond_signal \ ++ xpthread_cond_wait \ + xpthread_create \ + xpthread_detach \ + xpthread_join \ +@@ -182,8 +190,8 @@ libsupport-routines = \ + xpthread_mutexattr_setrobust \ + xpthread_mutexattr_settype \ + xpthread_once \ +- xpthread_rwlock_init \ + xpthread_rwlock_destroy \ ++ xpthread_rwlock_init \ + xpthread_rwlock_rdlock \ + xpthread_rwlock_unlock \ + xpthread_rwlock_wrlock \ +@@ -204,9 +212,6 @@ libsupport-routines = \ + xsigstack \ + xsocket \ + xstatx \ +- xposix_spawn \ +- xposix_spawn_file_actions_addclose \ +- xposix_spawn_file_actions_adddup2 \ + xstrdup \ + xstrndup \ + xsymlink \ +@@ -215,6 +220,7 @@ libsupport-routines = \ + xuselocale \ + xwaitpid \ + xwrite \ ++ # libsupport-routines + + libsupport-static-only-routines := $(libsupport-routines) + # Only build one variant of the library. +@@ -278,8 +284,16 @@ LDLIBS-test-container = $(libsupport) + others += test-container + others-noinstall += test-container + +-others += shell-container echo-container true-container +-others-noinstall += shell-container echo-container true-container ++others += \ ++ echo-container \ ++ shell-container \ ++ true-container \ ++ # others ++others-noinstall += \ ++ echo-container \ ++ shell-container \ ++ true-container \ ++ # others-noinstall + + others += $(LINKS_DSO_PROGRAM) + others-noinstall += $(LINKS_DSO_PROGRAM) +@@ -317,6 +331,7 @@ tests = \ + tst-xdirent \ + tst-xreadlink \ + tst-xsigstack \ ++ # tests + + ifeq ($(run-built-tests),yes) + tests-special = \ diff --git a/SOURCES/glibc-RHEL-46736-3.patch b/SOURCES/glibc-RHEL-46736-3.patch new file mode 100644 index 0000000..2dde8b5 --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-3.patch @@ -0,0 +1,261 @@ +commit 96d0bf98cafd0b63721f369ca21ec64590551d47 +Author: Joseph Myers +Date: Tue Sep 3 13:53:01 2024 +0000 + + Add support/ code for checking file contents + + For use in freopen tests, add various support/ helper interfaces for + use in checking file contents. + + Tested for x86_64. + +diff --git a/support/Makefile b/support/Makefile +index 38ad266a0dec8e36..e70322cea06f137b 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -48,6 +48,8 @@ libsupport-routines = \ + support_check_stat_fd \ + support_check_stat_path \ + support_chroot \ ++ support_compare_file_bytes \ ++ support_compare_file_string \ + support_copy_file \ + support_copy_file_range \ + support_create_timer \ +@@ -64,6 +66,8 @@ libsupport-routines = \ + support_fuse \ + support_isolate_in_subprocess \ + support_need_proc \ ++ support_open_and_compare_file_bytes \ ++ support_open_and_compare_file_string \ + support_openpty \ + support_path_support_time64 \ + support_paths \ +diff --git a/support/file_contents.h b/support/file_contents.h +new file mode 100644 +index 0000000000000000..9b2d750aae8a885a +--- /dev/null ++++ b/support/file_contents.h +@@ -0,0 +1,63 @@ ++/* Functionality for checking file contents. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef SUPPORT_FILE_CONTENTS_H ++#define SUPPORT_FILE_CONTENTS_H ++ ++#include ++#include ++ ++__BEGIN_DECLS ++ ++/* Check that an already-open file has exactly the given bytes, ++ starting at the current location in the file. The file position ++ indicator is updated to point after the bytes compared. Return 0 ++ if equal, 1 otherwise or on read error. */ ++int support_compare_file_bytes (FILE *fp, const char *contents, size_t length); ++ ++/* Check that an already-open file has exactly the given string as ++ contents, starting at the current offset. The file position ++ indicator is updated to point after the bytes compared. Return 0 ++ if equal, 1 otherwise or on read error. */ ++int support_compare_file_string (FILE *fp, const char *contents); ++ ++/* Check that a not-currently-open file has exactly the given bytes. ++ Return 0 if equal, 1 otherwise or on read error. */ ++int support_open_and_compare_file_bytes (const char *file, ++ const char *contents, ++ size_t length); ++ ++/* Check that a not-currently-open file has exactly the given string ++ as contents, starting at the current offset. Return 0 if equal, 1 ++ otherwise or on read error. */ ++int support_open_and_compare_file_string (const char *file, ++ const char *contents); ++ ++/* Compare bytes read from an open file with the given string. The ++ file position indicator is updated to point after the bytes ++ compared. */ ++#define TEST_COMPARE_FILE_STRING(FP, CONTENTS) \ ++ TEST_COMPARE (support_compare_file_string (FP, CONTENTS), 0) ++ ++/* Read a file and compare bytes read from it with the given string. */ ++#define TEST_OPEN_AND_COMPARE_FILE_STRING(FILE, CONTENTS) \ ++ TEST_COMPARE (support_open_and_compare_file_string (FILE, CONTENTS), 0) ++ ++__END_DECLS ++ ++#endif /* SUPPORT_FILE_CONTENTS_H */ +diff --git a/support/support_compare_file_bytes.c b/support/support_compare_file_bytes.c +new file mode 100644 +index 0000000000000000..e261e1da8f7b02b2 +--- /dev/null ++++ b/support/support_compare_file_bytes.c +@@ -0,0 +1,42 @@ ++/* Compare bytes from an open file. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++/* Check that an already-open file has exactly the given bytes, ++ starting at the current offset. */ ++ ++int ++support_compare_file_bytes (FILE *fp, const char *contents, size_t length) ++{ ++ int c; ++ while (length > 0) ++ { ++ c = getc (fp); ++ if (c == EOF || (unsigned char) c != (unsigned char) contents[0]) ++ return 1; ++ contents++; ++ length--; ++ } ++ c = getc (fp); ++ if (c != EOF || ferror (fp)) ++ return 1; ++ return 0; ++} +diff --git a/support/support_compare_file_string.c b/support/support_compare_file_string.c +new file mode 100644 +index 0000000000000000..04513c3af197037d +--- /dev/null ++++ b/support/support_compare_file_string.c +@@ -0,0 +1,28 @@ ++/* Compare string from an open file. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++int ++support_compare_file_string (FILE *fp, const char *contents) ++{ ++ return support_compare_file_bytes (fp, contents, strlen (contents)); ++} +diff --git a/support/support_open_and_compare_file_bytes.c b/support/support_open_and_compare_file_bytes.c +new file mode 100644 +index 0000000000000000..f804ed8e460d82f0 +--- /dev/null ++++ b/support/support_open_and_compare_file_bytes.c +@@ -0,0 +1,33 @@ ++/* Compare bytes from a file. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++/* Check that a not-currently-open file has exactly the given ++ bytes. */ ++ ++int ++support_open_and_compare_file_bytes (const char *file, const char *contents, ++ size_t length) ++{ ++ FILE *fp = xfopen (file, "r"); ++ int ret = support_compare_file_bytes (fp, contents, length); ++ xfclose (fp); ++ return ret; ++} +diff --git a/support/support_open_and_compare_file_string.c b/support/support_open_and_compare_file_string.c +new file mode 100644 +index 0000000000000000..2b596d4c88b697f2 +--- /dev/null ++++ b/support/support_open_and_compare_file_string.c +@@ -0,0 +1,32 @@ ++/* Compare string from a file. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++ ++/* Check that a not-currently-open file has exactly the given string ++ as contents, starting at the current offset. */ ++ ++int ++support_open_and_compare_file_string (const char *file, const char *contents) ++{ ++ return support_open_and_compare_file_bytes (file, contents, ++ strlen (contents)); ++} diff --git a/SOURCES/glibc-RHEL-46736-4.patch b/SOURCES/glibc-RHEL-46736-4.patch new file mode 100644 index 0000000..cb728cb --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-4.patch @@ -0,0 +1,739 @@ +commit ed4bb289cf739f537deb735eaa01be531df084b9 +Author: Joseph Myers +Date: Wed Sep 4 16:32:21 2024 +0000 + + Add more thorough tests of freopen + + freopen is rather minimally tested in libio/tst-freopen and + libio/test-freopen. Add some more thorough tests, covering different + cases for change of mode in particular. The tests are run for both + freopen and freopen64 (given that those functions have two separate + copies of much of the code, so any bug fix directly in the freopen + code would probably need applying in both places). + + Note that there are two parts of the tests disabled because of bugs + discovered through running the tests, with bug numbers given in + comments. I expect to address those separately. The tests also don't + cover changes to cancellation ("c" in mode); I think that will better + be handled through a separate test. Also to handle separately: + testing on stdin / stdout / stderr; documenting lack of support for + streams opened with popen / fmemopen / open_memstream / fopencookie; + maybe also a chroot test without /proc; maybe also more thorough tests + for large file handling on 32-bit systems (freopen64). + + Tested for x86_64. + +Conflicts: + stdio-common/Makefile + (tst-fread already backported) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index ea8598bbe3a6dfdd..5eddc4bfbf4e7fb9 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -175,6 +175,10 @@ tests := \ + tst-fphex \ + tst-fphex-wide \ + tst-fread \ ++ tst-freopen2 \ ++ tst-freopen3 \ ++ tst-freopen64-2 \ ++ tst-freopen64-3 \ + tst-fseek \ + tst-fwrite \ + tst-getline \ +@@ -246,6 +250,8 @@ tests-special += \ + ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ ++ $(objpfx)tst-freopen2-mem.out \ ++ $(objpfx)tst-freopen64-2-mem.out \ + $(objpfx)tst-getline-enomem-mem.out \ + $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ +@@ -256,6 +262,10 @@ tests-special += \ + # tests-special + + generated += \ ++ tst-freopen2-mem.out \ ++ tst-freopen2.mtrace \ ++ tst-freopen64-2-mem.out \ ++ tst-freopen64-2.mtrace \ + tst-getline-enomem-mem.out \ + tst-getline-enomem.mtrace \ + tst-getline-mem.out \ +@@ -328,6 +338,12 @@ tst-getline-ENV = \ + tst-getline-enomem-ENV = \ + MALLOC_TRACE=$(objpfx)tst-getline-enomem.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen2-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen2.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-2-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-2.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-freopen2-main.c b/stdio-common/tst-freopen2-main.c +new file mode 100644 +index 0000000000000000..22b21afebf709563 +--- /dev/null ++++ b/stdio-common/tst-freopen2-main.c +@@ -0,0 +1,526 @@ ++/* Test freopen. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define START_TEST(DESC) \ ++ do \ ++ { \ ++ fds = support_descriptors_list (); \ ++ verbose_printf (DESC); \ ++ } \ ++ while (0) ++ ++#define END_TEST \ ++ do \ ++ { \ ++ support_descriptors_check (fds); \ ++ support_descriptors_free (fds); \ ++ } \ ++ while (0) ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ struct support_descriptors *fds; ++ char *temp_dir = support_create_temp_directory ("tst-freopen2"); ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ char *file2 = xasprintf ("%s/file2", temp_dir); ++ support_write_file_string (file2, "file2"); ++ add_temp_file (file2); ++ char *file3 = xasprintf ("%s/file3", temp_dir); ++ char *file4 = xasprintf ("%s/file4", temp_dir); ++ char *file1a = xasprintf ("%s/file1a", temp_dir); ++ FILE *fp; ++ int ret; ++ wint_t wc; ++ ++ /* Test each pair of old and new modes from r w a. */ ++ ++ START_TEST ("Testing r -> r\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "file2"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> w\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("File2new", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file1, "file1"); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "File2new"); ++ END_TEST; ++ ++ START_TEST ("Testing r -> a\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("3", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "File2new3"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> r\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "File2new3"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing w -> w\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("next", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file1, ""); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "next"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> a\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("4", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "next4"); ++ END_TEST; ++ ++ START_TEST ("Testing a -> r\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "next4"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing a -> w\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("another", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "another"); ++ END_TEST; ++ ++ START_TEST ("Testing a -> a\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("5", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "another5"); ++ END_TEST; ++ ++ /* Test for file originally opened with fopen64. */ ++ START_TEST ("Testing fopen64 a -> a\n"); ++ fp = fopen64 (file1, "a"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("64", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "another564"); ++ END_TEST; ++ ++ /* Test calling freopen more than once on the same FILE *. */ ++ ++ START_TEST ("Testing r -> w -> r\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("freopen-twice", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "freopen-twice"); ++ END_TEST; ++ ++ START_TEST ("Testing r -> w -> r (exactly one freopen64)\n"); ++ fp = xfopen (file1, "r"); ++ fp = OTHER_FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("freopen-twice64", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice64"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "freopen-twice64"); ++ END_TEST; ++ ++ /* Test changing to/from b (binary, no-op). */ ++ ++ START_TEST ("Testing rb -> r\n"); ++ fp = xfopen (file1, "rb"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice64"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> rb\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "rb", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice64"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test changing to/from + (read-and-write). */ ++ ++ START_TEST ("Testing r -> w+\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "w+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("latest", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE_FILE_STRING (fp, "latest"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "latest"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> a+\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "a+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("suffix", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE_FILE_STRING (fp, "latestsuffix"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "latestsuffix"); ++ END_TEST; ++ ++ START_TEST ("Testing a -> r+\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "latestsuffix"); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ ret = fputs ("new", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "newestsuffix"); ++ END_TEST; ++ ++ START_TEST ("Testing r+ -> w\n"); ++ fp = xfopen (file1, "r+"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("plusto", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ TEST_COMPARE (fgetc (fp), EOF); ++ TEST_COMPARE (errno, EBADF); ++ clearerr (fp); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "plusto"); ++ END_TEST; ++ ++ START_TEST ("Testing w+ -> a\n"); ++ fp = xfopen (file1, "w+"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("more", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ TEST_COMPARE (fgetc (fp), EOF); ++ TEST_COMPARE (errno, EBADF); ++ clearerr (fp); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "plustomore"); ++ END_TEST; ++ ++ START_TEST ("Testing a+ -> r\n"); ++ fp = xfopen (file1, "a+"); ++ fp = FREOPEN (file2, "rr", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ ret = fputs ("2", fp); ++ TEST_COMPARE (ret, EOF); ++ clearerr (fp); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "plustomore"); ++ END_TEST; ++ ++ /* Test changing to/from e (FD_CLOEXEC). */ ++ ++ START_TEST ("Testing re -> r\n"); ++ fp = xfopen (file1, "re"); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++ TEST_COMPARE (ret & FD_CLOEXEC, FD_CLOEXEC); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++#if 0 /* Fails to clear FD_CLOEXEC (bug 32134). */ ++ TEST_COMPARE (ret & FD_CLOEXEC, 0); ++#endif ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> re\n"); ++ fp = xfopen (file1, "r"); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++ TEST_COMPARE (ret & FD_CLOEXEC, 0); ++ fp = FREOPEN (file2, "re", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++ TEST_COMPARE (ret & FD_CLOEXEC, FD_CLOEXEC); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test changing to/from m (mmap) (a no-op as far as testing ++ semantics is concerned). */ ++ ++ START_TEST ("Testing rm -> r\n"); ++ fp = xfopen (file1, "rm"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> rm\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "rm", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test changing to/from x (O_EXCL). */ ++ ++ START_TEST ("Testing wx -> w\n"); ++ fp = xfopen (file3, "wx"); ++ add_temp_file (file3); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("wxtow", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "wxtow"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> wx (file does not exist)\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file4, "wx", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ add_temp_file (file4); ++ ret = fputs ("wtowx", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file4, "wtowx"); ++ END_TEST; ++ ++ /* Test with ,ccs=CHARSET. */ ++ ++ START_TEST ("testing w,ccs=utf-8 -> r\n"); ++ fp = xfopen (file1, "w,ccs=utf-8"); ++ ret = fputws (L"\xc0\xc1", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "wxtow"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("testing w,ccs=iso-8859-1 -> r,ccs=utf-8\n"); ++ fp = xfopen (file2, "w,ccs=iso-8859-1"); ++ ret = fputws (L"\xc0\xc1", fp); ++ TEST_VERIFY (ret >= 0); ++#if 0 /* Doesn't work (bug 23675). */ ++ fp = FREOPEN (file1, "r,ccs=utf-8", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++#else /* Works instead. */ ++ xfclose (fp); ++ fp = xfopen (file1, "r,ccs=utf-8"); ++#endif ++ wc = fgetwc (fp); ++ TEST_COMPARE (wc, (wint_t) 0xc0); ++ wc = fgetwc (fp); ++ TEST_COMPARE (wc, (wint_t) 0xc1); ++ wc = fgetwc (fp); ++ TEST_COMPARE (wc, WEOF); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("testing r,ccs=utf-8 -> r\n"); ++ fp = xfopen (file1, "r,ccs=utf-8"); ++ fp = FREOPEN (file1, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "\u00c0\u00c1"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test that errors closing the old file are ignored. */ ++ ++ START_TEST ("testing errors closing old file ignored\n"); ++ fp = xfopen ("/dev/full", "w"); ++ fputc ('x', fp); ++ fp = FREOPEN (file1, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "\u00c0\u00c1"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test that error / EOF state from the old file are cleared. */ ++ ++ START_TEST ("testing error state from old file cleared\n"); ++ fp = xfopen ("/dev/full", "w"); ++ fputc ('x', fp); ++ fflush (fp); ++ TEST_VERIFY (ferror (fp)); ++ TEST_VERIFY (!feof (fp)); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_VERIFY (!ferror (fp)); ++ TEST_VERIFY (!feof (fp)); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("testing EOF state from old file cleared\n"); ++ fp = xfopen ("/dev/null", "r"); ++ fgetc (fp); ++ TEST_VERIFY (!ferror (fp)); ++ TEST_VERIFY (feof (fp)); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_VERIFY (!ferror (fp)); ++ TEST_VERIFY (!feof (fp)); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test freopen with NULL, same mode (should flush content and reset ++ file offset). */ ++ ++ START_TEST ("testing freopen with NULL, same mode\n"); ++ fp = xfopen (file1, "r+"); ++ ret = fputs ("same mode", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "same mode"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test freopen with NULL, different mode. */ ++ ++ START_TEST ("testing freopen with NULL, different mode\n"); ++ fp = xfopen (file1, "w"); ++ ret = fputs ("different mode", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (NULL, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "different mode"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test freopen with NULL, renamed file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened. */ ++ ++ START_TEST ("testing freopen with NULL, renamed file\n"); ++ fp = xfopen (file1, "r+"); ++ ret = fputs ("file has been renamed", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = rename (file1, file1a); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "file has been renamed"); ++ xfclose (fp); ++ ret = rename (file1a, file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* Test freopen with NULL, deleted file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened. */ ++ ++ START_TEST ("testing freopen with NULL, deleted file\n"); ++ fp = xfopen (file1, "r+"); ++ ret = fputs ("file has now been deleted", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "file has now been deleted"); ++ xfclose (fp); ++ /* Recreate the file so it is present when expected for temporary ++ file deletion. */ ++ support_write_file_string (file1, "file1"); ++ END_TEST; ++ ++ free (temp_dir); ++ free (file1); ++ free (file2); ++ free (file3); ++ free (file4); ++ free (file1a); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen2.c b/stdio-common/tst-freopen2.c +new file mode 100644 +index 0000000000000000..11ec7a9783b7caa3 +--- /dev/null ++++ b/stdio-common/tst-freopen2.c +@@ -0,0 +1,3 @@ ++#define FREOPEN freopen ++#define OTHER_FREOPEN freopen64 ++#include +diff --git a/stdio-common/tst-freopen3-main.c b/stdio-common/tst-freopen3-main.c +new file mode 100644 +index 0000000000000000..5107e1f98e189e4b +--- /dev/null ++++ b/stdio-common/tst-freopen3-main.c +@@ -0,0 +1,90 @@ ++/* Test freopen failure. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define START_TEST(DESC) \ ++ do \ ++ { \ ++ fds = support_descriptors_list (); \ ++ verbose_printf (DESC); \ ++ } \ ++ while (0) ++ ++#define END_TEST \ ++ do \ ++ { \ ++ support_descriptors_check (fds); \ ++ support_descriptors_free (fds); \ ++ } \ ++ while (0) ++ ++int ++do_test (void) ++{ ++ struct support_descriptors *fds; ++ char *temp_dir = support_create_temp_directory ("tst-freopen3"); ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ char *file2 = xasprintf ("%s/file2", temp_dir); ++ support_write_file_string (file2, "file2"); ++ add_temp_file (file2); ++ char *file_nodir = xasprintf ("%s/nodir/file", temp_dir); ++ FILE *fp; ++ int ret; ++ int fd; ++ ++ START_TEST ("Testing w -> wx (file exists)\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "wx", fp); ++ TEST_VERIFY (fp == NULL); ++ END_TEST; ++ ++ /* Test old file is closed even when opening the new file fails. */ ++ ++ START_TEST ("testing r -> r (opening new file fails)\n"); ++ fp = xfopen (file1, "r"); ++ fd = fileno (fp); ++ fp = FREOPEN (file_nodir, "r", fp); ++ TEST_VERIFY (fp == NULL); ++ errno = 0; ++ ret = fcntl (fd, F_GETFL); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EBADF); ++ END_TEST; ++ ++ free (temp_dir); ++ free (file1); ++ free (file2); ++ free (file_nodir); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen3.c b/stdio-common/tst-freopen3.c +new file mode 100644 +index 0000000000000000..5041b6b2332c8af1 +--- /dev/null ++++ b/stdio-common/tst-freopen3.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen64-2.c b/stdio-common/tst-freopen64-2.c +new file mode 100644 +index 0000000000000000..88fdc64d8c6548f5 +--- /dev/null ++++ b/stdio-common/tst-freopen64-2.c +@@ -0,0 +1,3 @@ ++#define FREOPEN freopen64 ++#define OTHER_FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen64-3.c b/stdio-common/tst-freopen64-3.c +new file mode 100644 +index 0000000000000000..b91b6d2c033a1a79 +--- /dev/null ++++ b/stdio-common/tst-freopen64-3.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include diff --git a/SOURCES/glibc-RHEL-46736-5.patch b/SOURCES/glibc-RHEL-46736-5.patch new file mode 100644 index 0000000..ca67e62 --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-5.patch @@ -0,0 +1,69 @@ +commit f512634ddef242ef0ff025ddeba64ce51035040f +Author: Joseph Myers +Date: Thu Sep 5 11:15:29 2024 +0000 + + Clear flags2 flags set from mode in freopen (bug 32134) + + As reported in bug 32134, freopen does not clear the flags set in + fp->_flags2 by the "e", "m" or "c" mode characters. Clear these so + that they can be set or not as appropriate from the mode string passed + to freopen. The relevant test for "e" in tst-freopen2-main.c is + enabled accordingly; "c" is expected to be covered in a separately + written test (and while tst-freopen2-main.c does include transitions + to and from "m", that's not really a semantic flag intended to result + in behaving in an observably different way). + + Tested for x86_64. + +diff --git a/libio/freopen.c b/libio/freopen.c +index c947a5aecfde3c80..bed034d89441f200 100644 +--- a/libio/freopen.c ++++ b/libio/freopen.c +@@ -63,6 +63,9 @@ freopen (const char *filename, const char *mode, FILE *fp) + up here. */ + _IO_old_file_close_it (fp); + _IO_JUMPS_FUNC_UPDATE (fp, &_IO_old_file_jumps); ++ fp->_flags2 &= ~(_IO_FLAGS2_MMAP ++ | _IO_FLAGS2_NOTCANCEL ++ | _IO_FLAGS2_CLOEXEC); + result = _IO_old_file_fopen (fp, gfilename, mode); + } + else +@@ -72,6 +75,9 @@ freopen (const char *filename, const char *mode, FILE *fp) + _IO_JUMPS_FILE_plus (fp) = &_IO_file_jumps; + if (_IO_vtable_offset (fp) == 0 && fp->_wide_data != NULL) + fp->_wide_data->_wide_vtable = &_IO_wfile_jumps; ++ fp->_flags2 &= ~(_IO_FLAGS2_MMAP ++ | _IO_FLAGS2_NOTCANCEL ++ | _IO_FLAGS2_CLOEXEC); + result = _IO_file_fopen (fp, gfilename, mode, 1); + if (result != NULL) + result = __fopen_maybe_mmap (result); +diff --git a/libio/freopen64.c b/libio/freopen64.c +index fb02c201bd83c401..9a314c65c1d8a5a4 100644 +--- a/libio/freopen64.c ++++ b/libio/freopen64.c +@@ -56,6 +56,9 @@ freopen64 (const char *filename, const char *mode, FILE *fp) + _IO_JUMPS_FILE_plus (fp) = &_IO_file_jumps; + if (_IO_vtable_offset (fp) == 0 && fp->_wide_data != NULL) + fp->_wide_data->_wide_vtable = &_IO_wfile_jumps; ++ fp->_flags2 &= ~(_IO_FLAGS2_MMAP ++ | _IO_FLAGS2_NOTCANCEL ++ | _IO_FLAGS2_CLOEXEC); + result = _IO_file_fopen (fp, gfilename, mode, 0); + fp->_flags2 &= ~_IO_FLAGS2_NOCLOSE; + if (result != NULL) +diff --git a/stdio-common/tst-freopen2-main.c b/stdio-common/tst-freopen2-main.c +index 22b21afebf709563..5dad41c76b02e6de 100644 +--- a/stdio-common/tst-freopen2-main.c ++++ b/stdio-common/tst-freopen2-main.c +@@ -308,9 +308,7 @@ do_test (void) + TEST_VERIFY_EXIT (fp != NULL); + ret = fcntl (fileno (fp), F_GETFD); + TEST_VERIFY (ret != -1); +-#if 0 /* Fails to clear FD_CLOEXEC (bug 32134). */ + TEST_COMPARE (ret & FD_CLOEXEC, 0); +-#endif + TEST_COMPARE_FILE_STRING (fp, "plustomore"); + xfclose (fp); + END_TEST; diff --git a/SOURCES/glibc-RHEL-46736-6.patch b/SOURCES/glibc-RHEL-46736-6.patch new file mode 100644 index 0000000..5650c7b --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-6.patch @@ -0,0 +1,119 @@ +commit 9c0d6f7a1046aba111e25e34ec07242853e859dc +Author: Joseph Myers +Date: Thu Sep 5 11:16:59 2024 +0000 + + Fix memory leak on freopen error return (bug 32140) + + As reported in bug 32140, freopen leaks the FILE object when it + returns NULL: there is no valid use of the FILE * pointer (including + passing to freopen again or to fclose) after such an error return, so + the underlying object should be freed. Add code to free it. + + Note 1: while I think it's clear from the relevant standards that the + object should be freed and the FILE * can't be used after the call in + this case (the stream is closed, which ends the lifetime of the FILE), + it's entirely possible that some existing code does in fact try to use + the existing FILE * in some way and could be broken by this change. + (Though the most common case for freopen may be stdin / stdout / + stderr, which _IO_deallocate_file explicitly checks for and does not + deallocate.) + + Note 2: the deallocation is only done in the _IO_IS_FILEBUF case. + Other kinds of streams bypass all the freopen logic handling closing + the file, meaning a call to _IO_deallocate_file would neither be safe + (the FILE might still be linked into the list of all open FILEs) nor + sufficient (other internal memory allocations associated with the file + would not have been freed). I think the validity of freopen for any + other kind of stream will need clarifying with the Austin Group, but + if it is valid in any such case (where "valid" means "not undefined + behavior so required to close the stream" rather than "required to + successfully associate the stream with the new file in cases where + fopen would work"), more significant changes would be needed to ensure + the stream gets fully closed. + + Tested for x86_64. + +diff --git a/libio/freopen.c b/libio/freopen.c +index bed034d89441f200..03f8961a61b12e80 100644 +--- a/libio/freopen.c ++++ b/libio/freopen.c +@@ -114,5 +114,7 @@ freopen (const char *filename, const char *mode, FILE *fp) + + end: + _IO_release_lock (fp); ++ if (result == NULL && (fp->_flags & _IO_IS_FILEBUF) != 0) ++ _IO_deallocate_file (fp); + return result; + } +diff --git a/libio/freopen64.c b/libio/freopen64.c +index 9a314c65c1d8a5a4..abcbd80a5bd92e69 100644 +--- a/libio/freopen64.c ++++ b/libio/freopen64.c +@@ -94,5 +94,7 @@ freopen64 (const char *filename, const char *mode, FILE *fp) + + end: + _IO_release_lock (fp); ++ if (result == NULL && (fp->_flags & _IO_IS_FILEBUF) != 0) ++ _IO_deallocate_file (fp); + return result; + } +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 5eddc4bfbf4e7fb9..bd3c785537ba0330 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -251,7 +251,9 @@ ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ + $(objpfx)tst-freopen2-mem.out \ ++ $(objpfx)tst-freopen3-mem.out \ + $(objpfx)tst-freopen64-2-mem.out \ ++ $(objpfx)tst-freopen64-3-mem.out \ + $(objpfx)tst-getline-enomem-mem.out \ + $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ +@@ -264,8 +266,12 @@ tests-special += \ + generated += \ + tst-freopen2-mem.out \ + tst-freopen2.mtrace \ ++ tst-freopen3-mem.out \ ++ tst-freopen3.mtrace \ + tst-freopen64-2-mem.out \ + tst-freopen64-2.mtrace \ ++ tst-freopen64-3-mem.out \ ++ tst-freopen64-3.mtrace \ + tst-getline-enomem-mem.out \ + tst-getline-enomem.mtrace \ + tst-getline-mem.out \ +@@ -344,6 +350,12 @@ tst-freopen2-ENV = \ + tst-freopen64-2-ENV = \ + MALLOC_TRACE=$(objpfx)tst-freopen64-2.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen3-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen3.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-3-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-3.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-freopen3-main.c b/stdio-common/tst-freopen3-main.c +index 5107e1f98e189e4b..990a6e5921843793 100644 +--- a/stdio-common/tst-freopen3-main.c ++++ b/stdio-common/tst-freopen3-main.c +@@ -18,6 +18,7 @@ + + #include + #include ++#include + #include + #include + +@@ -48,6 +49,7 @@ + int + do_test (void) + { ++ mtrace (); + struct support_descriptors *fds; + char *temp_dir = support_create_temp_directory ("tst-freopen3"); + char *file1 = xasprintf ("%s/file1", temp_dir); diff --git a/SOURCES/glibc-RHEL-46736-7.patch b/SOURCES/glibc-RHEL-46736-7.patch new file mode 100644 index 0000000..e025835 --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-7.patch @@ -0,0 +1,86 @@ +commit e44ca1c085b3bd41266c882ea1cb0fd436231635 +Author: Joseph Myers +Date: Thu Sep 5 20:08:10 2024 +0000 + + Fix freopen handling of ,ccs= (bug 23675) + + As reported in bug 23675 and shown up in the recently added tests of + different cases of freopen (relevant part of the test currently + conditioned under #if 0 to avoid a failure resulting from this bug), + freopen wrongly forces the stream to unoriented even when a mode with + ,ccs= is specified, though such a mode is supposed to result in a + wide-oriented stream. Move the clearing of _mode to before the actual + reopening occurs, so that the main fopen implementation can leave a + wide-oriented stream in the ,ccs= case. + + Tested for x86_64. + +diff --git a/libio/freopen.c b/libio/freopen.c +index 03f8961a61b12e80..d71a4cfffdc35280 100644 +--- a/libio/freopen.c ++++ b/libio/freopen.c +@@ -66,6 +66,7 @@ freopen (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~(_IO_FLAGS2_MMAP + | _IO_FLAGS2_NOTCANCEL + | _IO_FLAGS2_CLOEXEC); ++ fp->_mode = 0; + result = _IO_old_file_fopen (fp, gfilename, mode); + } + else +@@ -78,6 +79,7 @@ freopen (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~(_IO_FLAGS2_MMAP + | _IO_FLAGS2_NOTCANCEL + | _IO_FLAGS2_CLOEXEC); ++ fp->_mode = 0; + result = _IO_file_fopen (fp, gfilename, mode, 1); + if (result != NULL) + result = __fopen_maybe_mmap (result); +@@ -85,9 +87,6 @@ freopen (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~_IO_FLAGS2_NOCLOSE; + if (result != NULL) + { +- /* unbound stream orientation */ +- result->_mode = 0; +- + if (fd != -1 && _IO_fileno (result) != fd) + { + /* At this point we have both file descriptors already allocated, +diff --git a/libio/freopen64.c b/libio/freopen64.c +index abcbd80a5bd92e69..64af2c5f7c80a3e9 100644 +--- a/libio/freopen64.c ++++ b/libio/freopen64.c +@@ -59,15 +59,13 @@ freopen64 (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~(_IO_FLAGS2_MMAP + | _IO_FLAGS2_NOTCANCEL + | _IO_FLAGS2_CLOEXEC); ++ fp->_mode = 0; + result = _IO_file_fopen (fp, gfilename, mode, 0); + fp->_flags2 &= ~_IO_FLAGS2_NOCLOSE; + if (result != NULL) + result = __fopen_maybe_mmap (result); + if (result != NULL) + { +- /* unbound stream orientation */ +- result->_mode = 0; +- + if (fd != -1 && _IO_fileno (result) != fd) + { + /* At this point we have both file descriptors already allocated, +diff --git a/stdio-common/tst-freopen2-main.c b/stdio-common/tst-freopen2-main.c +index 5dad41c76b02e6de..74c3125fca697fe3 100644 +--- a/stdio-common/tst-freopen2-main.c ++++ b/stdio-common/tst-freopen2-main.c +@@ -386,13 +386,8 @@ do_test (void) + fp = xfopen (file2, "w,ccs=iso-8859-1"); + ret = fputws (L"\xc0\xc1", fp); + TEST_VERIFY (ret >= 0); +-#if 0 /* Doesn't work (bug 23675). */ + fp = FREOPEN (file1, "r,ccs=utf-8", fp); + TEST_VERIFY_EXIT (fp != NULL); +-#else /* Works instead. */ +- xfclose (fp); +- fp = xfopen (file1, "r,ccs=utf-8"); +-#endif + wc = fgetwc (fp); + TEST_COMPARE (wc, (wint_t) 0xc0); + wc = fgetwc (fp); diff --git a/SOURCES/glibc-RHEL-46736-8.patch b/SOURCES/glibc-RHEL-46736-8.patch new file mode 100644 index 0000000..c265ed5 --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-8.patch @@ -0,0 +1,33 @@ +commit a2509a8bc955988f01f389a1cf74db3a9da42409 +Author: Joseph Myers +Date: Fri Sep 6 20:38:23 2024 +0000 + + Document limitations on streams passed to freopen + + As recently discussed, document that freopen does not work with + streams opened with functions such as popen, fmemopen, open_memstream + or fopencookie. I've filed + to clarify this issue + in POSIX. + + Tested with "make info" and "make html". + +diff --git a/manual/stdio.texi b/manual/stdio.texi +index 60ab7e7a5d505bb6..a2d9292a787b9fa3 100644 +--- a/manual/stdio.texi ++++ b/manual/stdio.texi +@@ -330,6 +330,14 @@ this ability, so using @code{freopen} is more portable. + When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a + 32 bit machine this function is in fact @code{freopen64} since the LFS + interface replaces transparently the old interface. ++ ++@Theglibc{} only supports use of @code{freopen} on streams opened with ++@code{fopen} or @code{fopen64} and on the original values of the ++standard streams @code{stdin}, @code{stdout}, and @code{stderr}; such ++a stream may be reopened multiple times with @code{freopen}. If it is ++called on another kind of stream (opened with functions such as ++@code{popen}, @code{fmemopen}, @code{open_memstream}, and ++@code{fopencookie}), @code{freopen} fails and returns a null pointer. + @end deftypefun + + @deftypefun {FILE *} freopen64 (const char *@var{filename}, const char *@var{opentype}, FILE *@var{stream}) diff --git a/SOURCES/glibc-RHEL-46736-9.patch b/SOURCES/glibc-RHEL-46736-9.patch new file mode 100644 index 0000000..f9316a1 --- /dev/null +++ b/SOURCES/glibc-RHEL-46736-9.patch @@ -0,0 +1,495 @@ +commit e0f3bf10acf4aab27752847828bfecd3fce41190 +Author: Joseph Myers +Date: Fri Sep 20 23:26:31 2024 +0000 + + Add freopen special-case tests: chroot, EFBIG, stdin/stdout/stderr + + Add tests of special cases for freopen that were omitted from the more + general tests of different modes and similar issues. The special + cases in the three tests here are logically unconnected, it was simply + convenient to put these tests in one patch. + + * Test freopen with a NULL path to the new file, in a chroot. Rather + than asserting that this fails (logically, failure in this case is + an implementation detail; it's not required for freopen to rely on + /proc), verify that either it fails (without memory leaks) or that + it succeeds and behaves as expected on success. There is no check + for file descriptor leaks because the machinery for that also + depends on /proc, so can't be used in a chroot. + + * Test that freopen and freopen64 are genuinely different in + configurations with 32-bit off_t by checking for an EFBIG trying to + write past 2GB in a file opened with freopen in such a configuration + but no error with 64-bit off_t or when opening with freopen64. + + * Test freopen of stdin, stdout and stderr. + + Tested for x86_64 and x86. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index bd3c785537ba0330..c920f55ed2119900 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -177,8 +177,13 @@ tests := \ + tst-fread \ + tst-freopen2 \ + tst-freopen3 \ ++ tst-freopen4 \ ++ tst-freopen5 \ ++ tst-freopen6 \ + tst-freopen64-2 \ + tst-freopen64-3 \ ++ tst-freopen64-4 \ ++ tst-freopen64-6 \ + tst-fseek \ + tst-fwrite \ + tst-getline \ +@@ -252,8 +257,13 @@ ifneq ($(PERL),no) + tests-special += \ + $(objpfx)tst-freopen2-mem.out \ + $(objpfx)tst-freopen3-mem.out \ ++ $(objpfx)tst-freopen4-mem.out \ ++ $(objpfx)tst-freopen5-mem.out \ ++ $(objpfx)tst-freopen6-mem.out \ + $(objpfx)tst-freopen64-2-mem.out \ + $(objpfx)tst-freopen64-3-mem.out \ ++ $(objpfx)tst-freopen64-4-mem.out \ ++ $(objpfx)tst-freopen64-6-mem.out \ + $(objpfx)tst-getline-enomem-mem.out \ + $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ +@@ -268,10 +278,20 @@ generated += \ + tst-freopen2.mtrace \ + tst-freopen3-mem.out \ + tst-freopen3.mtrace \ ++ tst-freopen4-mem.out \ ++ tst-freopen4.mtrace \ ++ tst-freopen5-mem.out \ ++ tst-freopen5.mtrace \ ++ tst-freopen6-mem.out \ ++ tst-freopen6.mtrace \ + tst-freopen64-2-mem.out \ + tst-freopen64-2.mtrace \ + tst-freopen64-3-mem.out \ + tst-freopen64-3.mtrace \ ++ tst-freopen64-4-mem.out \ ++ tst-freopen64-4.mtrace \ ++ tst-freopen64-6-mem.out \ ++ tst-freopen64-6.mtrace \ + tst-getline-enomem-mem.out \ + tst-getline-enomem.mtrace \ + tst-getline-mem.out \ +@@ -356,6 +376,21 @@ tst-freopen3-ENV = \ + tst-freopen64-3-ENV = \ + MALLOC_TRACE=$(objpfx)tst-freopen64-3.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen4-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen4.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-4-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-4.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen5-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen5.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen6-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen6.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-6-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-6.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-freopen4-main.c b/stdio-common/tst-freopen4-main.c +new file mode 100644 +index 0000000000000000..e169442cf4df2e9d +--- /dev/null ++++ b/stdio-common/tst-freopen4-main.c +@@ -0,0 +1,100 @@ ++/* Test freopen in chroot. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ char *temp_dir = support_create_temp_directory ("tst-freopen4"); ++ FILE *fp; ++ int ret; ++ ++ /* These chroot tests verify that either reopening a renamed or ++ deleted file works even in the absence of /proc, or that it fails ++ (without memory leaks); thus, for example, such reopening does ++ not crash in the absence of /proc. */ ++ ++ support_become_root (); ++ if (!support_can_chroot ()) ++ return EXIT_UNSUPPORTED; ++ xchroot (temp_dir); ++ ++ /* Test freopen with NULL, renamed file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened, or fails without a memory leak. (It is not possible to ++ use to test for file descriptor leaks ++ here, because that also depends on /proc.) */ ++ ++ verbose_printf ("testing freopen with NULL, renamed file\n"); ++ fp = xfopen ("/file1", "w+"); ++ ret = fputs ("file has been renamed", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = rename ("/file1", "/file1a"); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ if (fp != NULL) ++ { ++ puts ("freopen of renamed file succeeded"); ++ TEST_COMPARE_FILE_STRING (fp, "file has been renamed"); ++ xfclose (fp); ++ } ++ else ++ puts ("freopen of renamed file failed (OK)"); ++ ret = rename ("/file1a", "/file1"); ++ TEST_COMPARE (ret, 0); ++ ++ /* Test freopen with NULL, deleted file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened, or fails without a memory leak. */ ++ ++ verbose_printf ("testing freopen with NULL, deleted file\n"); ++ fp = xfopen ("/file1", "r+"); ++ ret = fputs ("file has now been deleted", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = remove ("/file1"); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ if (fp != NULL) ++ { ++ puts ("freopen of deleted file succeeded"); ++ TEST_COMPARE_FILE_STRING (fp, "file has now been deleted"); ++ xfclose (fp); ++ } ++ else ++ puts ("freopen of deleted file failed (OK)"); ++ ++ free (temp_dir); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen4.c b/stdio-common/tst-freopen4.c +new file mode 100644 +index 0000000000000000..f39ec0d21730879f +--- /dev/null ++++ b/stdio-common/tst-freopen4.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen5.c b/stdio-common/tst-freopen5.c +new file mode 100644 +index 0000000000000000..f32626bccfe5c10a +--- /dev/null ++++ b/stdio-common/tst-freopen5.c +@@ -0,0 +1,144 @@ ++/* Test freopen and freopen64 with large offsets. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define START_TEST(DESC) \ ++ do \ ++ { \ ++ fds = support_descriptors_list (); \ ++ verbose_printf (DESC); \ ++ } \ ++ while (0) ++ ++#define END_TEST \ ++ do \ ++ { \ ++ support_descriptors_check (fds); \ ++ support_descriptors_free (fds); \ ++ } \ ++ while (0) ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ struct support_descriptors *fds; ++ FILE *fp; ++ int ret; ++ ++ char *temp_dir = support_create_temp_directory ("tst-freopen5"); ++ /* This file is removed at the end of each test rather than left ++ around between tests to avoid problems with subsequent tests ++ reopening it as a large (2GB + 1 byte) file. */ ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ ++ /* fopen with freopen64: large offsets OK. */ ++ START_TEST ("testing fopen with freopen64\n"); ++ fp = fopen ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen64 (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ ret = fputc ('x', fp); ++ TEST_COMPARE (ret, 'x'); ++ xfclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* fopen64 with freopen64: large offsets OK. */ ++ START_TEST ("testing fopen64 with freopen64\n"); ++ fp = fopen64 ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen64 (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ ret = fputc ('x', fp); ++ TEST_COMPARE (ret, 'x'); ++ xfclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* fopen with freopen: large offsets not OK on 32-bit systems. */ ++ START_TEST ("testing fopen with freopen\n"); ++ fp = fopen ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ ret = fputc ('x', fp); ++ if (sizeof (off_t) == 4) ++ { ++ TEST_COMPARE (ret, EOF); ++ TEST_COMPARE (errno, EFBIG); ++ } ++ else ++ TEST_COMPARE (ret, 'x'); ++ fclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* fopen64 with freopen: large offsets not OK on 32-bit systems. */ ++ START_TEST ("testing fopen64 with freopen\n"); ++ fp = fopen64 ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ ret = fputc ('x', fp); ++ if (sizeof (off_t) == 4) ++ { ++ TEST_COMPARE (ret, EOF); ++ TEST_COMPARE (errno, EFBIG); ++ } ++ else ++ TEST_COMPARE (ret, 'x'); ++ fclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ free (temp_dir); ++ free (file1); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen6-main.c b/stdio-common/tst-freopen6-main.c +new file mode 100644 +index 0000000000000000..f493f42fd7486b72 +--- /dev/null ++++ b/stdio-common/tst-freopen6-main.c +@@ -0,0 +1,98 @@ ++/* Test freopen of stdin / stdout / stderr. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ char *temp_dir = support_create_temp_directory ("tst-freopen6"); ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ FILE *fp; ++ int ret; ++ ++ verbose_printf ("Testing reopening stdin\n"); ++ fp = FREOPEN (file1, "r", stdin); ++ TEST_VERIFY_EXIT (fp == stdin); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'f'); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'i'); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'l'); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'e'); ++ ret = getchar (); ++ TEST_COMPARE (ret, '1'); ++ ret = getchar (); ++ TEST_COMPARE (ret, EOF); ++ xfclose (fp); ++ ++ verbose_printf ("Testing reopening stderr\n"); ++ fp = FREOPEN (file1, "w+", stderr); ++ TEST_VERIFY_EXIT (fp == stderr); ++ errno = EINVAL; ++ perror ("test"); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE_FILE_STRING (fp, "test: Invalid argument\n"); ++ xfclose (fp); ++ ++ verbose_printf ("Testing reopening stdout\n"); ++ /* Defer checks until the old stdout has been restored to make it ++ more likely any errors are written to the old stdout (rather than ++ the temporary file used for the redirected stdout). */ ++ int old_stdout = dup (STDOUT_FILENO); ++ TEST_VERIFY_EXIT (old_stdout != -1); ++ int ret_fseek = 0; ++ int ret_compare = 0; ++ fp = FREOPEN (file1, "w+", stdout); ++ int fp_eq_stdout = fp == stdout; ++ if (fp != NULL) ++ { ++ printf ("reopened\n"); ++ ret_fseek = fseek (fp, 0, SEEK_SET); ++ ret_compare = support_compare_file_string (fp, "reopened\n"); ++ } ++ xfclose (fp); ++ stdout = fdopen (old_stdout, "w"); ++ TEST_VERIFY (fp_eq_stdout); ++ TEST_COMPARE (ret_fseek, 0); ++ TEST_COMPARE (ret_compare, 0); ++ xfclose (stdout); ++ ++ free (temp_dir); ++ free (file1); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen6.c b/stdio-common/tst-freopen6.c +new file mode 100644 +index 0000000000000000..8fd6957b54fa9bc2 +--- /dev/null ++++ b/stdio-common/tst-freopen6.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen64-4.c b/stdio-common/tst-freopen64-4.c +new file mode 100644 +index 0000000000000000..1411be2bfa0105c1 +--- /dev/null ++++ b/stdio-common/tst-freopen64-4.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include +diff --git a/stdio-common/tst-freopen64-6.c b/stdio-common/tst-freopen64-6.c +new file mode 100644 +index 0000000000000000..3ec509a36c2471f6 +--- /dev/null ++++ b/stdio-common/tst-freopen64-6.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include diff --git a/SOURCES/glibc-RHEL-46738-1.patch b/SOURCES/glibc-RHEL-46738-1.patch new file mode 100644 index 0000000..e6e0118 --- /dev/null +++ b/SOURCES/glibc-RHEL-46738-1.patch @@ -0,0 +1,34 @@ +From 53fcdf5f743aa9b02972eec658e66f96d6a63386 Mon Sep 17 00:00:00 2001 +From: Alejandro Colomar +Date: Sat, 16 Nov 2024 16:51:31 +0100 +Subject: Silence most -Wzero-as-null-pointer-constant diagnostics + +Replace 0 by NULL and {0} by {}. + +Omit a few cases that aren't so trivial to fix. + +Link: +Link: +Signed-off-by: Alejandro Colomar + +Conflicts + All except libioP.h + Removed - unneeded, wouldn't apply + +diff --git a/libio/libioP.h b/libio/libioP.h +index a83a411fdf..34bf91fcd8 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -915,9 +915,10 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, _IO_pos_BAD,\ +- NULL, WDP, 0 } ++ NULL, WDP, NULL } + # endif + #else + # ifdef _IO_USE_OLD_IO_FILE diff --git a/SOURCES/glibc-RHEL-46738-2.patch b/SOURCES/glibc-RHEL-46738-2.patch new file mode 100644 index 0000000..c2423d5 --- /dev/null +++ b/SOURCES/glibc-RHEL-46738-2.patch @@ -0,0 +1,52 @@ +From bd0ea9ff7e8d5f7d54112dfa96d541c3c60e36ae Mon Sep 17 00:00:00 2001 +From: Alejandro Colomar +Date: Tue, 17 Dec 2024 00:22:19 +0100 +Subject: libio: Use NULL instead of 0 as a null pointer constant + +This was missed in a recent global change. + +Fixes: 53fcdf5f743a (2024-11-25, "Silence most -Wzero-as-null-pointer-constant diagnostics") +Reported-by: "Maciej W. Rozycki" +Cc: Siddhesh Poyarekar +Cc: Bruno Haible +Cc: Martin Uecker +Cc: Xi Ruoyao +Cc: Florian Weimer +Cc: Joseph Myers +Signed-off-by: Alejandro Colomar +Reviewed-by: Maciej W. Rozycki + +diff --git a/libio/libioP.h b/libio/libioP.h +index 34bf91fcd8..70e2bdfc9d 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -910,7 +910,8 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + # ifdef _IO_USE_OLD_IO_FILE + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ +@@ -924,14 +925,16 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + # ifdef _IO_USE_OLD_IO_FILE + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD, 0, 0, { 0 }, 0, _IO_pos_BAD, \ +- NULL, WDP, 0 } ++ NULL, WDP, NULL } + # endif + #endif + diff --git a/SOURCES/glibc-RHEL-46738-3.patch b/SOURCES/glibc-RHEL-46738-3.patch new file mode 100644 index 0000000..3b57355 --- /dev/null +++ b/SOURCES/glibc-RHEL-46738-3.patch @@ -0,0 +1,21 @@ +From cfdd9e7aa45cdc575df237e2d2eee3219a06829b Mon Sep 17 00:00:00 2001 +From: Siddhesh Poyarekar +Date: Tue, 17 Dec 2024 17:36:36 -0500 +Subject: libio: Fix last NULL-as-0 issue in libioP.h + +Signed-off-by: Siddhesh Poyarekar +Reviewed-by: Maciej W. Rozycki + +diff --git a/libio/libioP.h b/libio/libioP.h +index 70e2bdfc9d..ad45579e13 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -933,7 +933,7 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ + NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, 0, _IO_pos_BAD, \ ++ 0, _IO_pos_BAD, 0, 0, { 0 }, NULL, _IO_pos_BAD, \ + NULL, WDP, NULL } + # endif + #endif diff --git a/SOURCES/glibc-RHEL-46738-4.patch b/SOURCES/glibc-RHEL-46738-4.patch new file mode 100644 index 0000000..6f30744 --- /dev/null +++ b/SOURCES/glibc-RHEL-46738-4.patch @@ -0,0 +1,405 @@ +From ae5062201d7e9d18fe88bff4bc71088374c394fb Mon Sep 17 00:00:00 2001 +From: Siddhesh Poyarekar +Date: Thu, 7 Nov 2024 11:16:04 -0500 +Subject: ungetc: Guarantee single char pushback + +The C standard requires that ungetc guarantees at least one pushback, +but the malloc call to allocate the pushback buffer could fail, thus +violating that requirement. Fix this by adding a single byte pushback +buffer in the FILE struct that the pushback can fall back to if malloc +fails. + +The side-effect is that if the initial malloc fails and the 1-byte +fallback buffer is used, future resizing (if it succeeds) will be +2-bytes, 4-bytes and so on, which is suboptimal but it's after a malloc +failure, so maybe even desirable. + +A future optimization here could be to have the pushback code use the +single byte buffer first and only fall back to malloc for subsequent +calls. + +Signed-off-by: Siddhesh Poyarekar +Reviewed-by: Maciej W. Rozycki + +Conflicts: + libio/bits/types/struct_FILE.h + libio/fileops.c + libio/genops.c + libio/libioP.h + libio/oldfileops.c + libio/wfileops.c + stdio-common/Makefile + Copyright year conflicts in all files + Rebase for altered context and line numbers + +diff -rupN a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +--- a/libio/bits/types/struct_FILE.h 2021-08-01 21:33:43.000000000 -0400 ++++ b/libio/bits/types/struct_FILE.h 2024-12-19 00:34:04.289351714 -0500 +@@ -1,4 +1,5 @@ + /* Copyright (C) 1991-2021 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -70,7 +71,9 @@ struct _IO_FILE + struct _IO_FILE *_chain; + + int _fileno; +- int _flags2; ++ int _flags2:24; ++ /* Fallback buffer to use when malloc fails to allocate one. */ ++ char _short_backupbuf[1]; + __off_t _old_offset; /* This used to be _offset but it's too small. */ + + /* 1+column number of pbase(); 0 is unknown. */ +diff -rupN a/libio/fileops.c b/libio/fileops.c +--- a/libio/fileops.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/libio/fileops.c 2024-12-19 00:34:04.294351763 -0500 +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2021 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + Written by Per Bothner . + +@@ -480,7 +481,7 @@ _IO_new_file_underflow (FILE *fp) + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +@@ -932,7 +933,7 @@ _IO_new_file_seekoff (FILE *fp, off64_t + /* It could be that we already have a pushback buffer. */ + if (fp->_IO_read_base != NULL) + { +- free (fp->_IO_read_base); ++ _IO_free_backup_buf (fp, fp->_IO_read_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +@@ -1282,7 +1283,7 @@ _IO_file_xsgetn (FILE *fp, void *data, s + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +diff -rupN a/libio/genops.c b/libio/genops.c +--- a/libio/genops.c 2024-12-18 23:17:35.150703172 -0500 ++++ b/libio/genops.c 2024-12-19 00:34:04.300351821 -0500 +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2021 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -187,7 +188,7 @@ _IO_free_backup_area (FILE *fp) + { + if (_IO_in_backup (fp)) + _IO_switch_to_main_get_area (fp); /* Just in case. */ +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_IO_save_base = NULL; + fp->_IO_save_end = NULL; + fp->_IO_backup_base = NULL; +@@ -235,7 +236,7 @@ save_for_backup (FILE *fp, char *end_p) + memcpy (new_buffer + avail, + fp->_IO_read_base + least_mark, + needed_size); +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_IO_save_base = new_buffer; + fp->_IO_save_end = new_buffer + avail + needed_size; + } +@@ -611,7 +612,7 @@ _IO_default_finish (FILE *fp, int dummy) + + if (fp->_IO_save_base) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_IO_save_base = NULL; + } + +@@ -996,11 +997,14 @@ _IO_default_pbackfail (FILE *fp, int c) + else if (!_IO_have_backup (fp)) + { + /* No backup buffer: allocate one. */ +- /* Use nshort buffer, if unused? (probably not) FIXME */ + int backup_size = 128; + char *bbuf = (char *) malloc (backup_size); + if (bbuf == NULL) +- return EOF; ++ { ++ /* Guarantee a 1-char pushback. */ ++ bbuf = fp->_short_backupbuf; ++ backup_size = 1; ++ } + fp->_IO_save_base = bbuf; + fp->_IO_save_end = fp->_IO_save_base + backup_size; + fp->_IO_backup_base = fp->_IO_save_end; +@@ -1020,7 +1024,7 @@ _IO_default_pbackfail (FILE *fp, int c) + return EOF; + memcpy (new_buf + (new_size - old_size), fp->_IO_read_base, + old_size); +- free (fp->_IO_read_base); ++ _IO_free_backup_buf (fp, fp->_IO_read_base); + _IO_setg (fp, new_buf, new_buf + (new_size - old_size), + new_buf + new_size); + fp->_IO_backup_base = fp->_IO_read_ptr; +diff -rupN a/libio/libioP.h b/libio/libioP.h +--- a/libio/libioP.h 2024-12-18 23:17:36.823719449 -0500 ++++ b/libio/libioP.h 2024-12-19 00:34:04.305351870 -0500 +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2021 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -809,30 +810,30 @@ extern int _IO_vscanf (const char *, va_ + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, _IO_pos_BAD,\ +- NULL, WDP, NULL } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, \ ++ _IO_pos_BAD, NULL, WDP, NULL } + # endif + #else + # ifdef _IO_USE_OLD_IO_FILE + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, NULL, _IO_pos_BAD, \ +- NULL, WDP, NULL } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD, 0, 0, { 0 }, NULL, \ ++ _IO_pos_BAD, NULL, WDP, NULL } + # endif + #endif + +@@ -951,6 +952,15 @@ IO_validate_vtable (const struct _IO_jum + return vtable; + } + ++/* In case of an allocation failure, we resort to using the fixed buffer ++ _SHORT_BACKUPBUF. Free PTR unless it points to that buffer. */ ++static __always_inline void ++_IO_free_backup_buf (FILE *fp, char *ptr) ++{ ++ if (ptr != fp->_short_backupbuf) ++ free (ptr); ++} ++ + /* Character set conversion. */ + + enum __codecvt_result +diff -rupN a/libio/oldfileops.c b/libio/oldfileops.c +--- a/libio/oldfileops.c 2021-08-01 21:33:43.000000000 -0400 ++++ b/libio/oldfileops.c 2024-12-19 00:34:04.311351928 -0500 +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2021 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + Written by Per Bothner . + +@@ -310,7 +311,7 @@ _IO_old_file_underflow (FILE *fp) + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +@@ -463,7 +464,7 @@ _IO_old_file_seekoff (FILE *fp, off64_t + /* It could be that we already have a pushback buffer. */ + if (fp->_IO_read_base != NULL) + { +- free (fp->_IO_read_base); ++ _IO_free_backup_buf (fp, fp->_IO_read_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +diff -rupN a/libio/wfileops.c b/libio/wfileops.c +--- a/libio/wfileops.c 2024-12-18 23:17:34.277694679 -0500 ++++ b/libio/wfileops.c 2024-12-19 00:34:04.316351977 -0500 +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2021 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + Written by Ulrich Drepper . + Based on the single byte version by Per Bothner . +@@ -177,7 +178,7 @@ _IO_wfile_underflow (FILE *fp) + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +diff -rupN a/stdio-common/Makefile b/stdio-common/Makefile +--- a/stdio-common/Makefile 2024-12-18 23:17:36.527716569 -0500 ++++ b/stdio-common/Makefile 2024-12-19 00:34:04.320352016 -0500 +@@ -1,4 +1,5 @@ + # Copyright (C) 1991-2021 Free Software Foundation, Inc. ++# Copyright The GNU Toolchain Authors. + # This file is part of the GNU C Library. + + # The GNU C Library is free software; you can redistribute it and/or +@@ -242,6 +243,7 @@ tests := \ + tst-tmpnam \ + tst-ungetc \ + tst-ungetc-leak \ ++ tst-ungetc-nomem \ + tst-unlockedio \ + tst-vfprintf-mbs-prec \ + tst-vfprintf-user-type \ +diff -rupN a/stdio-common/tst-ungetc-nomem.c b/stdio-common/tst-ungetc-nomem.c +--- a/stdio-common/tst-ungetc-nomem.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/stdio-common/tst-ungetc-nomem.c 2024-12-19 00:34:04.324352055 -0500 +@@ -0,0 +1,121 @@ ++/* Test ungetc behavior with malloc failures. ++ Copyright The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static volatile bool fail = false; ++ ++/* Induce a malloc failure whenever FAIL is set; we use the __LIBC_MALLOC entry ++ point to avoid the other alternative, which is RTLD_NEXT. */ ++void * ++malloc (size_t sz) ++{ ++ if (fail) ++ return NULL; ++ ++ static void *(*real_malloc) (size_t); ++ ++ if (real_malloc == NULL) ++ real_malloc = dlsym (RTLD_NEXT, "malloc"); ++ ++ return real_malloc (sz); ++} ++ ++static int ++do_test (void) ++{ ++ char *filename = NULL; ++ struct stat props = {}; ++ size_t bufsz = 0; ++ ++ create_temp_file ("tst-ungetc-nomem.", &filename); ++ if (stat (filename, &props) != 0) ++ FAIL_EXIT1 ("Could not get file status: %m\n"); ++ ++ FILE *fp = fopen (filename, "w"); ++ ++ /* The libio buffer sizes are the same as block size. This is to ensure that ++ the test runs at the read underflow boundary as well. */ ++ bufsz = props.st_blksize + 2; ++ ++ char *buf = xmalloc (bufsz); ++ memset (buf, 'a', bufsz); ++ ++ if (fwrite (buf, sizeof (char), bufsz, fp) != bufsz) ++ FAIL_EXIT1 ("fwrite failed: %m\n"); ++ xfclose (fp); ++ ++ /* Begin test. */ ++ fp = xfopen (filename, "r"); ++ ++ while (!feof (fp)) ++ { ++ /* Reset the pushback buffer state. */ ++ fseek (fp, 0, SEEK_CUR); ++ ++ fail = true; ++ /* 1: First ungetc should always succeed, as the standard requires. */ ++ TEST_COMPARE (ungetc ('b', fp), 'b'); ++ ++ /* 2: This will result in resizing, which should fail. */ ++ TEST_COMPARE (ungetc ('c', fp), EOF); ++ ++ /* 3: Now allow the resizing, which should immediately fill up the buffer ++ too, since this allocates only double the current buffer, i.e. ++ 2-bytes. */ ++ fail = false; ++ TEST_COMPARE (ungetc ('d', fp), 'd'); ++ ++ /* 4: And fail again because this again forces an alloc, which fails. */ ++ fail = true; ++ TEST_COMPARE (ungetc ('e', fp), EOF); ++ ++ /* 5: Enable allocations again so that we now get a 4-byte buffer. Now ++ both calls should work. */ ++ fail = false; ++ TEST_COMPARE (ungetc ('f', fp), 'f'); ++ fail = true; ++ TEST_COMPARE (ungetc ('g', fp), 'g'); ++ ++ /* Drain out the x's. */ ++ TEST_COMPARE (fgetc (fp), 'g'); ++ TEST_COMPARE (fgetc (fp), 'f'); ++ TEST_COMPARE (fgetc (fp), 'd'); ++ ++ /* Finally, drain out the first char we had pushed back, followed by one ++ more char from the stream, if present. */ ++ TEST_COMPARE (fgetc (fp), 'b'); ++ char c = fgetc (fp); ++ if (!feof (fp)) ++ TEST_COMPARE (c, 'a'); ++ } ++ ++ /* Final sanity check before we're done. */ ++ TEST_COMPARE (ferror (fp), 0); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46738-5.patch b/SOURCES/glibc-RHEL-46738-5.patch new file mode 100644 index 0000000..9eb8107 --- /dev/null +++ b/SOURCES/glibc-RHEL-46738-5.patch @@ -0,0 +1,26 @@ +Downstream-only patch to restore the extern ABI for functions +like fprintf that use the FILE * type. Rebuilds of applications +receive ABI change reports because of this installed header change +(indirect subtype change in libabigail terms), and given that +this part of struct _IO_FILE is strictly internal, there is no +need to expose this change to installed headers. + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index 0e73f89f813ef3b8..f7f756a701ce0e93 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -71,9 +71,14 @@ struct _IO_FILE + struct _IO_FILE *_chain; + + int _fileno; ++#ifdef _LIBC + int _flags2:24; + /* Fallback buffer to use when malloc fails to allocate one. */ + char _short_backupbuf[1]; ++#else ++ /* Legacy ABI for ABI checking outside of glibc. */ ++ int _flags2; ++#endif + __off_t _old_offset; /* This used to be _offset but it's too small. */ + + /* 1+column number of pbase(); 0 is unknown. */ diff --git a/SOURCES/glibc-RHEL-46739-1.patch b/SOURCES/glibc-RHEL-46739-1.patch new file mode 100644 index 0000000..2292c12 --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-1.patch @@ -0,0 +1,49 @@ +commit 207d64feb26279e152c50744e3c37e68491aca99 +Author: Joseph Myers +Date: Wed Aug 14 17:15:46 2024 +0000 + + Test errno setting on strtod overflow in tst-strtod-round + + We have no tests that errno is set to ERANGE on overflow of + strtod-family functions (we do have some tests for underflow, in + tst-strtod-underflow). Add such tests to tst-strtod-round. + + Tested for x86_64. + +diff --git a/stdlib/tst-strtod-round-skeleton.c b/stdlib/tst-strtod-round-skeleton.c +index f60b9a00e9e8d262..1ff1977112bda7a8 100644 +--- a/stdlib/tst-strtod-round-skeleton.c ++++ b/stdlib/tst-strtod-round-skeleton.c +@@ -21,6 +21,7 @@ + declared in the headers. */ + #define _LIBC_TEST 1 + #define __STDC_WANT_IEC_60559_TYPES_EXT__ ++#include + #include + #include + #include +@@ -205,7 +206,9 @@ struct test { + #define GEN_ONE_TEST(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ + { \ + feclearexcept (FE_ALL_EXCEPT); \ ++ errno = 0; \ + FTYPE f = STRTO (FSUF) (s, NULL); \ ++ int new_errno = errno; \ + if (f != expected->FSUF \ + || (copysign ## CSUF) (1.0 ## LSUF, f) \ + != (copysign ## CSUF) (1.0 ## LSUF, expected->FSUF)) \ +@@ -254,6 +257,14 @@ struct test { + printf ("ignoring this exception error\n"); \ + } \ + } \ ++ if (overflow->FSUF && new_errno != ERANGE) \ ++ { \ ++ printf (FNPFXS "to" #FSUF \ ++ " (" STRM ") left errno == %d," \ ++ " not %d (ERANGE)\n", \ ++ s, new_errno, ERANGE); \ ++ result = 1; \ ++ } \ + } \ + } + diff --git a/SOURCES/glibc-RHEL-46739-10.patch b/SOURCES/glibc-RHEL-46739-10.patch new file mode 100644 index 0000000..0bcd14c --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-10.patch @@ -0,0 +1,38 @@ +commit 378039ca578c2ea93095a1e710d96f58c68a3997 +Author: Joseph Myers +Date: Fri Sep 20 23:24:45 2024 +0000 + + Add tests of more strtod special cases + + There is very little test coverage of inputs to strtod-family + functions that don't contain anything that can be parsed as a number + (one test of ".y" in tst-strtod2), and none that I can see of skipping + initial whitespace. Add some tests of these things to tst-strtod2. + + Tested for x86_64. + +diff --git a/stdlib/tst-strtod2.c b/stdlib/tst-strtod2.c +index c84bd792c1a3f511..d00bc13323c50622 100644 +--- a/stdlib/tst-strtod2.c ++++ b/stdlib/tst-strtod2.c +@@ -31,6 +31,20 @@ struct test_strto ## FSUF \ + { "0x1px", 1.0 ## LSUF, 3 }, \ + { "0x1p+x", 1.0 ## LSUF, 3 }, \ + { "0x1p-x", 1.0 ## LSUF, 3 }, \ ++ { "", 0.0 ## LSUF, 0 }, \ ++ { ".", 0.0 ## LSUF, 0 }, \ ++ { "-", 0.0 ## LSUF, 0 }, \ ++ { "-.", 0.0 ## LSUF, 0 }, \ ++ { ".e", 0.0 ## LSUF, 0 }, \ ++ { "-.e", 0.0 ## LSUF, 0 }, \ ++ { " \t", 0.0 ## LSUF, 0 }, \ ++ { " \t.", 0.0 ## LSUF, 0 }, \ ++ { " \t-", 0.0 ## LSUF, 0 }, \ ++ { " \t-.", 0.0 ## LSUF, 0 }, \ ++ { " \t.e", 0.0 ## LSUF, 0 }, \ ++ { " \t-.e", 0.0 ## LSUF, 0 }, \ ++ { " \t\f\r\n\v1", 1.0 ## LSUF, 7 }, \ ++ { " \t\f\r\n\v-1.5e2", -150.0 ## LSUF, 12 }, \ + { "INFx", INFINITY, 3 }, \ + { "infx", INFINITY, 3 }, \ + { "INFINITx", INFINITY, 3 }, \ diff --git a/SOURCES/glibc-RHEL-46739-11.patch b/SOURCES/glibc-RHEL-46739-11.patch new file mode 100644 index 0000000..0e21b24 --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-11.patch @@ -0,0 +1,439 @@ +commit 94ca2c0894f0e1b62625c369cc598a2b9236622c +Author: Joseph Myers +Date: Fri Sep 20 23:25:32 2024 +0000 + + Make tst-strtod-underflow type-generic + + The test tst-strtod-underflow covers various edge cases close to the + underflow threshold for strtod (especially cases where underflow on + architectures with after-rounding tininess detection depends on the + rounding mode). Make it use the type-generic machinery, with + corresponding test inputs for each supported floating-point format, so + that other functions in the strtod family are tested for underflow + edge cases as well. + + Tested for x86_64. + +diff --git a/stdlib/tst-strtod-underflow.c b/stdlib/tst-strtod-underflow.c +index 294f88de439fb3e7..094a70bbbe53e70b 100644 +--- a/stdlib/tst-strtod-underflow.c ++++ b/stdlib/tst-strtod-underflow.c +@@ -17,6 +17,10 @@ + License along with the GNU C Library; if not, see + . */ + ++/* Defining _LIBC_TEST ensures long double math functions are ++ declared in the headers. */ ++#define _LIBC_TEST 1 ++#define __STDC_WANT_IEC_60559_TYPES_EXT__ + #include + #include + #include +@@ -25,6 +29,60 @@ + #include + #include + ++#include "tst-strtod.h" ++ ++/* Logic for selecting between tests for different formats is as in ++ tst-strtod-skeleton.c, but here it is selecting string inputs with ++ different underflow properties, rather than generated test ++ data. */ ++ ++#define _CONCAT(a, b) a ## b ++#define CONCAT(a, b) _CONCAT (a, b) ++ ++#define MEMBER(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++ const char *s_ ## FSUF; ++ ++#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 ++# define CHOOSE_ld(f,d,...) d ++#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16381 ++# define CHOOSE_ld(f,d,ld64i,...) ld64i ++#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16382 ++# define CHOOSE_ld(f,d,ld64i,ld64m,...) ld64m ++#elif LDBL_MANT_DIG == 106 && LDBL_MAX_EXP == 1024 ++# define CHOOSE_ld(f,d,ld64i,ld64m,ld106,...) ld106 ++#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 ++# define CHOOSE_ld(f,d,ld64i,ld64m,ld106,ld113,...) ld113 ++#else ++# error "unknown long double format" ++#endif ++ ++#define CHOOSE_f(f,...) f ++#define CHOOSE_f32(f,...) f ++#define CHOOSE_d(f,d,...) d ++#define CHOOSE_f64(f,d,...) d ++#define CHOOSE_f32x(f,d,...) d ++#define CHOOSE_f128(f,d,ld64i,ld64m,ld106,ld113,...) ld113 ++ ++#if __HAVE_FLOAT64X ++# if FLT64X_MANT_DIG == 113 && FLT64X_MAX_EXP == 16384 ++# define CHOOSE_f64x(f,d,ld64i,ld64m,ld106,ld113,...) ld113 ++# elif (FLT64X_MANT_DIG == 64 \ ++ && FLT64X_MAX_EXP == 16384 \ ++ && FLT64X_MIN_EXP == -16381) ++# define CHOOSE_f64x(f,d,ld64i,...) ld64i ++# else ++# error "unknown _Float64x format" ++# endif ++#endif ++ ++#define _XNTRY(FSUF, FTYPE, FTOSTR, LSUF, CSUF, ...) \ ++ CHOOSE_ ## FSUF (__VA_ARGS__), ++#define XNTRY(...) \ ++ GEN_TEST_STRTOD_FOREACH (_XNTRY, __VA_ARGS__) ++ ++#define TEST(f, d, ld64i, ld64m, ld106, ld113, u) \ ++ { XNTRY(f, d, ld64i, ld64m, ld106, ld113) u } ++ + enum underflow_case + { + /* Result is exact or outside the subnormal range. */ +@@ -55,38 +113,194 @@ enum underflow_case + + struct test + { +- const char *s; ++ GEN_TEST_STRTOD_FOREACH (MEMBER) + enum underflow_case c; + }; + + static const struct test tests[] = + { +- { "0x1p-1022", UNDERFLOW_NONE }, +- { "-0x1p-1022", UNDERFLOW_NONE }, +- { "0x0p-10000000000000000000000000", UNDERFLOW_NONE }, +- { "-0x0p-10000000000000000000000000", UNDERFLOW_NONE }, +- { "0x1p-10000000000000000000000000", UNDERFLOW_ALWAYS }, +- { "-0x1p-10000000000000000000000000", UNDERFLOW_ALWAYS }, +- { "0x1.000000000000000000001p-1022", UNDERFLOW_NONE }, +- { "-0x1.000000000000000000001p-1022", UNDERFLOW_NONE }, +- { "0x1p-1075", UNDERFLOW_ALWAYS }, +- { "-0x1p-1075", UNDERFLOW_ALWAYS }, +- { "0x1p-1023", UNDERFLOW_NONE }, +- { "-0x1p-1023", UNDERFLOW_NONE }, +- { "0x1p-1074", UNDERFLOW_NONE }, +- { "-0x1p-1074", UNDERFLOW_NONE }, +- { "0x1.ffffffffffffep-1023", UNDERFLOW_NONE }, +- { "-0x1.ffffffffffffep-1023", UNDERFLOW_NONE }, +- { "0x1.fffffffffffffp-1023", UNDERFLOW_ALWAYS }, +- { "-0x1.fffffffffffffp-1023", UNDERFLOW_ALWAYS }, +- { "0x1.fffffffffffff0001p-1023", UNDERFLOW_EXCEPT_UPWARD }, +- { "-0x1.fffffffffffff0001p-1023", UNDERFLOW_EXCEPT_DOWNWARD }, +- { "0x1.fffffffffffff7fffp-1023", UNDERFLOW_EXCEPT_UPWARD }, +- { "-0x1.fffffffffffff7fffp-1023", UNDERFLOW_EXCEPT_DOWNWARD }, +- { "0x1.fffffffffffff8p-1023", UNDERFLOW_ONLY_DOWNWARD_ZERO }, +- { "-0x1.fffffffffffff8p-1023", UNDERFLOW_ONLY_UPWARD_ZERO }, +- { "0x1.fffffffffffffffffp-1023", UNDERFLOW_ONLY_DOWNWARD_ZERO }, +- { "-0x1.fffffffffffffffffp-1023", UNDERFLOW_ONLY_UPWARD_ZERO }, ++ TEST ("0x1p-126", ++ "0x1p-1022", ++ "0x1p-16382", ++ "0x1p-16383", ++ "0x1p-969", ++ "0x1p-16382", ++ UNDERFLOW_NONE), ++ TEST ("-0x1p-126", ++ "-0x1p-1022", ++ "-0x1p-16382", ++ "-0x1p-16383", ++ "-0x1p-969", ++ "-0x1p-16382", ++ UNDERFLOW_NONE), ++ TEST ("0x0p-10000000000000000000000000", ++ "0x0p-10000000000000000000000000", ++ "0x0p-10000000000000000000000000", ++ "0x0p-10000000000000000000000000", ++ "0x0p-10000000000000000000000000", ++ "0x0p-10000000000000000000000000", ++ UNDERFLOW_NONE), ++ TEST ("-0x0p-10000000000000000000000000", ++ "-0x0p-10000000000000000000000000", ++ "-0x0p-10000000000000000000000000", ++ "-0x0p-10000000000000000000000000", ++ "-0x0p-10000000000000000000000000", ++ "-0x0p-10000000000000000000000000", ++ UNDERFLOW_NONE), ++ TEST ("0x1p-10000000000000000000000000", ++ "0x1p-10000000000000000000000000", ++ "0x1p-10000000000000000000000000", ++ "0x1p-10000000000000000000000000", ++ "0x1p-10000000000000000000000000", ++ "0x1p-10000000000000000000000000", ++ UNDERFLOW_ALWAYS), ++ TEST ("-0x1p-10000000000000000000000000", ++ "-0x1p-10000000000000000000000000", ++ "-0x1p-10000000000000000000000000", ++ "-0x1p-10000000000000000000000000", ++ "-0x1p-10000000000000000000000000", ++ "-0x1p-10000000000000000000000000", ++ UNDERFLOW_ALWAYS), ++ TEST ("0x1.000000000000000000001p-126", ++ "0x1.000000000000000000001p-1022", ++ "0x1.000000000000000000001p-16382", ++ "0x1.000000000000000000001p-16383", ++ "0x1.000000000000000000001p-969", ++ "0x1.00000000000000000000000000000000000000001p-16382", ++ UNDERFLOW_NONE), ++ TEST ("-0x1.000000000000000000001p-126", ++ "-0x1.000000000000000000001p-1022", ++ "-0x1.000000000000000000001p-16382", ++ "-0x1.000000000000000000001p-16383", ++ "-0x1.000000000000000000001p-969", ++ "-0x1.00000000000000000000000000000000000000001p-16382", ++ UNDERFLOW_NONE), ++ TEST ("0x1p-150", ++ "0x1p-1075", ++ "0x1p-16446", ++ "0x1p-16447", ++ "0x1p-1075", ++ "0x1p-16495", ++ UNDERFLOW_ALWAYS), ++ TEST ("-0x1p-150", ++ "-0x1p-1075", ++ "-0x1p-16446", ++ "-0x1p-16447", ++ "-0x1p-1075", ++ "-0x1p-16495", ++ UNDERFLOW_ALWAYS), ++ TEST ("0x1p-127", ++ "0x1p-1023", ++ "0x1p-16383", ++ "0x1p-16384", ++ "0x1p-970", ++ "0x1p-16383", ++ UNDERFLOW_NONE), ++ TEST ("-0x1p-127", ++ "-0x1p-1023", ++ "-0x1p-16383", ++ "-0x1p-16384", ++ "-0x1p-970", ++ "-0x1p-16383", ++ UNDERFLOW_NONE), ++ TEST ("0x1p-149", ++ "0x1p-1074", ++ "0x1p-16445", ++ "0x1p-16446", ++ "0x1p-1074", ++ "0x1p-16494", ++ UNDERFLOW_NONE), ++ TEST ("-0x1p-149", ++ "-0x1p-1074", ++ "-0x1p-16445", ++ "-0x1p-16446", ++ "-0x1p-1074", ++ "-0x1p-16494", ++ UNDERFLOW_NONE), ++ TEST ("0x1.fffffcp-127", ++ "0x1.ffffffffffffep-1023", ++ "0x1.fffffffffffffffcp-16383", ++ "0x1.fffffffffffffffcp-16384", ++ "0x1.ffffffffffffffffffffffffffp-970", ++ "0x1.fffffffffffffffffffffffffffep-16383", ++ UNDERFLOW_NONE), ++ TEST ("-0x1.fffffcp-127", ++ "-0x1.ffffffffffffep-1023", ++ "-0x1.fffffffffffffffcp-16383", ++ "-0x1.fffffffffffffffcp-16384", ++ "-0x1.ffffffffffffffffffffffffffp-970", ++ "-0x1.fffffffffffffffffffffffffffep-16383", ++ UNDERFLOW_NONE), ++ TEST ("0x1.fffffep-127", ++ "0x1.fffffffffffffp-1023", ++ "0x1.fffffffffffffffep-16383", ++ "0x1.fffffffffffffffep-16384", ++ "0x1.ffffffffffffffffffffffffff8p-970", ++ "0x1.ffffffffffffffffffffffffffffp-16383", ++ UNDERFLOW_ALWAYS), ++ TEST ("-0x1.fffffep-127", ++ "-0x1.fffffffffffffp-1023", ++ "-0x1.fffffffffffffffep-16383", ++ "-0x1.fffffffffffffffep-16384", ++ "-0x1.ffffffffffffffffffffffffff8p-970", ++ "-0x1.ffffffffffffffffffffffffffffp-16383", ++ UNDERFLOW_ALWAYS), ++ TEST ("0x1.fffffe0001p-127", ++ "0x1.fffffffffffff0001p-1023", ++ "0x1.fffffffffffffffe0001p-16383", ++ "0x1.fffffffffffffffe0001p-16384", ++ "0x1.ffffffffffffffffffffffffff80001p-970", ++ "0x1.ffffffffffffffffffffffffffff0001p-16383", ++ UNDERFLOW_EXCEPT_UPWARD), ++ TEST ("-0x1.fffffe0001p-127", ++ "-0x1.fffffffffffff0001p-1023", ++ "-0x1.fffffffffffffffe0001p-16383", ++ "-0x1.fffffffffffffffe0001p-16384", ++ "-0x1.ffffffffffffffffffffffffff80001p-970", ++ "-0x1.ffffffffffffffffffffffffffff0001p-16383", ++ UNDERFLOW_EXCEPT_DOWNWARD), ++ TEST ("0x1.fffffeffffp-127", ++ "0x1.fffffffffffff7fffp-1023", ++ "0x1.fffffffffffffffeffffp-16383", ++ "0x1.fffffffffffffffeffffp-16384", ++ "0x1.ffffffffffffffffffffffffffbffffp-970", ++ "0x1.ffffffffffffffffffffffffffff7fffp-16383", ++ UNDERFLOW_EXCEPT_UPWARD), ++ TEST ("-0x1.fffffeffffp-127", ++ "-0x1.fffffffffffff7fffp-1023", ++ "-0x1.fffffffffffffffeffffp-16383", ++ "-0x1.fffffffffffffffeffffp-16384", ++ "-0x1.ffffffffffffffffffffffffffbffffp-970", ++ "-0x1.ffffffffffffffffffffffffffff7fffp-16383", ++ UNDERFLOW_EXCEPT_DOWNWARD), ++ TEST ("0x1.ffffffp-127", ++ "0x1.fffffffffffff8p-1023", ++ "0x1.ffffffffffffffffp-16383", ++ "0x1.ffffffffffffffffp-16384", ++ "0x1.ffffffffffffffffffffffffffcp-970", ++ "0x1.ffffffffffffffffffffffffffff8p-16383", ++ UNDERFLOW_ONLY_DOWNWARD_ZERO), ++ TEST ("-0x1.ffffffp-127", ++ "-0x1.fffffffffffff8p-1023", ++ "-0x1.ffffffffffffffffp-16383", ++ "-0x1.ffffffffffffffffp-16384", ++ "-0x1.ffffffffffffffffffffffffffcp-970", ++ "-0x1.ffffffffffffffffffffffffffff8p-16383", ++ UNDERFLOW_ONLY_UPWARD_ZERO), ++ TEST ("0x1.ffffffffffp-127", ++ "0x1.fffffffffffffffffp-1023", ++ "0x1.ffffffffffffffffffffp-16383", ++ "0x1.ffffffffffffffffffffp-16384", ++ "0x1.ffffffffffffffffffffffffffffffp-970", ++ "0x1.ffffffffffffffffffffffffffffffffp-16383", ++ UNDERFLOW_ONLY_DOWNWARD_ZERO), ++ TEST ("-0x1.ffffffffffp-127", ++ "-0x1.fffffffffffffffffp-1023", ++ "-0x1.ffffffffffffffffffffp-16383", ++ "-0x1.ffffffffffffffffffffp-16384", ++ "-0x1.ffffffffffffffffffffffffffffffp-970", ++ "-0x1.ffffffffffffffffffffffffffffffffp-16383", ++ UNDERFLOW_ONLY_UPWARD_ZERO), + }; + + /* Return whether to expect underflow from a particular testcase, in a +@@ -133,39 +347,62 @@ static bool support_underflow_exception = false; + volatile double d = DBL_MIN; + volatile double dd; + +-static int +-test_in_one_mode (const char *s, enum underflow_case c, int rm, +- const char *mode_name) ++static bool ++test_got_fe_underflow (void) + { +- int result = 0; +- feclearexcept (FE_ALL_EXCEPT); +- errno = 0; +- double d = strtod (s, NULL); +- int got_errno = errno; + #ifdef FE_UNDERFLOW +- bool got_fe_underflow = fetestexcept (FE_UNDERFLOW) != 0; ++ return fetestexcept (FE_UNDERFLOW) != 0; + #else +- bool got_fe_underflow = false; ++ return false; + #endif +- printf ("strtod (%s) (%s) returned %a, errno = %d, %sunderflow exception\n", +- s, mode_name, d, got_errno, got_fe_underflow ? "" : "no "); +- bool this_expect_underflow = expect_underflow (c, rm); +- if (got_errno != 0 && got_errno != ERANGE) +- { +- puts ("FAIL: errno neither 0 nor ERANGE"); +- result = 1; +- } +- else if (this_expect_underflow != (errno == ERANGE)) +- { +- puts ("FAIL: underflow from errno differs from expectations"); +- result = 1; +- } +- if (support_underflow_exception && got_fe_underflow != this_expect_underflow) +- { +- puts ("FAIL: underflow from exceptions differs from expectations"); +- result = 1; +- } +- return result; ++} ++ ++#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++static int \ ++test_strto ## FSUF (int i, int rm, const char *mode_name) \ ++{ \ ++ const char *s = tests[i].s_ ## FSUF; \ ++ enum underflow_case c = tests[i].c; \ ++ int result = 0; \ ++ feclearexcept (FE_ALL_EXCEPT); \ ++ errno = 0; \ ++ FTYPE d = strto ## FSUF (s, NULL); \ ++ int got_errno = errno; \ ++ bool got_fe_underflow = test_got_fe_underflow (); \ ++ char buf[FSTRLENMAX]; \ ++ FTOSTR (buf, sizeof (buf), "%a", d); \ ++ printf ("strto" #FSUF \ ++ " (%s) (%s) returned %s, errno = %d, " \ ++ "%sunderflow exception\n", \ ++ s, mode_name, buf, got_errno, \ ++ got_fe_underflow ? "" : "no "); \ ++ bool this_expect_underflow = expect_underflow (c, rm); \ ++ if (got_errno != 0 && got_errno != ERANGE) \ ++ { \ ++ puts ("FAIL: errno neither 0 nor ERANGE"); \ ++ result = 1; \ ++ } \ ++ else if (this_expect_underflow != (errno == ERANGE)) \ ++ { \ ++ puts ("FAIL: underflow from errno differs from expectations"); \ ++ result = 1; \ ++ } \ ++ if (support_underflow_exception \ ++ && got_fe_underflow != this_expect_underflow) \ ++ { \ ++ puts ("FAIL: underflow from exceptions " \ ++ "differs from expectations"); \ ++ result = 1; \ ++ } \ ++ return result; \ ++} ++ ++GEN_TEST_STRTOD_FOREACH (TEST_STRTOD) ++ ++static int ++test_in_one_mode (size_t i, int rm, const char *mode_name) ++{ ++ return STRTOD_TEST_FOREACH (test_strto, i, rm, mode_name); + } + + static int +@@ -191,12 +428,12 @@ do_test (void) + #endif + for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++) + { +- result |= test_in_one_mode (tests[i].s, tests[i].c, fe_tonearest, ++ result |= test_in_one_mode (i, fe_tonearest, + "default rounding mode"); + #ifdef FE_DOWNWARD + if (!fesetround (FE_DOWNWARD)) + { +- result |= test_in_one_mode (tests[i].s, tests[i].c, FE_DOWNWARD, ++ result |= test_in_one_mode (i, FE_DOWNWARD, + "FE_DOWNWARD"); + fesetround (save_round_mode); + } +@@ -204,7 +441,7 @@ do_test (void) + #ifdef FE_TOWARDZERO + if (!fesetround (FE_TOWARDZERO)) + { +- result |= test_in_one_mode (tests[i].s, tests[i].c, FE_TOWARDZERO, ++ result |= test_in_one_mode (i, FE_TOWARDZERO, + "FE_TOWARDZERO"); + fesetround (save_round_mode); + } +@@ -212,7 +449,7 @@ do_test (void) + #ifdef FE_UPWARD + if (!fesetround (FE_UPWARD)) + { +- result |= test_in_one_mode (tests[i].s, tests[i].c, FE_UPWARD, ++ result |= test_in_one_mode (i, FE_UPWARD, + "FE_UPWARD"); + fesetround (save_round_mode); + } diff --git a/SOURCES/glibc-RHEL-46739-2.patch b/SOURCES/glibc-RHEL-46739-2.patch new file mode 100644 index 0000000..da1873c --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-2.patch @@ -0,0 +1,16723 @@ +commit d73ed2601b7c3c93c3529149a3d7f7b6177900a8 +Author: Joseph Myers +Date: Tue Aug 27 12:38:01 2024 +0000 + + More thoroughly test underflow / errno in tst-strtod-round + + Add tests of underflow in tst-strtod-round, and thus also test for + errno being unchanged when there is neither overflow nor underflow. + The errno setting before the function call to test for being unchanged + is adjusted to set errno to 12345 instead of 0, so that any bugs where + strtod sets errno to 0 would be detected. + + This doesn't add any new test inputs for tst-strtod-round, and in + particular doesn't cover the edge cases of underflow the way + tst-strtod-underflow does (none of the existing test inputs for + tst-strtod-round actually exercise cases that have underflow with + before-rounding tininess detection but not with after-rounding + tininess detection), but at least it provides some coverage (as per + the recent discussions) that ordinary non-overflowing non-underflowing + inputs to these functions do not set errno. + + Tested for x86_64. + +diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c +index 94d6afeaefac26af..48baacd6eabcbfc4 100644 +--- a/stdlib/gen-tst-strtod-round.c ++++ b/stdlib/gen-tst-strtod-round.c +@@ -46,6 +46,7 @@ static int + string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd) + { + mpfr_clear_overflow (); ++ mpfr_clear_underflow (); + #ifdef WORKAROUND + mpfr_t f2; + mpfr_init2 (f2, 100000); +@@ -53,12 +54,16 @@ string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd) + int r = mpfr_set (f, f2, rnd); + r |= mpfr_subnormalize (f, r, rnd); + mpfr_clear (f2); +- return r0 | r; ++ r |= r0; + #else + int r = mpfr_strtofr (f, s, NULL, 0, rnd); + r |= mpfr_subnormalize (f, r, rnd); +- return r; + #endif ++ if (r == 0) ++ /* The MPFR underflow flag is set for exact subnormal results, ++ which is not wanted here. */ ++ mpfr_clear_underflow (); ++ return r; + } + + void +@@ -70,6 +75,21 @@ print_fp (FILE *fout, mpfr_t f, const char *suffix) + mpfr_fprintf (fout, "\t%Ra%s", f, suffix); + } + ++static const char * ++suffix_to_print (bool overflow, bool underflow, bool underflow_before_rounding, ++ bool with_comma) ++{ ++ if (overflow) ++ return with_comma ? ", true, false,\n" : ", true, false"; ++ if (underflow) ++ return with_comma ? ", false, true,\n" : ", false, true"; ++ if (underflow_before_rounding) ++ return (with_comma ++ ? ", false, !TININESS_AFTER_ROUNDING,\n" ++ : ", false, !TININESS_AFTER_ROUNDING"); ++ return with_comma ? ", false, false,\n" : ", false, false"; ++} ++ + static void + round_str (FILE *fout, const char *s, int prec, int emin, int emax, + bool ibm_ld) +@@ -80,8 +100,11 @@ round_str (FILE *fout, const char *s, int prec, int emin, int emax, + mpfr_set_emin (emin); + mpfr_set_emax (emax); + mpfr_init (f); ++ string_to_fp (f, s, MPFR_RNDZ); ++ bool underflow_before_rounding = mpfr_underflow_p () != 0; + int r = string_to_fp (f, s, MPFR_RNDD); + bool overflow = mpfr_overflow_p () != 0; ++ bool underflow = mpfr_underflow_p () != 0; + if (ibm_ld) + { + assert (prec == 106 && emin == -1073 && emax == 1024); +@@ -97,19 +120,27 @@ round_str (FILE *fout, const char *s, int prec, int emin, int emax, + } + } + mpfr_fprintf (fout, "\t%s,\n", r ? "false" : "true"); +- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n"); ++ print_fp (fout, f, ++ suffix_to_print (overflow, underflow, underflow_before_rounding, ++ true)); + string_to_fp (f, s, MPFR_RNDN); + overflow = (mpfr_overflow_p () != 0 + || (ibm_ld && mpfr_cmpabs (f, max_value) > 0)); +- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n"); ++ print_fp (fout, f, ++ suffix_to_print (overflow, underflow, underflow_before_rounding, ++ true)); + string_to_fp (f, s, MPFR_RNDZ); + overflow = (mpfr_overflow_p () != 0 + || (ibm_ld && mpfr_cmpabs (f, max_value) > 0)); +- print_fp (fout, f, overflow ? ", true,\n" : ", false,\n"); ++ print_fp (fout, f, ++ suffix_to_print (overflow, underflow, underflow_before_rounding, ++ true)); + string_to_fp (f, s, MPFR_RNDU); + overflow = (mpfr_overflow_p () != 0 + || (ibm_ld && mpfr_cmpabs (f, max_value) > 0)); +- print_fp (fout, f, overflow ? ", true" : ", false"); ++ print_fp (fout, f, ++ suffix_to_print (overflow, underflow, underflow_before_rounding, ++ false)); + mpfr_clear (f); + if (ibm_ld) + mpfr_clear (max_value); +diff --git a/stdlib/tst-strtod-round-data.h b/stdlib/tst-strtod-round-data.h +index 8899d15f9b8a810d..13e62dd2b0588a16 100644 +--- a/stdlib/tst-strtod-round-data.h ++++ b/stdlib/tst-strtod-round-data.h +@@ -2,1852 +2,1852 @@ + static const struct test tests[] = { + TEST ("3.518437208883201171875E+013", + false, +- 0x2p+44, false, +- 0x2p+44, false, +- 0x2p+44, false, +- 0x2.000004p+44, false, +- false, +- 0x2.0000000000002p+44, false, +- 0x2.0000000000004p+44, false, +- 0x2.0000000000002p+44, false, +- 0x2.0000000000004p+44, false, +- true, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- true, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- true, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- true, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false, +- 0x2.0000000000003p+44, false), ++ 0x2p+44, false, false, ++ 0x2p+44, false, false, ++ 0x2p+44, false, false, ++ 0x2.000004p+44, false, false, ++ false, ++ 0x2.0000000000002p+44, false, false, ++ 0x2.0000000000004p+44, false, false, ++ 0x2.0000000000002p+44, false, false, ++ 0x2.0000000000004p+44, false, false, ++ true, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ true, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ true, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ true, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false, ++ 0x2.0000000000003p+44, false, false), + TEST ("1.00000005960464477550", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000001p+0, false, +- false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000004p+0, false, +- false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000004p+0, false, +- false, +- 0x1.0000010000000002048242f2ffp+0, false, +- 0x1.0000010000000002048242f2ff8p+0, false, +- 0x1.0000010000000002048242f2ffp+0, false, +- 0x1.0000010000000002048242f2ff8p+0, false, +- false, +- 0x1.0000010000000002048242f2ff66p+0, false, +- 0x1.0000010000000002048242f2ff67p+0, false, +- 0x1.0000010000000002048242f2ff66p+0, false, +- 0x1.0000010000000002048242f2ff67p+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000004p+0, false, false, ++ false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000004p+0, false, false, ++ false, ++ 0x1.0000010000000002048242f2ffp+0, false, false, ++ 0x1.0000010000000002048242f2ff8p+0, false, false, ++ 0x1.0000010000000002048242f2ffp+0, false, false, ++ 0x1.0000010000000002048242f2ff8p+0, false, false, ++ false, ++ 0x1.0000010000000002048242f2ff66p+0, false, false, ++ 0x1.0000010000000002048242f2ff67p+0, false, false, ++ 0x1.0000010000000002048242f2ff66p+0, false, false, ++ 0x1.0000010000000002048242f2ff67p+0, false, false), + TEST ("1.0000000596046447755", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000001p+0, false, +- false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000004p+0, false, +- false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000002p+0, false, +- 0x1.0000010000000004p+0, false, +- false, +- 0x1.0000010000000002048242f2ffp+0, false, +- 0x1.0000010000000002048242f2ff8p+0, false, +- 0x1.0000010000000002048242f2ffp+0, false, +- 0x1.0000010000000002048242f2ff8p+0, false, +- false, +- 0x1.0000010000000002048242f2ff66p+0, false, +- 0x1.0000010000000002048242f2ff67p+0, false, +- 0x1.0000010000000002048242f2ff66p+0, false, +- 0x1.0000010000000002048242f2ff67p+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000004p+0, false, false, ++ false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ 0x1.0000010000000004p+0, false, false, ++ false, ++ 0x1.0000010000000002048242f2ffp+0, false, false, ++ 0x1.0000010000000002048242f2ff8p+0, false, false, ++ 0x1.0000010000000002048242f2ffp+0, false, false, ++ 0x1.0000010000000002048242f2ff8p+0, false, false, ++ false, ++ 0x1.0000010000000002048242f2ff66p+0, false, false, ++ 0x1.0000010000000002048242f2ff67p+0, false, false, ++ 0x1.0000010000000002048242f2ff66p+0, false, false, ++ 0x1.0000010000000002048242f2ff67p+0, false, false), + TEST ("1.000000059604644776", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000001p+0, false, +- false, +- 0x1.000001000000000ap+0, false, +- 0x1.000001000000000cp+0, false, +- 0x1.000001000000000ap+0, false, +- 0x1.000001000000000cp+0, false, +- false, +- 0x1.000001000000000ap+0, false, +- 0x1.000001000000000cp+0, false, +- 0x1.000001000000000ap+0, false, +- 0x1.000001000000000cp+0, false, +- false, +- 0x1.000001000000000b3db12bdc21p+0, false, +- 0x1.000001000000000b3db12bdc21p+0, false, +- 0x1.000001000000000b3db12bdc21p+0, false, +- 0x1.000001000000000b3db12bdc218p+0, false, +- false, +- 0x1.000001000000000b3db12bdc213cp+0, false, +- 0x1.000001000000000b3db12bdc213dp+0, false, +- 0x1.000001000000000b3db12bdc213cp+0, false, +- 0x1.000001000000000b3db12bdc213dp+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ false, ++ 0x1.000001000000000ap+0, false, false, ++ 0x1.000001000000000cp+0, false, false, ++ 0x1.000001000000000ap+0, false, false, ++ 0x1.000001000000000cp+0, false, false, ++ false, ++ 0x1.000001000000000ap+0, false, false, ++ 0x1.000001000000000cp+0, false, false, ++ 0x1.000001000000000ap+0, false, false, ++ 0x1.000001000000000cp+0, false, false, ++ false, ++ 0x1.000001000000000b3db12bdc21p+0, false, false, ++ 0x1.000001000000000b3db12bdc21p+0, false, false, ++ 0x1.000001000000000b3db12bdc21p+0, false, false, ++ 0x1.000001000000000b3db12bdc218p+0, false, false, ++ false, ++ 0x1.000001000000000b3db12bdc213cp+0, false, false, ++ 0x1.000001000000000b3db12bdc213dp+0, false, false, ++ 0x1.000001000000000b3db12bdc213cp+0, false, false, ++ 0x1.000001000000000b3db12bdc213dp+0, false, false), + TEST ("1.000000059604644775", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000000fffffffp+0, false, +- 0x1.000001p+0, false, +- 0x1.000000fffffffp+0, false, +- 0x1.000001p+0, false, +- false, +- 0x1.000000fffffffff8p+0, false, +- 0x1.000000fffffffff8p+0, false, +- 0x1.000000fffffffff8p+0, false, +- 0x1.000000fffffffffap+0, false, +- false, +- 0x1.000000fffffffff8p+0, false, +- 0x1.000000fffffffff8p+0, false, +- 0x1.000000fffffffff8p+0, false, +- 0x1.000000fffffffffap+0, false, +- false, +- 0x1.000000fffffffff8cb535a09dd8p+0, false, +- 0x1.000000fffffffff8cb535a09dd8p+0, false, +- 0x1.000000fffffffff8cb535a09dd8p+0, false, +- 0x1.000000fffffffff8cb535a09dep+0, false, +- false, +- 0x1.000000fffffffff8cb535a09dd9p+0, false, +- 0x1.000000fffffffff8cb535a09dd91p+0, false, +- 0x1.000000fffffffff8cb535a09dd9p+0, false, +- 0x1.000000fffffffff8cb535a09dd91p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000000fffffffp+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000000fffffffp+0, false, false, ++ 0x1.000001p+0, false, false, ++ false, ++ 0x1.000000fffffffff8p+0, false, false, ++ 0x1.000000fffffffff8p+0, false, false, ++ 0x1.000000fffffffff8p+0, false, false, ++ 0x1.000000fffffffffap+0, false, false, ++ false, ++ 0x1.000000fffffffff8p+0, false, false, ++ 0x1.000000fffffffff8p+0, false, false, ++ 0x1.000000fffffffff8p+0, false, false, ++ 0x1.000000fffffffffap+0, false, false, ++ false, ++ 0x1.000000fffffffff8cb535a09dd8p+0, false, false, ++ 0x1.000000fffffffff8cb535a09dd8p+0, false, false, ++ 0x1.000000fffffffff8cb535a09dd8p+0, false, false, ++ 0x1.000000fffffffff8cb535a09dep+0, false, false, ++ false, ++ 0x1.000000fffffffff8cb535a09dd9p+0, false, false, ++ 0x1.000000fffffffff8cb535a09dd91p+0, false, false, ++ 0x1.000000fffffffff8cb535a09dd9p+0, false, false, ++ 0x1.000000fffffffff8cb535a09dd91p+0, false, false), + TEST ("1.00000005960464478", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000001p+0, false, +- false, +- 0x1.0000010000000054p+0, false, +- 0x1.0000010000000056p+0, false, +- 0x1.0000010000000054p+0, false, +- 0x1.0000010000000056p+0, false, +- false, +- 0x1.0000010000000054p+0, false, +- 0x1.0000010000000056p+0, false, +- 0x1.0000010000000054p+0, false, +- 0x1.0000010000000056p+0, false, +- false, +- 0x1.0000010000000055072873252f8p+0, false, +- 0x1.0000010000000055072873253p+0, false, +- 0x1.0000010000000055072873252f8p+0, false, +- 0x1.0000010000000055072873253p+0, false, +- false, +- 0x1.0000010000000055072873252febp+0, false, +- 0x1.0000010000000055072873252febp+0, false, +- 0x1.0000010000000055072873252febp+0, false, +- 0x1.0000010000000055072873252fecp+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ false, ++ 0x1.0000010000000054p+0, false, false, ++ 0x1.0000010000000056p+0, false, false, ++ 0x1.0000010000000054p+0, false, false, ++ 0x1.0000010000000056p+0, false, false, ++ false, ++ 0x1.0000010000000054p+0, false, false, ++ 0x1.0000010000000056p+0, false, false, ++ 0x1.0000010000000054p+0, false, false, ++ 0x1.0000010000000056p+0, false, false, ++ false, ++ 0x1.0000010000000055072873252f8p+0, false, false, ++ 0x1.0000010000000055072873253p+0, false, false, ++ 0x1.0000010000000055072873252f8p+0, false, false, ++ 0x1.0000010000000055072873253p+0, false, false, ++ false, ++ 0x1.0000010000000055072873252febp+0, false, false, ++ 0x1.0000010000000055072873252febp+0, false, false, ++ 0x1.0000010000000055072873252febp+0, false, false, ++ 0x1.0000010000000055072873252fecp+0, false, false), + TEST ("1.0000000596046448", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000001p+0, false, +- false, +- 0x1.00000100000001c4p+0, false, +- 0x1.00000100000001c6p+0, false, +- 0x1.00000100000001c4p+0, false, +- 0x1.00000100000001c6p+0, false, +- false, +- 0x1.00000100000001c4p+0, false, +- 0x1.00000100000001c6p+0, false, +- 0x1.00000100000001c4p+0, false, +- 0x1.00000100000001c6p+0, false, +- false, +- 0x1.00000100000001c5f67cd79279p+0, false, +- 0x1.00000100000001c5f67cd792798p+0, false, +- 0x1.00000100000001c5f67cd79279p+0, false, +- 0x1.00000100000001c5f67cd792798p+0, false, +- false, +- 0x1.00000100000001c5f67cd7927953p+0, false, +- 0x1.00000100000001c5f67cd7927954p+0, false, +- 0x1.00000100000001c5f67cd7927953p+0, false, +- 0x1.00000100000001c5f67cd7927954p+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ false, ++ 0x1.00000100000001c4p+0, false, false, ++ 0x1.00000100000001c6p+0, false, false, ++ 0x1.00000100000001c4p+0, false, false, ++ 0x1.00000100000001c6p+0, false, false, ++ false, ++ 0x1.00000100000001c4p+0, false, false, ++ 0x1.00000100000001c6p+0, false, false, ++ 0x1.00000100000001c4p+0, false, false, ++ 0x1.00000100000001c6p+0, false, false, ++ false, ++ 0x1.00000100000001c5f67cd79279p+0, false, false, ++ 0x1.00000100000001c5f67cd792798p+0, false, false, ++ 0x1.00000100000001c5f67cd79279p+0, false, false, ++ 0x1.00000100000001c5f67cd792798p+0, false, false, ++ false, ++ 0x1.00000100000001c5f67cd7927953p+0, false, false, ++ 0x1.00000100000001c5f67cd7927954p+0, false, false, ++ 0x1.00000100000001c5f67cd7927953p+0, false, false, ++ 0x1.00000100000001c5f67cd7927954p+0, false, false), + TEST ("1.000000059604645", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.0000010000001p+0, false, +- 0x1.0000010000001p+0, false, +- 0x1.0000010000001p+0, false, +- 0x1.0000010000002p+0, false, +- false, +- 0x1.000001000000102ep+0, false, +- 0x1.000001000000103p+0, false, +- 0x1.000001000000102ep+0, false, +- 0x1.000001000000103p+0, false, +- false, +- 0x1.000001000000102ep+0, false, +- 0x1.000001000000103p+0, false, +- 0x1.000001000000102ep+0, false, +- 0x1.000001000000103p+0, false, +- false, +- 0x1.000001000000102f4fc8c3d757p+0, false, +- 0x1.000001000000102f4fc8c3d7578p+0, false, +- 0x1.000001000000102f4fc8c3d757p+0, false, +- 0x1.000001000000102f4fc8c3d7578p+0, false, +- false, +- 0x1.000001000000102f4fc8c3d75769p+0, false, +- 0x1.000001000000102f4fc8c3d75769p+0, false, +- 0x1.000001000000102f4fc8c3d75769p+0, false, +- 0x1.000001000000102f4fc8c3d7576ap+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.0000010000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ 0x1.0000010000002p+0, false, false, ++ false, ++ 0x1.000001000000102ep+0, false, false, ++ 0x1.000001000000103p+0, false, false, ++ 0x1.000001000000102ep+0, false, false, ++ 0x1.000001000000103p+0, false, false, ++ false, ++ 0x1.000001000000102ep+0, false, false, ++ 0x1.000001000000103p+0, false, false, ++ 0x1.000001000000102ep+0, false, false, ++ 0x1.000001000000103p+0, false, false, ++ false, ++ 0x1.000001000000102f4fc8c3d757p+0, false, false, ++ 0x1.000001000000102f4fc8c3d7578p+0, false, false, ++ 0x1.000001000000102f4fc8c3d757p+0, false, false, ++ 0x1.000001000000102f4fc8c3d7578p+0, false, false, ++ false, ++ 0x1.000001000000102f4fc8c3d75769p+0, false, false, ++ 0x1.000001000000102f4fc8c3d75769p+0, false, false, ++ 0x1.000001000000102f4fc8c3d75769p+0, false, false, ++ 0x1.000001000000102f4fc8c3d7576ap+0, false, false), + TEST ("1.00000005960464", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000000fffffeap+0, false, +- 0x1.000000fffffeap+0, false, +- 0x1.000000fffffeap+0, false, +- 0x1.000000fffffebp+0, false, +- false, +- 0x1.000000fffffea7e4p+0, false, +- 0x1.000000fffffea7e6p+0, false, +- 0x1.000000fffffea7e4p+0, false, +- 0x1.000000fffffea7e6p+0, false, +- false, +- 0x1.000000fffffea7e4p+0, false, +- 0x1.000000fffffea7e6p+0, false, +- 0x1.000000fffffea7e4p+0, false, +- 0x1.000000fffffea7e6p+0, false, +- false, +- 0x1.000000fffffea7e5975eb11da7p+0, false, +- 0x1.000000fffffea7e5975eb11da78p+0, false, +- 0x1.000000fffffea7e5975eb11da7p+0, false, +- 0x1.000000fffffea7e5975eb11da78p+0, false, +- false, +- 0x1.000000fffffea7e5975eb11da74ap+0, false, +- 0x1.000000fffffea7e5975eb11da74bp+0, false, +- 0x1.000000fffffea7e5975eb11da74ap+0, false, +- 0x1.000000fffffea7e5975eb11da74bp+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000000fffffeap+0, false, false, ++ 0x1.000000fffffeap+0, false, false, ++ 0x1.000000fffffeap+0, false, false, ++ 0x1.000000fffffebp+0, false, false, ++ false, ++ 0x1.000000fffffea7e4p+0, false, false, ++ 0x1.000000fffffea7e6p+0, false, false, ++ 0x1.000000fffffea7e4p+0, false, false, ++ 0x1.000000fffffea7e6p+0, false, false, ++ false, ++ 0x1.000000fffffea7e4p+0, false, false, ++ 0x1.000000fffffea7e6p+0, false, false, ++ 0x1.000000fffffea7e4p+0, false, false, ++ 0x1.000000fffffea7e6p+0, false, false, ++ false, ++ 0x1.000000fffffea7e5975eb11da7p+0, false, false, ++ 0x1.000000fffffea7e5975eb11da78p+0, false, false, ++ 0x1.000000fffffea7e5975eb11da7p+0, false, false, ++ 0x1.000000fffffea7e5975eb11da78p+0, false, false, ++ false, ++ 0x1.000000fffffea7e5975eb11da74ap+0, false, false, ++ 0x1.000000fffffea7e5975eb11da74bp+0, false, false, ++ 0x1.000000fffffea7e5975eb11da74ap+0, false, false, ++ 0x1.000000fffffea7e5975eb11da74bp+0, false, false), + TEST ("1.0000000596046", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000000fffff36p+0, false, +- 0x1.000000fffff36p+0, false, +- 0x1.000000fffff36p+0, false, +- 0x1.000000fffff37p+0, false, +- false, +- 0x1.000000fffff36596p+0, false, +- 0x1.000000fffff36598p+0, false, +- 0x1.000000fffff36596p+0, false, +- 0x1.000000fffff36598p+0, false, +- false, +- 0x1.000000fffff36596p+0, false, +- 0x1.000000fffff36598p+0, false, +- 0x1.000000fffff36596p+0, false, +- 0x1.000000fffff36598p+0, false, +- false, +- 0x1.000000fffff36597d40e1b5026p+0, false, +- 0x1.000000fffff36597d40e1b50268p+0, false, +- 0x1.000000fffff36597d40e1b5026p+0, false, +- 0x1.000000fffff36597d40e1b50268p+0, false, +- false, +- 0x1.000000fffff36597d40e1b502655p+0, false, +- 0x1.000000fffff36597d40e1b502656p+0, false, +- 0x1.000000fffff36597d40e1b502655p+0, false, +- 0x1.000000fffff36597d40e1b502656p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000000fffff36p+0, false, false, ++ 0x1.000000fffff36p+0, false, false, ++ 0x1.000000fffff36p+0, false, false, ++ 0x1.000000fffff37p+0, false, false, ++ false, ++ 0x1.000000fffff36596p+0, false, false, ++ 0x1.000000fffff36598p+0, false, false, ++ 0x1.000000fffff36596p+0, false, false, ++ 0x1.000000fffff36598p+0, false, false, ++ false, ++ 0x1.000000fffff36596p+0, false, false, ++ 0x1.000000fffff36598p+0, false, false, ++ 0x1.000000fffff36596p+0, false, false, ++ 0x1.000000fffff36598p+0, false, false, ++ false, ++ 0x1.000000fffff36597d40e1b5026p+0, false, false, ++ 0x1.000000fffff36597d40e1b50268p+0, false, false, ++ 0x1.000000fffff36597d40e1b5026p+0, false, false, ++ 0x1.000000fffff36597d40e1b50268p+0, false, false, ++ false, ++ 0x1.000000fffff36597d40e1b502655p+0, false, false, ++ 0x1.000000fffff36597d40e1b502656p+0, false, false, ++ 0x1.000000fffff36597d40e1b502655p+0, false, false, ++ 0x1.000000fffff36597d40e1b502656p+0, false, false), + TEST ("1.000000059605", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001000063fp+0, false, +- 0x1.000001000064p+0, false, +- 0x1.000001000063fp+0, false, +- 0x1.000001000064p+0, false, +- false, +- 0x1.000001000063fcap+0, false, +- 0x1.000001000063fca2p+0, false, +- 0x1.000001000063fcap+0, false, +- 0x1.000001000063fca2p+0, false, +- false, +- 0x1.000001000063fcap+0, false, +- 0x1.000001000063fca2p+0, false, +- 0x1.000001000063fcap+0, false, +- 0x1.000001000063fca2p+0, false, +- false, +- 0x1.000001000063fca17533f5572f8p+0, false, +- 0x1.000001000063fca17533f5573p+0, false, +- 0x1.000001000063fca17533f5572f8p+0, false, +- 0x1.000001000063fca17533f5573p+0, false, +- false, +- 0x1.000001000063fca17533f5572fe9p+0, false, +- 0x1.000001000063fca17533f5572feap+0, false, +- 0x1.000001000063fca17533f5572fe9p+0, false, +- 0x1.000001000063fca17533f5572feap+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001000063fp+0, false, false, ++ 0x1.000001000064p+0, false, false, ++ 0x1.000001000063fp+0, false, false, ++ 0x1.000001000064p+0, false, false, ++ false, ++ 0x1.000001000063fcap+0, false, false, ++ 0x1.000001000063fca2p+0, false, false, ++ 0x1.000001000063fcap+0, false, false, ++ 0x1.000001000063fca2p+0, false, false, ++ false, ++ 0x1.000001000063fcap+0, false, false, ++ 0x1.000001000063fca2p+0, false, false, ++ 0x1.000001000063fcap+0, false, false, ++ 0x1.000001000063fca2p+0, false, false, ++ false, ++ 0x1.000001000063fca17533f5572f8p+0, false, false, ++ 0x1.000001000063fca17533f5573p+0, false, false, ++ 0x1.000001000063fca17533f5572f8p+0, false, false, ++ 0x1.000001000063fca17533f5573p+0, false, false, ++ false, ++ 0x1.000001000063fca17533f5572fe9p+0, false, false, ++ 0x1.000001000063fca17533f5572feap+0, false, false, ++ 0x1.000001000063fca17533f5572fe9p+0, false, false, ++ 0x1.000001000063fca17533f5572feap+0, false, false), + TEST ("1.00000005960", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000000fffae49p+0, false, +- 0x1.000000fffae4ap+0, false, +- 0x1.000000fffae49p+0, false, +- 0x1.000000fffae4ap+0, false, +- false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- false, +- 0x1.000000fffae49ca916dacfff38p+0, false, +- 0x1.000000fffae49ca916dacfff38p+0, false, +- 0x1.000000fffae49ca916dacfff38p+0, false, +- 0x1.000000fffae49ca916dacfff388p+0, false, +- false, +- 0x1.000000fffae49ca916dacfff382dp+0, false, +- 0x1.000000fffae49ca916dacfff382dp+0, false, +- 0x1.000000fffae49ca916dacfff382dp+0, false, +- 0x1.000000fffae49ca916dacfff382ep+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000000fffae49p+0, false, false, ++ 0x1.000000fffae4ap+0, false, false, ++ 0x1.000000fffae49p+0, false, false, ++ 0x1.000000fffae4ap+0, false, false, ++ false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ false, ++ 0x1.000000fffae49ca916dacfff38p+0, false, false, ++ 0x1.000000fffae49ca916dacfff38p+0, false, false, ++ 0x1.000000fffae49ca916dacfff38p+0, false, false, ++ 0x1.000000fffae49ca916dacfff388p+0, false, false, ++ false, ++ 0x1.000000fffae49ca916dacfff382dp+0, false, false, ++ 0x1.000000fffae49ca916dacfff382dp+0, false, false, ++ 0x1.000000fffae49ca916dacfff382dp+0, false, false, ++ 0x1.000000fffae49ca916dacfff382ep+0, false, false), + TEST ("1.0000000596", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000000fffae49p+0, false, +- 0x1.000000fffae4ap+0, false, +- 0x1.000000fffae49p+0, false, +- 0x1.000000fffae4ap+0, false, +- false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- 0x1.000000fffae49ca8p+0, false, +- 0x1.000000fffae49caap+0, false, +- false, +- 0x1.000000fffae49ca916dacfff38p+0, false, +- 0x1.000000fffae49ca916dacfff38p+0, false, +- 0x1.000000fffae49ca916dacfff38p+0, false, +- 0x1.000000fffae49ca916dacfff388p+0, false, +- false, +- 0x1.000000fffae49ca916dacfff382dp+0, false, +- 0x1.000000fffae49ca916dacfff382dp+0, false, +- 0x1.000000fffae49ca916dacfff382dp+0, false, +- 0x1.000000fffae49ca916dacfff382ep+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000000fffae49p+0, false, false, ++ 0x1.000000fffae4ap+0, false, false, ++ 0x1.000000fffae49p+0, false, false, ++ 0x1.000000fffae4ap+0, false, false, ++ false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ 0x1.000000fffae49ca8p+0, false, false, ++ 0x1.000000fffae49caap+0, false, false, ++ false, ++ 0x1.000000fffae49ca916dacfff38p+0, false, false, ++ 0x1.000000fffae49ca916dacfff38p+0, false, false, ++ 0x1.000000fffae49ca916dacfff38p+0, false, false, ++ 0x1.000000fffae49ca916dacfff388p+0, false, false, ++ false, ++ 0x1.000000fffae49ca916dacfff382dp+0, false, false, ++ 0x1.000000fffae49ca916dacfff382dp+0, false, false, ++ 0x1.000000fffae49ca916dacfff382dp+0, false, false, ++ 0x1.000000fffae49ca916dacfff382ep+0, false, false), + TEST ("1.000000060", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.00000101b2b29p+0, false, +- 0x1.00000101b2b2ap+0, false, +- 0x1.00000101b2b29p+0, false, +- 0x1.00000101b2b2ap+0, false, +- false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a48p+0, false, +- false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a48p+0, false, +- false, +- 0x1.00000101b2b29a4692b67b7ca3p+0, false, +- 0x1.00000101b2b29a4692b67b7ca3p+0, false, +- 0x1.00000101b2b29a4692b67b7ca3p+0, false, +- 0x1.00000101b2b29a4692b67b7ca38p+0, false, +- false, +- 0x1.00000101b2b29a4692b67b7ca313p+0, false, +- 0x1.00000101b2b29a4692b67b7ca314p+0, false, +- 0x1.00000101b2b29a4692b67b7ca313p+0, false, +- 0x1.00000101b2b29a4692b67b7ca314p+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.00000101b2b29p+0, false, false, ++ 0x1.00000101b2b2ap+0, false, false, ++ 0x1.00000101b2b29p+0, false, false, ++ 0x1.00000101b2b2ap+0, false, false, ++ false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a48p+0, false, false, ++ false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a48p+0, false, false, ++ false, ++ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca38p+0, false, false, ++ false, ++ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false), + TEST ("1.00000006", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.00000101b2b29p+0, false, +- 0x1.00000101b2b2ap+0, false, +- 0x1.00000101b2b29p+0, false, +- 0x1.00000101b2b2ap+0, false, +- false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a48p+0, false, +- false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a46p+0, false, +- 0x1.00000101b2b29a48p+0, false, +- false, +- 0x1.00000101b2b29a4692b67b7ca3p+0, false, +- 0x1.00000101b2b29a4692b67b7ca3p+0, false, +- 0x1.00000101b2b29a4692b67b7ca3p+0, false, +- 0x1.00000101b2b29a4692b67b7ca38p+0, false, +- false, +- 0x1.00000101b2b29a4692b67b7ca313p+0, false, +- 0x1.00000101b2b29a4692b67b7ca314p+0, false, +- 0x1.00000101b2b29a4692b67b7ca313p+0, false, +- 0x1.00000101b2b29a4692b67b7ca314p+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.00000101b2b29p+0, false, false, ++ 0x1.00000101b2b2ap+0, false, false, ++ 0x1.00000101b2b29p+0, false, false, ++ 0x1.00000101b2b2ap+0, false, false, ++ false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a48p+0, false, false, ++ false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a46p+0, false, false, ++ 0x1.00000101b2b29a48p+0, false, false, ++ false, ++ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca3p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca38p+0, false, false, ++ false, ++ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca313p+0, false, false, ++ 0x1.00000101b2b29a4692b67b7ca314p+0, false, false), + TEST ("1.0000001", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001ad7f29ap+0, false, +- 0x1.000001ad7f29bp+0, false, +- 0x1.000001ad7f29ap+0, false, +- 0x1.000001ad7f29bp+0, false, +- false, +- 0x1.000001ad7f29abcap+0, false, +- 0x1.000001ad7f29abcap+0, false, +- 0x1.000001ad7f29abcap+0, false, +- 0x1.000001ad7f29abccp+0, false, +- false, +- 0x1.000001ad7f29abcap+0, false, +- 0x1.000001ad7f29abcap+0, false, +- 0x1.000001ad7f29abcap+0, false, +- 0x1.000001ad7f29abccp+0, false, +- false, +- 0x1.000001ad7f29abcaf485787a65p+0, false, +- 0x1.000001ad7f29abcaf485787a65p+0, false, +- 0x1.000001ad7f29abcaf485787a65p+0, false, +- 0x1.000001ad7f29abcaf485787a658p+0, false, +- false, +- 0x1.000001ad7f29abcaf485787a652p+0, false, +- 0x1.000001ad7f29abcaf485787a6521p+0, false, +- 0x1.000001ad7f29abcaf485787a652p+0, false, +- 0x1.000001ad7f29abcaf485787a6521p+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001ad7f29ap+0, false, false, ++ 0x1.000001ad7f29bp+0, false, false, ++ 0x1.000001ad7f29ap+0, false, false, ++ 0x1.000001ad7f29bp+0, false, false, ++ false, ++ 0x1.000001ad7f29abcap+0, false, false, ++ 0x1.000001ad7f29abcap+0, false, false, ++ 0x1.000001ad7f29abcap+0, false, false, ++ 0x1.000001ad7f29abccp+0, false, false, ++ false, ++ 0x1.000001ad7f29abcap+0, false, false, ++ 0x1.000001ad7f29abcap+0, false, false, ++ 0x1.000001ad7f29abcap+0, false, false, ++ 0x1.000001ad7f29abccp+0, false, false, ++ false, ++ 0x1.000001ad7f29abcaf485787a65p+0, false, false, ++ 0x1.000001ad7f29abcaf485787a65p+0, false, false, ++ 0x1.000001ad7f29abcaf485787a65p+0, false, false, ++ 0x1.000001ad7f29abcaf485787a658p+0, false, false, ++ false, ++ 0x1.000001ad7f29abcaf485787a652p+0, false, false, ++ 0x1.000001ad7f29abcaf485787a6521p+0, false, false, ++ 0x1.000001ad7f29abcaf485787a652p+0, false, false, ++ 0x1.000001ad7f29abcaf485787a6521p+0, false, false), + TEST ("1.000000", + true, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- true, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- true, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- true, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- true, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- true, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ true, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ true, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ true, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ true, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ true, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false), + TEST ("1.00000000000000011113", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- false, +- 0x1.0000000000000801fc96557232p+0, false, +- 0x1.0000000000000801fc96557232p+0, false, +- 0x1.0000000000000801fc96557232p+0, false, +- 0x1.0000000000000801fc965572328p+0, false, +- false, +- 0x1.0000000000000801fc9655723222p+0, false, +- 0x1.0000000000000801fc9655723222p+0, false, +- 0x1.0000000000000801fc9655723222p+0, false, +- 0x1.0000000000000801fc9655723223p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ false, ++ 0x1.0000000000000801fc96557232p+0, false, false, ++ 0x1.0000000000000801fc96557232p+0, false, false, ++ 0x1.0000000000000801fc96557232p+0, false, false, ++ 0x1.0000000000000801fc965572328p+0, false, false, ++ false, ++ 0x1.0000000000000801fc9655723222p+0, false, false, ++ 0x1.0000000000000801fc9655723222p+0, false, false, ++ 0x1.0000000000000801fc9655723222p+0, false, false, ++ 0x1.0000000000000801fc9655723223p+0, false, false), + TEST ("1.00000000000000011103", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- false, +- 0x1.00000000000008002459c076c48p+0, false, +- 0x1.00000000000008002459c076c5p+0, false, +- 0x1.00000000000008002459c076c48p+0, false, +- 0x1.00000000000008002459c076c5p+0, false, +- false, +- 0x1.00000000000008002459c076c4f7p+0, false, +- 0x1.00000000000008002459c076c4f8p+0, false, +- 0x1.00000000000008002459c076c4f7p+0, false, +- 0x1.00000000000008002459c076c4f8p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ false, ++ 0x1.00000000000008002459c076c48p+0, false, false, ++ 0x1.00000000000008002459c076c5p+0, false, false, ++ 0x1.00000000000008002459c076c48p+0, false, false, ++ 0x1.00000000000008002459c076c5p+0, false, false, ++ false, ++ 0x1.00000000000008002459c076c4f7p+0, false, false, ++ 0x1.00000000000008002459c076c4f8p+0, false, false, ++ 0x1.00000000000008002459c076c4f7p+0, false, false, ++ 0x1.00000000000008002459c076c4f8p+0, false, false), + TEST ("1.00000000000000011102", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- false, +- 0x1.00000000000007fff5207e5dap+0, false, +- 0x1.00000000000007fff5207e5da08p+0, false, +- 0x1.00000000000007fff5207e5dap+0, false, +- 0x1.00000000000007fff5207e5da08p+0, false, +- false, +- 0x1.00000000000007fff5207e5da073p+0, false, +- 0x1.00000000000007fff5207e5da073p+0, false, +- 0x1.00000000000007fff5207e5da073p+0, false, +- 0x1.00000000000007fff5207e5da074p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ false, ++ 0x1.00000000000007fff5207e5dap+0, false, false, ++ 0x1.00000000000007fff5207e5da08p+0, false, false, ++ 0x1.00000000000007fff5207e5dap+0, false, false, ++ 0x1.00000000000007fff5207e5da08p+0, false, false, ++ false, ++ 0x1.00000000000007fff5207e5da073p+0, false, false, ++ 0x1.00000000000007fff5207e5da073p+0, false, false, ++ 0x1.00000000000007fff5207e5da073p+0, false, false, ++ 0x1.00000000000007fff5207e5da074p+0, false, false), + TEST ("1.00000000000000011101", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- false, +- 0x1.00000000000007ffc5e73c447b8p+0, false, +- 0x1.00000000000007ffc5e73c447cp+0, false, +- 0x1.00000000000007ffc5e73c447b8p+0, false, +- 0x1.00000000000007ffc5e73c447cp+0, false, +- false, +- 0x1.00000000000007ffc5e73c447befp+0, false, +- 0x1.00000000000007ffc5e73c447befp+0, false, +- 0x1.00000000000007ffc5e73c447befp+0, false, +- 0x1.00000000000007ffc5e73c447bfp+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ false, ++ 0x1.00000000000007ffc5e73c447b8p+0, false, false, ++ 0x1.00000000000007ffc5e73c447cp+0, false, false, ++ 0x1.00000000000007ffc5e73c447b8p+0, false, false, ++ 0x1.00000000000007ffc5e73c447cp+0, false, false, ++ false, ++ 0x1.00000000000007ffc5e73c447befp+0, false, false, ++ 0x1.00000000000007ffc5e73c447befp+0, false, false, ++ 0x1.00000000000007ffc5e73c447befp+0, false, false, ++ 0x1.00000000000007ffc5e73c447bfp+0, false, false), + TEST ("1.0000000000000001111", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.0000000000000802p+0, false, +- false, +- 0x1.00000000000008016eea8f26c48p+0, false, +- 0x1.00000000000008016eea8f26c48p+0, false, +- 0x1.00000000000008016eea8f26c48p+0, false, +- 0x1.00000000000008016eea8f26c5p+0, false, +- false, +- 0x1.00000000000008016eea8f26c495p+0, false, +- 0x1.00000000000008016eea8f26c496p+0, false, +- 0x1.00000000000008016eea8f26c495p+0, false, +- 0x1.00000000000008016eea8f26c496p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.0000000000000802p+0, false, false, ++ false, ++ 0x1.00000000000008016eea8f26c48p+0, false, false, ++ 0x1.00000000000008016eea8f26c48p+0, false, false, ++ 0x1.00000000000008016eea8f26c48p+0, false, false, ++ 0x1.00000000000008016eea8f26c5p+0, false, false, ++ false, ++ 0x1.00000000000008016eea8f26c495p+0, false, false, ++ 0x1.00000000000008016eea8f26c496p+0, false, false, ++ 0x1.00000000000008016eea8f26c495p+0, false, false, ++ 0x1.00000000000008016eea8f26c496p+0, false, false), + TEST ("1.000000000000000111", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000007fep+0, false, +- 0x1.00000000000008p+0, false, +- false, +- 0x1.00000000000007ff96adfa2b57p+0, false, +- 0x1.00000000000007ff96adfa2b578p+0, false, +- 0x1.00000000000007ff96adfa2b57p+0, false, +- 0x1.00000000000007ff96adfa2b578p+0, false, +- false, +- 0x1.00000000000007ff96adfa2b576ap+0, false, +- 0x1.00000000000007ff96adfa2b576bp+0, false, +- 0x1.00000000000007ff96adfa2b576ap+0, false, +- 0x1.00000000000007ff96adfa2b576bp+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000007fep+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ false, ++ 0x1.00000000000007ff96adfa2b57p+0, false, false, ++ 0x1.00000000000007ff96adfa2b578p+0, false, false, ++ 0x1.00000000000007ff96adfa2b57p+0, false, false, ++ 0x1.00000000000007ff96adfa2b578p+0, false, false, ++ false, ++ 0x1.00000000000007ff96adfa2b576ap+0, false, false, ++ 0x1.00000000000007ff96adfa2b576bp+0, false, false, ++ 0x1.00000000000007ff96adfa2b576ap+0, false, false, ++ 0x1.00000000000007ff96adfa2b576bp+0, false, false), + TEST ("1.00000000000000011", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.00000000000007ecp+0, false, +- 0x1.00000000000007eep+0, false, +- 0x1.00000000000007ecp+0, false, +- 0x1.00000000000007eep+0, false, +- false, +- 0x1.00000000000007ecp+0, false, +- 0x1.00000000000007eep+0, false, +- 0x1.00000000000007ecp+0, false, +- 0x1.00000000000007eep+0, false, +- false, +- 0x1.00000000000007ed24502859138p+0, false, +- 0x1.00000000000007ed24502859138p+0, false, +- 0x1.00000000000007ed24502859138p+0, false, +- 0x1.00000000000007ed2450285914p+0, false, +- false, +- 0x1.00000000000007ed2450285913bfp+0, false, +- 0x1.00000000000007ed2450285913bfp+0, false, +- 0x1.00000000000007ed2450285913bfp+0, false, +- 0x1.00000000000007ed2450285913cp+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.00000000000007ecp+0, false, false, ++ 0x1.00000000000007eep+0, false, false, ++ 0x1.00000000000007ecp+0, false, false, ++ 0x1.00000000000007eep+0, false, false, ++ false, ++ 0x1.00000000000007ecp+0, false, false, ++ 0x1.00000000000007eep+0, false, false, ++ 0x1.00000000000007ecp+0, false, false, ++ 0x1.00000000000007eep+0, false, false, ++ false, ++ 0x1.00000000000007ed24502859138p+0, false, false, ++ 0x1.00000000000007ed24502859138p+0, false, false, ++ 0x1.00000000000007ed24502859138p+0, false, false, ++ 0x1.00000000000007ed2450285914p+0, false, false, ++ false, ++ 0x1.00000000000007ed2450285913bfp+0, false, false, ++ 0x1.00000000000007ed2450285913bfp+0, false, false, ++ 0x1.00000000000007ed2450285913bfp+0, false, false, ++ 0x1.00000000000007ed2450285913cp+0, false, false), + TEST ("1.0000000000000001", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1.0000000000000734p+0, false, +- 0x1.0000000000000734p+0, false, +- 0x1.0000000000000734p+0, false, +- 0x1.0000000000000736p+0, false, +- false, +- 0x1.0000000000000734p+0, false, +- 0x1.0000000000000734p+0, false, +- 0x1.0000000000000734p+0, false, +- 0x1.0000000000000736p+0, false, +- false, +- 0x1.0000000000000734aca5f6226fp+0, false, +- 0x1.0000000000000734aca5f6226fp+0, false, +- 0x1.0000000000000734aca5f6226fp+0, false, +- 0x1.0000000000000734aca5f6226f8p+0, false, +- false, +- 0x1.0000000000000734aca5f6226f0ap+0, false, +- 0x1.0000000000000734aca5f6226f0bp+0, false, +- 0x1.0000000000000734aca5f6226f0ap+0, false, +- 0x1.0000000000000734aca5f6226f0bp+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1.0000000000000734p+0, false, false, ++ 0x1.0000000000000734p+0, false, false, ++ 0x1.0000000000000734p+0, false, false, ++ 0x1.0000000000000736p+0, false, false, ++ false, ++ 0x1.0000000000000734p+0, false, false, ++ 0x1.0000000000000734p+0, false, false, ++ 0x1.0000000000000734p+0, false, false, ++ 0x1.0000000000000736p+0, false, false, ++ false, ++ 0x1.0000000000000734aca5f6226fp+0, false, false, ++ 0x1.0000000000000734aca5f6226fp+0, false, false, ++ 0x1.0000000000000734aca5f6226fp+0, false, false, ++ 0x1.0000000000000734aca5f6226f8p+0, false, false, ++ false, ++ 0x1.0000000000000734aca5f6226f0ap+0, false, false, ++ 0x1.0000000000000734aca5f6226f0bp+0, false, false, ++ 0x1.0000000000000734aca5f6226f0ap+0, false, false, ++ 0x1.0000000000000734aca5f6226f0bp+0, false, false), + TEST ("3929201589819414e-25", + false, +- 0x1.b0053p-32, false, +- 0x1.b00532p-32, false, +- 0x1.b0053p-32, false, +- 0x1.b00532p-32, false, +- false, +- 0x1.b005314e2421ep-32, false, +- 0x1.b005314e2421ep-32, false, +- 0x1.b005314e2421ep-32, false, +- 0x1.b005314e2421fp-32, false, +- false, +- 0x1.b005314e2421e7fep-32, false, +- 0x1.b005314e2421e8p-32, false, +- 0x1.b005314e2421e7fep-32, false, +- 0x1.b005314e2421e8p-32, false, +- false, +- 0x1.b005314e2421e7fep-32, false, +- 0x1.b005314e2421e8p-32, false, +- 0x1.b005314e2421e7fep-32, false, +- 0x1.b005314e2421e8p-32, false, +- false, +- 0x1.b005314e2421e7ffb472840c5ap-32, false, +- 0x1.b005314e2421e7ffb472840c5a8p-32, false, +- 0x1.b005314e2421e7ffb472840c5ap-32, false, +- 0x1.b005314e2421e7ffb472840c5a8p-32, false, +- false, +- 0x1.b005314e2421e7ffb472840c5a6ep-32, false, +- 0x1.b005314e2421e7ffb472840c5a6fp-32, false, +- 0x1.b005314e2421e7ffb472840c5a6ep-32, false, +- 0x1.b005314e2421e7ffb472840c5a6fp-32, false), ++ 0x1.b0053p-32, false, false, ++ 0x1.b00532p-32, false, false, ++ 0x1.b0053p-32, false, false, ++ 0x1.b00532p-32, false, false, ++ false, ++ 0x1.b005314e2421ep-32, false, false, ++ 0x1.b005314e2421ep-32, false, false, ++ 0x1.b005314e2421ep-32, false, false, ++ 0x1.b005314e2421fp-32, false, false, ++ false, ++ 0x1.b005314e2421e7fep-32, false, false, ++ 0x1.b005314e2421e8p-32, false, false, ++ 0x1.b005314e2421e7fep-32, false, false, ++ 0x1.b005314e2421e8p-32, false, false, ++ false, ++ 0x1.b005314e2421e7fep-32, false, false, ++ 0x1.b005314e2421e8p-32, false, false, ++ 0x1.b005314e2421e7fep-32, false, false, ++ 0x1.b005314e2421e8p-32, false, false, ++ false, ++ 0x1.b005314e2421e7ffb472840c5ap-32, false, false, ++ 0x1.b005314e2421e7ffb472840c5a8p-32, false, false, ++ 0x1.b005314e2421e7ffb472840c5ap-32, false, false, ++ 0x1.b005314e2421e7ffb472840c5a8p-32, false, false, ++ false, ++ 0x1.b005314e2421e7ffb472840c5a6ep-32, false, false, ++ 0x1.b005314e2421e7ffb472840c5a6fp-32, false, false, ++ 0x1.b005314e2421e7ffb472840c5a6ep-32, false, false, ++ 0x1.b005314e2421e7ffb472840c5a6fp-32, false, false), + TEST ("0.0000000000000000000000000000000000000000000021019476964872" + "256063855943749348741969203929128147736576356024258346866240" + "28790902229957282543182373046875", + false, +- 0x8p-152, false, +- 0x1p-148, false, +- 0x8p-152, false, +- 0x1p-148, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false), ++ 0x8p-152, false, true, ++ 0x1p-148, false, true, ++ 0x8p-152, false, true, ++ 0x1p-148, false, true, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false), + TEST ("1.00000005960464477539062499", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000000fffffffp+0, false, +- 0x1.000001p+0, false, +- 0x1.000000fffffffp+0, false, +- 0x1.000001p+0, false, +- false, +- 0x1.000000fffffffffep+0, false, +- 0x1.000001p+0, false, +- 0x1.000000fffffffffep+0, false, +- 0x1.000001p+0, false, +- false, +- 0x1.000000fffffffffep+0, false, +- 0x1.000001p+0, false, +- 0x1.000000fffffffffep+0, false, +- 0x1.000001p+0, false, +- false, +- 0x1.000000fffffffffffffffce7b78p+0, false, +- 0x1.000000fffffffffffffffce7b8p+0, false, +- 0x1.000000fffffffffffffffce7b78p+0, false, +- 0x1.000000fffffffffffffffce7b8p+0, false, +- false, +- 0x1.000000fffffffffffffffce7b7e7p+0, false, +- 0x1.000000fffffffffffffffce7b7e7p+0, false, +- 0x1.000000fffffffffffffffce7b7e7p+0, false, +- 0x1.000000fffffffffffffffce7b7e8p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000000fffffffp+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000000fffffffp+0, false, false, ++ 0x1.000001p+0, false, false, ++ false, ++ 0x1.000000fffffffffep+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000000fffffffffep+0, false, false, ++ 0x1.000001p+0, false, false, ++ false, ++ 0x1.000000fffffffffep+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000000fffffffffep+0, false, false, ++ 0x1.000001p+0, false, false, ++ false, ++ 0x1.000000fffffffffffffffce7b78p+0, false, false, ++ 0x1.000000fffffffffffffffce7b8p+0, false, false, ++ 0x1.000000fffffffffffffffce7b78p+0, false, false, ++ 0x1.000000fffffffffffffffce7b8p+0, false, false, ++ false, ++ 0x1.000000fffffffffffffffce7b7e7p+0, false, false, ++ 0x1.000000fffffffffffffffce7b7e7p+0, false, false, ++ 0x1.000000fffffffffffffffce7b7e7p+0, false, false, ++ 0x1.000000fffffffffffffffce7b7e8p+0, false, false), + TEST ("1.000000059604644775390625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- true, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- true, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- true, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- true, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ true, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ true, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ true, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ true, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false), + TEST ("1.00000005960464477539062501", + false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000001p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000000002p+0, false, +- false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.000001p+0, false, +- 0x1.0000010000000002p+0, false, +- false, +- 0x1.00000100000000000000031848p+0, false, +- 0x1.00000100000000000000031848p+0, false, +- 0x1.00000100000000000000031848p+0, false, +- 0x1.000001000000000000000318488p+0, false, +- false, +- 0x1.0000010000000000000003184818p+0, false, +- 0x1.0000010000000000000003184819p+0, false, +- 0x1.0000010000000000000003184818p+0, false, +- 0x1.0000010000000000000003184819p+0, false), ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000001p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.000001p+0, false, false, ++ 0x1.0000010000000002p+0, false, false, ++ false, ++ 0x1.00000100000000000000031848p+0, false, false, ++ 0x1.00000100000000000000031848p+0, false, false, ++ 0x1.00000100000000000000031848p+0, false, false, ++ 0x1.000001000000000000000318488p+0, false, false, ++ false, ++ 0x1.0000010000000000000003184818p+0, false, false, ++ 0x1.0000010000000000000003184819p+0, false, false, ++ 0x1.0000010000000000000003184818p+0, false, false, ++ 0x1.0000010000000000000003184819p+0, false, false), + TEST ("1.00000011920928955078125", + true, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false), ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false), + TEST ("1.00000017881393432617187499", + false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000002p+0, false, +- 0x1.000004p+0, false, +- false, +- 0x1.000002fffffffp+0, false, +- 0x1.000003p+0, false, +- 0x1.000002fffffffp+0, false, +- 0x1.000003p+0, false, +- false, +- 0x1.000002fffffffffep+0, false, +- 0x1.000003p+0, false, +- 0x1.000002fffffffffep+0, false, +- 0x1.000003p+0, false, +- false, +- 0x1.000002fffffffffep+0, false, +- 0x1.000003p+0, false, +- 0x1.000002fffffffffep+0, false, +- 0x1.000003p+0, false, +- false, +- 0x1.000002fffffffffffffffce7b78p+0, false, +- 0x1.000002fffffffffffffffce7b8p+0, false, +- 0x1.000002fffffffffffffffce7b78p+0, false, +- 0x1.000002fffffffffffffffce7b8p+0, false, +- false, +- 0x1.000002fffffffffffffffce7b7e7p+0, false, +- 0x1.000002fffffffffffffffce7b7e7p+0, false, +- 0x1.000002fffffffffffffffce7b7e7p+0, false, +- 0x1.000002fffffffffffffffce7b7e8p+0, false), ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000004p+0, false, false, ++ false, ++ 0x1.000002fffffffp+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000002fffffffp+0, false, false, ++ 0x1.000003p+0, false, false, ++ false, ++ 0x1.000002fffffffffep+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000002fffffffffep+0, false, false, ++ 0x1.000003p+0, false, false, ++ false, ++ 0x1.000002fffffffffep+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000002fffffffffep+0, false, false, ++ 0x1.000003p+0, false, false, ++ false, ++ 0x1.000002fffffffffffffffce7b78p+0, false, false, ++ 0x1.000002fffffffffffffffce7b8p+0, false, false, ++ 0x1.000002fffffffffffffffce7b78p+0, false, false, ++ 0x1.000002fffffffffffffffce7b8p+0, false, false, ++ false, ++ 0x1.000002fffffffffffffffce7b7e7p+0, false, false, ++ 0x1.000002fffffffffffffffce7b7e7p+0, false, false, ++ 0x1.000002fffffffffffffffce7b7e7p+0, false, false, ++ 0x1.000002fffffffffffffffce7b7e8p+0, false, false), + TEST ("1.000000178813934326171875", + false, +- 0x1.000002p+0, false, +- 0x1.000004p+0, false, +- 0x1.000002p+0, false, +- 0x1.000004p+0, false, +- true, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- true, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- true, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- true, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- true, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false), ++ 0x1.000002p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000004p+0, false, false, ++ true, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ true, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ true, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ true, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ true, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false), + TEST ("1.00000017881393432617187501", + false, +- 0x1.000002p+0, false, +- 0x1.000004p+0, false, +- 0x1.000002p+0, false, +- 0x1.000004p+0, false, +- false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.0000030000001p+0, false, +- false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.0000030000000002p+0, false, +- false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.000003p+0, false, +- 0x1.0000030000000002p+0, false, +- false, +- 0x1.00000300000000000000031848p+0, false, +- 0x1.00000300000000000000031848p+0, false, +- 0x1.00000300000000000000031848p+0, false, +- 0x1.000003000000000000000318488p+0, false, +- false, +- 0x1.0000030000000000000003184818p+0, false, +- 0x1.0000030000000000000003184819p+0, false, +- 0x1.0000030000000000000003184818p+0, false, +- 0x1.0000030000000000000003184819p+0, false), ++ 0x1.000002p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000002p+0, false, false, ++ 0x1.000004p+0, false, false, ++ false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.0000030000001p+0, false, false, ++ false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.0000030000000002p+0, false, false, ++ false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.000003p+0, false, false, ++ 0x1.0000030000000002p+0, false, false, ++ false, ++ 0x1.00000300000000000000031848p+0, false, false, ++ 0x1.00000300000000000000031848p+0, false, false, ++ 0x1.00000300000000000000031848p+0, false, false, ++ 0x1.000003000000000000000318488p+0, false, false, ++ false, ++ 0x1.0000030000000000000003184818p+0, false, false, ++ 0x1.0000030000000000000003184819p+0, false, false, ++ 0x1.0000030000000000000003184818p+0, false, false, ++ 0x1.0000030000000000000003184819p+0, false, false), + TEST ("1.0000002384185791015625", + true, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- true, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- true, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- true, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- true, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- true, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false, +- 0x1.000004p+0, false), ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ true, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ true, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ true, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ true, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ true, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false, ++ 0x1.000004p+0, false, false), + TEST ("1.08420217248550443400745280086994171142578125e-19", + true, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- true, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- true, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- true, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- true, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- true, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false), ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ true, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ true, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ true, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ true, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ true, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false), + TEST ("1.0842022371089897897127399001987457793916291848290711641311" + "645507812499e-19", + false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2.000004p-64, false, +- false, +- 0x2.000001ffffffep-64, false, +- 0x2.000002p-64, false, +- 0x2.000001ffffffep-64, false, +- 0x2.000002p-64, false, +- false, +- 0x2.000001fffffffffcp-64, false, +- 0x2.000002p-64, false, +- 0x2.000001fffffffffcp-64, false, +- 0x2.000002p-64, false, +- false, +- 0x2.000001fffffffffcp-64, false, +- 0x2.000002p-64, false, +- 0x2.000001fffffffffcp-64, false, +- 0x2.000002p-64, false, +- false, +- 0x2.000001ffffffffffffffffffffp-64, false, +- 0x2.000002p-64, false, +- 0x2.000001ffffffffffffffffffffp-64, false, +- 0x2.000002p-64, false, +- false, +- 0x2.000001fffffffffffffffffffffep-64, false, +- 0x2.000002p-64, false, +- 0x2.000001fffffffffffffffffffffep-64, false, +- 0x2.000002p-64, false), ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2.000004p-64, false, false, ++ false, ++ 0x2.000001ffffffep-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000001ffffffep-64, false, false, ++ 0x2.000002p-64, false, false, ++ false, ++ 0x2.000001fffffffffcp-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000001fffffffffcp-64, false, false, ++ 0x2.000002p-64, false, false, ++ false, ++ 0x2.000001fffffffffcp-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000001fffffffffcp-64, false, false, ++ 0x2.000002p-64, false, false, ++ false, ++ 0x2.000001ffffffffffffffffffffp-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000001ffffffffffffffffffffp-64, false, false, ++ 0x2.000002p-64, false, false, ++ false, ++ 0x2.000001fffffffffffffffffffffep-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000001fffffffffffffffffffffep-64, false, false, ++ 0x2.000002p-64, false, false), + TEST ("1.0842022371089897897127399001987457793916291848290711641311" + "6455078125e-19", + false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2p-64, false, +- 0x2.000004p-64, false, +- true, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- true, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- true, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- true, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- true, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false), ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2.000004p-64, false, false, ++ true, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ true, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ true, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ true, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ true, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false), + TEST ("1.0842022371089897897127399001987457793916291848290711641311" + "645507812501e-19", + false, +- 0x2p-64, false, +- 0x2.000004p-64, false, +- 0x2p-64, false, +- 0x2.000004p-64, false, +- false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.0000020000002p-64, false, +- false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.0000020000000004p-64, false, +- false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.0000020000000004p-64, false, +- false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.00000200000000000000000001p-64, false, +- false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.000002p-64, false, +- 0x2.0000020000000000000000000002p-64, false), ++ 0x2p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2p-64, false, false, ++ 0x2.000004p-64, false, false, ++ false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.0000020000002p-64, false, false, ++ false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.0000020000000004p-64, false, false, ++ false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.0000020000000004p-64, false, false, ++ false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.00000200000000000000000001p-64, false, false, ++ false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.000002p-64, false, false, ++ 0x2.0000020000000000000000000002p-64, false, false), + TEST ("1.0842023017324751454180269995275498473574771196581423282623" + "291015625e-19", + true, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- true, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- true, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- true, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- true, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- true, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false), ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ true, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ true, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ true, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ true, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ true, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false), + TEST ("1.0842023663559605011233140988563539153233250544872134923934" + "936523437499e-19", + false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000004p-64, false, +- 0x2.000008p-64, false, +- false, +- 0x2.000005ffffffep-64, false, +- 0x2.000006p-64, false, +- 0x2.000005ffffffep-64, false, +- 0x2.000006p-64, false, +- false, +- 0x2.000005fffffffffcp-64, false, +- 0x2.000006p-64, false, +- 0x2.000005fffffffffcp-64, false, +- 0x2.000006p-64, false, +- false, +- 0x2.000005fffffffffcp-64, false, +- 0x2.000006p-64, false, +- 0x2.000005fffffffffcp-64, false, +- 0x2.000006p-64, false, +- false, +- 0x2.000005ffffffffffffffffffffp-64, false, +- 0x2.000006p-64, false, +- 0x2.000005ffffffffffffffffffffp-64, false, +- 0x2.000006p-64, false, +- false, +- 0x2.000005fffffffffffffffffffffep-64, false, +- 0x2.000006p-64, false, +- 0x2.000005fffffffffffffffffffffep-64, false, +- 0x2.000006p-64, false), ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000008p-64, false, false, ++ false, ++ 0x2.000005ffffffep-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000005ffffffep-64, false, false, ++ 0x2.000006p-64, false, false, ++ false, ++ 0x2.000005fffffffffcp-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000005fffffffffcp-64, false, false, ++ 0x2.000006p-64, false, false, ++ false, ++ 0x2.000005fffffffffcp-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000005fffffffffcp-64, false, false, ++ 0x2.000006p-64, false, false, ++ false, ++ 0x2.000005ffffffffffffffffffffp-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000005ffffffffffffffffffffp-64, false, false, ++ 0x2.000006p-64, false, false, ++ false, ++ 0x2.000005fffffffffffffffffffffep-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000005fffffffffffffffffffffep-64, false, false, ++ 0x2.000006p-64, false, false), + TEST ("1.0842023663559605011233140988563539153233250544872134923934" + "9365234375e-19", + false, +- 0x2.000004p-64, false, +- 0x2.000008p-64, false, +- 0x2.000004p-64, false, +- 0x2.000008p-64, false, +- true, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- true, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- true, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- true, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- true, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false), ++ 0x2.000004p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000008p-64, false, false, ++ true, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ true, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ true, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ true, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ true, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false), + TEST ("1.0842023663559605011233140988563539153233250544872134923934" + "936523437501e-19", + false, +- 0x2.000004p-64, false, +- 0x2.000008p-64, false, +- 0x2.000004p-64, false, +- 0x2.000008p-64, false, +- false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.0000060000002p-64, false, +- false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.0000060000000004p-64, false, +- false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.0000060000000004p-64, false, +- false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.00000600000000000000000001p-64, false, +- false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.000006p-64, false, +- 0x2.0000060000000000000000000002p-64, false), ++ 0x2.000004p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000004p-64, false, false, ++ 0x2.000008p-64, false, false, ++ false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.0000060000002p-64, false, false, ++ false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.0000060000000004p-64, false, false, ++ false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.0000060000000004p-64, false, false, ++ false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.00000600000000000000000001p-64, false, false, ++ false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.000006p-64, false, false, ++ 0x2.0000060000000000000000000002p-64, false, false), + TEST ("1.0842024309794458568286011981851579832891729893162846565246" + "58203125e-19", + true, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- true, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- true, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- true, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- true, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- true, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false, +- 0x2.000008p-64, false), ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ true, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ true, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ true, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ true, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ true, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false, ++ 0x2.000008p-64, false, false), + TEST ("7.5231638452626400509999138382223723380394595633413601376560" + "1092018187046051025390625e-37", + true, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- true, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- true, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- true, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- true, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- true, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false), ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ true, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ true, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ true, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ true, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ true, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false), + TEST ("7.5231642936781486349413765338158389908126215730251815381410" + "578824437213052434003657253924757242202758789062499e-37", + false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1.000002p-120, false, +- false, +- 0x1.000000fffffffp-120, false, +- 0x1.000001p-120, false, +- 0x1.000000fffffffp-120, false, +- 0x1.000001p-120, false, +- false, +- 0x1.000000fffffffffep-120, false, +- 0x1.000001p-120, false, +- 0x1.000000fffffffffep-120, false, +- 0x1.000001p-120, false, +- false, +- 0x1.000000fffffffffep-120, false, +- 0x1.000001p-120, false, +- 0x1.000000fffffffffep-120, false, +- 0x1.000001p-120, false, +- false, +- 0x1.000000ffffffffffffffffffff8p-120, false, +- 0x1.000001p-120, false, +- 0x1.000000ffffffffffffffffffff8p-120, false, +- 0x1.000001p-120, false, +- false, +- 0x1.000000ffffffffffffffffffffffp-120, false, +- 0x1.000001p-120, false, +- 0x1.000000ffffffffffffffffffffffp-120, false, +- 0x1.000001p-120, false), ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1.000002p-120, false, false, ++ false, ++ 0x1.000000fffffffp-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000000fffffffp-120, false, false, ++ 0x1.000001p-120, false, false, ++ false, ++ 0x1.000000fffffffffep-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000000fffffffffep-120, false, false, ++ 0x1.000001p-120, false, false, ++ false, ++ 0x1.000000fffffffffep-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000000fffffffffep-120, false, false, ++ 0x1.000001p-120, false, false, ++ false, ++ 0x1.000000ffffffffffffffffffff8p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000000ffffffffffffffffffff8p-120, false, false, ++ 0x1.000001p-120, false, false, ++ false, ++ 0x1.000000ffffffffffffffffffffffp-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000000ffffffffffffffffffffffp-120, false, false, ++ 0x1.000001p-120, false, false), + TEST ("7.5231642936781486349413765338158389908126215730251815381410" + "5788244372130524340036572539247572422027587890625e-37", + false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1p-120, false, +- 0x1.000002p-120, false, +- true, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- true, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- true, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- true, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- true, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false), ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1.000002p-120, false, false, ++ true, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ true, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ true, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ true, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ true, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false), + TEST ("7.5231642936781486349413765338158389908126215730251815381410" + "578824437213052434003657253924757242202758789062501e-37", + false, +- 0x1p-120, false, +- 0x1.000002p-120, false, +- 0x1p-120, false, +- 0x1.000002p-120, false, +- false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.0000010000001p-120, false, +- false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.0000010000000002p-120, false, +- false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.0000010000000002p-120, false, +- false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001000000000000000000008p-120, false, +- false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.000001p-120, false, +- 0x1.0000010000000000000000000001p-120, false), ++ 0x1p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1p-120, false, false, ++ 0x1.000002p-120, false, false, ++ false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.0000010000001p-120, false, false, ++ false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.0000010000000002p-120, false, false, ++ false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.0000010000000002p-120, false, false, ++ false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001000000000000000000008p-120, false, false, ++ false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.000001p-120, false, false, ++ 0x1.0000010000000000000000000001p-120, false, false), + TEST ("7.5231647420936572188828392294093056435857835827090029386261" + "048447055721499765468252007849514484405517578125e-37", + true, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- true, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- true, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- true, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- true, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- true, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false), ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ true, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ true, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ true, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ true, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ true, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false), + TEST ("7.5231651905091658028243019250027722963589455923928243391111" + "518069674229947096932846761774271726608276367187499e-37", + false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000002p-120, false, +- 0x1.000004p-120, false, +- false, +- 0x1.000002fffffffp-120, false, +- 0x1.000003p-120, false, +- 0x1.000002fffffffp-120, false, +- 0x1.000003p-120, false, +- false, +- 0x1.000002fffffffffep-120, false, +- 0x1.000003p-120, false, +- 0x1.000002fffffffffep-120, false, +- 0x1.000003p-120, false, +- false, +- 0x1.000002fffffffffep-120, false, +- 0x1.000003p-120, false, +- 0x1.000002fffffffffep-120, false, +- 0x1.000003p-120, false, +- false, +- 0x1.000002ffffffffffffffffffff8p-120, false, +- 0x1.000003p-120, false, +- 0x1.000002ffffffffffffffffffff8p-120, false, +- 0x1.000003p-120, false, +- false, +- 0x1.000002ffffffffffffffffffffffp-120, false, +- 0x1.000003p-120, false, +- 0x1.000002ffffffffffffffffffffffp-120, false, +- 0x1.000003p-120, false), ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000004p-120, false, false, ++ false, ++ 0x1.000002fffffffp-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000002fffffffp-120, false, false, ++ 0x1.000003p-120, false, false, ++ false, ++ 0x1.000002fffffffffep-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000002fffffffffep-120, false, false, ++ 0x1.000003p-120, false, false, ++ false, ++ 0x1.000002fffffffffep-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000002fffffffffep-120, false, false, ++ 0x1.000003p-120, false, false, ++ false, ++ 0x1.000002ffffffffffffffffffff8p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000002ffffffffffffffffffff8p-120, false, false, ++ 0x1.000003p-120, false, false, ++ false, ++ 0x1.000002ffffffffffffffffffffffp-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000002ffffffffffffffffffffffp-120, false, false, ++ 0x1.000003p-120, false, false), + TEST ("7.5231651905091658028243019250027722963589455923928243391111" + "5180696742299470969328467617742717266082763671875e-37", + false, +- 0x1.000002p-120, false, +- 0x1.000004p-120, false, +- 0x1.000002p-120, false, +- 0x1.000004p-120, false, +- true, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- true, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- true, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- true, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- true, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false), ++ 0x1.000002p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000004p-120, false, false, ++ true, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ true, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ true, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ true, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ true, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false), + TEST ("7.5231651905091658028243019250027722963589455923928243391111" + "518069674229947096932846761774271726608276367187501e-37", + false, +- 0x1.000002p-120, false, +- 0x1.000004p-120, false, +- 0x1.000002p-120, false, +- 0x1.000004p-120, false, +- false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.0000030000001p-120, false, +- false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.0000030000000002p-120, false, +- false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.0000030000000002p-120, false, +- false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003000000000000000000008p-120, false, +- false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.000003p-120, false, +- 0x1.0000030000000000000000000001p-120, false), ++ 0x1.000002p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000002p-120, false, false, ++ 0x1.000004p-120, false, false, ++ false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.0000030000001p-120, false, false, ++ false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.0000030000000002p-120, false, false, ++ false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.0000030000000002p-120, false, false, ++ false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003000000000000000000008p-120, false, false, ++ false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.000003p-120, false, false, ++ 0x1.0000030000000000000000000001p-120, false, false), + TEST ("7.5231656389246743867657646205962389491321076020766457395961" + "98769229273839442839744151569902896881103515625e-37", + true, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- true, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- true, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- true, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- true, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- true, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false, +- 0x1.000004p-120, false), ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ true, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ true, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ true, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ true, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ true, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false, ++ 0x1.000004p-120, false, false), + TEST ("340282356779733661637539395458142568447.999", + false, +- 0xf.fffffp+124, false, +- 0xf.fffffp+124, false, +- 0xf.fffffp+124, false, +- INF, true, +- false, +- 0xf.fffff7ffffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff7ffffff8p+124, false, +- 0xf.fffff8p+124, false, +- false, +- 0xf.fffff7fffffffffp+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff7fffffffffp+124, false, +- 0xf.fffff8p+124, false, +- false, +- 0xf.fffff7fffffffffp+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff7fffffffffp+124, false, +- 0xf.fffff8p+124, false, +- false, +- 0xf.fffff7fffffffffffffffffffcp+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff7fffffffffffffffffffcp+124, false, +- 0xf.fffff8p+124, false, +- false, +- 0xf.fffff7fffffffffffffffffffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff7fffffffffffffffffffff8p+124, false, +- 0xf.fffff8p+124, false), ++ 0xf.fffffp+124, false, false, ++ 0xf.fffffp+124, false, false, ++ 0xf.fffffp+124, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffff7ffffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff7ffffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ false, ++ 0xf.fffff7fffffffffp+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff7fffffffffp+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ false, ++ 0xf.fffff7fffffffffp+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff7fffffffffp+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ false, ++ 0xf.fffff7fffffffffffffffffffcp+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff7fffffffffffffffffffcp+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ false, ++ 0xf.fffff7fffffffffffffffffffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff7fffffffffffffffffffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false), + TEST ("340282356779733661637539395458142568448", + false, +- 0xf.fffffp+124, false, +- INF, true, +- 0xf.fffffp+124, false, +- INF, true, +- true, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- true, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- true, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- true, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- true, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false), ++ 0xf.fffffp+124, false, false, ++ INF, true, false, ++ 0xf.fffffp+124, false, false, ++ INF, true, false, ++ true, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ true, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ true, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ true, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ true, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false), + TEST ("340282356779733661637539395458142568448.001", + false, +- 0xf.fffffp+124, false, +- INF, true, +- 0xf.fffffp+124, false, +- INF, true, +- false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff80000008p+124, false, +- false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8000000001p+124, false, +- false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8000000001p+124, false, +- false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff800000000000000000004p+124, false, +- false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff8p+124, false, +- 0xf.fffff80000000000000000000008p+124, false), ++ 0xf.fffffp+124, false, false, ++ INF, true, false, ++ 0xf.fffffp+124, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff80000008p+124, false, false, ++ false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8000000001p+124, false, false, ++ false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8000000001p+124, false, false, ++ false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff800000000000000000004p+124, false, false, ++ false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff8p+124, false, false, ++ 0xf.fffff80000000000000000000008p+124, false, false), + TEST ("-340282356779733661637539395458142568447.999", + false, +- -INF, true, +- -0xf.fffffp+124, false, +- -0xf.fffffp+124, false, +- -0xf.fffffp+124, false, +- false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff7ffffff8p+124, false, +- -0xf.fffff7ffffff8p+124, false, +- false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff7fffffffffp+124, false, +- -0xf.fffff7fffffffffp+124, false, +- false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff7fffffffffp+124, false, +- -0xf.fffff7fffffffffp+124, false, +- false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff7fffffffffffffffffffcp+124, false, +- -0xf.fffff7fffffffffffffffffffcp+124, false, +- false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff7fffffffffffffffffffff8p+124, false, +- -0xf.fffff7fffffffffffffffffffff8p+124, false), ++ -INF, true, false, ++ -0xf.fffffp+124, false, false, ++ -0xf.fffffp+124, false, false, ++ -0xf.fffffp+124, false, false, ++ false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff7ffffff8p+124, false, false, ++ -0xf.fffff7ffffff8p+124, false, false, ++ false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff7fffffffffp+124, false, false, ++ -0xf.fffff7fffffffffp+124, false, false, ++ false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff7fffffffffp+124, false, false, ++ -0xf.fffff7fffffffffp+124, false, false, ++ false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff7fffffffffffffffffffcp+124, false, false, ++ -0xf.fffff7fffffffffffffffffffcp+124, false, false, ++ false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff7fffffffffffffffffffff8p+124, false, false, ++ -0xf.fffff7fffffffffffffffffffff8p+124, false, false), + TEST ("-340282356779733661637539395458142568448", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, false, +- -0xf.fffffp+124, false, +- true, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- true, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- true, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- true, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- true, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, false, false, ++ -0xf.fffffp+124, false, false, ++ true, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ true, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ true, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ true, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ true, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false), + TEST ("-340282356779733661637539395458142568448.001", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, false, +- -0xf.fffffp+124, false, +- false, +- -0xf.fffff80000008p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- false, +- -0xf.fffff8000000001p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- false, +- -0xf.fffff8000000001p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- false, +- -0xf.fffff800000000000000000004p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- false, +- -0xf.fffff80000000000000000000008p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false, +- -0xf.fffff8p+124, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, false, false, ++ -0xf.fffffp+124, false, false, ++ false, ++ -0xf.fffff80000008p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ false, ++ -0xf.fffff8000000001p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ false, ++ -0xf.fffff8000000001p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ false, ++ -0xf.fffff800000000000000000004p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ false, ++ -0xf.fffff80000000000000000000008p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false, ++ -0xf.fffff8p+124, false, false), + TEST ("179769313486231580793728971405303415079934132710037826936173" + "778980444968292764750946649017977587207096330286416692887910" + "946555547851940402630657488671505820681908902000708383676273" +@@ -1855,35 +1855,35 @@ static const struct test tests[] = { + "936475292719074168444365510704342711559699508093042880177904" + "174497791.999", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, false, +- 0xf.ffffffffffff8p+1020, false, +- 0xf.ffffffffffff8p+1020, false, +- INF, true, +- false, +- 0xf.ffffffffffffbffp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffbffp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- false, +- 0xf.ffffffffffffbffp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffbffp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- false, +- 0xf.ffffffffffffbffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, true, +- 0xf.ffffffffffffbffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, true, +- false, +- 0xf.ffffffffffffbffffffffffffff8p+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffbffffffffffffff8p+1020, false, +- 0xf.ffffffffffffcp+1020, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffffbffp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffbffp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ false, ++ 0xf.ffffffffffffbffp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffbffp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ false, ++ 0xf.ffffffffffffbffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ 0xf.ffffffffffffbffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ false, ++ 0xf.ffffffffffffbffffffffffffff8p+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffbffffffffffffff8p+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false), + TEST ("179769313486231580793728971405303415079934132710037826936173" + "778980444968292764750946649017977587207096330286416692887910" + "946555547851940402630657488671505820681908902000708383676273" +@@ -1891,35 +1891,35 @@ static const struct test tests[] = { + "936475292719074168444365510704342711559699508093042880177904" + "174497792", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, false, +- INF, true, +- 0xf.ffffffffffff8p+1020, false, +- INF, true, +- true, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- true, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- false, +- 0xf.ffffffffffffcp+1020, true, +- 0xf.ffffffffffffcp+1020, true, +- 0xf.ffffffffffffcp+1020, true, +- 0xf.ffffffffffffcp+1020, true, +- true, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ INF, true, false, ++ true, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ true, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ true, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false), + TEST ("179769313486231580793728971405303415079934132710037826936173" + "778980444968292764750946649017977587207096330286416692887910" + "946555547851940402630657488671505820681908902000708383676273" +@@ -1927,35 +1927,35 @@ static const struct test tests[] = { + "936475292719074168444365510704342711559699508093042880177904" + "174497792.001", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, false, +- INF, true, +- 0xf.ffffffffffff8p+1020, false, +- INF, true, +- false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffc01p+1020, false, +- false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffc01p+1020, false, +- false, +- 0xf.ffffffffffffcp+1020, true, +- 0xf.ffffffffffffcp+1020, true, +- 0xf.ffffffffffffcp+1020, true, +- 0xf.ffffffffffffc0000000000004p+1020, true, +- false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffcp+1020, false, +- 0xf.ffffffffffffc000000000000008p+1020, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffc01p+1020, false, false, ++ false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffc01p+1020, false, false, ++ false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ 0xf.ffffffffffffcp+1020, true, false, ++ 0xf.ffffffffffffc0000000000004p+1020, true, false, ++ false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffcp+1020, false, false, ++ 0xf.ffffffffffffc000000000000008p+1020, false, false), + TEST ("-17976931348623158079372897140530341507993413271003782693617" + "377898044496829276475094664901797758720709633028641669288791" + "094655554785194040263065748867150582068190890200070838367627" +@@ -1963,35 +1963,35 @@ static const struct test tests[] = { + "493647529271907416844436551070434271155969950809304288017790" + "4174497791.999", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -0xf.ffffffffffff8p+1020, false, +- -0xf.ffffffffffff8p+1020, false, +- -0xf.ffffffffffff8p+1020, false, +- false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffbffp+1020, false, +- -0xf.ffffffffffffbffp+1020, false, +- false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffbffp+1020, false, +- -0xf.ffffffffffffbffp+1020, false, +- false, +- -0xf.ffffffffffffcp+1020, true, +- -0xf.ffffffffffffcp+1020, true, +- -0xf.ffffffffffffbffffffffffffcp+1020, false, +- -0xf.ffffffffffffbffffffffffffcp+1020, false, +- false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffbffffffffffffff8p+1020, false, +- -0xf.ffffffffffffbffffffffffffff8p+1020, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffbffp+1020, false, false, ++ -0xf.ffffffffffffbffp+1020, false, false, ++ false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffbffp+1020, false, false, ++ -0xf.ffffffffffffbffp+1020, false, false, ++ false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ -0xf.ffffffffffffbffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffbffffffffffffcp+1020, false, false, ++ false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffbffffffffffffff8p+1020, false, false, ++ -0xf.ffffffffffffbffffffffffffff8p+1020, false, false), + TEST ("-17976931348623158079372897140530341507993413271003782693617" + "377898044496829276475094664901797758720709633028641669288791" + "094655554785194040263065748867150582068190890200070838367627" +@@ -1999,35 +1999,35 @@ static const struct test tests[] = { + "493647529271907416844436551070434271155969950809304288017790" + "4174497792", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, false, +- -0xf.ffffffffffff8p+1020, false, +- true, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- true, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- false, +- -0xf.ffffffffffffcp+1020, true, +- -0xf.ffffffffffffcp+1020, true, +- -0xf.ffffffffffffcp+1020, true, +- -0xf.ffffffffffffcp+1020, true, +- true, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ true, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ true, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ true, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false), + TEST ("-17976931348623158079372897140530341507993413271003782693617" + "377898044496829276475094664901797758720709633028641669288791" + "094655554785194040263065748867150582068190890200070838367627" +@@ -2035,35 +2035,35 @@ static const struct test tests[] = { + "493647529271907416844436551070434271155969950809304288017790" + "4174497792.001", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, false, +- -0xf.ffffffffffff8p+1020, false, +- false, +- -0xf.ffffffffffffc01p+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- false, +- -0xf.ffffffffffffc01p+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- false, +- -0xf.ffffffffffffc0000000000004p+1020, true, +- -0xf.ffffffffffffcp+1020, true, +- -0xf.ffffffffffffcp+1020, true, +- -0xf.ffffffffffffcp+1020, true, +- false, +- -0xf.ffffffffffffc000000000000008p+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false, +- -0xf.ffffffffffffcp+1020, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ false, ++ -0xf.ffffffffffffc01p+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ false, ++ -0xf.ffffffffffffc01p+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ false, ++ -0xf.ffffffffffffc0000000000004p+1020, true, false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ -0xf.ffffffffffffcp+1020, true, false, ++ false, ++ -0xf.ffffffffffffc000000000000008p+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false, ++ -0xf.ffffffffffffcp+1020, false, false), + TEST ("118973149535723176505351158982948866796625400469556721895649" + "927756249918185172720476044944290457046138433056764616744328" + "666255526748948793023632513609765434237723241753648908036202" +@@ -2148,35 +2148,35 @@ static const struct test tests[] = { + "578031503869424406179027994752890226443351619365453243328968" + "8740976918527.999", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- 0xf.fffffffffffffffp+16380, false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- 0xf.fffffffffffffffp+16380, false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffff7fffffffffff8p+16380, false, +- 0xf.fffffffffffffff8p+16380, false, +- 0xf.fffffffffffffff7fffffffffff8p+16380, false, +- 0xf.fffffffffffffff8p+16380, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffff7fffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff7fffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8p+16380, false, false), + TEST ("118973149535723176505351158982948866796625400469556721895649" + "927756249918185172720476044944290457046138433056764616744328" + "666255526748948793023632513609765434237723241753648908036202" +@@ -2261,35 +2261,35 @@ static const struct test tests[] = { + "578031503869424406179027994752890226443351619365453243328968" + "8740976918528", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- true, +- 0xf.fffffffffffffff8p+16380, false, +- 0xf.fffffffffffffff8p+16380, false, +- 0xf.fffffffffffffff8p+16380, false, +- 0xf.fffffffffffffff8p+16380, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ true, ++ 0xf.fffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8p+16380, false, false), + TEST ("118973149535723176505351158982948866796625400469556721895649" + "927756249918185172720476044944290457046138433056764616744328" + "666255526748948793023632513609765434237723241753648908036202" +@@ -2374,35 +2374,35 @@ static const struct test tests[] = { + "578031503869424406179027994752890226443351619365453243328968" + "8740976918528.001", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffff8p+16380, false, +- 0xf.fffffffffffffff8p+16380, false, +- 0xf.fffffffffffffff8p+16380, false, +- 0xf.fffffffffffffff8000000000008p+16380, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffff8000000000008p+16380, false, false), + TEST ("-11897314953572317650535115898294886679662540046955672189564" + "992775624991818517272047604494429045704613843305676461674432" + "866625552674894879302363251360976543423772324175364890803620" +@@ -2487,35 +2487,35 @@ static const struct test tests[] = { + "557803150386942440617902799475289022644335161936545324332896" + "88740976918527.999", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, true, +- -0xf.ffffffffffff8p+1020, true, +- false, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- false, +- -0xf.fffffffffffffff8p+16380, false, +- -0xf.fffffffffffffff8p+16380, false, +- -0xf.fffffffffffffff7fffffffffff8p+16380, false, +- -0xf.fffffffffffffff7fffffffffff8p+16380, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ false, ++ -0xf.fffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff7fffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff7fffffffffff8p+16380, false, false), + TEST ("-11897314953572317650535115898294886679662540046955672189564" + "992775624991818517272047604494429045704613843305676461674432" + "866625552674894879302363251360976543423772324175364890803620" +@@ -2600,35 +2600,35 @@ static const struct test tests[] = { + "557803150386942440617902799475289022644335161936545324332896" + "88740976918528", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, true, +- -0xf.ffffffffffff8p+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- true, +- -0xf.fffffffffffffff8p+16380, false, +- -0xf.fffffffffffffff8p+16380, false, +- -0xf.fffffffffffffff8p+16380, false, +- -0xf.fffffffffffffff8p+16380, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ true, ++ -0xf.fffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff8p+16380, false, false), + TEST ("-11897314953572317650535115898294886679662540046955672189564" + "992775624991818517272047604494429045704613843305676461674432" + "866625552674894879302363251360976543423772324175364890803620" +@@ -2713,35 +2713,35 @@ static const struct test tests[] = { + "557803150386942440617902799475289022644335161936545324332896" + "88740976918528.001", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, true, +- -0xf.ffffffffffff8p+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- false, +- -0xf.fffffffffffffff8000000000008p+16380, false, +- -0xf.fffffffffffffff8p+16380, false, +- -0xf.fffffffffffffff8p+16380, false, +- -0xf.fffffffffffffff8p+16380, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ false, ++ -0xf.fffffffffffffff8000000000008p+16380, false, false, ++ -0xf.fffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffff8p+16380, false, false), + TEST ("118973149535723176508575932662800707347995686986910214150118" + "685272271246896789803961473130416053705672050873552479421805" + "932646640744124594447361172514341324846716679654551308018400" +@@ -2826,35 +2826,35 @@ static const struct test tests[] = { + "972233447491583165728635513802591543441145939539353470970452" + "5536550715391.999", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- INF, true), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ INF, true, false), + TEST ("118973149535723176508575932662800707347995686986910214150118" + "685272271246896789803961473130416053705672050873552479421805" + "932646640744124594447361172514341324846716679654551308018400" +@@ -2939,35 +2939,35 @@ static const struct test tests[] = { + "972233447491583165728635513802591543441145939539353470970452" + "5536550715392", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- INF, true, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- INF, true), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ INF, true, false), + TEST ("118973149535723176508575932662800707347995686986910214150118" + "685272271246896789803961473130416053705672050873552479421805" + "932646640744124594447361172514341324846716679654551308018400" +@@ -3052,35 +3052,35 @@ static const struct test tests[] = { + "972233447491583165728635513802591543441145939539353470970452" + "5536550715392.001", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- INF, true, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- INF, true), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ INF, true, false), + TEST ("-11897314953572317650857593266280070734799568698691021415011" + "868527227124689678980396147313041605370567205087355247942180" + "593264664074412459444736117251434132484671667965455130801840" +@@ -3165,35 +3165,35 @@ static const struct test tests[] = { + "097223344749158316572863551380259154344114593953935347097045" + "25536550715391.999", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, true, +- -0xf.ffffffffffff8p+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- false, +- -INF, true, +- -0xf.fffffffffffffffffffffffffff8p+16380, false, +- -0xf.fffffffffffffffffffffffffff8p+16380, false, +- -0xf.fffffffffffffffffffffffffff8p+16380, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false), + TEST ("-11897314953572317650857593266280070734799568698691021415011" + "868527227124689678980396147313041605370567205087355247942180" + "593264664074412459444736117251434132484671667965455130801840" +@@ -3278,35 +3278,35 @@ static const struct test tests[] = { + "097223344749158316572863551380259154344114593953935347097045" + "25536550715392", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, true, +- -0xf.ffffffffffff8p+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffff8p+16380, false, +- -0xf.fffffffffffffffffffffffffff8p+16380, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false), + TEST ("-11897314953572317650857593266280070734799568698691021415011" + "868527227124689678980396147313041605370567205087355247942180" + "593264664074412459444736117251434132484671667965455130801840" +@@ -3391,419 +3391,419 @@ static const struct test tests[] = { + "097223344749158316572863551380259154344114593953935347097045" + "25536550715392.001", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, true, +- -0xf.ffffffffffff8p+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffff8p+16380, false, +- -0xf.fffffffffffffffffffffffffff8p+16380, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false), + TEST ("2.1019476964872256063855943749348741969203929128147736576356" + "0242583468662402879090222995728254318237304687499e-45", + false, +- 0x8p-152, false, +- 0x8p-152, false, +- 0x8p-152, false, +- 0x1p-148, false, +- false, +- 0xb.ffffffffffff8p-152, false, +- 0xcp-152, false, +- 0xb.ffffffffffff8p-152, false, +- 0xcp-152, false, +- false, +- 0xb.fffffffffffffffp-152, false, +- 0xcp-152, false, +- 0xb.fffffffffffffffp-152, false, +- 0xcp-152, false, +- false, +- 0xb.fffffffffffffffp-152, false, +- 0xcp-152, false, +- 0xb.fffffffffffffffp-152, false, +- 0xcp-152, false, +- false, +- 0xb.fffffffffffffffffffffffffcp-152, false, +- 0xcp-152, false, +- 0xb.fffffffffffffffffffffffffcp-152, false, +- 0xcp-152, false, +- false, +- 0xb.fffffffffffffffffffffffffff8p-152, false, +- 0xcp-152, false, +- 0xb.fffffffffffffffffffffffffff8p-152, false, +- 0xcp-152, false), ++ 0x8p-152, false, true, ++ 0x8p-152, false, true, ++ 0x8p-152, false, true, ++ 0x1p-148, false, true, ++ false, ++ 0xb.ffffffffffff8p-152, false, false, ++ 0xcp-152, false, false, ++ 0xb.ffffffffffff8p-152, false, false, ++ 0xcp-152, false, false, ++ false, ++ 0xb.fffffffffffffffp-152, false, false, ++ 0xcp-152, false, false, ++ 0xb.fffffffffffffffp-152, false, false, ++ 0xcp-152, false, false, ++ false, ++ 0xb.fffffffffffffffp-152, false, false, ++ 0xcp-152, false, false, ++ 0xb.fffffffffffffffp-152, false, false, ++ 0xcp-152, false, false, ++ false, ++ 0xb.fffffffffffffffffffffffffcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xb.fffffffffffffffffffffffffcp-152, false, false, ++ 0xcp-152, false, false, ++ false, ++ 0xb.fffffffffffffffffffffffffff8p-152, false, false, ++ 0xcp-152, false, false, ++ 0xb.fffffffffffffffffffffffffff8p-152, false, false, ++ 0xcp-152, false, false), + TEST ("2.1019476964872256063855943749348741969203929128147736576356" + "02425834686624028790902229957282543182373046875e-45", + false, +- 0x8p-152, false, +- 0x1p-148, false, +- 0x8p-152, false, +- 0x1p-148, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- true, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false), ++ 0x8p-152, false, true, ++ 0x1p-148, false, true, ++ 0x8p-152, false, true, ++ 0x1p-148, false, true, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ true, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false), + TEST ("2.1019476964872256063855943749348741969203929128147736576356" + "0242583468662402879090222995728254318237304687501e-45", + false, +- 0x8p-152, false, +- 0x1p-148, false, +- 0x8p-152, false, +- 0x1p-148, false, +- false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xc.0000000000008p-152, false, +- false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xc.000000000000001p-152, false, +- false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xc.000000000000001p-152, false, +- false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xc.00000000000000000000000004p-152, false, +- false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xcp-152, false, +- 0xc.0000000000000000000000000008p-152, false), ++ 0x8p-152, false, true, ++ 0x1p-148, false, true, ++ 0x8p-152, false, true, ++ 0x1p-148, false, true, ++ false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xc.0000000000008p-152, false, false, ++ false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xc.000000000000001p-152, false, false, ++ false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xc.000000000000001p-152, false, false, ++ false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xc.00000000000000000000000004p-152, false, false, ++ false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xcp-152, false, false, ++ 0xc.0000000000000000000000000008p-152, false, false), + TEST ("-2.101947696487225606385594374934874196920392912814773657635" + "60242583468662402879090222995728254318237304687499e-45", + false, +- -0x1p-148, false, +- -0x8p-152, false, +- -0x8p-152, false, +- -0x8p-152, false, +- false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xb.ffffffffffff8p-152, false, +- -0xb.ffffffffffff8p-152, false, +- false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xb.fffffffffffffffp-152, false, +- -0xb.fffffffffffffffp-152, false, +- false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xb.fffffffffffffffp-152, false, +- -0xb.fffffffffffffffp-152, false, +- false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xb.fffffffffffffffffffffffffcp-152, false, +- -0xb.fffffffffffffffffffffffffcp-152, false, +- false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xb.fffffffffffffffffffffffffff8p-152, false, +- -0xb.fffffffffffffffffffffffffff8p-152, false), ++ -0x1p-148, false, true, ++ -0x8p-152, false, true, ++ -0x8p-152, false, true, ++ -0x8p-152, false, true, ++ false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xb.ffffffffffff8p-152, false, false, ++ -0xb.ffffffffffff8p-152, false, false, ++ false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xb.fffffffffffffffp-152, false, false, ++ -0xb.fffffffffffffffp-152, false, false, ++ false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xb.fffffffffffffffp-152, false, false, ++ -0xb.fffffffffffffffp-152, false, false, ++ false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xb.fffffffffffffffffffffffffcp-152, false, false, ++ -0xb.fffffffffffffffffffffffffcp-152, false, false, ++ false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xb.fffffffffffffffffffffffffff8p-152, false, false, ++ -0xb.fffffffffffffffffffffffffff8p-152, false, false), + TEST ("-2.101947696487225606385594374934874196920392912814773657635" + "602425834686624028790902229957282543182373046875e-45", + false, +- -0x1p-148, false, +- -0x1p-148, false, +- -0x8p-152, false, +- -0x8p-152, false, +- true, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- true, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- true, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- true, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- true, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false), ++ -0x1p-148, false, true, ++ -0x1p-148, false, true, ++ -0x8p-152, false, true, ++ -0x8p-152, false, true, ++ true, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ true, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ true, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ true, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ true, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false), + TEST ("-2.101947696487225606385594374934874196920392912814773657635" + "60242583468662402879090222995728254318237304687501e-45", + false, +- -0x1p-148, false, +- -0x1p-148, false, +- -0x8p-152, false, +- -0x8p-152, false, +- false, +- -0xc.0000000000008p-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- false, +- -0xc.000000000000001p-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- false, +- -0xc.000000000000001p-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- false, +- -0xc.00000000000000000000000004p-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- false, +- -0xc.0000000000000000000000000008p-152, false, +- -0xcp-152, false, +- -0xcp-152, false, +- -0xcp-152, false), ++ -0x1p-148, false, true, ++ -0x1p-148, false, true, ++ -0x8p-152, false, true, ++ -0x8p-152, false, true, ++ false, ++ -0xc.0000000000008p-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ false, ++ -0xc.000000000000001p-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ false, ++ -0xc.000000000000001p-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ false, ++ -0xc.00000000000000000000000004p-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ false, ++ -0xc.0000000000000000000000000008p-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false, ++ -0xcp-152, false, false), + TEST ("3.5032461608120426773093239582247903282006548546912894293926" + "7070972447770671465150371659547090530395507812499e-45", + false, +- 0x1p-148, false, +- 0x1p-148, false, +- 0x1p-148, false, +- 0x1.8p-148, false, +- false, +- 0x1.3ffffffffffffp-148, false, +- 0x1.4p-148, false, +- 0x1.3ffffffffffffp-148, false, +- 0x1.4p-148, false, +- false, +- 0x1.3ffffffffffffffep-148, false, +- 0x1.4p-148, false, +- 0x1.3ffffffffffffffep-148, false, +- 0x1.4p-148, false, +- false, +- 0x1.3ffffffffffffffep-148, false, +- 0x1.4p-148, false, +- 0x1.3ffffffffffffffep-148, false, +- 0x1.4p-148, false, +- false, +- 0x1.3fffffffffffffffffffffffff8p-148, false, +- 0x1.4p-148, false, +- 0x1.3fffffffffffffffffffffffff8p-148, false, +- 0x1.4p-148, false, +- false, +- 0x1.3fffffffffffffffffffffffffffp-148, false, +- 0x1.4p-148, false, +- 0x1.3fffffffffffffffffffffffffffp-148, false, +- 0x1.4p-148, false), ++ 0x1p-148, false, true, ++ 0x1p-148, false, true, ++ 0x1p-148, false, true, ++ 0x1.8p-148, false, true, ++ false, ++ 0x1.3ffffffffffffp-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.3ffffffffffffp-148, false, false, ++ 0x1.4p-148, false, false, ++ false, ++ 0x1.3ffffffffffffffep-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.3ffffffffffffffep-148, false, false, ++ 0x1.4p-148, false, false, ++ false, ++ 0x1.3ffffffffffffffep-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.3ffffffffffffffep-148, false, false, ++ 0x1.4p-148, false, false, ++ false, ++ 0x1.3fffffffffffffffffffffffff8p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.3fffffffffffffffffffffffff8p-148, false, false, ++ 0x1.4p-148, false, false, ++ false, ++ 0x1.3fffffffffffffffffffffffffffp-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.3fffffffffffffffffffffffffffp-148, false, false, ++ 0x1.4p-148, false, false), + TEST ("3.5032461608120426773093239582247903282006548546912894293926" + "70709724477706714651503716595470905303955078125e-45", + false, +- 0x1p-148, false, +- 0x1p-148, false, +- 0x1p-148, false, +- 0x1.8p-148, false, +- true, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- true, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- true, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- true, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- true, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false), ++ 0x1p-148, false, true, ++ 0x1p-148, false, true, ++ 0x1p-148, false, true, ++ 0x1.8p-148, false, true, ++ true, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ true, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ true, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ true, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ true, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false), + TEST ("3.5032461608120426773093239582247903282006548546912894293926" + "7070972447770671465150371659547090530395507812501e-45", + false, +- 0x1p-148, false, +- 0x1.8p-148, false, +- 0x1p-148, false, +- 0x1.8p-148, false, +- false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4000000000001p-148, false, +- false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4000000000000002p-148, false, +- false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4000000000000002p-148, false, +- false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.400000000000000000000000008p-148, false, +- false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4p-148, false, +- 0x1.4000000000000000000000000001p-148, false), ++ 0x1p-148, false, true, ++ 0x1.8p-148, false, true, ++ 0x1p-148, false, true, ++ 0x1.8p-148, false, true, ++ false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4000000000001p-148, false, false, ++ false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4000000000000002p-148, false, false, ++ false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4000000000000002p-148, false, false, ++ false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.400000000000000000000000008p-148, false, false, ++ false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4p-148, false, false, ++ 0x1.4000000000000000000000000001p-148, false, false), + TEST ("-3.503246160812042677309323958224790328200654854691289429392" + "67070972447770671465150371659547090530395507812499e-45", + false, +- -0x1.8p-148, false, +- -0x1p-148, false, +- -0x1p-148, false, +- -0x1p-148, false, +- false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.3ffffffffffffp-148, false, +- -0x1.3ffffffffffffp-148, false, +- false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.3ffffffffffffffep-148, false, +- -0x1.3ffffffffffffffep-148, false, +- false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.3ffffffffffffffep-148, false, +- -0x1.3ffffffffffffffep-148, false, +- false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.3fffffffffffffffffffffffff8p-148, false, +- -0x1.3fffffffffffffffffffffffff8p-148, false, +- false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.3fffffffffffffffffffffffffffp-148, false, +- -0x1.3fffffffffffffffffffffffffffp-148, false), ++ -0x1.8p-148, false, true, ++ -0x1p-148, false, true, ++ -0x1p-148, false, true, ++ -0x1p-148, false, true, ++ false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.3ffffffffffffp-148, false, false, ++ -0x1.3ffffffffffffp-148, false, false, ++ false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.3ffffffffffffffep-148, false, false, ++ -0x1.3ffffffffffffffep-148, false, false, ++ false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.3ffffffffffffffep-148, false, false, ++ -0x1.3ffffffffffffffep-148, false, false, ++ false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.3fffffffffffffffffffffffff8p-148, false, false, ++ -0x1.3fffffffffffffffffffffffff8p-148, false, false, ++ false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.3fffffffffffffffffffffffffffp-148, false, false, ++ -0x1.3fffffffffffffffffffffffffffp-148, false, false), + TEST ("-3.503246160812042677309323958224790328200654854691289429392" + "670709724477706714651503716595470905303955078125e-45", + false, +- -0x1.8p-148, false, +- -0x1p-148, false, +- -0x1p-148, false, +- -0x1p-148, false, +- true, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- true, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- true, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- true, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- true, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false), ++ -0x1.8p-148, false, true, ++ -0x1p-148, false, true, ++ -0x1p-148, false, true, ++ -0x1p-148, false, true, ++ true, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ true, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ true, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ true, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ true, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false), + TEST ("-3.503246160812042677309323958224790328200654854691289429392" + "67070972447770671465150371659547090530395507812501e-45", + false, +- -0x1.8p-148, false, +- -0x1.8p-148, false, +- -0x1p-148, false, +- -0x1p-148, false, +- false, +- -0x1.4000000000001p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- false, +- -0x1.4000000000000002p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- false, +- -0x1.4000000000000002p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- false, +- -0x1.400000000000000000000000008p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- false, +- -0x1.4000000000000000000000000001p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false, +- -0x1.4p-148, false), ++ -0x1.8p-148, false, true, ++ -0x1.8p-148, false, true, ++ -0x1p-148, false, true, ++ -0x1p-148, false, true, ++ false, ++ -0x1.4000000000001p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ false, ++ -0x1.4000000000000002p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ false, ++ -0x1.4000000000000002p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ false, ++ -0x1.400000000000000000000000008p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ false, ++ -0x1.4000000000000000000000000001p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false, ++ -0x1.4p-148, false, false), + TEST ("7.4109846876186981626485318930233205854758970392148714663837" + "852375101326090531312779794975454245398856969484704316857659" + "638998506553390969459816219401617281718945106978546710679176" +@@ -3818,35 +3818,35 @@ static const struct test tests[] = { + "337560846003984904972149117463085539556354188641513168478436" + "31308023759629577398300170898437499e-324", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x4p-1076, false, +- 0x4p-1076, false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- false, +- 0x5.fffffffffffffff8p-1076, false, +- 0x6p-1076, false, +- 0x5.fffffffffffffff8p-1076, false, +- 0x6p-1076, false, +- false, +- 0x5.fffffffffffffff8p-1076, false, +- 0x6p-1076, false, +- 0x5.fffffffffffffff8p-1076, false, +- 0x6p-1076, false, +- false, +- 0x4p-1076, false, +- 0x4p-1076, false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- false, +- 0x5.fffffffffffffffffffffffffffcp-1076, false, +- 0x6p-1076, false, +- 0x5.fffffffffffffffffffffffffffcp-1076, false, +- 0x6p-1076, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x4p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ false, ++ 0x5.fffffffffffffff8p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x5.fffffffffffffff8p-1076, false, false, ++ 0x6p-1076, false, false, ++ false, ++ 0x5.fffffffffffffff8p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x5.fffffffffffffff8p-1076, false, false, ++ 0x6p-1076, false, false, ++ false, ++ 0x4p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ false, ++ 0x5.fffffffffffffffffffffffffffcp-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x5.fffffffffffffffffffffffffffcp-1076, false, false, ++ 0x6p-1076, false, false), + TEST ("7.4109846876186981626485318930233205854758970392148714663837" + "852375101326090531312779794975454245398856969484704316857659" + "638998506553390969459816219401617281718945106978546710679176" +@@ -3861,35 +3861,35 @@ static const struct test tests[] = { + "337560846003984904972149117463085539556354188641513168478436" + "313080237596295773983001708984375e-324", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- true, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- true, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- true, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ true, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ true, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ false, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ true, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false), + TEST ("7.4109846876186981626485318930233205854758970392148714663837" + "852375101326090531312779794975454245398856969484704316857659" + "638998506553390969459816219401617281718945106978546710679176" +@@ -3904,35 +3904,35 @@ static const struct test tests[] = { + "337560846003984904972149117463085539556354188641513168478436" + "31308023759629577398300170898437501e-324", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6.0000000000000008p-1076, false, +- false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6.0000000000000008p-1076, false, +- false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- 0x4p-1076, false, +- 0x8p-1076, false, +- false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6p-1076, false, +- 0x6.0000000000000000000000000004p-1076, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6.0000000000000008p-1076, false, false, ++ false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6.0000000000000008p-1076, false, false, ++ false, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ 0x4p-1076, false, true, ++ 0x8p-1076, false, true, ++ false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6p-1076, false, false, ++ 0x6.0000000000000000000000000004p-1076, false, false), + TEST ("-7.410984687618698162648531893023320585475897039214871466383" + "785237510132609053131277979497545424539885696948470431685765" + "963899850655339096945981621940161728171894510697854671067917" +@@ -3947,35 +3947,35 @@ static const struct test tests[] = { + "433756084600398490497214911746308553955635418864151316847843" + "631308023759629577398300170898437499e-324", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x5.fffffffffffffff8p-1076, false, +- -0x5.fffffffffffffff8p-1076, false, +- false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x5.fffffffffffffff8p-1076, false, +- -0x5.fffffffffffffff8p-1076, false, +- false, +- -0x8p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x5.fffffffffffffffffffffffffffcp-1076, false, +- -0x5.fffffffffffffffffffffffffffcp-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x5.fffffffffffffff8p-1076, false, false, ++ -0x5.fffffffffffffff8p-1076, false, false, ++ false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x5.fffffffffffffff8p-1076, false, false, ++ -0x5.fffffffffffffff8p-1076, false, false, ++ false, ++ -0x8p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x5.fffffffffffffffffffffffffffcp-1076, false, false, ++ -0x5.fffffffffffffffffffffffffffcp-1076, false, false), + TEST ("-7.410984687618698162648531893023320585475897039214871466383" + "785237510132609053131277979497545424539885696948470431685765" + "963899850655339096945981621940161728171894510697854671067917" +@@ -3990,35 +3990,35 @@ static const struct test tests[] = { + "433756084600398490497214911746308553955635418864151316847843" + "6313080237596295773983001708984375e-324", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-1076, false, +- -0x8p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- true, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- true, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- false, +- -0x8p-1076, false, +- -0x8p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- true, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-1076, false, true, ++ -0x8p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ true, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ true, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ false, ++ -0x8p-1076, false, true, ++ -0x8p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ true, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false), + TEST ("-7.410984687618698162648531893023320585475897039214871466383" + "785237510132609053131277979497545424539885696948470431685765" + "963899850655339096945981621940161728171894510697854671067917" +@@ -4033,35 +4033,35 @@ static const struct test tests[] = { + "433756084600398490497214911746308553955635418864151316847843" + "631308023759629577398300170898437501e-324", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-1076, false, +- -0x8p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- false, +- -0x6.0000000000000008p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- false, +- -0x6.0000000000000008p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- false, +- -0x8p-1076, false, +- -0x8p-1076, false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- false, +- -0x6.0000000000000000000000000004p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false, +- -0x6p-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-1076, false, true, ++ -0x8p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ false, ++ -0x6.0000000000000008p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ false, ++ -0x6.0000000000000008p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ false, ++ -0x8p-1076, false, true, ++ -0x8p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ false, ++ -0x6.0000000000000000000000000004p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false, ++ -0x6p-1076, false, false), + TEST ("5.4677992978237119037926089004291297245985762235403450155814" + "707305425575329500966052143410629387408077958710210208052966" + "529504784489330482549602621133847135082257338717668975178538" +@@ -4255,35 +4255,35 @@ static const struct test tests[] = { + "866268925981702690270202829595794350800918257913991744455922" + "683343374046671669930219650268554687499e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x8p-16448, false, +- 0x8p-16448, false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- false, +- 0x8p-16448, false, +- 0xcp-16448, false, +- 0x8p-16448, false, +- 0xcp-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0xb.fffffffffffcp-16448, false, +- 0xcp-16448, false, +- 0xb.fffffffffffcp-16448, false, +- 0xcp-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0x8p-16448, false, true, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0xcp-16448, false, true, ++ 0x8p-16448, false, true, ++ 0xcp-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0xb.fffffffffffcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xb.fffffffffffcp-16448, false, true, ++ 0xcp-16448, false, true), + TEST ("5.4677992978237119037926089004291297245985762235403450155814" + "707305425575329500966052143410629387408077958710210208052966" + "529504784489330482549602621133847135082257338717668975178538" +@@ -4477,35 +4477,35 @@ static const struct test tests[] = { + "866268925981702690270202829595794350800918257913991744455922" + "6833433740466716699302196502685546875e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- true, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ true, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false), + TEST ("5.4677992978237119037926089004291297245985762235403450155814" + "707305425575329500966052143410629387408077958710210208052966" + "529504784489330482549602621133847135082257338717668975178538" +@@ -4699,35 +4699,35 @@ static const struct test tests[] = { + "866268925981702690270202829595794350800918257913991744455922" + "683343374046671669930219650268554687501e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0x1p-16444, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xc.000000000004p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ false, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0x1p-16444, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xc.000000000004p-16448, false, true), + TEST ("-5.467799297823711903792608900429129724598576223540345015581" + "470730542557532950096605214341062938740807795871021020805296" + "652950478448933048254960262113384713508225733871766897517853" +@@ -4921,35 +4921,35 @@ static const struct test tests[] = { + "386626892598170269027020282959579435080091825791399174445592" + "2683343374046671669930219650268554687499e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x1p-16444, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xb.fffffffffffcp-16448, false, +- -0xb.fffffffffffcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ false, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xb.fffffffffffcp-16448, false, true, ++ -0xb.fffffffffffcp-16448, false, true), + TEST ("-5.467799297823711903792608900429129724598576223540345015581" + "470730542557532950096605214341062938740807795871021020805296" + "652950478448933048254960262113384713508225733871766897517853" +@@ -5143,35 +5143,35 @@ static const struct test tests[] = { + "386626892598170269027020282959579435080091825791399174445592" + "26833433740466716699302196502685546875e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x1p-16444, false, +- -0x1p-16444, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- true, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0x1p-16444, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ true, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false), + TEST ("-5.467799297823711903792608900429129724598576223540345015581" + "470730542557532950096605214341062938740807795871021020805296" + "652950478448933048254960262113384713508225733871766897517853" +@@ -5365,35 +5365,35 @@ static const struct test tests[] = { + "386626892598170269027020282959579435080091825791399174445592" + "2683343374046671669930219650268554687501e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x1p-16444, false, +- -0x1p-16444, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- false, +- -0x1p-16444, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0xc.000000000004p-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0x1p-16444, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0xc.000000000004p-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true), + TEST ("5.4677992978237119037926089004291297245985762235403450155814" + "707305425575329500966052143410629387408077958710210208052966" + "529504784489330482549602621133847135082257338717668975178538" +@@ -5587,35 +5587,35 @@ static const struct test tests[] = { + "866268925981702690270202829595794350800918257913991744455922" + "683343374046671669930219650268554687499e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x8p-16448, false, +- 0x8p-16448, false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- false, +- 0x8p-16448, false, +- 0xcp-16448, false, +- 0x8p-16448, false, +- 0xcp-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0xb.fffffffffffcp-16448, false, +- 0xcp-16448, false, +- 0xb.fffffffffffcp-16448, false, +- 0xcp-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0x8p-16448, false, true, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0xcp-16448, false, true, ++ 0x8p-16448, false, true, ++ 0xcp-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0xb.fffffffffffcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xb.fffffffffffcp-16448, false, true, ++ 0xcp-16448, false, true), + TEST ("5.4677992978237119037926089004291297245985762235403450155814" + "707305425575329500966052143410629387408077958710210208052966" + "529504784489330482549602621133847135082257338717668975178538" +@@ -5809,35 +5809,35 @@ static const struct test tests[] = { + "866268925981702690270202829595794350800918257913991744455922" + "6833433740466716699302196502685546875e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- true, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ true, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false, ++ 0xcp-16448, false, false), + TEST ("5.4677992978237119037926089004291297245985762235403450155814" + "707305425575329500966052143410629387408077958710210208052966" + "529504784489330482549602621133847135082257338717668975178538" +@@ -6031,35 +6031,35 @@ static const struct test tests[] = { + "866268925981702690270202829595794350800918257913991744455922" + "683343374046671669930219650268554687501e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- 0x8p-16448, false, +- 0x1p-16444, false, +- false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0x1p-16444, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xcp-16448, false, +- 0xc.000000000004p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ 0x8p-16448, false, true, ++ 0x1p-16444, false, true, ++ false, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0x1p-16444, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xcp-16448, false, true, ++ 0xc.000000000004p-16448, false, true), + TEST ("-5.467799297823711903792608900429129724598576223540345015581" + "470730542557532950096605214341062938740807795871021020805296" + "652950478448933048254960262113384713508225733871766897517853" +@@ -6253,35 +6253,35 @@ static const struct test tests[] = { + "386626892598170269027020282959579435080091825791399174445592" + "2683343374046671669930219650268554687499e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x1p-16444, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xb.fffffffffffcp-16448, false, +- -0xb.fffffffffffcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ false, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xb.fffffffffffcp-16448, false, true, ++ -0xb.fffffffffffcp-16448, false, true), + TEST ("-5.467799297823711903792608900429129724598576223540345015581" + "470730542557532950096605214341062938740807795871021020805296" + "652950478448933048254960262113384713508225733871766897517853" +@@ -6475,35 +6475,35 @@ static const struct test tests[] = { + "386626892598170269027020282959579435080091825791399174445592" + "26833433740466716699302196502685546875e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x1p-16444, false, +- -0x1p-16444, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- true, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0x1p-16444, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ true, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false, ++ -0xcp-16448, false, false), + TEST ("-5.467799297823711903792608900429129724598576223540345015581" + "470730542557532950096605214341062938740807795871021020805296" + "652950478448933048254960262113384713508225733871766897517853" +@@ -6697,630 +6697,630 @@ static const struct test tests[] = { + "386626892598170269027020282959579435080091825791399174445592" + "2683343374046671669930219650268554687501e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x1p-16444, false, +- -0x1p-16444, false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- false, +- -0x1p-16444, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0xc.000000000004p-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false, +- -0xcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0x1p-16444, false, true, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ false, ++ -0x1p-16444, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0xc.000000000004p-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true, ++ -0xcp-16448, false, true), + TEST ("-0x0.7p-149", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- true, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- true, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- true, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- true, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false, +- -0x3.8p-152, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ true, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ true, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ true, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ true, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false, ++ -0x3.8p-152, false, false), + TEST ("-0x0.7p-1074", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- true, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false, +- -0x1.cp-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ true, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false, ++ -0x1.cp-1076, false, false), + TEST ("-0x0.7p-16445", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x3.8p-16448, false, +- -0x3.8p-16448, false, +- -0x3.8p-16448, false, +- -0x3.8p-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x3.8p-16448, false, false, ++ -0x3.8p-16448, false, false, ++ -0x3.8p-16448, false, false, ++ -0x3.8p-16448, false, false), + TEST ("-0x0.7p-16494", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16496, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16496, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true), + TEST ("0x1p-150", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false), + TEST ("0x1p-1075", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- true, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ true, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false), + TEST ("0x1p-16446", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- true, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ true, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false), + TEST ("0x1p-16495", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16496, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16496, false, true), + TEST ("-0x1p-150", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false), + TEST ("-0x1p-1075", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- true, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ true, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false), + TEST ("-0x1p-16446", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false), + TEST ("-0x1p-16495", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16496, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16496, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true), + TEST (".70064923216240853546186479164495807e-45", + false, +- 0x0p+0, false, +- 0x8p-152, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000004p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000000008p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000000008p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.00000000000000000000000002p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000000000000000000004p-152, false), ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000004p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000000008p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000000008p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.00000000000000000000000002p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000000000000000000004p-152, false, false), + TEST ("7.0064923216240853546186479164495806564013097093825788587853" + "4141944895541342930300743319094181060791015624e-46", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x3.ffffffffffffep-152, false, +- 0x4p-152, false, +- 0x3.ffffffffffffep-152, false, +- 0x4p-152, false, +- false, +- 0x3.fffffffffffffffcp-152, false, +- 0x4p-152, false, +- 0x3.fffffffffffffffcp-152, false, +- 0x4p-152, false, +- false, +- 0x3.fffffffffffffffcp-152, false, +- 0x4p-152, false, +- 0x3.fffffffffffffffcp-152, false, +- 0x4p-152, false, +- false, +- 0x3.ffffffffffffffffffffffffffp-152, false, +- 0x4p-152, false, +- 0x3.ffffffffffffffffffffffffffp-152, false, +- 0x4p-152, false, +- false, +- 0x3.fffffffffffffffffffffffffffep-152, false, +- 0x4p-152, false, +- 0x3.fffffffffffffffffffffffffffep-152, false, +- 0x4p-152, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x3.ffffffffffffep-152, false, false, ++ 0x4p-152, false, false, ++ 0x3.ffffffffffffep-152, false, false, ++ 0x4p-152, false, false, ++ false, ++ 0x3.fffffffffffffffcp-152, false, false, ++ 0x4p-152, false, false, ++ 0x3.fffffffffffffffcp-152, false, false, ++ 0x4p-152, false, false, ++ false, ++ 0x3.fffffffffffffffcp-152, false, false, ++ 0x4p-152, false, false, ++ 0x3.fffffffffffffffcp-152, false, false, ++ 0x4p-152, false, false, ++ false, ++ 0x3.ffffffffffffffffffffffffffp-152, false, false, ++ 0x4p-152, false, false, ++ 0x3.ffffffffffffffffffffffffffp-152, false, false, ++ 0x4p-152, false, false, ++ false, ++ 0x3.fffffffffffffffffffffffffffep-152, false, false, ++ 0x4p-152, false, false, ++ 0x3.fffffffffffffffffffffffffffep-152, false, false, ++ 0x4p-152, false, false), + TEST ("7.0064923216240853546186479164495806564013097093825788587853" + "4141944895541342930300743319094181060791015625e-46", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- true, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ true, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false), + TEST ("7.0064923216240853546186479164495806564013097093825788587853" + "4141944895541342930300743319094181060791015626e-46", + false, +- 0x0p+0, false, +- 0x8p-152, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000004p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000000008p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000000008p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.00000000000000000000000002p-152, false, +- false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4p-152, false, +- 0x4.0000000000000000000000000004p-152, false), ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000004p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000000008p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000000008p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.00000000000000000000000002p-152, false, false, ++ false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4p-152, false, false, ++ 0x4.0000000000000000000000000004p-152, false, false), + TEST ("-7.006492321624085354618647916449580656401309709382578858785" + "34141944895541342930300743319094181060791015624e-46", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x3.ffffffffffffep-152, false, +- -0x3.ffffffffffffep-152, false, +- false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x3.fffffffffffffffcp-152, false, +- -0x3.fffffffffffffffcp-152, false, +- false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x3.fffffffffffffffcp-152, false, +- -0x3.fffffffffffffffcp-152, false, +- false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x3.ffffffffffffffffffffffffffp-152, false, +- -0x3.ffffffffffffffffffffffffffp-152, false, +- false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x3.fffffffffffffffffffffffffffep-152, false, +- -0x3.fffffffffffffffffffffffffffep-152, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x3.ffffffffffffep-152, false, false, ++ -0x3.ffffffffffffep-152, false, false, ++ false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x3.fffffffffffffffcp-152, false, false, ++ -0x3.fffffffffffffffcp-152, false, false, ++ false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x3.fffffffffffffffcp-152, false, false, ++ -0x3.fffffffffffffffcp-152, false, false, ++ false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x3.ffffffffffffffffffffffffffp-152, false, false, ++ -0x3.ffffffffffffffffffffffffffp-152, false, false, ++ false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x3.fffffffffffffffffffffffffffep-152, false, false, ++ -0x3.fffffffffffffffffffffffffffep-152, false, false), + TEST ("-7.006492321624085354618647916449580656401309709382578858785" + "34141944895541342930300743319094181060791015625e-46", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- true, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ true, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false), + TEST ("-7.006492321624085354618647916449580656401309709382578858785" + "34141944895541342930300743319094181060791015626e-46", + false, +- -0x8p-152, false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4.0000000000004p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- false, +- -0x4.0000000000000008p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- false, +- -0x4.0000000000000008p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- false, +- -0x4.00000000000000000000000002p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- false, +- -0x4.0000000000000000000000000004p-152, false, +- -0x4p-152, false, +- -0x4p-152, false, +- -0x4p-152, false), ++ -0x8p-152, false, true, ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4.0000000000004p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ false, ++ -0x4.0000000000000008p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ false, ++ -0x4.0000000000000008p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ false, ++ -0x4.00000000000000000000000002p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ false, ++ -0x4.0000000000000000000000000004p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false, ++ -0x4p-152, false, false), + TEST ("2.4703282292062327208828439643411068618252990130716238221279" + "284125033775363510437593264991818081799618989828234772285886" + "546332835517796989819938739800539093906315035659515570226392" +@@ -7335,35 +7335,35 @@ static const struct test tests[] = { + "779186948667994968324049705821028513185451396213837722826145" + "437693412532098591327667236328124e-324", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x1.fffffffffffffffep-1076, false, +- 0x2p-1076, false, +- 0x1.fffffffffffffffep-1076, false, +- 0x2p-1076, false, +- false, +- 0x1.fffffffffffffffep-1076, false, +- 0x2p-1076, false, +- 0x1.fffffffffffffffep-1076, false, +- 0x2p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x1.ffffffffffffffffffffffffffffp-1076, false, +- 0x2p-1076, false, +- 0x1.ffffffffffffffffffffffffffffp-1076, false, +- 0x2p-1076, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.fffffffffffffffep-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x1.fffffffffffffffep-1076, false, false, ++ 0x2p-1076, false, false, ++ false, ++ 0x1.fffffffffffffffep-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x1.fffffffffffffffep-1076, false, false, ++ 0x2p-1076, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.ffffffffffffffffffffffffffffp-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x1.ffffffffffffffffffffffffffffp-1076, false, false, ++ 0x2p-1076, false, false), + TEST ("2.4703282292062327208828439643411068618252990130716238221279" + "284125033775363510437593264991818081799618989828234772285886" + "546332835517796989819938739800539093906315035659515570226392" +@@ -7378,35 +7378,35 @@ static const struct test tests[] = { + "779186948667994968324049705821028513185451396213837722826145" + "437693412532098591327667236328125e-324", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- true, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ true, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false), + TEST ("2.4703282292062327208828439643411068618252990130716238221279" + "284125033775363510437593264991818081799618989828234772285886" + "546332835517796989819938739800539093906315035659515570226392" +@@ -7421,35 +7421,35 @@ static const struct test tests[] = { + "779186948667994968324049705821028513185451396213837722826145" + "437693412532098591327667236328126e-324", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x4p-1076, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2.0000000000000004p-1076, false, +- false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2.0000000000000004p-1076, false, +- false, +- 0x0p+0, false, +- 0x4p-1076, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2p-1076, false, +- 0x2.0000000000000000000000000002p-1076, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2.0000000000000004p-1076, false, false, ++ false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2.0000000000000004p-1076, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2p-1076, false, false, ++ 0x2.0000000000000000000000000002p-1076, false, false), + TEST ("-2.470328229206232720882843964341106861825299013071623822127" + "928412503377536351043759326499181808179961898982823477228588" + "654633283551779698981993873980053909390631503565951557022639" +@@ -7464,35 +7464,35 @@ static const struct test tests[] = { + "477918694866799496832404970582102851318545139621383772282614" + "5437693412532098591327667236328124e-324", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x1.fffffffffffffffep-1076, false, +- -0x1.fffffffffffffffep-1076, false, +- false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x1.fffffffffffffffep-1076, false, +- -0x1.fffffffffffffffep-1076, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x1.ffffffffffffffffffffffffffffp-1076, false, +- -0x1.ffffffffffffffffffffffffffffp-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x1.fffffffffffffffep-1076, false, false, ++ -0x1.fffffffffffffffep-1076, false, false, ++ false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x1.fffffffffffffffep-1076, false, false, ++ -0x1.fffffffffffffffep-1076, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x1.ffffffffffffffffffffffffffffp-1076, false, false, ++ -0x1.ffffffffffffffffffffffffffffp-1076, false, false), + TEST ("-2.470328229206232720882843964341106861825299013071623822127" + "928412503377536351043759326499181808179961898982823477228588" + "654633283551779698981993873980053909390631503565951557022639" +@@ -7507,35 +7507,35 @@ static const struct test tests[] = { + "477918694866799496832404970582102851318545139621383772282614" + "5437693412532098591327667236328125e-324", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- true, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ true, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false), + TEST ("-2.470328229206232720882843964341106861825299013071623822127" + "928412503377536351043759326499181808179961898982823477228588" + "654633283551779698981993873980053909390631503565951557022639" +@@ -7550,35 +7550,35 @@ static const struct test tests[] = { + "477918694866799496832404970582102851318545139621383772282614" + "5437693412532098591327667236328126e-324", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x2.0000000000000004p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- false, +- -0x2.0000000000000004p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- false, +- -0x4p-1076, false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x2.0000000000000000000000000002p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false, +- -0x2p-1076, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x2.0000000000000004p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ false, ++ -0x2.0000000000000004p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x2.0000000000000000000000000002p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false, ++ -0x2p-1076, false, false), + TEST ("1.8225997659412373012642029668097099081995254078467816718604" + "902435141858443166988684047803543129136025986236736736017655" + "509834928163110160849867540377949045027419112905889658392846" +@@ -7772,35 +7772,35 @@ static const struct test tests[] = { + "622089641993900896756734276531931450266972752637997248151974" + "2277811246822238899767398834228515624e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x4p-16448, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x3.fffffffffffcp-16448, false, +- 0x4p-16448, false, +- 0x3.fffffffffffcp-16448, false, +- 0x4p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x3.fffffffffffcp-16448, false, true, ++ 0x4p-16448, false, true, ++ 0x3.fffffffffffcp-16448, false, true, ++ 0x4p-16448, false, true), + TEST ("1.8225997659412373012642029668097099081995254078467816718604" + "902435141858443166988684047803543129136025986236736736017655" + "509834928163110160849867540377949045027419112905889658392846" +@@ -7994,35 +7994,35 @@ static const struct test tests[] = { + "622089641993900896756734276531931450266972752637997248151974" + "2277811246822238899767398834228515625e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- true, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ true, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false, ++ 0x4p-16448, false, false), + TEST ("1.8225997659412373012642029668097099081995254078467816718604" + "902435141858443166988684047803543129136025986236736736017655" + "509834928163110160849867540377949045027419112905889658392846" +@@ -8216,35 +8216,35 @@ static const struct test tests[] = { + "622089641993900896756734276531931450266972752637997248151974" + "2277811246822238899767398834228515626e-4951", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x8p-16448, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4p-16448, false, +- 0x4.000000000004p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x4p-16448, false, true, ++ 0x4p-16448, false, true, ++ 0x4p-16448, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x4p-16448, false, true, ++ 0x4p-16448, false, true, ++ 0x4p-16448, false, true, ++ 0x4.000000000004p-16448, false, true), + TEST ("-1.822599765941237301264202966809709908199525407846781671860" + "490243514185844316698868404780354312913602598623673673601765" + "550983492816311016084986754037794904502741911290588965839284" +@@ -8438,35 +8438,35 @@ static const struct test tests[] = { + "462208964199390089675673427653193145026697275263799724815197" + "42277811246822238899767398834228515624e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x3.fffffffffffcp-16448, false, +- -0x3.fffffffffffcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x3.fffffffffffcp-16448, false, true, ++ -0x3.fffffffffffcp-16448, false, true), + TEST ("-1.822599765941237301264202966809709908199525407846781671860" + "490243514185844316698868404780354312913602598623673673601765" + "550983492816311016084986754037794904502741911290588965839284" +@@ -8660,35 +8660,35 @@ static const struct test tests[] = { + "462208964199390089675673427653193145026697275263799724815197" + "42277811246822238899767398834228515625e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false, ++ -0x4p-16448, false, false), + TEST ("-1.822599765941237301264202966809709908199525407846781671860" + "490243514185844316698868404780354312913602598623673673601765" + "550983492816311016084986754037794904502741911290588965839284" +@@ -8882,35 +8882,35 @@ static const struct test tests[] = { + "462208964199390089675673427653193145026697275263799724815197" + "42277811246822238899767398834228515626e-4951", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4.000000000004p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x4p-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4.000000000004p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true), + TEST ("9.1129988297061865063210148340485495409976270392339083593024" + "512175709292215834943420239017715645680129931183683680088277" + "549174640815550804249337701889745225137095564529448291964230" +@@ -9104,35 +9104,35 @@ static const struct test tests[] = { + "110448209969504483783671382659657251334863763189986240759871" + "1389056234111194498836994171142578124e-4952", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x1.fffffffffffcp-16448, false, +- 0x2p-16448, false, +- 0x1.fffffffffffcp-16448, false, +- 0x2p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.fffffffffffcp-16448, false, true, ++ 0x2p-16448, false, true, ++ 0x1.fffffffffffcp-16448, false, true, ++ 0x2p-16448, false, true), + TEST ("9.1129988297061865063210148340485495409976270392339083593024" + "512175709292215834943420239017715645680129931183683680088277" + "549174640815550804249337701889745225137095564529448291964230" +@@ -9326,35 +9326,35 @@ static const struct test tests[] = { + "110448209969504483783671382659657251334863763189986240759871" + "1389056234111194498836994171142578125e-4952", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- true, +- 0x2p-16448, false, +- 0x2p-16448, false, +- 0x2p-16448, false, +- 0x2p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x2p-16448, false, false, ++ 0x2p-16448, false, false, ++ 0x2p-16448, false, false, ++ 0x2p-16448, false, false), + TEST ("9.1129988297061865063210148340485495409976270392339083593024" + "512175709292215834943420239017715645680129931183683680088277" + "549174640815550804249337701889745225137095564529448291964230" +@@ -9548,35 +9548,35 @@ static const struct test tests[] = { + "110448209969504483783671382659657251334863763189986240759871" + "1389056234111194498836994171142578126e-4952", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x4p-16448, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x2p-16448, false, +- 0x2p-16448, false, +- 0x2p-16448, false, +- 0x2.000000000004p-16448, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x2p-16448, false, true, ++ 0x2p-16448, false, true, ++ 0x2p-16448, false, true, ++ 0x2.000000000004p-16448, false, true), + TEST ("-9.112998829706186506321014834048549540997627039233908359302" + "451217570929221583494342023901771564568012993118368368008827" + "754917464081555080424933770188974522513709556452944829196423" +@@ -9770,35 +9770,35 @@ static const struct test tests[] = { + "311044820996950448378367138265965725133486376318998624075987" + "11389056234111194498836994171142578124e-4952", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x2p-16448, false, +- -0x2p-16448, false, +- -0x1.fffffffffffcp-16448, false, +- -0x1.fffffffffffcp-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x2p-16448, false, true, ++ -0x2p-16448, false, true, ++ -0x1.fffffffffffcp-16448, false, true, ++ -0x1.fffffffffffcp-16448, false, true), + TEST ("-9.112998829706186506321014834048549540997627039233908359302" + "451217570929221583494342023901771564568012993118368368008827" + "754917464081555080424933770188974522513709556452944829196423" +@@ -9992,35 +9992,35 @@ static const struct test tests[] = { + "311044820996950448378367138265965725133486376318998624075987" + "11389056234111194498836994171142578125e-4952", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- true, +- -0x2p-16448, false, +- -0x2p-16448, false, +- -0x2p-16448, false, +- -0x2p-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ true, ++ -0x2p-16448, false, false, ++ -0x2p-16448, false, false, ++ -0x2p-16448, false, false, ++ -0x2p-16448, false, false), + TEST ("-9.112998829706186506321014834048549540997627039233908359302" + "451217570929221583494342023901771564568012993118368368008827" + "754917464081555080424933770188974522513709556452944829196423" +@@ -10214,35 +10214,35 @@ static const struct test tests[] = { + "311044820996950448378367138265965725133486376318998624075987" + "11389056234111194498836994171142578126e-4952", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x2.000000000004p-16448, false, +- -0x2p-16448, false, +- -0x2p-16448, false, +- -0x2p-16448, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x2.000000000004p-16448, false, true, ++ -0x2p-16448, false, true, ++ -0x2p-16448, false, true, ++ -0x2p-16448, false, true), + TEST ("3.2375875597190125554622194791138232762497846690173405048449" + "421945985197700620596855088357456383249701279390707384240598" + "382936099431912710233425550359863089915213963553756674672083" +@@ -10437,35 +10437,35 @@ static const struct test tests[] = { + "182358152808745703724362178773168996492870519432472065091133" + "11767578124e-4966", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16496, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16496, false, true), + TEST ("3.2375875597190125554622194791138232762497846690173405048449" + "421945985197700620596855088357456383249701279390707384240598" + "382936099431912710233425550359863089915213963553756674672083" +@@ -10660,35 +10660,35 @@ static const struct test tests[] = { + "182358152808745703724362178773168996492870519432472065091133" + "11767578125e-4966", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16496, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16496, false, true), + TEST ("3.2375875597190125554622194791138232762497846690173405048449" + "421945985197700620596855088357456383249701279390707384240598" + "382936099431912710233425550359863089915213963553756674672083" +@@ -10883,35 +10883,35 @@ static const struct test tests[] = { + "182358152808745703724362178773168996492870519432472065091133" + "11767578126e-4966", + false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-152, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x8p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-16448, false, +- false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x0p+0, false, +- 0x4p-1076, false, +- false, +- 0x0p+0, false, +- 0x4p-16496, false, +- 0x0p+0, false, +- 0x4p-16496, false), ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16448, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x4p-16496, false, true, ++ 0x0p+0, false, true, ++ 0x4p-16496, false, true), + TEST ("-3.237587559719012555462219479113823276249784669017340504844" + "942194598519770062059685508835745638324970127939070738424059" + "838293609943191271023342555035986308991521396355375667467208" +@@ -11106,35 +11106,35 @@ static const struct test tests[] = { + "218235815280874570372436217877316899649287051943247206509113" + "311767578124e-4966", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16496, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16496, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true), + TEST ("-3.237587559719012555462219479113823276249784669017340504844" + "942194598519770062059685508835745638324970127939070738424059" + "838293609943191271023342555035986308991521396355375667467208" +@@ -11329,35 +11329,35 @@ static const struct test tests[] = { + "218235815280874570372436217877316899649287051943247206509113" + "311767578125e-4966", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16496, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16496, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true), + TEST ("-3.237587559719012555462219479113823276249784669017340504844" + "942194598519770062059685508835745638324970127939070738424059" + "838293609943191271023342555035986308991521396355375667467208" +@@ -11552,66 +11552,66 @@ static const struct test tests[] = { + "218235815280874570372436217877316899649287051943247206509113" + "311767578126e-4966", + false, +- -0x8p-152, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x8p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16448, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-1076, false, +- -0x0p+0, false, +- -0x0p+0, false, +- -0x0p+0, false, +- false, +- -0x4p-16496, false, +- -0x4p-16496, false, +- -0x0p+0, false, +- -0x0p+0, false), ++ -0x8p-152, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x8p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16448, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-1076, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true, ++ false, ++ -0x4p-16496, false, true, ++ -0x4p-16496, false, true, ++ -0x0p+0, false, true, ++ -0x0p+0, false, true), + TEST ("340282366920938463463374607431768211455", + false, +- 0xf.fffffp+124, false, +- INF, true, +- 0xf.fffffp+124, false, +- INF, true, +- false, +- 0xf.ffffffffffff8p+124, false, +- 0x1p+128, false, +- 0xf.ffffffffffff8p+124, false, +- 0x1p+128, false, +- false, +- 0xf.fffffffffffffffp+124, false, +- 0x1p+128, false, +- 0xf.fffffffffffffffp+124, false, +- 0x1p+128, false, +- false, +- 0xf.fffffffffffffffp+124, false, +- 0x1p+128, false, +- 0xf.fffffffffffffffp+124, false, +- 0x1p+128, false, +- false, +- 0xf.fffffffffffffffffffffffffcp+124, false, +- 0x1p+128, false, +- 0xf.fffffffffffffffffffffffffcp+124, false, +- 0x1p+128, false, +- false, +- 0xf.fffffffffffffffffffffffffff8p+124, false, +- 0x1p+128, false, +- 0xf.fffffffffffffffffffffffffff8p+124, false, +- 0x1p+128, false), ++ 0xf.fffffp+124, false, false, ++ INF, true, false, ++ 0xf.fffffp+124, false, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+124, false, false, ++ 0x1p+128, false, false, ++ 0xf.ffffffffffff8p+124, false, false, ++ 0x1p+128, false, false, ++ false, ++ 0xf.fffffffffffffffp+124, false, false, ++ 0x1p+128, false, false, ++ 0xf.fffffffffffffffp+124, false, false, ++ 0x1p+128, false, false, ++ false, ++ 0xf.fffffffffffffffp+124, false, false, ++ 0x1p+128, false, false, ++ 0xf.fffffffffffffffp+124, false, false, ++ 0x1p+128, false, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+124, false, false, ++ 0x1p+128, false, false, ++ 0xf.fffffffffffffffffffffffffcp+124, false, false, ++ 0x1p+128, false, false, ++ false, ++ 0xf.fffffffffffffffffffffffffff8p+124, false, false, ++ 0x1p+128, false, false, ++ 0xf.fffffffffffffffffffffffffff8p+124, false, false, ++ 0x1p+128, false, false), + TEST ("179769313486231590772930519078902473361797697894230657273430" + "081157732675805500963132708477322407536021120113879871393357" + "658789768814416622492847430639474124377767893424865485276302" +@@ -11619,35 +11619,35 @@ static const struct test tests[] = { + "540827237163350510684586298239947245938479716304835356329624" + "224137215", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, false, +- INF, true, +- 0xf.ffffffffffff8p+1020, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+1020, false, +- 0x1p+1024, false, +- 0xf.fffffffffffffffp+1020, false, +- 0x1p+1024, false, +- false, +- 0xf.fffffffffffffffp+1020, false, +- 0x1p+1024, false, +- 0xf.fffffffffffffffp+1020, false, +- 0x1p+1024, false, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffff8p+1020, false, +- 0x1p+1024, false, +- 0xf.fffffffffffffffffffffffffff8p+1020, false, +- 0x1p+1024, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+1020, false, false, ++ 0x1p+1024, false, false, ++ 0xf.fffffffffffffffp+1020, false, false, ++ 0x1p+1024, false, false, ++ false, ++ 0xf.fffffffffffffffp+1020, false, false, ++ 0x1p+1024, false, false, ++ 0xf.fffffffffffffffp+1020, false, false, ++ 0x1p+1024, false, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffff8p+1020, false, false, ++ 0x1p+1024, false, false, ++ 0xf.fffffffffffffffffffffffffff8p+1020, false, false, ++ 0x1p+1024, false, false), + TEST ("118973149535723176508575932662800713076344468709651023747267" + "482123326135818048368690448859547261203991511543748483930925" + "889766738130868742627452469834156500608087163436600489752214" +@@ -11732,66 +11732,66 @@ static const struct test tests[] = { + "047398248889922809181821393428829567971736994315246044702729" + "0669964066815", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- 0xf.fffffffffffffffp+16380, false, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- INF, true, +- 0xf.fffffffffffffffffffffffffff8p+16380, false, +- INF, true), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffp+16380, false, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ INF, true, false), + TEST ("-340282366920938463463374607431768211455", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, false, +- -0xf.fffffp+124, false, +- false, +- -0x1p+128, false, +- -0x1p+128, false, +- -0xf.ffffffffffff8p+124, false, +- -0xf.ffffffffffff8p+124, false, +- false, +- -0x1p+128, false, +- -0x1p+128, false, +- -0xf.fffffffffffffffp+124, false, +- -0xf.fffffffffffffffp+124, false, +- false, +- -0x1p+128, false, +- -0x1p+128, false, +- -0xf.fffffffffffffffp+124, false, +- -0xf.fffffffffffffffp+124, false, +- false, +- -0x1p+128, false, +- -0x1p+128, false, +- -0xf.fffffffffffffffffffffffffcp+124, false, +- -0xf.fffffffffffffffffffffffffcp+124, false, +- false, +- -0x1p+128, false, +- -0x1p+128, false, +- -0xf.fffffffffffffffffffffffffff8p+124, false, +- -0xf.fffffffffffffffffffffffffff8p+124, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, false, false, ++ -0xf.fffffp+124, false, false, ++ false, ++ -0x1p+128, false, false, ++ -0x1p+128, false, false, ++ -0xf.ffffffffffff8p+124, false, false, ++ -0xf.ffffffffffff8p+124, false, false, ++ false, ++ -0x1p+128, false, false, ++ -0x1p+128, false, false, ++ -0xf.fffffffffffffffp+124, false, false, ++ -0xf.fffffffffffffffp+124, false, false, ++ false, ++ -0x1p+128, false, false, ++ -0x1p+128, false, false, ++ -0xf.fffffffffffffffp+124, false, false, ++ -0xf.fffffffffffffffp+124, false, false, ++ false, ++ -0x1p+128, false, false, ++ -0x1p+128, false, false, ++ -0xf.fffffffffffffffffffffffffcp+124, false, false, ++ -0xf.fffffffffffffffffffffffffcp+124, false, false, ++ false, ++ -0x1p+128, false, false, ++ -0x1p+128, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+124, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+124, false, false), + TEST ("-17976931348623159077293051907890247336179769789423065727343" + "008115773267580550096313270847732240753602112011387987139335" + "765878976881441662249284743063947412437776789342486548527630" +@@ -11799,35 +11799,35 @@ static const struct test tests[] = { + "054082723716335051068458629823994724593847971630483535632962" + "4224137215", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, false, +- -0xf.ffffffffffff8p+1020, false, +- false, +- -0x1p+1024, false, +- -0x1p+1024, false, +- -0xf.fffffffffffffffp+1020, false, +- -0xf.fffffffffffffffp+1020, false, +- false, +- -0x1p+1024, false, +- -0x1p+1024, false, +- -0xf.fffffffffffffffp+1020, false, +- -0xf.fffffffffffffffp+1020, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- false, +- -0x1p+1024, false, +- -0x1p+1024, false, +- -0xf.fffffffffffffffffffffffffff8p+1020, false, +- -0xf.fffffffffffffffffffffffffff8p+1020, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ -0xf.ffffffffffff8p+1020, false, false, ++ false, ++ -0x1p+1024, false, false, ++ -0x1p+1024, false, false, ++ -0xf.fffffffffffffffp+1020, false, false, ++ -0xf.fffffffffffffffp+1020, false, false, ++ false, ++ -0x1p+1024, false, false, ++ -0x1p+1024, false, false, ++ -0xf.fffffffffffffffp+1020, false, false, ++ -0xf.fffffffffffffffp+1020, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ false, ++ -0x1p+1024, false, false, ++ -0x1p+1024, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+1020, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+1020, false, false), + TEST ("-11897314953572317650857593266280071307634446870965102374726" + "748212332613581804836869044885954726120399151154374848393092" + "588976673813086874262745246983415650060808716343660048975221" +@@ -11912,3529 +11912,3529 @@ static const struct test tests[] = { + "904739824888992280918182139342882956797173699431524604470272" + "90669964066815", + false, +- -INF, true, +- -INF, true, +- -0xf.fffffp+124, true, +- -0xf.fffffp+124, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.ffffffffffff8p+1020, true, +- -0xf.ffffffffffff8p+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffp+16380, false, +- -0xf.fffffffffffffffp+16380, false, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- -0xf.fffffffffffffffffffffffffcp+1020, true, +- false, +- -INF, true, +- -INF, true, +- -0xf.fffffffffffffffffffffffffff8p+16380, false, +- -0xf.fffffffffffffffffffffffffff8p+16380, false), ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffp+124, true, false, ++ -0xf.fffffp+124, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ -0xf.ffffffffffff8p+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ -0xf.fffffffffffffffp+16380, false, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ -0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ false, ++ -INF, true, false, ++ -INF, true, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false, ++ -0xf.fffffffffffffffffffffffffff8p+16380, false, false), + TEST ("+0x.80000000000000000000000000000001p1025", + false, +- 0xf.fffffp+124, true, +- INF, true, +- 0xf.fffffp+124, true, +- INF, true, +- false, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- 0xf.ffffffffffff8p+1020, true, +- INF, true, +- false, +- 0x1p+1024, false, +- 0x1p+1024, false, +- 0x1p+1024, false, +- 0x1.0000000000000002p+1024, false, +- false, +- 0x1p+1024, false, +- 0x1p+1024, false, +- 0x1p+1024, false, +- 0x1.0000000000000002p+1024, false, +- false, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- 0xf.fffffffffffffffffffffffffcp+1020, true, +- INF, true, +- false, +- 0x1p+1024, false, +- 0x1p+1024, false, +- 0x1p+1024, false, +- 0x1.0000000000000000000000000001p+1024, false), ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ 0xf.fffffp+124, true, false, ++ INF, true, false, ++ false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ 0xf.ffffffffffff8p+1020, true, false, ++ INF, true, false, ++ false, ++ 0x1p+1024, false, false, ++ 0x1p+1024, false, false, ++ 0x1p+1024, false, false, ++ 0x1.0000000000000002p+1024, false, false, ++ false, ++ 0x1p+1024, false, false, ++ 0x1p+1024, false, false, ++ 0x1p+1024, false, false, ++ 0x1.0000000000000002p+1024, false, false, ++ false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ 0xf.fffffffffffffffffffffffffcp+1020, true, false, ++ INF, true, false, ++ false, ++ 0x1p+1024, false, false, ++ 0x1p+1024, false, false, ++ 0x1p+1024, false, false, ++ 0x1.0000000000000000000000000001p+1024, false, false), + TEST ("1.5", + true, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- true, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- true, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- true, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- true, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- true, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false, +- 0x1.8p+0, false), ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ true, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ true, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ true, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ true, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ true, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false, ++ 0x1.8p+0, false, false), + TEST ("1.25", + true, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- true, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- true, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- true, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- true, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- true, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false, +- 0x1.4p+0, false), ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ true, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ true, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ true, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ true, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ true, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false, ++ 0x1.4p+0, false, false), + TEST ("1.125", + true, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- true, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- true, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- true, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- true, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- true, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false, +- 0x1.2p+0, false), ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ true, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ true, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ true, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ true, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ true, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false, ++ 0x1.2p+0, false, false), + TEST ("1.0625", + true, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- true, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- true, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- true, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- true, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- true, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false, +- 0x1.1p+0, false), ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ true, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ true, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ true, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ true, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ true, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false, ++ 0x1.1p+0, false, false), + TEST ("1.03125", + true, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- true, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- true, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- true, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- true, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- true, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false, +- 0x1.08p+0, false), ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ true, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ true, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ true, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ true, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ true, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false, ++ 0x1.08p+0, false, false), + TEST ("1.015625", + true, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- true, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- true, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- true, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- true, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- true, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false, +- 0x1.04p+0, false), ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ true, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ true, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ true, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ true, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ true, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false, ++ 0x1.04p+0, false, false), + TEST ("1.0078125", + true, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- true, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- true, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- true, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- true, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- true, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false, +- 0x1.02p+0, false), ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ true, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ true, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ true, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ true, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ true, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false, ++ 0x1.02p+0, false, false), + TEST ("1.00390625", + true, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- true, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- true, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- true, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- true, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- true, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false, +- 0x1.01p+0, false), ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ true, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ true, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ true, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ true, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ true, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false, ++ 0x1.01p+0, false, false), + TEST ("1.001953125", + true, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- true, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- true, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- true, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- true, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- true, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false, +- 0x1.008p+0, false), ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ true, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ true, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ true, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ true, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ true, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false, ++ 0x1.008p+0, false, false), + TEST ("1.0009765625", + true, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- true, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- true, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- true, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- true, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- true, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false, +- 0x1.004p+0, false), ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ true, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ true, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ true, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ true, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ true, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false, ++ 0x1.004p+0, false, false), + TEST ("1.00048828125", + true, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- true, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- true, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- true, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- true, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- true, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false, +- 0x1.002p+0, false), ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ true, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ true, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ true, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ true, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ true, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false, ++ 0x1.002p+0, false, false), + TEST ("1.000244140625", + true, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- true, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- true, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- true, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- true, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- true, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false, +- 0x1.001p+0, false), ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ true, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ true, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ true, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ true, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ true, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false, ++ 0x1.001p+0, false, false), + TEST ("1.0001220703125", + true, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- true, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- true, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- true, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- true, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- true, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false, +- 0x1.0008p+0, false), ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ true, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ true, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ true, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ true, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ true, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false, ++ 0x1.0008p+0, false, false), + TEST ("1.00006103515625", + true, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- true, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- true, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- true, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- true, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- true, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false, +- 0x1.0004p+0, false), ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ true, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ true, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ true, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ true, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ true, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false, ++ 0x1.0004p+0, false, false), + TEST ("1.000030517578125", + true, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- true, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- true, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- true, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- true, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- true, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false, +- 0x1.0002p+0, false), ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ true, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ true, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ true, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ true, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ true, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false, ++ 0x1.0002p+0, false, false), + TEST ("1.0000152587890625", + true, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- true, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- true, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- true, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- true, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- true, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false, +- 0x1.0001p+0, false), ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ true, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ true, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ true, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ true, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ true, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false, ++ 0x1.0001p+0, false, false), + TEST ("1.00000762939453125", + true, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- true, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- true, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- true, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- true, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- true, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false, +- 0x1.00008p+0, false), ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ true, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ true, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ true, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ true, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ true, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false, ++ 0x1.00008p+0, false, false), + TEST ("1.000003814697265625", + true, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- true, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- true, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- true, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- true, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- true, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false, +- 0x1.00004p+0, false), ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ true, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ true, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ true, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ true, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ true, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false, ++ 0x1.00004p+0, false, false), + TEST ("1.0000019073486328125", + true, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- true, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- true, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- true, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- true, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- true, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false, +- 0x1.00002p+0, false), ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ true, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ true, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ true, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ true, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ true, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false, ++ 0x1.00002p+0, false, false), + TEST ("1.00000095367431640625", + true, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- true, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- true, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- true, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- true, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- true, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false, +- 0x1.00001p+0, false), ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ true, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ true, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ true, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ true, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ true, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false, ++ 0x1.00001p+0, false, false), + TEST ("1.000000476837158203125", + true, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- true, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- true, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- true, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- true, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- true, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false, +- 0x1.000008p+0, false), ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ true, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ true, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ true, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ true, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ true, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false, ++ 0x1.000008p+0, false, false), + TEST ("1.0000000298023223876953125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- true, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- true, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- true, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- true, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false, +- 0x1.0000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ true, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ true, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ true, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ true, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false, ++ 0x1.0000008p+0, false, false), + TEST ("1.00000001490116119384765625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- true, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- true, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- true, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- true, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false, +- 0x1.0000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ true, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ true, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ true, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ true, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false, ++ 0x1.0000004p+0, false, false), + TEST ("1.000000007450580596923828125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- true, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- true, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- true, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- true, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false, +- 0x1.0000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ true, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ true, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ true, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ true, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false, ++ 0x1.0000002p+0, false, false), + TEST ("1.0000000037252902984619140625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- true, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- true, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- true, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- true, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false, +- 0x1.0000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ true, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ true, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ true, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ true, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false, ++ 0x1.0000001p+0, false, false), + TEST ("1.00000000186264514923095703125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- true, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- true, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- true, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- true, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false, +- 0x1.00000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ true, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ true, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ true, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ true, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false, ++ 0x1.00000008p+0, false, false), + TEST ("1.000000000931322574615478515625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- true, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- true, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- true, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- true, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false, +- 0x1.00000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ true, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ true, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ true, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ true, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false, ++ 0x1.00000004p+0, false, false), + TEST ("1.0000000004656612873077392578125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- true, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- true, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- true, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- true, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false, +- 0x1.00000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ true, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ true, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ true, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ true, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false, ++ 0x1.00000002p+0, false, false), + TEST ("1.00000000023283064365386962890625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- true, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- true, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- true, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- true, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false, +- 0x1.00000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ true, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ true, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ true, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ true, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false, ++ 0x1.00000001p+0, false, false), + TEST ("1.000000000116415321826934814453125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- true, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- true, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- true, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- true, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false, +- 0x1.000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ true, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ true, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ true, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ true, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false, ++ 0x1.000000008p+0, false, false), + TEST ("1.0000000000582076609134674072265625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- true, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- true, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- true, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- true, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false, +- 0x1.000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ true, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ true, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ true, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ true, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false, ++ 0x1.000000004p+0, false, false), + TEST ("1.00000000002910383045673370361328125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- true, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- true, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- true, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- true, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false, +- 0x1.000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ true, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ true, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ true, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ true, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false, ++ 0x1.000000002p+0, false, false), + TEST ("1.000000000014551915228366851806640625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- true, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- true, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- true, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- true, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false, +- 0x1.000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ true, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ true, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ true, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ true, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false, ++ 0x1.000000001p+0, false, false), + TEST ("1.0000000000072759576141834259033203125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- true, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- true, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- true, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- true, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false, +- 0x1.0000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ true, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ true, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ true, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ true, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false, ++ 0x1.0000000008p+0, false, false), + TEST ("1.00000000000363797880709171295166015625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- true, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- true, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- true, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- true, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false, +- 0x1.0000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ true, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ true, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ true, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ true, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false, ++ 0x1.0000000004p+0, false, false), + TEST ("1.000000000001818989403545856475830078125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- true, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- true, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- true, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- true, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false, +- 0x1.0000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ true, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ true, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ true, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ true, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false, ++ 0x1.0000000002p+0, false, false), + TEST ("1.0000000000009094947017729282379150390625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- true, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- true, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- true, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- true, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false, +- 0x1.0000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ true, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ true, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ true, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ true, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false, ++ 0x1.0000000001p+0, false, false), + TEST ("1.00000000000045474735088646411895751953125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- true, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- true, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- true, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- true, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false, +- 0x1.00000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ true, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ true, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ true, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ true, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false, ++ 0x1.00000000008p+0, false, false), + TEST ("1.000000000000227373675443232059478759765625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- true, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- true, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- true, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- true, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false, +- 0x1.00000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ true, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ true, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ true, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ true, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false, ++ 0x1.00000000004p+0, false, false), + TEST ("1.0000000000001136868377216160297393798828125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- true, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- true, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- true, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- true, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false, +- 0x1.00000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ true, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ true, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ true, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ true, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false, ++ 0x1.00000000002p+0, false, false), + TEST ("1.00000000000005684341886080801486968994140625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- true, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- true, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- true, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- true, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false, +- 0x1.00000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ true, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ true, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ true, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ true, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false, ++ 0x1.00000000001p+0, false, false), + TEST ("1.000000000000028421709430404007434844970703125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- true, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- true, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- true, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- true, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false, +- 0x1.000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ true, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ true, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ true, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ true, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false, ++ 0x1.000000000008p+0, false, false), + TEST ("1.0000000000000142108547152020037174224853515625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- true, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- true, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- true, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- true, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false, +- 0x1.000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ true, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ true, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ true, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ true, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false, ++ 0x1.000000000004p+0, false, false), + TEST ("1.00000000000000710542735760100185871124267578125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- true, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- true, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- true, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- true, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false, +- 0x1.000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ true, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ true, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ true, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ true, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false, ++ 0x1.000000000002p+0, false, false), + TEST ("1.000000000000003552713678800500929355621337890625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- true, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- true, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- true, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- true, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false, +- 0x1.000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ true, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ true, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ true, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ true, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false, ++ 0x1.000000000001p+0, false, false), + TEST ("1.0000000000000017763568394002504646778106689453125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- true, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- true, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- true, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- true, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false, +- 0x1.0000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ true, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ true, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ true, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ true, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false, ++ 0x1.0000000000008p+0, false, false), + TEST ("1.00000000000000088817841970012523233890533447265625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- true, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- true, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- true, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- true, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false, +- 0x1.0000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ true, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ true, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ true, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ true, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false, ++ 0x1.0000000000004p+0, false, false), + TEST ("1.000000000000000444089209850062616169452667236328125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- true, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- true, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- true, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- true, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false, +- 0x1.0000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ true, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ true, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ true, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ true, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false, ++ 0x1.0000000000002p+0, false, false), + TEST ("1.0000000000000002220446049250313080847263336181640625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- true, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false, +- 0x1.0000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ true, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ 0x1.0000000000001p+0, false, false), + TEST ("1.00000000000000011102230246251565404236316680908203125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- true, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- true, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- true, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false, +- 0x1.00000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ true, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ true, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ true, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false, ++ 0x1.00000000000008p+0, false, false), + TEST ("1.000000000000000055511151231257827021181583404541015625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- true, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- true, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- true, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false, +- 0x1.00000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ true, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ true, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ true, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false, ++ 0x1.00000000000004p+0, false, false), + TEST ("1.0000000000000000277555756156289135105907917022705078125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- true, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- true, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- true, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false, +- 0x1.00000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ true, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ true, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ true, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false, ++ 0x1.00000000000002p+0, false, false), + TEST ("1.00000000000000001387778780781445675529539585113525390625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- true, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- true, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- true, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false, +- 0x1.00000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ true, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ true, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ true, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false, ++ 0x1.00000000000001p+0, false, false), + TEST ("1.000000000000000006938893903907228377647697925567626953125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- true, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- true, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- true, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false, +- 0x1.000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false, ++ 0x1.000000000000008p+0, false, false), + TEST ("1.0000000000000000034694469519536141888238489627838134765625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- true, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- true, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- true, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false, +- 0x1.000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ true, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ true, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ true, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false, ++ 0x1.000000000000004p+0, false, false), + TEST ("1.0000000000000000017347234759768070944119244813919067382812" + "5", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- true, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- true, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- true, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false, +- 0x1.000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false, ++ 0x1.000000000000002p+0, false, false), + TEST ("1.0000000000000000008673617379884035472059622406959533691406" + "25", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- true, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- true, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- true, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false, +- 0x1.000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ true, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ true, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ true, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false, ++ 0x1.000000000000001p+0, false, false), + TEST ("1.0000000000000000004336808689942017736029811203479766845703" + "125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- true, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- true, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- true, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false, +- 0x1.0000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false, ++ 0x1.0000000000000008p+0, false, false), + TEST ("1.0000000000000000002168404344971008868014905601739883422851" + "5625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- true, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- true, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- true, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false, +- 0x1.0000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ true, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ true, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ true, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false, ++ 0x1.0000000000000004p+0, false, false), + TEST ("1.0000000000000000001084202172485504434007452800869941711425" + "78125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- true, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false, +- 0x1.0000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ true, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ 0x1.0000000000000002p+0, false, false), + TEST ("1.0000000000000000000542101086242752217003726400434970855712" + "890625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000001p+0, false, +- 0x1.0000000000000001p+0, false, +- 0x1.0000000000000001p+0, false, +- 0x1.0000000000000001p+0, false, +- true, +- 0x1.0000000000000001p+0, false, +- 0x1.0000000000000001p+0, false, +- 0x1.0000000000000001p+0, false, +- 0x1.0000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000001p+0, false, false, ++ 0x1.0000000000000001p+0, false, false, ++ 0x1.0000000000000001p+0, false, false, ++ 0x1.0000000000000001p+0, false, false, ++ true, ++ 0x1.0000000000000001p+0, false, false, ++ 0x1.0000000000000001p+0, false, false, ++ 0x1.0000000000000001p+0, false, false, ++ 0x1.0000000000000001p+0, false, false), + TEST ("1.0000000000000000000271050543121376108501863200217485427856" + "4453125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000008p+0, false, +- 0x1.00000000000000008p+0, false, +- 0x1.00000000000000008p+0, false, +- 0x1.00000000000000008p+0, false, +- true, +- 0x1.00000000000000008p+0, false, +- 0x1.00000000000000008p+0, false, +- 0x1.00000000000000008p+0, false, +- 0x1.00000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000008p+0, false, false, ++ 0x1.00000000000000008p+0, false, false, ++ 0x1.00000000000000008p+0, false, false, ++ 0x1.00000000000000008p+0, false, false, ++ true, ++ 0x1.00000000000000008p+0, false, false, ++ 0x1.00000000000000008p+0, false, false, ++ 0x1.00000000000000008p+0, false, false, ++ 0x1.00000000000000008p+0, false, false), + TEST ("1.0000000000000000000135525271560688054250931600108742713928" + "22265625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000004p+0, false, +- 0x1.00000000000000004p+0, false, +- 0x1.00000000000000004p+0, false, +- 0x1.00000000000000004p+0, false, +- true, +- 0x1.00000000000000004p+0, false, +- 0x1.00000000000000004p+0, false, +- 0x1.00000000000000004p+0, false, +- 0x1.00000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000004p+0, false, false, ++ 0x1.00000000000000004p+0, false, false, ++ 0x1.00000000000000004p+0, false, false, ++ 0x1.00000000000000004p+0, false, false, ++ true, ++ 0x1.00000000000000004p+0, false, false, ++ 0x1.00000000000000004p+0, false, false, ++ 0x1.00000000000000004p+0, false, false, ++ 0x1.00000000000000004p+0, false, false), + TEST ("1.0000000000000000000067762635780344027125465800054371356964" + "111328125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000002p+0, false, +- 0x1.00000000000000002p+0, false, +- 0x1.00000000000000002p+0, false, +- 0x1.00000000000000002p+0, false, +- true, +- 0x1.00000000000000002p+0, false, +- 0x1.00000000000000002p+0, false, +- 0x1.00000000000000002p+0, false, +- 0x1.00000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000002p+0, false, false, ++ 0x1.00000000000000002p+0, false, false, ++ 0x1.00000000000000002p+0, false, false, ++ 0x1.00000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000002p+0, false, false, ++ 0x1.00000000000000002p+0, false, false, ++ 0x1.00000000000000002p+0, false, false, ++ 0x1.00000000000000002p+0, false, false), + TEST ("1.0000000000000000000033881317890172013562732900027185678482" + "0556640625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000001p+0, false, +- 0x1.00000000000000001p+0, false, +- 0x1.00000000000000001p+0, false, +- 0x1.00000000000000001p+0, false, +- true, +- 0x1.00000000000000001p+0, false, +- 0x1.00000000000000001p+0, false, +- 0x1.00000000000000001p+0, false, +- 0x1.00000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000001p+0, false, false, ++ 0x1.00000000000000001p+0, false, false, ++ 0x1.00000000000000001p+0, false, false, ++ 0x1.00000000000000001p+0, false, false, ++ true, ++ 0x1.00000000000000001p+0, false, false, ++ 0x1.00000000000000001p+0, false, false, ++ 0x1.00000000000000001p+0, false, false, ++ 0x1.00000000000000001p+0, false, false), + TEST ("1.0000000000000000000016940658945086006781366450013592839241" + "02783203125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000008p+0, false, +- 0x1.000000000000000008p+0, false, +- 0x1.000000000000000008p+0, false, +- 0x1.000000000000000008p+0, false, +- true, +- 0x1.000000000000000008p+0, false, +- 0x1.000000000000000008p+0, false, +- 0x1.000000000000000008p+0, false, +- 0x1.000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000008p+0, false, false, ++ 0x1.000000000000000008p+0, false, false, ++ 0x1.000000000000000008p+0, false, false, ++ 0x1.000000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000000008p+0, false, false, ++ 0x1.000000000000000008p+0, false, false, ++ 0x1.000000000000000008p+0, false, false, ++ 0x1.000000000000000008p+0, false, false), + TEST ("1.0000000000000000000008470329472543003390683225006796419620" + "513916015625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000004p+0, false, +- 0x1.000000000000000004p+0, false, +- 0x1.000000000000000004p+0, false, +- 0x1.000000000000000004p+0, false, +- true, +- 0x1.000000000000000004p+0, false, +- 0x1.000000000000000004p+0, false, +- 0x1.000000000000000004p+0, false, +- 0x1.000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000004p+0, false, false, ++ 0x1.000000000000000004p+0, false, false, ++ 0x1.000000000000000004p+0, false, false, ++ 0x1.000000000000000004p+0, false, false, ++ true, ++ 0x1.000000000000000004p+0, false, false, ++ 0x1.000000000000000004p+0, false, false, ++ 0x1.000000000000000004p+0, false, false, ++ 0x1.000000000000000004p+0, false, false), + TEST ("1.0000000000000000000004235164736271501695341612503398209810" + "2569580078125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000002p+0, false, +- 0x1.000000000000000002p+0, false, +- 0x1.000000000000000002p+0, false, +- 0x1.000000000000000002p+0, false, +- true, +- 0x1.000000000000000002p+0, false, +- 0x1.000000000000000002p+0, false, +- 0x1.000000000000000002p+0, false, +- 0x1.000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000002p+0, false, false, ++ 0x1.000000000000000002p+0, false, false, ++ 0x1.000000000000000002p+0, false, false, ++ 0x1.000000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000002p+0, false, false, ++ 0x1.000000000000000002p+0, false, false, ++ 0x1.000000000000000002p+0, false, false, ++ 0x1.000000000000000002p+0, false, false), + TEST ("1.0000000000000000000002117582368135750847670806251699104905" + "12847900390625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000001p+0, false, +- 0x1.000000000000000001p+0, false, +- 0x1.000000000000000001p+0, false, +- 0x1.000000000000000001p+0, false, +- true, +- 0x1.000000000000000001p+0, false, +- 0x1.000000000000000001p+0, false, +- 0x1.000000000000000001p+0, false, +- 0x1.000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000001p+0, false, false, ++ 0x1.000000000000000001p+0, false, false, ++ 0x1.000000000000000001p+0, false, false, ++ 0x1.000000000000000001p+0, false, false, ++ true, ++ 0x1.000000000000000001p+0, false, false, ++ 0x1.000000000000000001p+0, false, false, ++ 0x1.000000000000000001p+0, false, false, ++ 0x1.000000000000000001p+0, false, false), + TEST ("1.0000000000000000000001058791184067875423835403125849552452" + "564239501953125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000008p+0, false, +- 0x1.0000000000000000008p+0, false, +- 0x1.0000000000000000008p+0, false, +- 0x1.0000000000000000008p+0, false, +- true, +- 0x1.0000000000000000008p+0, false, +- 0x1.0000000000000000008p+0, false, +- 0x1.0000000000000000008p+0, false, +- 0x1.0000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000008p+0, false, false, ++ 0x1.0000000000000000008p+0, false, false, ++ 0x1.0000000000000000008p+0, false, false, ++ 0x1.0000000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000000008p+0, false, false, ++ 0x1.0000000000000000008p+0, false, false, ++ 0x1.0000000000000000008p+0, false, false, ++ 0x1.0000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000529395592033937711917701562924776226" + "2821197509765625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000004p+0, false, +- 0x1.0000000000000000004p+0, false, +- 0x1.0000000000000000004p+0, false, +- 0x1.0000000000000000004p+0, false, +- true, +- 0x1.0000000000000000004p+0, false, +- 0x1.0000000000000000004p+0, false, +- 0x1.0000000000000000004p+0, false, +- 0x1.0000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000004p+0, false, false, ++ 0x1.0000000000000000004p+0, false, false, ++ 0x1.0000000000000000004p+0, false, false, ++ 0x1.0000000000000000004p+0, false, false, ++ true, ++ 0x1.0000000000000000004p+0, false, false, ++ 0x1.0000000000000000004p+0, false, false, ++ 0x1.0000000000000000004p+0, false, false, ++ 0x1.0000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000264697796016968855958850781462388113" + "14105987548828125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000002p+0, false, +- 0x1.0000000000000000002p+0, false, +- 0x1.0000000000000000002p+0, false, +- 0x1.0000000000000000002p+0, false, +- true, +- 0x1.0000000000000000002p+0, false, +- 0x1.0000000000000000002p+0, false, +- 0x1.0000000000000000002p+0, false, +- 0x1.0000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000002p+0, false, false, ++ 0x1.0000000000000000002p+0, false, false, ++ 0x1.0000000000000000002p+0, false, false, ++ 0x1.0000000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000002p+0, false, false, ++ 0x1.0000000000000000002p+0, false, false, ++ 0x1.0000000000000000002p+0, false, false, ++ 0x1.0000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000132348898008484427979425390731194056" + "570529937744140625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000001p+0, false, +- 0x1.0000000000000000001p+0, false, +- 0x1.0000000000000000001p+0, false, +- 0x1.0000000000000000001p+0, false, +- true, +- 0x1.0000000000000000001p+0, false, +- 0x1.0000000000000000001p+0, false, +- 0x1.0000000000000000001p+0, false, +- 0x1.0000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000001p+0, false, false, ++ 0x1.0000000000000000001p+0, false, false, ++ 0x1.0000000000000000001p+0, false, false, ++ 0x1.0000000000000000001p+0, false, false, ++ true, ++ 0x1.0000000000000000001p+0, false, false, ++ 0x1.0000000000000000001p+0, false, false, ++ 0x1.0000000000000000001p+0, false, false, ++ 0x1.0000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000066174449004242213989712695365597028" + "2852649688720703125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000008p+0, false, +- 0x1.00000000000000000008p+0, false, +- 0x1.00000000000000000008p+0, false, +- 0x1.00000000000000000008p+0, false, +- true, +- 0x1.00000000000000000008p+0, false, +- 0x1.00000000000000000008p+0, false, +- 0x1.00000000000000000008p+0, false, +- 0x1.00000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000008p+0, false, false, ++ 0x1.00000000000000000008p+0, false, false, ++ 0x1.00000000000000000008p+0, false, false, ++ 0x1.00000000000000000008p+0, false, false, ++ true, ++ 0x1.00000000000000000008p+0, false, false, ++ 0x1.00000000000000000008p+0, false, false, ++ 0x1.00000000000000000008p+0, false, false, ++ 0x1.00000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000033087224502121106994856347682798514" + "14263248443603515625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000004p+0, false, +- 0x1.00000000000000000004p+0, false, +- 0x1.00000000000000000004p+0, false, +- 0x1.00000000000000000004p+0, false, +- true, +- 0x1.00000000000000000004p+0, false, +- 0x1.00000000000000000004p+0, false, +- 0x1.00000000000000000004p+0, false, +- 0x1.00000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000004p+0, false, false, ++ 0x1.00000000000000000004p+0, false, false, ++ 0x1.00000000000000000004p+0, false, false, ++ 0x1.00000000000000000004p+0, false, false, ++ true, ++ 0x1.00000000000000000004p+0, false, false, ++ 0x1.00000000000000000004p+0, false, false, ++ 0x1.00000000000000000004p+0, false, false, ++ 0x1.00000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000016543612251060553497428173841399257" + "071316242218017578125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000002p+0, false, +- 0x1.00000000000000000002p+0, false, +- 0x1.00000000000000000002p+0, false, +- 0x1.00000000000000000002p+0, false, +- true, +- 0x1.00000000000000000002p+0, false, +- 0x1.00000000000000000002p+0, false, +- 0x1.00000000000000000002p+0, false, +- 0x1.00000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000002p+0, false, false, ++ 0x1.00000000000000000002p+0, false, false, ++ 0x1.00000000000000000002p+0, false, false, ++ 0x1.00000000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000002p+0, false, false, ++ 0x1.00000000000000000002p+0, false, false, ++ 0x1.00000000000000000002p+0, false, false, ++ 0x1.00000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000008271806125530276748714086920699628" + "5356581211090087890625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000001p+0, false, +- 0x1.00000000000000000001p+0, false, +- 0x1.00000000000000000001p+0, false, +- 0x1.00000000000000000001p+0, false, +- true, +- 0x1.00000000000000000001p+0, false, +- 0x1.00000000000000000001p+0, false, +- 0x1.00000000000000000001p+0, false, +- 0x1.00000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000001p+0, false, false, ++ 0x1.00000000000000000001p+0, false, false, ++ 0x1.00000000000000000001p+0, false, false, ++ 0x1.00000000000000000001p+0, false, false, ++ true, ++ 0x1.00000000000000000001p+0, false, false, ++ 0x1.00000000000000000001p+0, false, false, ++ 0x1.00000000000000000001p+0, false, false, ++ 0x1.00000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000004135903062765138374357043460349814" + "26782906055450439453125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000008p+0, false, +- 0x1.000000000000000000008p+0, false, +- 0x1.000000000000000000008p+0, false, +- 0x1.000000000000000000008p+0, false, +- true, +- 0x1.000000000000000000008p+0, false, +- 0x1.000000000000000000008p+0, false, +- 0x1.000000000000000000008p+0, false, +- 0x1.000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000008p+0, false, false, ++ 0x1.000000000000000000008p+0, false, false, ++ 0x1.000000000000000000008p+0, false, false, ++ 0x1.000000000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000000000008p+0, false, false, ++ 0x1.000000000000000000008p+0, false, false, ++ 0x1.000000000000000000008p+0, false, false, ++ 0x1.000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000002067951531382569187178521730174907" + "133914530277252197265625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000004p+0, false, +- 0x1.000000000000000000004p+0, false, +- 0x1.000000000000000000004p+0, false, +- 0x1.000000000000000000004p+0, false, +- true, +- 0x1.000000000000000000004p+0, false, +- 0x1.000000000000000000004p+0, false, +- 0x1.000000000000000000004p+0, false, +- 0x1.000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000004p+0, false, false, ++ 0x1.000000000000000000004p+0, false, false, ++ 0x1.000000000000000000004p+0, false, false, ++ 0x1.000000000000000000004p+0, false, false, ++ true, ++ 0x1.000000000000000000004p+0, false, false, ++ 0x1.000000000000000000004p+0, false, false, ++ 0x1.000000000000000000004p+0, false, false, ++ 0x1.000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000001033975765691284593589260865087453" + "5669572651386260986328125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000002p+0, false, +- 0x1.000000000000000000002p+0, false, +- 0x1.000000000000000000002p+0, false, +- 0x1.000000000000000000002p+0, false, +- true, +- 0x1.000000000000000000002p+0, false, +- 0x1.000000000000000000002p+0, false, +- 0x1.000000000000000000002p+0, false, +- 0x1.000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000002p+0, false, false, ++ 0x1.000000000000000000002p+0, false, false, ++ 0x1.000000000000000000002p+0, false, false, ++ 0x1.000000000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000002p+0, false, false, ++ 0x1.000000000000000000002p+0, false, false, ++ 0x1.000000000000000000002p+0, false, false, ++ 0x1.000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000516987882845642296794630432543726" + "78347863256931304931640625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000001p+0, false, +- 0x1.000000000000000000001p+0, false, +- 0x1.000000000000000000001p+0, false, +- 0x1.000000000000000000001p+0, false, +- true, +- 0x1.000000000000000000001p+0, false, +- 0x1.000000000000000000001p+0, false, +- 0x1.000000000000000000001p+0, false, +- 0x1.000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000001p+0, false, false, ++ 0x1.000000000000000000001p+0, false, false, ++ 0x1.000000000000000000001p+0, false, false, ++ 0x1.000000000000000000001p+0, false, false, ++ true, ++ 0x1.000000000000000000001p+0, false, false, ++ 0x1.000000000000000000001p+0, false, false, ++ 0x1.000000000000000000001p+0, false, false, ++ 0x1.000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000258493941422821148397315216271863" + "391739316284656524658203125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000008p+0, false, +- 0x1.0000000000000000000008p+0, false, +- 0x1.0000000000000000000008p+0, false, +- 0x1.0000000000000000000008p+0, false, +- true, +- 0x1.0000000000000000000008p+0, false, +- 0x1.0000000000000000000008p+0, false, +- 0x1.0000000000000000000008p+0, false, +- 0x1.0000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000000129246970711410574198657608135931" + "6958696581423282623291015625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000004p+0, false, +- 0x1.0000000000000000000004p+0, false, +- 0x1.0000000000000000000004p+0, false, +- 0x1.0000000000000000000004p+0, false, +- true, +- 0x1.0000000000000000000004p+0, false, +- 0x1.0000000000000000000004p+0, false, +- 0x1.0000000000000000000004p+0, false, +- 0x1.0000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000004p+0, false, false, ++ true, ++ 0x1.0000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000000064623485355705287099328804067965" + "84793482907116413116455078125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000002p+0, false, +- 0x1.0000000000000000000002p+0, false, +- 0x1.0000000000000000000002p+0, false, +- 0x1.0000000000000000000002p+0, false, +- true, +- 0x1.0000000000000000000002p+0, false, +- 0x1.0000000000000000000002p+0, false, +- 0x1.0000000000000000000002p+0, false, +- 0x1.0000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000032311742677852643549664402033982" + "923967414535582065582275390625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000001p+0, false, +- 0x1.0000000000000000000001p+0, false, +- 0x1.0000000000000000000001p+0, false, +- 0x1.0000000000000000000001p+0, false, +- true, +- 0x1.0000000000000000000001p+0, false, +- 0x1.0000000000000000000001p+0, false, +- 0x1.0000000000000000000001p+0, false, +- 0x1.0000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000001p+0, false, false, ++ true, ++ 0x1.0000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000016155871338926321774832201016991" + "4619837072677910327911376953125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000008p+0, false, +- 0x1.00000000000000000000008p+0, false, +- 0x1.00000000000000000000008p+0, false, +- 0x1.00000000000000000000008p+0, false, +- true, +- 0x1.00000000000000000000008p+0, false, +- 0x1.00000000000000000000008p+0, false, +- 0x1.00000000000000000000008p+0, false, +- 0x1.00000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000008p+0, false, false, ++ true, ++ 0x1.00000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000000008077935669463160887416100508495" + "73099185363389551639556884765625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000004p+0, false, +- 0x1.00000000000000000000004p+0, false, +- 0x1.00000000000000000000004p+0, false, +- 0x1.00000000000000000000004p+0, false, +- true, +- 0x1.00000000000000000000004p+0, false, +- 0x1.00000000000000000000004p+0, false, +- 0x1.00000000000000000000004p+0, false, +- 0x1.00000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000004p+0, false, false, ++ true, ++ 0x1.00000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000000004038967834731580443708050254247" + "865495926816947758197784423828125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000002p+0, false, +- 0x1.00000000000000000000002p+0, false, +- 0x1.00000000000000000000002p+0, false, +- 0x1.00000000000000000000002p+0, false, +- true, +- 0x1.00000000000000000000002p+0, false, +- 0x1.00000000000000000000002p+0, false, +- 0x1.00000000000000000000002p+0, false, +- 0x1.00000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000002019483917365790221854025127123" + "9327479634084738790988922119140625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000001p+0, false, +- 0x1.00000000000000000000001p+0, false, +- 0x1.00000000000000000000001p+0, false, +- 0x1.00000000000000000000001p+0, false, +- true, +- 0x1.00000000000000000000001p+0, false, +- 0x1.00000000000000000000001p+0, false, +- 0x1.00000000000000000000001p+0, false, +- 0x1.00000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000001p+0, false, false, ++ true, ++ 0x1.00000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000001009741958682895110927012563561" + "96637398170423693954944610595703125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000000008p+0, false, +- 0x1.000000000000000000000008p+0, false, +- 0x1.000000000000000000000008p+0, false, +- 0x1.000000000000000000000008p+0, false, +- true, +- 0x1.000000000000000000000008p+0, false, +- 0x1.000000000000000000000008p+0, false, +- 0x1.000000000000000000000008p+0, false, +- 0x1.000000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000000000504870979341447555463506281780" + "983186990852118469774723052978515625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000000004p+0, false, +- 0x1.000000000000000000000004p+0, false, +- 0x1.000000000000000000000004p+0, false, +- 0x1.000000000000000000000004p+0, false, +- true, +- 0x1.000000000000000000000004p+0, false, +- 0x1.000000000000000000000004p+0, false, +- 0x1.000000000000000000000004p+0, false, +- 0x1.000000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000004p+0, false, false, ++ true, ++ 0x1.000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000000000252435489670723777731753140890" + "4915934954260592348873615264892578125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000000002p+0, false, +- 0x1.000000000000000000000002p+0, false, +- 0x1.000000000000000000000002p+0, false, +- 0x1.000000000000000000000002p+0, false, +- true, +- 0x1.000000000000000000000002p+0, false, +- 0x1.000000000000000000000002p+0, false, +- 0x1.000000000000000000000002p+0, false, +- 0x1.000000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000000126217744835361888865876570445" + "24579674771302961744368076324462890625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000000001p+0, false, +- 0x1.000000000000000000000001p+0, false, +- 0x1.000000000000000000000001p+0, false, +- 0x1.000000000000000000000001p+0, false, +- true, +- 0x1.000000000000000000000001p+0, false, +- 0x1.000000000000000000000001p+0, false, +- 0x1.000000000000000000000001p+0, false, +- 0x1.000000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000001p+0, false, false, ++ true, ++ 0x1.000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000000063108872417680944432938285222" + "622898373856514808721840381622314453125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000000008p+0, false, +- 0x1.0000000000000000000000008p+0, false, +- 0x1.0000000000000000000000008p+0, false, +- 0x1.0000000000000000000000008p+0, false, +- true, +- 0x1.0000000000000000000000008p+0, false, +- 0x1.0000000000000000000000008p+0, false, +- 0x1.0000000000000000000000008p+0, false, +- 0x1.0000000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000000000031554436208840472216469142611" + "3114491869282574043609201908111572265625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000000004p+0, false, +- 0x1.0000000000000000000000004p+0, false, +- 0x1.0000000000000000000000004p+0, false, +- 0x1.0000000000000000000000004p+0, false, +- true, +- 0x1.0000000000000000000000004p+0, false, +- 0x1.0000000000000000000000004p+0, false, +- 0x1.0000000000000000000000004p+0, false, +- 0x1.0000000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000004p+0, false, false, ++ true, ++ 0x1.0000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000000000015777218104420236108234571305" + "65572459346412870218046009540557861328125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000000002p+0, false, +- 0x1.0000000000000000000000002p+0, false, +- 0x1.0000000000000000000000002p+0, false, +- 0x1.0000000000000000000000002p+0, false, +- true, +- 0x1.0000000000000000000000002p+0, false, +- 0x1.0000000000000000000000002p+0, false, +- 0x1.0000000000000000000000002p+0, false, +- 0x1.0000000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000000007888609052210118054117285652" + "827862296732064351090230047702789306640625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.0000000000000000000000001p+0, false, +- 0x1.0000000000000000000000001p+0, false, +- 0x1.0000000000000000000000001p+0, false, +- 0x1.0000000000000000000000001p+0, false, +- true, +- 0x1.0000000000000000000000001p+0, false, +- 0x1.0000000000000000000000001p+0, false, +- 0x1.0000000000000000000000001p+0, false, +- 0x1.0000000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.0000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000001p+0, false, false, ++ true, ++ 0x1.0000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000000003944304526105059027058642826" + "4139311483660321755451150238513946533203125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000000008p+0, false, +- 0x1.00000000000000000000000008p+0, false, +- 0x1.00000000000000000000000008p+0, false, +- 0x1.00000000000000000000000008p+0, false, +- true, +- 0x1.00000000000000000000000008p+0, false, +- 0x1.00000000000000000000000008p+0, false, +- 0x1.00000000000000000000000008p+0, false, +- 0x1.00000000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000000008p+0, false, false, ++ true, ++ 0x1.00000000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000000008p+0, false, false, ++ 0x1.00000000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000000000001972152263052529513529321413" + "20696557418301608777255751192569732666015625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000000004p+0, false, +- 0x1.00000000000000000000000004p+0, false, +- 0x1.00000000000000000000000004p+0, false, +- 0x1.00000000000000000000000004p+0, false, +- true, +- 0x1.00000000000000000000000004p+0, false, +- 0x1.00000000000000000000000004p+0, false, +- 0x1.00000000000000000000000004p+0, false, +- 0x1.00000000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000000004p+0, false, false, ++ true, ++ 0x1.00000000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000000004p+0, false, false, ++ 0x1.00000000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000000000000986076131526264756764660706" + "603482787091508043886278755962848663330078125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000000002p+0, false, +- 0x1.00000000000000000000000002p+0, false, +- 0x1.00000000000000000000000002p+0, false, +- 0x1.00000000000000000000000002p+0, false, +- true, +- 0x1.00000000000000000000000002p+0, false, +- 0x1.00000000000000000000000002p+0, false, +- 0x1.00000000000000000000000002p+0, false, +- 0x1.00000000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000000002p+0, false, false, ++ 0x1.00000000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000000000493038065763132378382330353" + "3017413935457540219431393779814243316650390625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.00000000000000000000000001p+0, false, +- 0x1.00000000000000000000000001p+0, false, +- 0x1.00000000000000000000000001p+0, false, +- 0x1.00000000000000000000000001p+0, false, +- true, +- 0x1.00000000000000000000000001p+0, false, +- 0x1.00000000000000000000000001p+0, false, +- 0x1.00000000000000000000000001p+0, false, +- 0x1.00000000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.00000000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000000001p+0, false, false, ++ true, ++ 0x1.00000000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000000001p+0, false, false, ++ 0x1.00000000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000000000246519032881566189191165176" + "65087069677287701097156968899071216583251953125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- true, +- 0x1.000000000000000000000000008p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.000000000000000000000000008p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- 0x1.000000000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ true, ++ 0x1.000000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000000000000123259516440783094595582588" + "325435348386438505485784844495356082916259765625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.000000000000000000000000004p+0, false, +- 0x1.000000000000000000000000004p+0, false, +- 0x1.000000000000000000000000004p+0, false, +- 0x1.000000000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000000004p+0, false, false, ++ 0x1.000000000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000000000000061629758220391547297791294" + "1627176741932192527428924222476780414581298828125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.000000000000000000000000002p+0, false, +- 0x1.000000000000000000000000002p+0, false, +- 0x1.000000000000000000000000002p+0, false, +- 0x1.000000000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000000002p+0, false, false, ++ 0x1.000000000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000000000030814879110195773648895647" + "08135883709660962637144621112383902072906494140625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.000000000000000000000000001p+0, false, +- 0x1.000000000000000000000000001p+0, false, +- 0x1.000000000000000000000000001p+0, false, +- 0x1.000000000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.000000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000000001p+0, false, false, ++ 0x1.000000000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000000000015407439555097886824447823" + "540679418548304813185723105561919510364532470703125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.0000000000000000000000000008p+0, false, +- 0x1.0000000000000000000000000008p+0, false, +- 0x1.0000000000000000000000000008p+0, false, +- 0x1.0000000000000000000000000008p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000000008p+0, false, false, ++ 0x1.0000000000000000000000000008p+0, false, false), + TEST ("1.0000000000000000000000000000000007703719777548943412223911" + "7703397092741524065928615527809597551822662353515625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.0000000000000000000000000004p+0, false, +- 0x1.0000000000000000000000000004p+0, false, +- 0x1.0000000000000000000000000004p+0, false, +- 0x1.0000000000000000000000000004p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000000004p+0, false, false, ++ 0x1.0000000000000000000000000004p+0, false, false), + TEST ("1.0000000000000000000000000000000003851859888774471706111955" + "88516985463707620329643077639047987759113311767578125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.0000000000000000000000000002p+0, false, +- 0x1.0000000000000000000000000002p+0, false, +- 0x1.0000000000000000000000000002p+0, false, +- 0x1.0000000000000000000000000002p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000000002p+0, false, false, ++ 0x1.0000000000000000000000000002p+0, false, false), + TEST ("1.0000000000000000000000000000000001925929944387235853055977" + "942584927318538101648215388195239938795566558837890625", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- true, +- 0x1.0000000000000000000000000001p+0, false, +- 0x1.0000000000000000000000000001p+0, false, +- 0x1.0000000000000000000000000001p+0, false, +- 0x1.0000000000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ true, ++ 0x1.0000000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000000001p+0, false, false, ++ 0x1.0000000000000000000000000001p+0, false, false), + TEST ("1.0000000000000000000000000000000000962964972193617926527988" + "9712924636592690508241076940976199693977832794189453125", + false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000001p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000002p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.000000000000000000000000008p+0, false, +- false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1p+0, false, +- 0x1.0000000000000000000000000001p+0, false), ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000001p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000002p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.000000000000000000000000008p+0, false, false, ++ false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1p+0, false, false, ++ 0x1.0000000000000000000000000001p+0, false, false), + }; +diff --git a/stdlib/tst-strtod-round-skeleton.c b/stdlib/tst-strtod-round-skeleton.c +index 1ff1977112bda7a8..7b8bc55c254219ed 100644 +--- a/stdlib/tst-strtod-round-skeleton.c ++++ b/stdlib/tst-strtod-round-skeleton.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #include "tst-strtod.h" + +@@ -139,16 +140,26 @@ + gen-tst-strtod-round utility to select the appropriately + rounded long double value for a given format. */ + #define TEST(s, \ +- fx, fd, fdo, fn, fno, fz, fzo, fu, fuo, \ +- dx, dd, ddo, dn, dno, dz, dzo, du, duo, \ +- ld64ix, ld64id, ld64ido, ld64in, ld64ino, \ +- ld64iz, ld64izo, ld64iu, ld64iuo, \ +- ld64mx, ld64md, ld64mdo, ld64mn, ld64mno, \ +- ld64mz, ld64mzo, ld64mu, ld64muo, \ +- ld106x, ld106d, ld106do, ld106n, ld106no, \ +- ld106z, ld106zo, ld106u, ld106uo, \ +- ld113x, ld113d, ld113do, ld113n, ld113no, \ +- ld113z, ld113zo, ld113u, ld113uo) \ ++ fx, fd, fdo, fdu, fn, fno, fnu, \ ++ fz, fzo, fzu, fu, fuo, fuu, \ ++ dx, dd, ddo, ddu, dn, dno, dnu, \ ++ dz, dzo, dzu, du, duo, duu, \ ++ ld64ix, ld64id, ld64ido, ld64idu, \ ++ ld64in, ld64ino, ld64inu, \ ++ ld64iz, ld64izo, ld64izu, \ ++ ld64iu, ld64iuo, ld64iuu, \ ++ ld64mx, ld64md, ld64mdo, ld64mdu, \ ++ ld64mn, ld64mno, ld64mnu, \ ++ ld64mz, ld64mzo, ld64mzu, \ ++ ld64mu, ld64muo, ld64muu, \ ++ ld106x, ld106d, ld106do, ld106du, \ ++ ld106n, ld106no, ld106nu, \ ++ ld106z, ld106zo, ld106zu, \ ++ ld106u, ld106uo, ld106uu, \ ++ ld113x, ld113d, ld113do, ld113du, \ ++ ld113n, ld113no, ld113nu, \ ++ ld113z, ld113zo, ld113zu, \ ++ ld113u, ld113uo, ld113uu) \ + { \ + L_ (s), \ + { XNTRY (fx, dx, ld64ix, ld64mx, ld106x, ld113x) }, \ +@@ -163,6 +174,12 @@ + { XNTRY (fdo, ddo, ld64ido, ld64mdo, ld106do, ld113do) }, \ + { XNTRY (fzo, dzo, ld64izo, ld64mzo, ld106zo, ld113zo) }, \ + { XNTRY (fuo, duo, ld64iuo, ld64muo, ld106uo, ld113uo) } \ ++ }, \ ++ { \ ++ { XNTRY (fnu, dnu, ld64inu, ld64mnu, ld106nu, ld113nu) }, \ ++ { XNTRY (fdu, ddu, ld64idu, ld64mdu, ld106du, ld113du) }, \ ++ { XNTRY (fzu, dzu, ld64izu, ld64mzu, ld106zu, ld113zu) }, \ ++ { XNTRY (fuu, duu, ld64iuu, ld64muu, ld106uu, ld113uu) } \ + } \ + } + +@@ -181,11 +198,17 @@ struct test_overflow + STRUCT_FOREACH_FLOAT_BOOL + }; + ++struct test_underflow ++ { ++ STRUCT_FOREACH_FLOAT_BOOL ++ }; ++ + struct test { + const CHAR *s; + struct test_exactness exact; + struct test_results r[4]; + struct test_overflow o[4]; ++ struct test_underflow u[4]; + }; + + /* Include the generated test data. */ +@@ -203,10 +226,14 @@ struct test { + # define FE_OVERFLOW 0 + #endif + ++#ifndef FE_UNDERFLOW ++# define FE_UNDERFLOW 0 ++#endif ++ + #define GEN_ONE_TEST(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ + { \ + feclearexcept (FE_ALL_EXCEPT); \ +- errno = 0; \ ++ errno = 12345; \ + FTYPE f = STRTO (FSUF) (s, NULL); \ + int new_errno = errno; \ + if (f != expected->FSUF \ +@@ -265,6 +292,40 @@ struct test { + s, new_errno, ERANGE); \ + result = 1; \ + } \ ++ if (FE_UNDERFLOW != 0) \ ++ { \ ++ bool underflow_raised \ ++ = fetestexcept (FE_UNDERFLOW) != 0; \ ++ if (underflow_raised != underflow->FSUF) \ ++ { \ ++ printf (FNPFXS "to" #FSUF \ ++ " (" STRM ") underflow %d " \ ++ "not %d\n", s, underflow_raised, \ ++ underflow->FSUF); \ ++ if (EXCEPTION_TESTS (FTYPE)) \ ++ result = 1; \ ++ else \ ++ printf ("ignoring this exception error\n"); \ ++ } \ ++ } \ ++ if (underflow->FSUF && new_errno != ERANGE) \ ++ { \ ++ printf (FNPFXS "to" #FSUF \ ++ " (" STRM ") left errno == %d," \ ++ " not %d (ERANGE)\n", \ ++ s, new_errno, ERANGE); \ ++ result = 1; \ ++ } \ ++ if (!overflow->FSUF \ ++ && !underflow->FSUF \ ++ && new_errno != 12345) \ ++ { \ ++ printf (FNPFXS "to" #FSUF \ ++ " (" STRM ") set errno == %d," \ ++ " should be unchanged\n", \ ++ s, new_errno); \ ++ result = 1; \ ++ } \ + } \ + } + +@@ -272,6 +333,7 @@ static int + test_in_one_mode (const CHAR *s, const struct test_results *expected, + const struct test_exactness *exact, + const struct test_overflow *overflow, ++ const struct test_underflow *underflow, + const char *mode_name, int rnd_mode) + { + int result = 0; +@@ -307,6 +369,7 @@ do_test (void) + { + result |= test_in_one_mode (tests[i].s, &tests[i].r[modes[0].rnd_i], + &tests[i].exact, &tests[i].o[modes[0].rnd_i], ++ &tests[i].u[modes[0].rnd_i], + modes[0].mode_name, modes[0].rnd_mode); + for (const struct fetestmodes *m = &modes[1]; m->mode_name != NULL; m++) + { +@@ -314,7 +377,9 @@ do_test (void) + { + result |= test_in_one_mode (tests[i].s, &tests[i].r[m->rnd_i], + &tests[i].exact, +- &tests[i].o[m->rnd_i], m->mode_name, ++ &tests[i].o[m->rnd_i], ++ &tests[i].u[m->rnd_i], ++ m->mode_name, + m->rnd_mode); + fesetround (save_round_mode); + } diff --git a/SOURCES/glibc-RHEL-46739-3.patch b/SOURCES/glibc-RHEL-46739-3.patch new file mode 100644 index 0000000..ef8c2ed --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-3.patch @@ -0,0 +1,445 @@ +commit 457622c2fa8f9f7435822d5287a437bc8be8090d +Author: Joseph Myers +Date: Tue Aug 27 12:41:02 2024 +0000 + + Fix strtod subnormal rounding (bug 30220) + + As reported in bug 30220, the implementation of strtod-family + functions has a bug in the following case: the input string would, + with infinite exponent range, take one more bit to represent than is + available in the normal precision of the return type; the value + represented is in the subnormal range; and there are no nonzero bits + in the value, below those that can be represented in subnormal + precision, other than the least significant bit and possibly the + 0.5ulp bit. In this case, round_and_return ends up discarding the + least significant bit. + + Fix by saving that bit to merge into more_bits (it can't be merged in + at the time it's computed, because more_bits mustn't include this bit + in the case of after-rounding tininess detection checking if the + result is still subnormal when rounded to normal precision, so merging + this bit into more_bits needs to take place after that check). + + Tested for x86_64. + +diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c +index 5a54d99ae8663641..49b88e9a86be8441 100644 +--- a/stdlib/strtod_l.c ++++ b/stdlib/strtod_l.c +@@ -223,6 +223,7 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative, + + mp_size_t shift = MIN_EXP - 1 - exponent; + bool is_tiny = true; ++ bool old_half_bit = (round_limb & (((mp_limb_t) 1) << round_bit)) != 0; + + more_bits |= (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0; + if (shift == MANT_DIG) +@@ -293,6 +294,7 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative, + round_bit = shift - 1; + (void) __mpn_rshift (retval, retval, RETURN_LIMB_SIZE, shift); + } ++ more_bits |= old_half_bit; + /* This is a hook for the m68k long double format, where the + exponent bias is the same for normalized and denormalized + numbers. */ +diff --git a/stdlib/tst-strtod-round-data b/stdlib/tst-strtod-round-data +index 84ab705709b24b6c..9489fbcc9ce7eee2 100644 +--- a/stdlib/tst-strtod-round-data ++++ b/stdlib/tst-strtod-round-data +@@ -265,3 +265,15 @@ + 1.000000000000000000000000000000000385185988877447170611195588516985463707620329643077639047987759113311767578125 + 1.0000000000000000000000000000000001925929944387235853055977942584927318538101648215388195239938795566558837890625 + 1.00000000000000000000000000000000009629649721936179265279889712924636592690508241076940976199693977832794189453125 ++0x30000002222225p-1077 ++0x0.7fffffffffffeap-1022 ++0x0.7fffffffffffe9p-1022 ++0x0.7ffffd4p-126 ++0x0.7ffffffffffffffd4p-16382 ++0x0.7ffffffffffffffd4p-16383 ++0x0.7ffffffffffffffffffffffffffeap-16382 ++0x0.7000004p-126 ++0x0.70000000000002p-1022 ++0x0.70000000000000004p-16382 ++0x0.70000000000000004p-16383 ++0x0.70000000000000000000000000002p-16382 +diff --git a/stdlib/tst-strtod-round-data.h b/stdlib/tst-strtod-round-data.h +index 13e62dd2b0588a16..ed50eb2537bc175c 100644 +--- a/stdlib/tst-strtod-round-data.h ++++ b/stdlib/tst-strtod-round-data.h +@@ -15437,4 +15437,376 @@ static const struct test tests[] = { + 0x1p+0, false, false, + 0x1p+0, false, false, + 0x1.0000000000000000000000000001p+0, false, false), ++ TEST ("0x30000002222225p-1077", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x1.800000111111p-1024, false, true, ++ 0x1.8000001111114p-1024, false, true, ++ 0x1.800000111111p-1024, false, true, ++ 0x1.8000001111114p-1024, false, true, ++ true, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ true, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ false, ++ 0x1.800000111111p-1024, false, true, ++ 0x1.8000001111114p-1024, false, true, ++ 0x1.800000111111p-1024, false, true, ++ 0x1.8000001111114p-1024, false, true, ++ true, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false, ++ 0x1.80000011111128p-1024, false, false), ++ TEST ("0x0.7fffffffffffeap-1022", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ true, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ true, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ false, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ true, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false, ++ 0x1.ffffffffffffa8p-1024, false, false), ++ TEST ("0x0.7fffffffffffe9p-1022", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ true, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ true, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ false, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ 0x1.ffffffffffff8p-1024, false, true, ++ 0x1.ffffffffffffcp-1024, false, true, ++ true, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false, ++ 0x1.ffffffffffffa4p-1024, false, false), ++ TEST ("0x0.7ffffd4p-126", ++ false, ++ 0x1.fffffp-128, false, true, ++ 0x1.fffff8p-128, false, true, ++ 0x1.fffffp-128, false, true, ++ 0x1.fffff8p-128, false, true, ++ true, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ true, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ true, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ true, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ true, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false, ++ 0x1.fffff5p-128, false, false), ++ TEST ("0x0.7ffffffffffffffd4p-16382", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.fffffffffffffffp-16384, false, true, ++ 0x1.fffffffffffffff8p-16384, false, true, ++ 0x1.fffffffffffffffp-16384, false, true, ++ 0x1.fffffffffffffff8p-16384, false, true, ++ false, ++ 0x1.fffffffffffffff4p-16384, false, true, ++ 0x1.fffffffffffffff4p-16384, false, true, ++ 0x1.fffffffffffffff4p-16384, false, true, ++ 0x1.fffffffffffffff8p-16384, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x1.fffffffffffffff5p-16384, false, false, ++ 0x1.fffffffffffffff5p-16384, false, false, ++ 0x1.fffffffffffffff5p-16384, false, false, ++ 0x1.fffffffffffffff5p-16384, false, false), ++ TEST ("0x0.7ffffffffffffffd4p-16383", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0xf.ffffffffffffff8p-16388, false, true, ++ 0xf.ffffffffffffff8p-16388, false, true, ++ 0xf.ffffffffffffff8p-16388, false, true, ++ 0x1p-16384, false, true, ++ false, ++ 0xf.ffffffffffffff8p-16388, false, true, ++ 0xf.ffffffffffffffcp-16388, false, true, ++ 0xf.ffffffffffffff8p-16388, false, true, ++ 0xf.ffffffffffffffcp-16388, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0xf.ffffffffffffffa8p-16388, false, false, ++ 0xf.ffffffffffffffa8p-16388, false, false, ++ 0xf.ffffffffffffffa8p-16388, false, false, ++ 0xf.ffffffffffffffa8p-16388, false, false), ++ TEST ("0x0.7ffffffffffffffffffffffffffeap-16382", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.fffffffffffffff8p-16384, false, true, ++ 0x2p-16384, false, true, ++ 0x1.fffffffffffffff8p-16384, false, true, ++ 0x2p-16384, false, true, ++ false, ++ 0x1.fffffffffffffffcp-16384, false, true, ++ 0x2p-16384, false, true, ++ 0x1.fffffffffffffffcp-16384, false, true, ++ 0x2p-16384, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.fffffffffffffffffffffffffff8p-16384, false, true, ++ 0x1.fffffffffffffffffffffffffffcp-16384, false, true, ++ 0x1.fffffffffffffffffffffffffff8p-16384, false, true, ++ 0x1.fffffffffffffffffffffffffffcp-16384, false, true), ++ TEST ("0x0.7000004p-126", ++ false, ++ 0x1.cp-128, false, true, ++ 0x1.cp-128, false, true, ++ 0x1.cp-128, false, true, ++ 0x1.c00008p-128, false, true, ++ true, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ true, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ true, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ true, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ true, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false, ++ 0x1.c00001p-128, false, false), ++ TEST ("0x0.70000000000002p-1022", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x1.cp-1024, false, true, ++ 0x1.cp-1024, false, true, ++ 0x1.cp-1024, false, true, ++ 0x1.c000000000004p-1024, false, true, ++ true, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ true, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ false, ++ 0x1.cp-1024, false, true, ++ 0x1.cp-1024, false, true, ++ 0x1.cp-1024, false, true, ++ 0x1.c000000000004p-1024, false, true, ++ true, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false, ++ 0x1.c0000000000008p-1024, false, false), ++ TEST ("0x0.70000000000000004p-16382", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.c000000000000008p-16384, false, true, ++ false, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.c000000000000004p-16384, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0x1.c000000000000001p-16384, false, false, ++ 0x1.c000000000000001p-16384, false, false, ++ 0x1.c000000000000001p-16384, false, false, ++ 0x1.c000000000000001p-16384, false, false), ++ TEST ("0x0.70000000000000004p-16383", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0xep-16388, false, true, ++ 0xep-16388, false, true, ++ 0xep-16388, false, true, ++ 0xe.000000000000008p-16388, false, true, ++ false, ++ 0xep-16388, false, true, ++ 0xep-16388, false, true, ++ 0xep-16388, false, true, ++ 0xe.000000000000004p-16388, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ true, ++ 0xe.0000000000000008p-16388, false, false, ++ 0xe.0000000000000008p-16388, false, false, ++ 0xe.0000000000000008p-16388, false, false, ++ 0xe.0000000000000008p-16388, false, false), ++ TEST ("0x0.70000000000000000000000000002p-16382", ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x8p-152, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.c000000000000008p-16384, false, true, ++ false, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.c000000000000004p-16384, false, true, ++ false, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x0p+0, false, true, ++ 0x4p-1076, false, true, ++ false, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.cp-16384, false, true, ++ 0x1.c000000000000000000000000004p-16384, false, true), + }; diff --git a/SOURCES/glibc-RHEL-46739-4.patch b/SOURCES/glibc-RHEL-46739-4.patch new file mode 100644 index 0000000..2d5fa5c --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-4.patch @@ -0,0 +1,598 @@ +commit 3fc063dee01da4f80920a14b7db637c8501d6fd4 +Author: Joseph Myers +Date: Tue Aug 27 20:41:54 2024 +0000 + + Make __strtod_internal tests type-generic + + Some of the strtod tests use type-generic machinery in tst-strtod.h to + test the strto* functions for all floating types, while others only + test double even when the tests are in fact meaningful for all + floating types. + + Convert the tests of the internal __strtod_internal interface to cover + all floating types. I haven't tried to convert them to use newer test + interfaces in other ways, just made the changes necessary to use the + type-generic machinery. As an internal interface, there are no + aliases for different types with the same ABI (however, + __strtold_internal is defined even if long double has the same ABI as + double), so macros used by the type-generic testing code are redefined + as needed to avoid expecting such aliases to be present. + + Tested for x86_64. + +Conflicts: + stdlib/tst-strtod4.c + (69239bd7a216007692470aa9d5f3658024638742 missing downstream) + +diff --git a/stdlib/tst-strtod1i.c b/stdlib/tst-strtod1i.c +index 98fc5d527fe1edd9..32fc8b9e1f08ace9 100644 +--- a/stdlib/tst-strtod1i.c ++++ b/stdlib/tst-strtod1i.c +@@ -25,60 +25,91 @@ + #include + #include + +-/* Perform a few tests in a locale with thousands separators. */ +-static int +-do_test (void) +-{ +- static const struct +- { +- const char *loc; +- const char *str; +- double exp; +- ptrdiff_t nread; +- } tests[] = +- { +- { "de_DE.UTF-8", "1,5", 1.5, 3 }, +- { "de_DE.UTF-8", "1.5", 1.0, 1 }, +- { "de_DE.UTF-8", "1.500", 1500.0, 5 }, +- { "de_DE.UTF-8", "36.893.488.147.419.103.232", 0x1.0p65, 26 } +- }; +-#define ntests (sizeof (tests) / sizeof (tests[0])) +- size_t n; +- int result = 0; +- +- puts ("\nLocale tests"); ++#include "tst-strtod.h" + +- for (n = 0; n < ntests; ++n) +- { +- double d; +- char *endp; ++/* This tests internal interfaces, which are only defined for types ++ with distinct ABIs, so disable testing for types without distinct ++ ABIs. */ ++#undef IF_FLOAT32 ++#define IF_FLOAT32(x) ++#undef IF_FLOAT64 ++#define IF_FLOAT64(x) ++#undef IF_FLOAT32X ++#define IF_FLOAT32X(x) ++#undef IF_FLOAT64X ++#define IF_FLOAT64X(x) ++#if !__HAVE_DISTINCT_FLOAT128 ++# undef IF_FLOAT128 ++# define IF_FLOAT128(x) ++#endif + +- if (setlocale (LC_ALL, tests[n].loc) == NULL) +- { +- printf ("cannot set locale %s\n", tests[n].loc); +- result = 1; +- continue; +- } ++#define ntests (sizeof (tests) / sizeof (tests[0])) + +- d = __strtod_internal (tests[n].str, &endp, 1); +- if (d != tests[n].exp) +- { +- printf ("strtod(\"%s\") returns %g and not %g\n", +- tests[n].str, d, tests[n].exp); +- result = 1; +- } +- else if (endp - tests[n].str != tests[n].nread) +- { +- printf ("strtod(\"%s\") read %td bytes and not %td\n", +- tests[n].str, endp - tests[n].str, tests[n].nread); +- result = 1; +- } +- } ++/* Perform a few tests in a locale with thousands separators. */ ++#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++static int \ ++test_strto ## FSUF (void) \ ++{ \ ++ static const struct \ ++ { \ ++ const char *loc; \ ++ const char *str; \ ++ FTYPE exp; \ ++ ptrdiff_t nread; \ ++ } tests[] = \ ++ { \ ++ { "de_DE.UTF-8", "1,5", 1.5 ## LSUF, 3 }, \ ++ { "de_DE.UTF-8", "1.5", 1.0 ## LSUF, 1 }, \ ++ { "de_DE.UTF-8", "1.500", 1500.0 ## LSUF, 5 }, \ ++ { "de_DE.UTF-8", "36.893.488.147.419.103.232", 0x1.0p65 ## LSUF, 26 } \ ++ }; \ ++ size_t n; \ ++ int result = 0; \ ++ \ ++ puts ("\nLocale tests"); \ ++ \ ++ for (n = 0; n < ntests; ++n) \ ++ { \ ++ FTYPE d; \ ++ char *endp; \ ++ \ ++ if (setlocale (LC_ALL, tests[n].loc) == NULL) \ ++ { \ ++ printf ("cannot set locale %s\n", tests[n].loc); \ ++ result = 1; \ ++ continue; \ ++ } \ ++ \ ++ d = __strto ## FSUF ## _internal (tests[n].str, &endp, 1); \ ++ if (d != tests[n].exp) \ ++ { \ ++ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \ ++ FTOSTR (buf1, sizeof (buf1), "%g", d); \ ++ FTOSTR (buf2, sizeof (buf2), "%g", tests[n].exp); \ ++ printf ("strto" # FSUF "(\"%s\") returns %s and not %s\n", \ ++ tests[n].str, buf1, buf2); \ ++ result = 1; \ ++ } \ ++ else if (endp - tests[n].str != tests[n].nread) \ ++ { \ ++ printf ("strto" # FSUF "(\"%s\") read %td bytes and not %td\n", \ ++ tests[n].str, endp - tests[n].str, tests[n].nread); \ ++ result = 1; \ ++ } \ ++ } \ ++ \ ++ if (result == 0) \ ++ puts ("all OK"); \ ++ \ ++ return result ? EXIT_FAILURE : EXIT_SUCCESS; \ ++} + +- if (result == 0) +- puts ("all OK"); ++GEN_TEST_STRTOD_FOREACH (TEST_STRTOD) + +- return result ? EXIT_FAILURE : EXIT_SUCCESS; ++static int ++do_test (void) ++{ ++ return STRTOD_TEST_FOREACH (test_strto); + } + + #include +diff --git a/stdlib/tst-strtod3.c b/stdlib/tst-strtod3.c +index 23abec1896896276..0d662d8be83a7525 100644 +--- a/stdlib/tst-strtod3.c ++++ b/stdlib/tst-strtod3.c +@@ -3,19 +3,73 @@ + #include + #include + +-static const struct +-{ +- const char *in; +- const char *out; +- double expected; +-} tests[] = +- { +- { "000,,,e1", ",,,e1", 0.0 }, +- { "000e1", "", 0.0 }, +- { "000,1e1", ",1e1", 0.0 } +- }; +-#define NTESTS (sizeof (tests) / sizeof (tests[0])) ++#include "tst-strtod.h" ++ ++/* This tests internal interfaces, which are only defined for types ++ with distinct ABIs, so disable testing for types without distinct ++ ABIs. */ ++#undef IF_FLOAT32 ++#define IF_FLOAT32(x) ++#undef IF_FLOAT64 ++#define IF_FLOAT64(x) ++#undef IF_FLOAT32X ++#define IF_FLOAT32X(x) ++#undef IF_FLOAT64X ++#define IF_FLOAT64X(x) ++#if !__HAVE_DISTINCT_FLOAT128 ++# undef IF_FLOAT128 ++# define IF_FLOAT128(x) ++#endif + ++#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++static const struct \ ++{ \ ++ const char *in; \ ++ const char *out; \ ++ FTYPE expected; \ ++} tests_strto ## FSUF[] = \ ++ { \ ++ { "000,,,e1", ",,,e1", 0.0 ## LSUF }, \ ++ { "000e1", "", 0.0 ## LSUF }, \ ++ { "000,1e1", ",1e1", 0.0 ## LSUF } \ ++ }; \ ++ \ ++static int \ ++test_strto ## FSUF (void) \ ++{ \ ++ int status = 0; \ ++ \ ++ for (int i = 0; \ ++ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \ ++ ++i) \ ++ { \ ++ char *ep; \ ++ FTYPE r = __strto ## FSUF ## _internal (tests_strto ## FSUF[i].in, \ ++ &ep, 1); \ ++ \ ++ if (strcmp (ep, tests_strto ## FSUF[i].out) != 0) \ ++ { \ ++ printf ("%d: got rest string \"%s\", expected \"%s\"\n", \ ++ i, ep, tests_strto ## FSUF[i].out); \ ++ status = 1; \ ++ } \ ++ \ ++ if (r != tests_strto ## FSUF[i].expected) \ ++ { \ ++ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \ ++ FTOSTR (buf1, sizeof (buf1), "%g", r); \ ++ FTOSTR (buf2, sizeof (buf2), "%g", \ ++ tests_strto ## FSUF[i].expected); \ ++ printf ("%d: got wrong results %s, expected %s\n", \ ++ i, buf1, buf2); \ ++ status = 1; \ ++ } \ ++ } \ ++ \ ++ return status; \ ++} ++ ++GEN_TEST_STRTOD_FOREACH (TEST_STRTOD) + + static int + do_test (void) +@@ -26,29 +80,7 @@ do_test (void) + return 1; + } + +- int status = 0; +- +- for (int i = 0; i < NTESTS; ++i) +- { +- char *ep; +- double r = __strtod_internal (tests[i].in, &ep, 1); +- +- if (strcmp (ep, tests[i].out) != 0) +- { +- printf ("%d: got rest string \"%s\", expected \"%s\"\n", +- i, ep, tests[i].out); +- status = 1; +- } +- +- if (r != tests[i].expected) +- { +- printf ("%d: got wrong results %g, expected %g\n", +- i, r, tests[i].expected); +- status = 1; +- } +- } +- +- return status; ++ return STRTOD_TEST_FOREACH (test_strto); + } + + #define TEST_FUNCTION do_test () +diff --git a/stdlib/tst-strtod4.c b/stdlib/tst-strtod4.c +index aae9835d82d38b4e..cd86f8c1f13a39e4 100644 +--- a/stdlib/tst-strtod4.c ++++ b/stdlib/tst-strtod4.c +@@ -3,20 +3,74 @@ + #include + #include + ++#include "tst-strtod.h" ++ ++/* This tests internal interfaces, which are only defined for types ++ with distinct ABIs, so disable testing for types without distinct ++ ABIs. */ ++#undef IF_FLOAT32 ++#define IF_FLOAT32(x) ++#undef IF_FLOAT64 ++#define IF_FLOAT64(x) ++#undef IF_FLOAT32X ++#define IF_FLOAT32X(x) ++#undef IF_FLOAT64X ++#define IF_FLOAT64X(x) ++#if !__HAVE_DISTINCT_FLOAT128 ++# undef IF_FLOAT128 ++# define IF_FLOAT128(x) ++#endif ++ + #define NNBSP "\xe2\x80\xaf" + +-static const struct +-{ +- const char *in; +- const char *out; +- double expected; +-} tests[] = +- { +- { "000"NNBSP"000"NNBSP"000", "", 0.0 }, +- { "1"NNBSP"000"NNBSP"000,5x", "x", 1000000.5 } +- }; +-#define NTESTS (sizeof (tests) / sizeof (tests[0])) ++#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++static const struct \ ++{ \ ++ const char *in; \ ++ const char *out; \ ++ FTYPE expected; \ ++} tests_strto ## FSUF[] = \ ++ { \ ++ { "000"NNBSP"000"NNBSP"000", "", 0.0 ## LSUF }, \ ++ { "1"NNBSP"000"NNBSP"000,5x", "x", 1000000.5 ## LSUF } \ ++ }; \ ++ \ ++static int \ ++test_strto ## FSUF (void) \ ++{ \ ++ int status = 0; \ ++ \ ++ for (int i = 0; \ ++ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \ ++ ++i) \ ++ { \ ++ char *ep; \ ++ FTYPE r = __strto ## FSUF ## _internal (tests_strto ## FSUF[i].in, \ ++ &ep, 1); \ ++ \ ++ if (strcmp (ep, tests_strto ## FSUF[i].out) != 0) \ ++ { \ ++ printf ("%d: got rest string \"%s\", expected \"%s\"\n", \ ++ i, ep, tests_strto ## FSUF[i].out); \ ++ status = 1; \ ++ } \ ++ \ ++ if (r != tests_strto ## FSUF[i].expected) \ ++ { \ ++ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \ ++ FTOSTR (buf1, sizeof (buf1), "%g", r); \ ++ FTOSTR (buf2, sizeof (buf2), "%g", \ ++ tests_strto ## FSUF[i].expected); \ ++ printf ("%d: got wrong results %s, expected %s\n", \ ++ i, buf1, buf2); \ ++ status = 1; \ ++ } \ ++ } \ ++ \ ++ return status; \ ++} + ++GEN_TEST_STRTOD_FOREACH (TEST_STRTOD) + + static int + do_test (void) +@@ -27,29 +81,7 @@ do_test (void) + return 1; + } + +- int status = 0; +- +- for (int i = 0; i < NTESTS; ++i) +- { +- char *ep; +- double r = __strtod_internal (tests[i].in, &ep, 1); +- +- if (strcmp (ep, tests[i].out) != 0) +- { +- printf ("%d: got rest string \"%s\", expected \"%s\"\n", +- i, ep, tests[i].out); +- status = 1; +- } +- +- if (r != tests[i].expected) +- { +- printf ("%d: got wrong results %g, expected %g\n", +- i, r, tests[i].expected); +- status = 1; +- } +- } +- +- return status; ++ return STRTOD_TEST_FOREACH (test_strto); + } + + #define TEST_FUNCTION do_test () +diff --git a/stdlib/tst-strtod5i.c b/stdlib/tst-strtod5i.c +index ba3e78d5f2933586..0ddae2b94765de39 100644 +--- a/stdlib/tst-strtod5i.c ++++ b/stdlib/tst-strtod5i.c +@@ -16,52 +16,112 @@ + License along with the GNU C Library; if not, see + . */ + ++/* Defining _LIBC_TEST ensures long double math functions are ++ declared in the headers. */ ++#define _LIBC_TEST 1 + #include + #include + #include + #include + #include + ++#include "tst-strtod.h" ++ ++/* This tests internal interfaces, which are only defined for types ++ with distinct ABIs, so disable testing for types without distinct ++ ABIs. */ ++#undef IF_FLOAT32 ++#define IF_FLOAT32(x) ++#undef IF_FLOAT64 ++#define IF_FLOAT64(x) ++#undef IF_FLOAT32X ++#define IF_FLOAT32X(x) ++#undef IF_FLOAT64X ++#define IF_FLOAT64X(x) ++#if !__HAVE_DISTINCT_FLOAT128 ++# undef IF_FLOAT128 ++# define IF_FLOAT128(x) ++#endif ++ + #define NNBSP "\xe2\x80\xaf" + +-static const struct +-{ +- const char *in; +- int group; +- double expected; +-} tests[] = +- { +- { "0", 0, 0.0 }, +- { "000", 0, 0.0 }, +- { "-0", 0, -0.0 }, +- { "-000", 0, -0.0 }, +- { "0,", 0, 0.0 }, +- { "-0,", 0, -0.0 }, +- { "0,0", 0, 0.0 }, +- { "-0,0", 0, -0.0 }, +- { "0e-10", 0, 0.0 }, +- { "-0e-10", 0, -0.0 }, +- { "0,e-10", 0, 0.0 }, +- { "-0,e-10", 0, -0.0 }, +- { "0,0e-10", 0, 0.0 }, +- { "-0,0e-10", 0, -0.0 }, +- { "0e-1000000", 0, 0.0 }, +- { "-0e-1000000", 0, -0.0 }, +- { "0,0e-1000000", 0, 0.0 }, +- { "-0,0e-1000000", 0, -0.0 }, +- { "0", 1, 0.0 }, +- { "000", 1, 0.0 }, +- { "-0", 1, -0.0 }, +- { "-000", 1, -0.0 }, +- { "0e-10", 1, 0.0 }, +- { "-0e-10", 1, -0.0 }, +- { "0e-1000000", 1, 0.0 }, +- { "-0e-1000000", 1, -0.0 }, +- { "000"NNBSP"000"NNBSP"000", 1, 0.0 }, +- { "-000"NNBSP"000"NNBSP"000", 1, -0.0 } +- }; +-#define NTESTS (sizeof (tests) / sizeof (tests[0])) ++#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++static const struct \ ++{ \ ++ const char *in; \ ++ int group; \ ++ FTYPE expected; \ ++} tests_strto ## FSUF[] = \ ++ { \ ++ { "0", 0, 0.0 ## LSUF }, \ ++ { "000", 0, 0.0 ## LSUF }, \ ++ { "-0", 0, -0.0 ## LSUF }, \ ++ { "-000", 0, -0.0 ## LSUF }, \ ++ { "0,", 0, 0.0 ## LSUF }, \ ++ { "-0,", 0, -0.0 ## LSUF }, \ ++ { "0,0", 0, 0.0 ## LSUF }, \ ++ { "-0,0", 0, -0.0 ## LSUF }, \ ++ { "0e-10", 0, 0.0 ## LSUF }, \ ++ { "-0e-10", 0, -0.0 ## LSUF }, \ ++ { "0,e-10", 0, 0.0 ## LSUF }, \ ++ { "-0,e-10", 0, -0.0 ## LSUF }, \ ++ { "0,0e-10", 0, 0.0 ## LSUF }, \ ++ { "-0,0e-10", 0, -0.0 ## LSUF }, \ ++ { "0e-1000000", 0, 0.0 ## LSUF }, \ ++ { "-0e-1000000", 0, -0.0 ## LSUF }, \ ++ { "0,0e-1000000", 0, 0.0 ## LSUF }, \ ++ { "-0,0e-1000000", 0, -0.0 ## LSUF }, \ ++ { "0", 1, 0.0 ## LSUF }, \ ++ { "000", 1, 0.0 ## LSUF }, \ ++ { "-0", 1, -0.0 ## LSUF }, \ ++ { "-000", 1, -0.0 ## LSUF }, \ ++ { "0e-10", 1, 0.0 ## LSUF }, \ ++ { "-0e-10", 1, -0.0 ## LSUF }, \ ++ { "0e-1000000", 1, 0.0 ## LSUF }, \ ++ { "-0e-1000000", 1, -0.0 ## LSUF }, \ ++ { "000"NNBSP"000"NNBSP"000", 1, 0.0 ## LSUF }, \ ++ { "-000"NNBSP"000"NNBSP"000", 1, -0.0 ## LSUF } \ ++ }; \ ++ \ ++static int \ ++test_strto ## FSUF (void) \ ++{ \ ++ int status = 0; \ ++ \ ++ for (int i = 0; \ ++ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \ ++ ++i) \ ++ { \ ++ char *ep; \ ++ FTYPE r = __strto ## FSUF ## _internal (tests_strto ## FSUF[i].in, \ ++ &ep, \ ++ tests_strto ## FSUF[i].group); \ ++ \ ++ if (*ep != '\0') \ ++ { \ ++ printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep); \ ++ status = 1; \ ++ } \ ++ \ ++ if (r != tests_strto ## FSUF[i].expected \ ++ || (copysign ## CSUF (10.0 ## LSUF, r) \ ++ != copysign ## CSUF (10.0 ## LSUF, \ ++ tests_strto ## FSUF[i].expected))) \ ++ { \ ++ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \ ++ FTOSTR (buf1, sizeof (buf1), "%g", r); \ ++ FTOSTR (buf2, sizeof (buf2), "%g", \ ++ tests_strto ## FSUF[i].expected); \ ++ printf ("%d: got wrong results %s, expected %s\n", \ ++ i, buf1, buf2); \ ++ status = 1; \ ++ } \ ++ } \ ++ \ ++ return status; \ ++} + ++GEN_TEST_STRTOD_FOREACH (TEST_STRTOD) + + static int + do_test (void) +@@ -72,29 +132,7 @@ do_test (void) + return 1; + } + +- int status = 0; +- +- for (int i = 0; i < NTESTS; ++i) +- { +- char *ep; +- double r = __strtod_internal (tests[i].in, &ep, tests[i].group); +- +- if (*ep != '\0') +- { +- printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep); +- status = 1; +- } +- +- if (r != tests[i].expected +- || copysign (10.0, r) != copysign (10.0, tests[i].expected)) +- { +- printf ("%d: got wrong results %g, expected %g\n", +- i, r, tests[i].expected); +- status = 1; +- } +- } +- +- return status; ++ return STRTOD_TEST_FOREACH (test_strto); + } + + #include diff --git a/SOURCES/glibc-RHEL-46739-5.patch b/SOURCES/glibc-RHEL-46739-5.patch new file mode 100644 index 0000000..2d193e8 --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-5.patch @@ -0,0 +1,140 @@ +commit be77d5ae417236883c02d3d67c0716e3f669fa41 +Author: Joseph Myers +Date: Wed Sep 4 13:20:18 2024 +0000 + + Improve NaN payload testing + + There are two separate sets of tests of NaN payloads in glibc: + + * libm-test-{get,set}payload* verify that getpayload, setpayload, + setpayloadsig and __builtin_nan functions are consistent in their + payload handling. + + * test-nan-payload verifies that strtod-family functions and the + not-built-in nan functions are consistent in their payload handling. + + Nothing, however, connects the two sets of functions (i.e., verifies + that strtod / nan are consistent with getpayload / setpayload / + __builtin_nan). + + Improve test-nan-payload to check actual payload value with getpayload + rather than just verifying that the strtod and nan functions produce + the same NaN. Also check that the NaNs produced aren't signaling and + extend the tests to cover _FloatN / _FloatNx. + + Tested for x86_64. + +diff --git a/math/test-nan-payload.c b/math/test-nan-payload.c +index 88fd727e63b2fda2..0ee5432d40a3f997 100644 +--- a/math/test-nan-payload.c ++++ b/math/test-nan-payload.c +@@ -16,6 +16,8 @@ + License along with the GNU C Library; if not, see + . */ + ++#define _LIBC_TEST 1 ++#define __STDC_WANT_IEC_60559_TYPES_EXT__ + #include + #include + #include +@@ -31,7 +33,7 @@ + #define CHECK_IS_NAN(TYPE, A) \ + do \ + { \ +- if (isnan (A)) \ ++ if (isnan (A) && !issignaling (A)) \ + puts ("PASS: " #TYPE " " #A); \ + else \ + { \ +@@ -41,6 +43,19 @@ + } \ + while (0) + ++#define CHECK_PAYLOAD(TYPE, FUNC, A, P) \ ++ do \ ++ { \ ++ if (FUNC (&(A)) == (P)) \ ++ puts ("PASS: " #TYPE " payload " #A); \ ++ else \ ++ { \ ++ puts ("FAIL: " #TYPE " payload " #A); \ ++ result = 1; \ ++ } \ ++ } \ ++ while (0) ++ + #define CHECK_SAME_NAN(TYPE, A, B) \ + do \ + { \ +@@ -71,7 +86,7 @@ + bits. */ + #define CAN_TEST_EQ(MANT_DIG) ((MANT_DIG) != 64 && (MANT_DIG) != 106) + +-#define RUN_TESTS(TYPE, SFUNC, FUNC, MANT_DIG) \ ++#define RUN_TESTS(TYPE, SFUNC, FUNC, PLFUNC, MANT_DIG) \ + do \ + { \ + TYPE n123 = WRAP_NAN (FUNC, "123"); \ +@@ -82,6 +97,10 @@ + CHECK_IS_NAN (TYPE, n456); \ + TYPE s456 = WRAP_STRTO (SFUNC, "NAN(456)"); \ + CHECK_IS_NAN (TYPE, s456); \ ++ TYPE nh123 = WRAP_NAN (FUNC, "0x123"); \ ++ CHECK_IS_NAN (TYPE, nh123); \ ++ TYPE sh123 = WRAP_STRTO (SFUNC, "NAN(0x123)"); \ ++ CHECK_IS_NAN (TYPE, sh123); \ + TYPE n123x = WRAP_NAN (FUNC, "123)"); \ + CHECK_IS_NAN (TYPE, n123x); \ + TYPE nemp = WRAP_NAN (FUNC, ""); \ +@@ -92,8 +111,16 @@ + CHECK_IS_NAN (TYPE, sx); \ + if (CAN_TEST_EQ (MANT_DIG)) \ + CHECK_SAME_NAN (TYPE, n123, s123); \ ++ CHECK_PAYLOAD (TYPE, PLFUNC, n123, 123); \ ++ CHECK_PAYLOAD (TYPE, PLFUNC, s123, 123); \ + if (CAN_TEST_EQ (MANT_DIG)) \ + CHECK_SAME_NAN (TYPE, n456, s456); \ ++ CHECK_PAYLOAD (TYPE, PLFUNC, n456, 456); \ ++ CHECK_PAYLOAD (TYPE, PLFUNC, s456, 456); \ ++ if (CAN_TEST_EQ (MANT_DIG)) \ ++ CHECK_SAME_NAN (TYPE, nh123, sh123); \ ++ CHECK_PAYLOAD (TYPE, PLFUNC, nh123, 0x123); \ ++ CHECK_PAYLOAD (TYPE, PLFUNC, sh123, 0x123); \ + if (CAN_TEST_EQ (MANT_DIG)) \ + CHECK_SAME_NAN (TYPE, nemp, semp); \ + if (CAN_TEST_EQ (MANT_DIG)) \ +@@ -110,9 +137,31 @@ static int + do_test (void) + { + int result = 0; +- RUN_TESTS (float, strtof, nanf, FLT_MANT_DIG); +- RUN_TESTS (double, strtod, nan, DBL_MANT_DIG); +- RUN_TESTS (long double, strtold, nanl, LDBL_MANT_DIG); ++ RUN_TESTS (float, strtof, nanf, getpayloadf, FLT_MANT_DIG); ++ RUN_TESTS (double, strtod, nan, getpayload, DBL_MANT_DIG); ++ RUN_TESTS (long double, strtold, nanl, getpayloadl, LDBL_MANT_DIG); ++#if __HAVE_FLOAT16 ++ RUN_TESTS (_Float16, strtof16, nanf16, getpayloadf16, FLT16_MANT_DIG); ++#endif ++#if __HAVE_FLOAT32 ++ RUN_TESTS (_Float32, strtof32, nanf32, getpayloadf32, FLT32_MANT_DIG); ++#endif ++#if __HAVE_FLOAT64 ++ RUN_TESTS (_Float64, strtof64, nanf64, getpayloadf64, FLT64_MANT_DIG); ++#endif ++#if __HAVE_FLOAT128 ++ RUN_TESTS (_Float128, strtof128, nanf128, getpayloadf128, FLT128_MANT_DIG); ++#endif ++#if __HAVE_FLOAT32X ++ RUN_TESTS (_Float32x, strtof32x, nanf32x, getpayloadf32x, FLT32X_MANT_DIG); ++#endif ++#if __HAVE_FLOAT64X ++ RUN_TESTS (_Float64x, strtof64x, nanf64x, getpayloadf64x, FLT64X_MANT_DIG); ++#endif ++#if __HAVE_FLOAT128X ++ RUN_TESTS (_Float128x, strtof128x, nanf128x, getpayloadf128x, ++ FLT128X_MANT_DIG); ++#endif + return result; + } + diff --git a/SOURCES/glibc-RHEL-46739-6.patch b/SOURCES/glibc-RHEL-46739-6.patch new file mode 100644 index 0000000..83514c8 --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-6.patch @@ -0,0 +1,147 @@ +commit 64f62c47e9c350f353336f2df6714e1d48ec50d8 +Author: Joseph Myers +Date: Wed Sep 4 13:21:23 2024 +0000 + + Do not set errno for overflowing NaN payload in strtod/nan (bug 32045) + + As reported in bug 32045, it's incorrect for strtod/nan functions to + set errno based on overflowing payload (strtod should only set errno + for overflow / underflow of its actual result, and potentially if + nothing in the string can be parsed as a number at all; nan should be + a pure function that never sets it). Save and restore errno around + the internal strtoull call and add associated test coverage. + + Tested for x86_64. + +diff --git a/math/Makefile b/math/Makefile +index 2edb044d9d590de1..a3c44def8acae93b 100644 +--- a/math/Makefile ++++ b/math/Makefile +@@ -452,6 +452,7 @@ CFLAGS-test-flt-eval-method.c += -fexcess-precision=standard + CFLAGS-test-fe-snans-always-signal.c += -fsignaling-nans + + CFLAGS-test-nan-const.c += -fno-builtin ++CFLAGS-test-nan-payload.c += -fno-builtin + + include ../Rules + +diff --git a/math/test-nan-payload.c b/math/test-nan-payload.c +index 0ee5432d40a3f997..5f54bf26b6163816 100644 +--- a/math/test-nan-payload.c ++++ b/math/test-nan-payload.c +@@ -18,6 +18,7 @@ + + #define _LIBC_TEST 1 + #define __STDC_WANT_IEC_60559_TYPES_EXT__ ++#include + #include + #include + #include +@@ -82,6 +83,26 @@ + } \ + while (0) + ++#define CLEAR_ERRNO \ ++ do \ ++ { \ ++ errno = 12345; \ ++ } \ ++ while (0) ++ ++#define CHECK_ERRNO(TYPE, A) \ ++ do \ ++ { \ ++ if (errno == 12345) \ ++ puts ("PASS: " #TYPE " " #A " errno"); \ ++ else \ ++ { \ ++ puts ("FAIL: " #TYPE " " #A " errno"); \ ++ result = 1; \ ++ } \ ++ } \ ++ while (0) ++ + /* Cannot test payloads by memcmp for formats where NaNs have padding + bits. */ + #define CAN_TEST_EQ(MANT_DIG) ((MANT_DIG) != 64 && (MANT_DIG) != 106) +@@ -89,26 +110,58 @@ + #define RUN_TESTS(TYPE, SFUNC, FUNC, PLFUNC, MANT_DIG) \ + do \ + { \ ++ CLEAR_ERRNO; \ + TYPE n123 = WRAP_NAN (FUNC, "123"); \ ++ CHECK_ERRNO (TYPE, n123); \ + CHECK_IS_NAN (TYPE, n123); \ ++ CLEAR_ERRNO; \ + TYPE s123 = WRAP_STRTO (SFUNC, "NAN(123)"); \ ++ CHECK_ERRNO (TYPE, s123); \ + CHECK_IS_NAN (TYPE, s123); \ ++ CLEAR_ERRNO; \ + TYPE n456 = WRAP_NAN (FUNC, "456"); \ ++ CHECK_ERRNO (TYPE, n456); \ + CHECK_IS_NAN (TYPE, n456); \ ++ CLEAR_ERRNO; \ + TYPE s456 = WRAP_STRTO (SFUNC, "NAN(456)"); \ ++ CHECK_ERRNO (TYPE, s456); \ + CHECK_IS_NAN (TYPE, s456); \ ++ CLEAR_ERRNO; \ + TYPE nh123 = WRAP_NAN (FUNC, "0x123"); \ ++ CHECK_ERRNO (TYPE, nh123); \ + CHECK_IS_NAN (TYPE, nh123); \ ++ CLEAR_ERRNO; \ + TYPE sh123 = WRAP_STRTO (SFUNC, "NAN(0x123)"); \ ++ CHECK_ERRNO (TYPE, sh123); \ + CHECK_IS_NAN (TYPE, sh123); \ ++ CLEAR_ERRNO; \ + TYPE n123x = WRAP_NAN (FUNC, "123)"); \ ++ CHECK_ERRNO (TYPE, n123x); \ + CHECK_IS_NAN (TYPE, n123x); \ ++ CLEAR_ERRNO; \ + TYPE nemp = WRAP_NAN (FUNC, ""); \ ++ CHECK_ERRNO (TYPE, nemp); \ + CHECK_IS_NAN (TYPE, nemp); \ ++ CLEAR_ERRNO; \ + TYPE semp = WRAP_STRTO (SFUNC, "NAN()"); \ ++ CHECK_ERRNO (TYPE, semp); \ + CHECK_IS_NAN (TYPE, semp); \ ++ CLEAR_ERRNO; \ + TYPE sx = WRAP_STRTO (SFUNC, "NAN"); \ ++ CHECK_ERRNO (TYPE, sx); \ + CHECK_IS_NAN (TYPE, sx); \ ++ CLEAR_ERRNO; \ ++ TYPE novf = WRAP_NAN (FUNC, "9999999999" \ ++ "99999999999999999999" \ ++ "9999999999"); \ ++ CHECK_ERRNO (TYPE, novf); \ ++ CHECK_IS_NAN (TYPE, novf); \ ++ CLEAR_ERRNO; \ ++ TYPE sovf = WRAP_STRTO (SFUNC, "NAN(9999999999" \ ++ "99999999999999999999" \ ++ "9999999999)"); \ ++ CHECK_ERRNO (TYPE, sovf); \ ++ CHECK_IS_NAN (TYPE, sovf); \ + if (CAN_TEST_EQ (MANT_DIG)) \ + CHECK_SAME_NAN (TYPE, n123, s123); \ + CHECK_PAYLOAD (TYPE, PLFUNC, n123, 123); \ +diff --git a/stdlib/strtod_nan_main.c b/stdlib/strtod_nan_main.c +index ba81355d1c0dbeda..8d7d43818bdba79a 100644 +--- a/stdlib/strtod_nan_main.c ++++ b/stdlib/strtod_nan_main.c +@@ -16,6 +16,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #include + #include +@@ -50,7 +51,9 @@ STRTOD_NAN (const STRING_TYPE *str, STRING_TYPE **endptr, STRING_TYPE endc) + STRING_TYPE *endp; + unsigned long long int mant; + ++ int save_errno = errno; + mant = STRTOULL (str, &endp, 0); ++ __set_errno (save_errno); + if (endp == cp) + SET_NAN_PAYLOAD (retval, mant); + diff --git a/SOURCES/glibc-RHEL-46739-7.patch b/SOURCES/glibc-RHEL-46739-7.patch new file mode 100644 index 0000000..a42b32e --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-7.patch @@ -0,0 +1,76 @@ +commit cc3e743fc09ee6fca45767629df9cbcbe1feba82 +Author: Florian Weimer +Date: Thu Sep 5 21:18:23 2024 +0200 + + powerpc64le: Build new strtod tests with long double ABI flags (bug 32145) + + This fixes several test failures: + + =====FAIL: stdlib/tst-strtod1i.out===== + Locale tests + all OK + Locale tests + all OK + Locale tests + strtold("1,5") returns -6,38643e+367 and not 1,5 + strtold("1.5") returns 1,5 and not 1 + strtold("1.500") returns 1 and not 1500 + strtold("36.893.488.147.419.103.232") returns 1500 and not 3,68935e+19 + Locale tests + all OK + + =====FAIL: stdlib/tst-strtod3.out===== + 0: got wrong results -2.5937e+4826, expected 0 + + =====FAIL: stdlib/tst-strtod4.out===== + 0: got wrong results -6,38643e+367, expected 0 + 1: got wrong results 0, expected 1e+06 + 2: got wrong results 1e+06, expected 10 + + =====FAIL: stdlib/tst-strtod5i.out===== + 0: got wrong results -6,38643e+367, expected 0 + 2: got wrong results 0, expected -0 + 4: got wrong results -0, expected 0 + 5: got wrong results 0, expected -0 + 6: got wrong results -0, expected 0 + 7: got wrong results 0, expected -0 + 8: got wrong results -0, expected 0 + 9: got wrong results 0, expected -0 + 10: got wrong results -0, expected 0 + 11: got wrong results 0, expected -0 + 12: got wrong results -0, expected 0 + 13: got wrong results 0, expected -0 + 14: got wrong results -0, expected 0 + 15: got wrong results 0, expected -0 + 16: got wrong results -0, expected 0 + 17: got wrong results 0, expected -0 + 18: got wrong results -0, expected 0 + 20: got wrong results 0, expected -0 + 22: got wrong results -0, expected 0 + 23: got wrong results 0, expected -0 + 24: got wrong results -0, expected 0 + 25: got wrong results 0, expected -0 + 26: got wrong results -0, expected 0 + 27: got wrong results 0, expected -0 + + Fixes commit 3fc063dee01da4f80920a14b7db637c8501d6fd4 + ("Make __strtod_internal tests type-generic"). + + Suggested-by: Joseph Myers + Reviewed-by: Carlos O'Donell + +diff --git a/sysdeps/powerpc/powerpc64/le/Makefile b/sysdeps/powerpc/powerpc64/le/Makefile +index 7c036b45fcc0d7f9..8bc71fd18d3f1edc 100644 +--- a/sysdeps/powerpc/powerpc64/le/Makefile ++++ b/sysdeps/powerpc/powerpc64/le/Makefile +@@ -128,6 +128,10 @@ CFLAGS-tst-strtod-round.c += $(type-float128-CFLAGS) + CFLAGS-tst-wcstod-round.c += $(type-float128-CFLAGS) + CFLAGS-tst-strtod-nan-locale.c += $(type-float128-CFLAGS) + CFLAGS-tst-wcstod-nan-locale.c += $(type-float128-CFLAGS) ++CFLAGS-tst-strtod1i.c += $(type-float128-CFLAGS) ++CFLAGS-tst-strtod3.c += $(type-float128-CFLAGS) ++CFLAGS-tst-strtod4.c += $(type-float128-CFLAGS) ++CFLAGS-tst-strtod5i.c += $(type-float128-CFLAGS) + CFLAGS-tst-strtod6.c += $(type-float128-CFLAGS) + CFLAGS-tst-strfrom.c += $(type-float128-CFLAGS) + CFLAGS-tst-strfrom-locale.c += $(type-float128-CFLAGS) diff --git a/SOURCES/glibc-RHEL-46739-8.patch b/SOURCES/glibc-RHEL-46739-8.patch new file mode 100644 index 0000000..4f89bfa --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-8.patch @@ -0,0 +1,254 @@ +commit 8de031bcb9adfa736c0caed2c79d10947b8d8f48 +Author: Joseph Myers +Date: Fri Sep 20 23:23:13 2024 +0000 + + Make tst-strtod2 and tst-strtod5 type-generic + + Some of the strtod tests use type-generic machinery in tst-strtod.h to + test the strto* functions for all floating types, while others only + test double even when the tests are in fact meaningful for all + floating types. + + Convert tst-strtod2 and tst-strtod5 to use the type-generic machinery + so they test all floating types. I haven't tried to convert them to + use newer test interfaces in other ways, just made the changes + necessary to use the type-generic machinery. + + Tested for x86_64. + +diff --git a/stdlib/tst-strtod2.c b/stdlib/tst-strtod2.c +index a7df82ebbde14c5f..2cb0953fa911efd0 100644 +--- a/stdlib/tst-strtod2.c ++++ b/stdlib/tst-strtod2.c +@@ -1,43 +1,61 @@ + #include + #include + +-struct test +-{ +- const char *str; +- double result; +- size_t offset; +-} tests[] = +-{ +- { "0xy", 0.0, 1 }, +- { "0x.y", 0.0, 1 }, +- { "0x0.y", 0.0, 4 }, +- { "0x.0y", 0.0, 4 }, +- { ".y", 0.0, 0 }, +- { "0.y", 0.0, 2 }, +- { ".0y", 0.0, 2 } +-}; ++#include "tst-strtod.h" ++ ++#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++struct test_strto ## FSUF \ ++{ \ ++ const char *str; \ ++ FTYPE result; \ ++ size_t offset; \ ++} tests_strto ## FSUF[] = \ ++{ \ ++ { "0xy", 0.0 ## LSUF, 1 }, \ ++ { "0x.y", 0.0 ## LSUF, 1 }, \ ++ { "0x0.y", 0.0 ## LSUF, 4 }, \ ++ { "0x.0y", 0.0 ## LSUF, 4 }, \ ++ { ".y", 0.0 ## LSUF, 0 }, \ ++ { "0.y", 0.0 ## LSUF, 2 }, \ ++ { ".0y", 0.0 ## LSUF, 2 } \ ++}; \ ++ \ ++static int \ ++test_strto ## FSUF (void) \ ++{ \ ++ int status = 0; \ ++ for (size_t i = 0; \ ++ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \ ++ ++i) \ ++ { \ ++ char *ep; \ ++ FTYPE r = strto ## FSUF (tests_strto ## FSUF[i].str, &ep); \ ++ if (r != tests_strto ## FSUF[i].result) \ ++ { \ ++ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \ ++ FTOSTR (buf1, sizeof (buf1), "%g", r); \ ++ FTOSTR (buf2, sizeof (buf2), "%g", tests_strto ## FSUF[i].result); \ ++ printf ("test %zu r = %s, expect %s\n", i, buf1, buf2); \ ++ status = 1; \ ++ } \ ++ if (ep != tests_strto ## FSUF[i].str + tests_strto ## FSUF[i].offset) \ ++ { \ ++ printf ("test %zu strto" #FSUF \ ++ " parsed %tu characters, expected %zu\n", \ ++ i, ep - tests_strto ## FSUF[i].str, \ ++ tests_strto ## FSUF[i].offset); \ ++ status = 1; \ ++ } \ ++ } \ ++ return status; \ ++} ++ ++GEN_TEST_STRTOD_FOREACH (TEST_STRTOD) + + static int + do_test (void) + { +- int status = 0; +- for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); ++i) +- { +- char *ep; +- double r = strtod (tests[i].str, &ep); +- if (r != tests[i].result) +- { +- printf ("test %zu r = %g, expect %g\n", i, r, tests[i].result); +- status = 1; +- } +- if (ep != tests[i].str + tests[i].offset) +- { +- printf ("test %zu strtod parsed %tu characters, expected %zu\n", +- i, ep - tests[i].str, tests[i].offset); +- status = 1; +- } +- } +- return status; ++ return STRTOD_TEST_FOREACH (test_strto); + } + + #define TEST_FUNCTION do_test () +diff --git a/stdlib/tst-strtod5.c b/stdlib/tst-strtod5.c +index be091ec1b9f87394..005b3480a76955da 100644 +--- a/stdlib/tst-strtod5.c ++++ b/stdlib/tst-strtod5.c +@@ -22,35 +22,75 @@ + #include + #include + ++#include "tst-strtod.h" ++ + #define NBSP "\xc2\xa0" + +-static const struct +-{ +- const char *in; +- double expected; +-} tests[] = +- { +- { "0", 0.0 }, +- { "000", 0.0 }, +- { "-0", -0.0 }, +- { "-000", -0.0 }, +- { "0,", 0.0 }, +- { "-0,", -0.0 }, +- { "0,0", 0.0 }, +- { "-0,0", -0.0 }, +- { "0e-10", 0.0 }, +- { "-0e-10", -0.0 }, +- { "0,e-10", 0.0 }, +- { "-0,e-10", -0.0 }, +- { "0,0e-10", 0.0 }, +- { "-0,0e-10", -0.0 }, +- { "0e-1000000", 0.0 }, +- { "-0e-1000000", -0.0 }, +- { "0,0e-1000000", 0.0 }, +- { "-0,0e-1000000", -0.0 }, +- }; +-#define NTESTS (sizeof (tests) / sizeof (tests[0])) ++#define TEST_STRTOD(FSUF, FTYPE, FTOSTR, LSUF, CSUF) \ ++static const struct \ ++{ \ ++ const char *in; \ ++ FTYPE expected; \ ++} tests_strto ## FSUF[] = \ ++ { \ ++ { "0", 0.0 ## LSUF }, \ ++ { "000", 0.0 ## LSUF }, \ ++ { "-0", -0.0 ## LSUF }, \ ++ { "-000", -0.0 ## LSUF }, \ ++ { "0,", 0.0 ## LSUF }, \ ++ { "-0,", -0.0 ## LSUF }, \ ++ { "0,0", 0.0 ## LSUF }, \ ++ { "-0,0", -0.0 ## LSUF }, \ ++ { "0e-10", 0.0 ## LSUF }, \ ++ { "-0e-10", -0.0 ## LSUF }, \ ++ { "0,e-10", 0.0 ## LSUF }, \ ++ { "-0,e-10", -0.0 ## LSUF }, \ ++ { "0,0e-10", 0.0 ## LSUF }, \ ++ { "-0,0e-10", -0.0 ## LSUF }, \ ++ { "0e-1000000", 0.0 ## LSUF }, \ ++ { "-0e-1000000", -0.0 ## LSUF }, \ ++ { "0,0e-1000000", 0.0 ## LSUF }, \ ++ { "-0,0e-1000000", -0.0 ## LSUF }, \ ++ }; \ ++ \ ++ \ ++static int \ ++test_strto ## FSUF (void) \ ++{ \ ++ int status = 0; \ ++ \ ++ for (int i = 0; \ ++ i < sizeof (tests_strto ## FSUF) / sizeof (tests_strto ## FSUF[0]); \ ++ ++i) \ ++ { \ ++ char *ep; \ ++ FTYPE r = strto ## FSUF (tests_strto ## FSUF[i].in, &ep); \ ++ \ ++ if (*ep != '\0') \ ++ { \ ++ printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep); \ ++ status = 1; \ ++ } \ ++ \ ++ if (r != tests_strto ## FSUF[i].expected \ ++ || (copysign ## CSUF (10.0 ## LSUF, r) \ ++ != copysign ## CSUF (10.0 ## LSUF, \ ++ tests_strto ## FSUF[i].expected))) \ ++ { \ ++ char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \ ++ FTOSTR (buf1, sizeof (buf1), "%g", r); \ ++ FTOSTR (buf2, sizeof (buf2), "%g", \ ++ tests_strto ## FSUF[i].expected); \ ++ printf ("%d: got wrong results %s, expected %s\n", \ ++ i, buf1, buf2); \ ++ status = 1; \ ++ } \ ++ } \ ++ \ ++ return status; \ ++} + ++GEN_TEST_STRTOD_FOREACH (TEST_STRTOD) + + static int + do_test (void) +@@ -61,29 +101,7 @@ do_test (void) + return 1; + } + +- int status = 0; +- +- for (int i = 0; i < NTESTS; ++i) +- { +- char *ep; +- double r = strtod (tests[i].in, &ep); +- +- if (*ep != '\0') +- { +- printf ("%d: got rest string \"%s\", expected \"\"\n", i, ep); +- status = 1; +- } +- +- if (r != tests[i].expected +- || copysign (10.0, r) != copysign (10.0, tests[i].expected)) +- { +- printf ("%d: got wrong results %g, expected %g\n", +- i, r, tests[i].expected); +- status = 1; +- } +- } +- +- return status; ++ return STRTOD_TEST_FOREACH (test_strto); + } + + #include diff --git a/SOURCES/glibc-RHEL-46739-9.patch b/SOURCES/glibc-RHEL-46739-9.patch new file mode 100644 index 0000000..ec6cb19 --- /dev/null +++ b/SOURCES/glibc-RHEL-46739-9.patch @@ -0,0 +1,79 @@ +commit b5d3737b305525315e0c7c93ca49eadc868eabd5 +Author: Joseph Myers +Date: Fri Sep 20 23:24:02 2024 +0000 + + Add more tests of strtod end pointer + + Although there are some tests in tst-strtod2 and tst-strtod3 for the + end pointer provided by strtod when it doesn't parse the whole string, + they aren't very thorough. Add tests of more such cases to + tst-strtod2. + + Tested for x86_64. + +diff --git a/stdlib/tst-strtod2.c b/stdlib/tst-strtod2.c +index 2cb0953fa911efd0..c84bd792c1a3f511 100644 +--- a/stdlib/tst-strtod2.c ++++ b/stdlib/tst-strtod2.c +@@ -1,3 +1,4 @@ ++#include + #include + #include + +@@ -17,10 +18,46 @@ struct test_strto ## FSUF \ + { "0x.0y", 0.0 ## LSUF, 4 }, \ + { ".y", 0.0 ## LSUF, 0 }, \ + { "0.y", 0.0 ## LSUF, 2 }, \ +- { ".0y", 0.0 ## LSUF, 2 } \ ++ { ".0y", 0.0 ## LSUF, 2 }, \ ++ { "1.0e", 1.0 ## LSUF, 3 }, \ ++ { "1.0e+", 1.0 ## LSUF, 3 }, \ ++ { "1.0e-", 1.0 ## LSUF, 3 }, \ ++ { "1.0ex", 1.0 ## LSUF, 3 }, \ ++ { "1.0e+x", 1.0 ## LSUF, 3 }, \ ++ { "1.0e-x", 1.0 ## LSUF, 3 }, \ ++ { "0x1p", 1.0 ## LSUF, 3 }, \ ++ { "0x1p+", 1.0 ## LSUF, 3 }, \ ++ { "0x1p-", 1.0 ## LSUF, 3 }, \ ++ { "0x1px", 1.0 ## LSUF, 3 }, \ ++ { "0x1p+x", 1.0 ## LSUF, 3 }, \ ++ { "0x1p-x", 1.0 ## LSUF, 3 }, \ ++ { "INFx", INFINITY, 3 }, \ ++ { "infx", INFINITY, 3 }, \ ++ { "INFINITx", INFINITY, 3 }, \ ++ { "infinitx", INFINITY, 3 }, \ ++ { "INFINITYY", INFINITY, 8 }, \ ++ { "infinityy", INFINITY, 8 }, \ ++ { "NANx", NAN, 3 }, \ ++ { "nanx", NAN, 3 }, \ ++ { "NAN(", NAN, 3 }, \ ++ { "nan(", NAN, 3 }, \ ++ { "NAN(x", NAN, 3 }, \ ++ { "nan(x", NAN, 3 }, \ ++ { "NAN(x)y", NAN, 6 }, \ ++ { "nan(x)y", NAN, 6 }, \ ++ { "NAN(*)y", NAN, 3 }, \ ++ { "nan(*)y", NAN, 3 } \ + }; \ + \ + static int \ ++compare_strto ## FSUF (FTYPE x, FTYPE y) \ ++{ \ ++ if (isnan (x) && isnan (y)) \ ++ return 1; \ ++ return x == y; \ ++} \ ++ \ ++static int \ + test_strto ## FSUF (void) \ + { \ + int status = 0; \ +@@ -30,7 +67,7 @@ test_strto ## FSUF (void) \ + { \ + char *ep; \ + FTYPE r = strto ## FSUF (tests_strto ## FSUF[i].str, &ep); \ +- if (r != tests_strto ## FSUF[i].result) \ ++ if (!compare_strto ## FSUF (r, tests_strto ## FSUF[i].result)) \ + { \ + char buf1[FSTRLENMAX], buf2[FSTRLENMAX]; \ + FTOSTR (buf1, sizeof (buf1), "%g", r); \ diff --git a/SOURCES/glibc-RHEL-46740.patch b/SOURCES/glibc-RHEL-46740.patch new file mode 100644 index 0000000..af9daae --- /dev/null +++ b/SOURCES/glibc-RHEL-46740.patch @@ -0,0 +1,58 @@ +commit dcad78507433a9a64b8b548b19e110933f8d939a +Author: DJ Delorie +Date: Thu Oct 10 17:16:35 2024 -0400 + + manual: Document stdio.h functions that may be macros + + Glibc has two gnu-extension functions that are implemented as + macros but not documented as such: fread_unlocked and + fwrite_unlocked. Document them as such. + + Additionally, putc_unlocked and getc_unlocked are documented in + POSIX as possibly being macros. Update the manual to add a warning + about those also, depite glibc not implementing them as macros. + +diff --git a/manual/stdio.texi b/manual/stdio.texi +index 98da13de32f49c7c..01fa2d0ffdbd6f5f 100644 +--- a/manual/stdio.texi ++++ b/manual/stdio.texi +@@ -929,6 +929,9 @@ Therefore, @var{stream} should never be an expression with side-effects. + @safety{@prelim{}@mtsafe{@mtsrace{:stream}}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} + The @code{putc_unlocked} function is equivalent to the @code{putc} + function except that it does not implicitly lock the stream. ++Like @code{putc}, it may be implemented as a macro and may evaluate ++the @var{stream} argument more than once. Therefore, @var{stream} ++should not be an expression with side-effects. + @end deftypefun + + @deftypefun wint_t putwc_unlocked (wchar_t @var{wc}, FILE *@var{stream}) +@@ -1132,6 +1135,9 @@ Therefore, @var{stream} should never be an expression with side-effects. + @safety{@prelim{}@mtsafe{@mtsrace{:stream}}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} + The @code{getc_unlocked} function is equivalent to the @code{getc} + function except that it does not implicitly lock the stream. ++Like @code{getc}, it may be implemented as a macro and may evaluate ++the @var{stream} argument more than once. Therefore, @var{stream} ++should not be an expression with side-effects. + @end deftypefun + + @deftypefun wint_t getwc_unlocked (FILE *@var{stream}) +@@ -1571,6 +1577,9 @@ The @code{fread_unlocked} function is equivalent to the @code{fread} + function except that it does not implicitly lock the stream. + + This function is a GNU extension. ++This function may be implemented as a macro and may evaluate ++@var{stream} more than once. Therefore, @var{stream} should not be an ++expression with side-effects. + @end deftypefun + + @deftypefun size_t fwrite (const void *@var{data}, size_t @var{size}, size_t @var{count}, FILE *@var{stream}) +@@ -1589,6 +1598,9 @@ The @code{fwrite_unlocked} function is equivalent to the @code{fwrite} + function except that it does not implicitly lock the stream. + + This function is a GNU extension. ++This function may be implemented as a macro and may evaluate ++@var{stream} more than once. Therefore, @var{stream} should not be an ++expression with side-effects. + @end deftypefun + + @node Formatted Output diff --git a/SOURCES/glibc-RHEL-46761-1.patch b/SOURCES/glibc-RHEL-46761-1.patch new file mode 100644 index 0000000..b9ad9a0 --- /dev/null +++ b/SOURCES/glibc-RHEL-46761-1.patch @@ -0,0 +1,76 @@ +commit ca6466e8be32369a658035d69542d47603e58a99 +Author: Andreas Schwab +Date: Mon Aug 29 15:05:40 2022 +0200 + + Add test for bug 29530 + + This tests for a bug that was introduced in commit edc1686af0 ("vfprintf: + Reuse work_buffer in group_number") and fixed as a side effect of commit + 6caddd34bd ("Remove most vfprintf width/precision-dependent allocations + (bug 14231, bug 26211)."). + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 826823a68dd36a8a..e3939b112ca2037f 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -221,6 +221,7 @@ tests := \ + tst-getline-enomem \ + tst-gets \ + tst-grouping \ ++ tst-grouping2 \ + tst-long-dbl-fphex \ + tst-obprintf \ + tst-perror \ +@@ -369,6 +370,7 @@ $(objpfx)bug14.out: $(gen-locales) + $(objpfx)scanf13.out: $(gen-locales) + $(objpfx)test-vfprintf.out: $(gen-locales) + $(objpfx)tst-grouping.out: $(gen-locales) ++$(objpfx)tst-grouping2.out: $(gen-locales) + $(objpfx)tst-sprintf.out: $(gen-locales) + $(objpfx)tst-sscanf.out: $(gen-locales) + $(objpfx)tst-swprintf.out: $(gen-locales) +diff --git a/stdio-common/tst-grouping2.c b/stdio-common/tst-grouping2.c +new file mode 100644 +index 0000000000000000..3024c942a60e51bf +--- /dev/null ++++ b/stdio-common/tst-grouping2.c +@@ -0,0 +1,39 @@ ++/* Test printf with grouping and large width (bug 29530) ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ const int field_width = 1000; ++ char buf[field_width + 1]; ++ ++ xsetlocale (LC_NUMERIC, "de_DE.UTF-8"); ++ ++ /* This used to crash in group_number. */ ++ TEST_COMPARE (sprintf (buf, "%'*d", field_width, 1000), field_width); ++ TEST_COMPARE_STRING (buf + field_width - 6, " 1.000"); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46761-2.patch b/SOURCES/glibc-RHEL-46761-2.patch new file mode 100644 index 0000000..4fc62b2 --- /dev/null +++ b/SOURCES/glibc-RHEL-46761-2.patch @@ -0,0 +1,183 @@ +Backport of the test case from this commit: + +commit 0d50f477f47ba637b54fb03ac48d769ec4543e8d +Author: Florian Weimer +Date: Wed Jan 25 08:01:00 2023 +0100 + + stdio-common: Handle -1 buffer size in __sprintf_chk & co (bug 30039) + + This shows up as an assertion failure when sprintf is called with + a specifier like "%.8g" and libquadmath is linked in: + + Fatal glibc error: printf_buffer_as_file.c:31 + (__printf_buffer_as_file_commit): assertion failed: + file->stream._IO_write_ptr <= file->next->write_end + + Fix this by detecting pointer wraparound in __vsprintf_internal + and saturate the addition to the end of the address space instead. + + Reviewed-by: Carlos O'Donell + Tested-by: Carlos O'Donell + +Conflicts: + debug/Makefile + (missing time64 tests downstream) + include/printf_buffer.h + libio/iovsprintf.c + (not included in test-only backport) + +diff --git a/debug/Makefile b/debug/Makefile +index ddae3817aef9afad..563e6249121e8bc9 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -187,6 +187,10 @@ LDFLAGS-tst-backtrace6 = -rdynamic + + CFLAGS-tst-ssp-1.c += -fstack-protector-all + ++# Disable compiler optimizations around vsprintf (the function under test). ++CFLAGS-tst-sprintf-fortify-unchecked.c = \ ++ -fno-builtin-vsprintf -fno-builtin-__vsprintf_chk ++ + tests = backtrace-tst \ + tst-longjmp_chk \ + test-strcpy_chk \ +@@ -199,6 +203,7 @@ tests = backtrace-tst \ + tst-backtrace5 \ + tst-backtrace6 \ + tst-realpath-chk \ ++ tst-sprintf-fortify-unchecked \ + $(tests-all-chk) \ + + ifeq ($(have-ssp),yes) +diff --git a/debug/tst-sprintf-fortify-unchecked.c b/debug/tst-sprintf-fortify-unchecked.c +new file mode 100644 +index 0000000000000000..7c7bd1b5e4fe12e8 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-unchecked.c +@@ -0,0 +1,126 @@ ++/* Tests for fortified sprintf with unknown buffer bounds (bug 30039). ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* This test is not built with _FORTIFY_SOURCE. Instead it calls the ++ appropriate implementation directly. The fortify mode is specified ++ in this variable. */ ++static int fortify_mode; ++ ++/* This does not handle long-double redirects etc., but we test only ++ format strings that stay within the confines of the base ++ implementation. */ ++int __vsprintf_chk (char *s, int flag, size_t slen, const char *format, ++ va_list ap); ++ ++/* Invoke vsprintf or __vsprintf_chk according to fortify_mode. */ ++static int ++my_vsprintf (char *buf, const char *format, va_list ap) ++{ ++ int result; ++ if (fortify_mode == 0) ++ result = vsprintf (buf, format, ap); ++ else ++ /* Call the fortified version with an unspecified length. */ ++ result = __vsprintf_chk (buf, fortify_mode - 1, -1, format, ap); ++ return result; ++} ++ ++/* Run one test, with the specified expected output. */ ++static void __attribute ((format (printf, 2, 3))) ++do_check (const char *expected, const char *format, ...) ++{ ++ va_list ap; ++ va_start (ap, format); ++ ++ char buf_expected[24]; ++ memset (buf_expected, '@', sizeof (buf_expected)); ++ TEST_VERIFY (strlen (expected) < sizeof (buf_expected)); ++ strcpy (buf_expected, expected); ++ ++ char buf[sizeof (buf_expected)]; ++ memset (buf, '@', sizeof (buf)); ++ ++ int ret = my_vsprintf (buf, format, ap); ++ TEST_COMPARE_BLOB (buf_expected, sizeof (buf_expected), buf, sizeof (buf)); ++ TEST_COMPARE (ret, strlen (expected)); ++ ++ va_end (ap); ++} ++ ++/* Run the tests in all fortify modes. */ ++static void ++do_tests (void) ++{ ++ for (fortify_mode = 0; fortify_mode <= 3; ++fortify_mode) ++ { ++ do_check ("0", "%d", 0); ++ do_check ("-2147483648", "%d", -2147483647 - 1); ++ do_check ("-9223372036854775808", "%lld", -9223372036854775807LL - 1); ++ do_check ("", "%s", ""); ++ do_check (" ", "%22s", ""); ++ do_check ("XXXXXXXXXXXXXXXXXXXXXX", "%s", "XXXXXXXXXXXXXXXXXXXXXX"); ++ do_check ("1.125000", "%f", 1.125); ++ do_check ("1.125", "%g", 1.125); ++ do_check ("1.125", "%.8g", 1.125); ++ } ++} ++ ++/* printf callback that falls back to the glibc-supplied ++ implementation. */ ++static int ++dummy_printf_function (FILE *__stream, ++ const struct printf_info *__info, ++ const void *const *__args) ++{ ++ return -2; /* Request fallback. */ ++} ++ ++/* Likewise for the type information. */ ++static int ++dummy_arginfo_function (const struct printf_info *info, ++ size_t n, int *argtypes, int *size) ++{ ++ return -1; /* Request fallback. */ ++} ++ ++static int ++do_test (void) ++{ ++ do_tests (); ++ ++ /* Activate __printf_function_invoke mode. */ ++ register_printf_specifier ('d', dummy_printf_function, ++ dummy_arginfo_function); ++ register_printf_specifier ('g', dummy_printf_function, ++ dummy_arginfo_function); ++ register_printf_specifier ('s', dummy_printf_function, ++ dummy_arginfo_function); ++ ++ /* Rerun the tests with callback functions. */ ++ do_tests (); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46761-3.patch b/SOURCES/glibc-RHEL-46761-3.patch new file mode 100644 index 0000000..2766eb6 --- /dev/null +++ b/SOURCES/glibc-RHEL-46761-3.patch @@ -0,0 +1,102 @@ +Backport of the test case from the upstream commit. Note +that the test fails in the version included here. + +commit c980549cc6a1c03c23cc2fe3e7b0fe626a0364b0 +Author: Carlos O'Donell +Date: Thu Jan 19 12:50:20 2023 +0100 + + Account for grouping in printf width (bug 30068) + + This is a partial fix for mishandling of grouping when formatting + integers. It properly computes the width in the presence of grouping + characters when the width is larger than the number of significant + digits. The precision related issue is documented in bug 23432. + + Co-authored-by: Andreas Schwab + +Conflicts: + stdio-common/Makefile + (missing tests downstream) + stdio-common/vfprintf-process-arg.c + (not included in backport) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index e3939b112ca2037f..74e0edff73a9e468 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -222,6 +222,7 @@ tests := \ + tst-gets \ + tst-grouping \ + tst-grouping2 \ ++ tst-grouping3 \ + tst-long-dbl-fphex \ + tst-obprintf \ + tst-perror \ +@@ -375,6 +376,7 @@ $(objpfx)tst-sprintf.out: $(gen-locales) + $(objpfx)tst-sscanf.out: $(gen-locales) + $(objpfx)tst-swprintf.out: $(gen-locales) + $(objpfx)tst-vfprintf-mbs-prec.out: $(gen-locales) ++$(objpfx)tst-grouping3.out: $(gen-locales) + endif + + tst-printf-bz18872-ENV = MALLOC_TRACE=$(objpfx)tst-printf-bz18872.mtrace \ +diff --git a/stdio-common/tst-grouping3.c b/stdio-common/tst-grouping3.c +new file mode 100644 +index 0000000000000000..e9e39218e25a2720 +--- /dev/null ++++ b/stdio-common/tst-grouping3.c +@@ -0,0 +1,54 @@ ++/* Test printf with grouping and padding (bug 30068) ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ char buf[80]; ++ ++ xsetlocale (LC_NUMERIC, "de_DE.UTF-8"); ++ ++ /* The format string has the following conversion specifier: ++ ' - Use thousands grouping. ++ + - The result of a signed conversion shall begin with a sign. ++ - - Left justified. ++ 13 - Minimum 13 bytes of width. ++ 9 - Minimum 9 digits of precision. ++ ++ In bug 30068 the grouping characters were not accounted for in ++ the width, and were added after the fact resulting in a 15-byte ++ output instead of a 13-byte output. The two additional bytes ++ come from the locale-specific thousands separator. This increase ++ in size could result in a buffer overflow if a reasonable caller ++ calculated the size of the expected buffer using nl_langinfo to ++ determine the sie of THOUSEP in bytes. ++ ++ This bug is distinct from bug 23432 which has to do with the ++ minimum precision calculation (digit based). */ ++ sprintf (buf, "%+-'13.9d", 1234567); ++ TEST_COMPARE_STRING (buf, "+001.234.567 "); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46761-4.patch b/SOURCES/glibc-RHEL-46761-4.patch new file mode 100644 index 0000000..7c0e958 --- /dev/null +++ b/SOURCES/glibc-RHEL-46761-4.patch @@ -0,0 +1,17 @@ +Adjust the test expectation for stdio-common/tst-grouping3 to match +the state of the RHEL 9 printf implementation, which does not add +zero padding when grouping integers. + +diff --git a/stdio-common/tst-grouping3.c b/stdio-common/tst-grouping3.c +index e9e39218e25a2720..5a247cfe3fb8564f 100644 +--- a/stdio-common/tst-grouping3.c ++++ b/stdio-common/tst-grouping3.c +@@ -46,7 +46,7 @@ do_test (void) + This bug is distinct from bug 23432 which has to do with the + minimum precision calculation (digit based). */ + sprintf (buf, "%+-'13.9d", 1234567); +- TEST_COMPARE_STRING (buf, "+001.234.567 "); ++ TEST_COMPARE_STRING (buf, "+1.234.567 "); + + return 0; + } diff --git a/SOURCES/glibc-RHEL-46761-5.patch b/SOURCES/glibc-RHEL-46761-5.patch new file mode 100644 index 0000000..31ff3f3 --- /dev/null +++ b/SOURCES/glibc-RHEL-46761-5.patch @@ -0,0 +1,120 @@ +commit be7a5468d4f694ee8d052b537141f51af43ca7f2 +Author: Adhemerval Zanella +Date: Tue Oct 3 15:09:36 2023 -0300 + + debug: Add regression tests for BZ 30932 + + Checked on x86_64-linux-gnu. + Reviewed-by: Siddhesh Poyarekar + +Conflicts: + debug/Makefile (fixup context) + +diff --git a/debug/Makefile b/debug/Makefile +index 563e6249121e8bc9..ab49346698116fc6 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -110,6 +110,7 @@ CPPFLAGS-tst-longjmp_chk2.c += -D_FORTIFY_SOURCE=1 + CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly.c += -D_FORTIFY_SOURCE=2 + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -203,6 +204,7 @@ tests = backtrace-tst \ + tst-backtrace5 \ + tst-backtrace6 \ + tst-realpath-chk \ ++ tst-sprintf-fortify-rdonly \ + tst-sprintf-fortify-unchecked \ + $(tests-all-chk) \ + +diff --git a/debug/tst-sprintf-fortify-rdonly.c b/debug/tst-sprintf-fortify-rdonly.c +new file mode 100644 +index 0000000000000000..78dece9102d7dfd3 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly.c +@@ -0,0 +1,82 @@ ++/* Testcase for BZ 30932. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++jmp_buf chk_fail_buf; ++bool chk_fail_ok; ++ ++const char *str2 = "F"; ++char buf2[10] = "%s"; ++ ++static int ++do_test (void) ++{ ++ struct rlimit rl; ++ int max_fd = 24; ++ ++ if (getrlimit (RLIMIT_NOFILE, &rl) == -1) ++ FAIL_EXIT1 ("getrlimit (RLIMIT_NOFILE): %m"); ++ ++ max_fd = (rl.rlim_cur < max_fd ? rl.rlim_cur : max_fd); ++ rl.rlim_cur = max_fd; ++ ++ if (setrlimit (RLIMIT_NOFILE, &rl) == 1) ++ FAIL_EXIT1 ("setrlimit (RLIMIT_NOFILE): %m"); ++ ++ /* Exhaust the file descriptor limit with temporary files. */ ++ int nfiles = 0; ++ for (; nfiles < max_fd; nfiles++) ++ { ++ int fd = create_temp_file ("tst-sprintf-fortify-rdonly-.", NULL); ++ if (fd == -1) ++ { ++ if (errno != EMFILE) ++ FAIL_EXIT1 ("create_temp_file: %m"); ++ break; ++ } ++ } ++ TEST_VERIFY_EXIT (nfiles != 0); ++ ++ /* When the format string is writable and contains %n, ++ with -D_FORTIFY_SOURCE=2 it causes __chk_fail. However, if libc can not ++ open procfs to check if the input format string in within a writable ++ memory segment, the fortify version can not perform the check. */ ++ char buf[128]; ++ int n1; ++ int n2; ++ ++ strcpy (buf2 + 2, "%n%s%n"); ++ if (sprintf (buf, buf2, str2, &n1, str2, &n2) != 2 ++ || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-46761-6.patch b/SOURCES/glibc-RHEL-46761-6.patch new file mode 100644 index 0000000..9c72669 --- /dev/null +++ b/SOURCES/glibc-RHEL-46761-6.patch @@ -0,0 +1,111 @@ +This reverts glibc-RHEL-46761-5.patch, thus dropping the associated test +case. + +diff --git a/debug/Makefile b/debug/Makefile +index cb93ed80da57f2cc..563e6249121e8bc9 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -110,7 +110,6 @@ CPPFLAGS-tst-longjmp_chk2.c += -D_FORTIFY_SOURCE=1 + CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 +-CFLAGS-tst-sprintf-fortify-rdonly.c += -D_FORTIFY_SOURCE=2 + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -204,7 +203,6 @@ tests = backtrace-tst \ + tst-backtrace5 \ + tst-backtrace6 \ + tst-realpath-chk \ +- tst-sprintf-fortify-rdonly \ + tst-sprintf-fortify-unchecked \ + $(tests-all-chk) \ + +diff --git a/debug/tst-sprintf-fortify-rdonly.c b/debug/tst-sprintf-fortify-rdonly.c +deleted file mode 100644 +index 78dece9102d7dfd3..0000000000000000 +--- a/debug/tst-sprintf-fortify-rdonly.c ++++ /dev/null +@@ -1,82 +0,0 @@ +-/* Testcase for BZ 30932. +- Copyright (C) 2023 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include +-#include +- +-jmp_buf chk_fail_buf; +-bool chk_fail_ok; +- +-const char *str2 = "F"; +-char buf2[10] = "%s"; +- +-static int +-do_test (void) +-{ +- struct rlimit rl; +- int max_fd = 24; +- +- if (getrlimit (RLIMIT_NOFILE, &rl) == -1) +- FAIL_EXIT1 ("getrlimit (RLIMIT_NOFILE): %m"); +- +- max_fd = (rl.rlim_cur < max_fd ? rl.rlim_cur : max_fd); +- rl.rlim_cur = max_fd; +- +- if (setrlimit (RLIMIT_NOFILE, &rl) == 1) +- FAIL_EXIT1 ("setrlimit (RLIMIT_NOFILE): %m"); +- +- /* Exhaust the file descriptor limit with temporary files. */ +- int nfiles = 0; +- for (; nfiles < max_fd; nfiles++) +- { +- int fd = create_temp_file ("tst-sprintf-fortify-rdonly-.", NULL); +- if (fd == -1) +- { +- if (errno != EMFILE) +- FAIL_EXIT1 ("create_temp_file: %m"); +- break; +- } +- } +- TEST_VERIFY_EXIT (nfiles != 0); +- +- /* When the format string is writable and contains %n, +- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. However, if libc can not +- open procfs to check if the input format string in within a writable +- memory segment, the fortify version can not perform the check. */ +- char buf[128]; +- int n1; +- int n2; +- +- strcpy (buf2 + 2, "%n%s%n"); +- if (sprintf (buf, buf2, str2, &n1, str2, &n2) != 2 +- || n1 != 1 || n2 != 2) +- FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); +- +- return 0; +-} +- +-#include diff --git a/SOURCES/glibc-RHEL-47467.patch b/SOURCES/glibc-RHEL-47467.patch new file mode 100644 index 0000000..609ac9d --- /dev/null +++ b/SOURCES/glibc-RHEL-47467.patch @@ -0,0 +1,146 @@ +commit b7d4de086ce7fcc531cdd67a61dc27b5b3eff482 +Author: Florian Weimer +Date: Mon Aug 5 16:01:12 2024 +0200 + + manual: Describe struct link_map, support link maps with dlinfo + + This does not describe how to use RTLD_DI_ORIGIN and l_name + to reconstruct a full path for the an object. The reason + is that I think we should not recommend further use of + RTLD_DI_ORIGIN due to its buffer overflow potential (bug 24298). + This should be covered by another dlinfo extension. It would + also obsolete the need for the dladdr approach to obtain + the file name for the main executable. + + Obtaining the lowest address from load segments in program + headers is quite clumsy and should be provided directly + via dlinfo. + + Reviewed-by: Carlos O'Donell + +diff --git a/manual/dynlink.texi b/manual/dynlink.texi +index 39d0a4c4b908e87b..d59dca2b7a916889 100644 +--- a/manual/dynlink.texi ++++ b/manual/dynlink.texi +@@ -351,16 +351,119 @@ support the XGETBV instruction. + @node Dynamic Linker Introspection + @section Dynamic Linker Introspection + +-@Theglibc{} provides various functions for querying information from the ++@Theglibc{} provides various facilities for querying information from the + dynamic linker. + ++@deftp {Data Type} {struct link_map} ++ ++@cindex link map ++A @dfn{link map} is associated with the main executable and each shared ++object. Some fields of the link map are accessible to applications and ++exposed through the @code{struct link_map}. Applications must not modify ++the link map directly. ++ ++Pointers to link maps can be obtained from the @code{_r_debug} variable, ++from the @code{RTLD_DI_LINKMAP} request for @code{dlinfo}, and from the ++@code{_dl_find_object} function. See below for details. ++ ++@table @code ++@item l_addr ++@cindex load address ++This field contains the @dfn{load address} of the object. This is the ++offset that needs to be applied to unrelocated addresses in the object ++image (as stored on disk) to form an address that can be used at run ++time for accessing data or running code. For position-dependent ++executables, the load address is typically zero, and no adjustment is ++required. For position-independent objects, the @code{l_addr} field ++usually contains the address of the object's ELF header in the process ++image. However, this correspondence is not guaranteed because the ELF ++header might not be mapped at all, and the ELF file as stored on disk ++might use zero as the lowest virtual address. Due to the second ++variable, values of the @code{l_addr} field do not necessarily uniquely ++identify a shared object. ++ ++On Linux, to obtain the lowest loaded address of the main program, use ++@code{getauxval} to obtain the @code{AT_PHDR} and @code{AT_PHNUM} values ++for the current process. Alternatively, call ++@samp{dlinfo (_r_debug.r_map, &@var{phdr})} ++to obtain the number of program headers, and the address of the program ++header array will be stored in @var{phdr} ++(of type @code{const ElfW(Phdr) *}, as explained below). ++These values allow processing the array of program headers and the ++address information in the @code{PT_LOAD} entries among them. ++This works even when the program was started with an explicit loader ++invocation. ++ ++@item l_name ++For a shared object, this field contains the file name that the ++@theglibc{} dynamic loader used when opening the object. This can be ++a relative path (relative to the current directory at process start, ++or if the object was loaded later, via @code{dlopen} or ++@code{dlmopen}). Symbolic links are not necessarily resolved. ++ ++For the main executable, @code{l_name} is @samp{""} (the empty string). ++(The main executable is not loaded by @theglibc{}, so its file name is ++not available.) On Linux, the main executable is available as ++@file{/proc/self/exe} (unless an explicit loader invocation was used to ++start the program). The file name @file{/proc/self/exe} continues to ++resolve to the same file even if it is moved within or deleted from the ++file system. Its current location can be read using @code{readlink}. ++@xref{Symbolic Links}. (Although @file{/proc/self/exe} is not actually ++a symbol link, it is only presented as one.) Note that @file{/proc} may ++not be mounted, in which case @file{/proc/self/exe} is not available. ++ ++If an explicit loader invocation is used (such as @samp{ld.so ++/usr/bin/emacs}), the @file{/proc/self/exe} approach does not work ++because the file name refers to the dynamic linker @code{ld.so}, and not ++the @code{/usr/bin/emacs} program. An approximation to the executable ++path is still available in the @code{@var{info}.dli_fname} member after ++calling @samp{dladdr (_r_debug.r_map->l_ld, &@var{info})}. Note that ++this could be a relative path, and it is supplied by the process that ++created the current process, not the kernel, so it could be inaccurate. ++ ++@item l_ld ++This is a pointer to the ELF dynamic segment, an array of tag/value ++pairs that provide various pieces of information that the dynamic ++linking process uses. On most architectures, addresses in the dynamic ++segment are relocated at run time, but on some architectures and in some ++run-time configurations, it is necessary to add the @code{l_addr} field ++value to obtain a proper address. ++ ++@item l_prev ++@itemx l_next ++These fields are used to maintain a double-linked linked list of all ++link maps within one @code{dlmopen} namespace. Note that there is ++currently no thread-safe way to iterate over this list. The ++callback-based @code{dl_iterate_phdr} interface can be used instead. ++@end table ++@end deftp ++ ++@strong{Portability note:} It is not possible to create a @code{struct ++link_map} object and pass a pointer to a function that expects a ++@code{struct link_map *} argument. Only link map pointers initially ++supplied by @theglibc{} are permitted as arguments. In current versions ++of @theglibc{}, handles returned by @code{dlopen} and @code{dlmopen} are ++pointers to link maps. However, this is not a portable assumption, and ++may even change in future versions of @theglibc{}. To obtain the link ++map associated with a handle, see @code{dlinfo} and ++@code{RTLD_DI_LINKMAP} below. If a function accepts both ++@code{dlopen}/@code{dlmopen} handles and @code{struct link_map} pointers ++in its @code{void *} argument, that is documented explicitly. ++ ++@subsection Querying information for loaded objects ++ ++The @code{dlinfo} function provides access to internal information ++associated with @code{dlopen}/@code{dlmopen} handles and link maps. ++ + @deftypefun {int} dlinfo (void *@var{handle}, int @var{request}, void *@var{arg}) + @safety{@mtsafe{}@asunsafe{@asucorrupt{}}@acunsafe{@acucorrupt{}}} + @standards{GNU, dlfcn.h} + This function returns information about @var{handle} in the memory + location @var{arg}, based on @var{request}. The @var{handle} argument + must be a pointer returned by @code{dlopen} or @code{dlmopen}; it must +-not have been closed by @code{dlclose}. ++not have been closed by @code{dlclose}. Alternatively, @var{handle} ++can be a @code{struct link_map *} value for a link map of an object ++that has not been closed. + + On success, @code{dlinfo} returns 0 for most request types; exceptions + are noted below. If there is an error, the function returns @math{-1}, diff --git a/SOURCES/glibc-RHEL-50545-1.patch b/SOURCES/glibc-RHEL-50545-1.patch new file mode 100644 index 0000000..a8a3fa1 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-1.patch @@ -0,0 +1,121 @@ +From 3bfdc4e2bceb601b90c81a9baa73c1904db58b2f Mon Sep 17 00:00:00 2001 +From: Andreas Schwab +Date: Tue, 28 Feb 2023 10:37:18 -0300 +Subject: [PATCH] support: use 64-bit time_t (bug 30111) +Content-type: text/plain; charset=UTF-8 + +Ensure to use 64-bit time_t in the test infrastructure. +--- + support/Makefile | 18 ++++++++++++++++++ + support/shell-container.c | 2 -- + support/support_can_chroot.c | 4 ++-- + support/support_copy_file.c | 2 +- + support/support_descriptor_supports_holes.c | 2 +- + support/test-container.c | 2 -- + 6 files changed, 22 insertions(+), 8 deletions(-) + +diff --git a/support/Makefile b/support/Makefile +index b29b7eb505..a304c5cdc0 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -239,6 +239,24 @@ CFLAGS-support_paths.c = \ + CFLAGS-timespec.c += -fexcess-precision=standard + CFLAGS-timespec-time64.c += -fexcess-precision=standard + ++# Ensure that general support files use 64-bit time_t ++CFLAGS-delayed_exit.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-shell-container.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_can_chroot.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_copy_file.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_copy_file_range.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_descriptor_supports_holes.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_descriptors.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_process_state.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_stat_nanoseconds.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_subprocess.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-support_test_main.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-test-container.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++CFLAGS-xmkdirp.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++# This is required to get an mkstemp which can create large files on some ++# 32-bit platforms. ++CFLAGS-temp_file.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 ++ + ifeq (,$(CXX)) + LINKS_DSO_PROGRAM = links-dso-program-c + else +diff --git a/support/shell-container.c b/support/shell-container.c +index e9ac9b6d04..ffa3378b5e 100644 +--- a/support/shell-container.c ++++ b/support/shell-container.c +@@ -16,8 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-#define _FILE_OFFSET_BITS 64 +- + #include + #include + #include +diff --git a/support/support_can_chroot.c b/support/support_can_chroot.c +index 7d9f91205d..7b4f491b53 100644 +--- a/support/support_can_chroot.c ++++ b/support/support_can_chroot.c +@@ -29,14 +29,14 @@ static void + callback (void *closure) + { + int *result = closure; +- struct stat64 before; ++ struct stat before; + xstat ("/dev", &before); + if (chroot ("/dev") != 0) + { + *result = errno; + return; + } +- struct stat64 after; ++ struct stat after; + xstat ("/", &after); + TEST_VERIFY (before.st_dev == after.st_dev); + TEST_VERIFY (before.st_ino == after.st_ino); +diff --git a/support/support_copy_file.c b/support/support_copy_file.c +index 50ff87b9f1..f3e0a2d1b7 100644 +--- a/support/support_copy_file.c ++++ b/support/support_copy_file.c +@@ -24,7 +24,7 @@ + void + support_copy_file (const char *from, const char *to) + { +- struct stat64 st; ++ struct stat st; + xstat (from, &st); + int fd_from = xopen (from, O_RDONLY, 0); + mode_t mode = st.st_mode & 0777; +diff --git a/support/support_descriptor_supports_holes.c b/support/support_descriptor_supports_holes.c +index 7af5934808..91db216bf0 100644 +--- a/support/support_descriptor_supports_holes.c ++++ b/support/support_descriptor_supports_holes.c +@@ -40,7 +40,7 @@ support_descriptor_supports_holes (int fd) + block_headroom = 32, + }; + +- struct stat64 st; ++ struct stat st; + xfstat (fd, &st); + if (!S_ISREG (st.st_mode)) + FAIL_EXIT1 ("descriptor %d does not refer to a regular file", fd); +diff --git a/support/test-container.c b/support/test-container.c +index f1a68b224a..e68f16eecf 100644 +--- a/support/test-container.c ++++ b/support/test-container.c +@@ -16,8 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-#define _FILE_OFFSET_BITS 64 +- + #include + #include + #include +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-10.patch b/SOURCES/glibc-RHEL-50545-10.patch new file mode 100644 index 0000000..714be39 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-10.patch @@ -0,0 +1,1337 @@ +From f169509ded534537eec9df00cfada6dbca908352 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 30 Aug 2024 21:52:53 +0200 +Subject: [PATCH] support: Add FUSE-based file system test framework to + support/ +Content-type: text/plain; charset=UTF-8 + +This allows to monitor the exact file system operations +performed by glibc and inject errors. + +Hurd does not have . To get the sources to compile +at least, the same approach as in support/test-container.c is used. + +Reviewed-by: DJ Delorie + +Conflicts + support/Makefile + context +--- + support/Makefile | 2 + + support/fuse.h | 215 +++++++++++ + support/support_fuse.c | 705 +++++++++++++++++++++++++++++++++++++ + support/tst-support_fuse.c | 348 ++++++++++++++++++ + 4 files changed, 1270 insertions(+) + create mode 100644 support/fuse.h + create mode 100644 support/support_fuse.c + create mode 100644 support/tst-support_fuse.c + +diff --git a/support/Makefile b/support/Makefile +index 8fb4d2c500..93d32ae75f 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -62,6 +62,7 @@ libsupport-routines = \ + support_format_herrno \ + support_format_hostent \ + support_format_netent \ ++ support_fuse \ + support_isolate_in_subprocess \ + support_need_proc \ + support_path_support_time64 \ +@@ -300,6 +301,7 @@ tests = \ + tst-support_capture_subprocess \ + tst-support_descriptors \ + tst-support_format_dns_packet \ ++ tst-support_fuse \ + tst-support-open-dev-null-range \ + tst-support-process_state \ + tst-support_quote_blob \ +diff --git a/support/fuse.h b/support/fuse.h +new file mode 100644 +index 0000000000..4c365fbc0c +--- /dev/null ++++ b/support/fuse.h +@@ -0,0 +1,215 @@ ++/* Facilities for FUSE-backed file system tests. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Before using this functionality, use support_enter_mount_namespace ++ to ensure that mounts do not impact the overall system. */ ++ ++#ifndef SUPPORT_FUSE_H ++#define SUPPORT_FUSE_H ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* This function must be called furst, before support_fuse_mount, to ++ prepare unprivileged mounting. */ ++void support_fuse_init (void); ++ ++/* This function can be called instead of support_fuse_init. It does ++ not use mount and user namespaces, so it requires root privileges, ++ and cleanup after testing may be incomplete. This is intended only ++ for test development. */ ++void support_fuse_init_no_namespace (void); ++ ++/* Opaque type for tracking FUSE mount state. */ ++struct support_fuse; ++ ++/* This function disables a mount point created using ++ support_fuse_mount. */ ++void support_fuse_unmount (struct support_fuse *) __nonnull ((1)); ++ ++/* This function is called on a separate thread after calling ++ support_fuse_mount. F is the mount state, and CLOSURE the argument ++ that was passed to support_fuse_mount. The callback function is ++ expected to call support_fuse_next to read packets from the kernel ++ and handle them according to the test's need. */ ++typedef void (*support_fuse_callback) (struct support_fuse *f, void *closure); ++ ++/* This function creates a new mount point, implemented by CALLBACK. ++ CLOSURE is passed to CALLBACK as the second argument. */ ++struct support_fuse *support_fuse_mount (support_fuse_callback callback, ++ void *closure) ++ __nonnull ((1)) __attr_dealloc (support_fuse_unmount, 1); ++ ++/* This function returns the path to the mount point for F. The ++ returned string is valid until support_fuse_unmount (F) is called. */ ++const char * support_fuse_mountpoint (struct support_fuse *f) __nonnull ((1)); ++ ++ ++/* Renders the OPCODE as a string (FUSE_* constant. The caller must ++ free the returned string. */ ++char * support_fuse_opcode (uint32_t opcode) __attr_dealloc_free; ++ ++/* Use to provide a checked cast facility. Use the ++ support_fuse_in_cast macro below. */ ++void *support_fuse_cast_internal (struct fuse_in_header *, uint32_t) ++ __nonnull ((1)); ++void *support_fuse_cast_name_internal (struct fuse_in_header *, uint32_t, ++ size_t skip, char **name) ++ __nonnull ((1)); ++ ++/* The macro expansion support_fuse_in_cast (P, TYPE) casts the ++ pointer INH to the appropriate type corresponding to the FUSE_TYPE ++ opcode. It fails (terminates the process) if INH->opcode does not ++ match FUSE_TYPE. The type of the returned pointer matches that of ++ the FUSE_* constant. ++ ++ Maintenance note: Adding support for additional struct fuse_*_in ++ types is generally easy, except when there is trailing data after ++ the struct (see below for support_fuse_cast_name, for example), and ++ the kernel has changed struct sizes over time. This has happened ++ recently with struct fuse_setxattr_in, and would require special ++ handling if implemented. */ ++#define support_fuse_payload_type_INIT struct fuse_init_in ++#define support_fuse_payload_type_LOOKUP char ++#define support_fuse_payload_type_OPEN struct fuse_open_in ++#define support_fuse_payload_type_READ struct fuse_read_in ++#define support_fuse_payload_type_SETATTR struct fuse_setattr_in ++#define support_fuse_payload_type_WRITE struct fuse_write_in ++#define support_fuse_cast(typ, inh) \ ++ ((support_fuse_payload_type_##typ *) \ ++ support_fuse_cast_internal ((inh), FUSE_##typ)) ++ ++/* Same as support_fuse_cast, but also writes the passed name to *NAMEP. */ ++#define support_fuse_payload_name_type_CREATE struct fuse_create_in ++#define support_fuse_payload_name_type_MKDIR struct fuse_mkdir_in ++#define support_fuse_cast_name(typ, inh, namep) \ ++ ((support_fuse_payload_name_type_##typ *) \ ++ support_fuse_cast_name_internal \ ++ ((inh), FUSE_##typ, sizeof (support_fuse_payload_name_type_##typ), \ ++ (namep))) ++ ++/* This function should be called from the callback function. It ++ returns NULL if the mount point has been unmounted. The result can ++ be cast using support_fuse_in_cast. The pointer is invalidated ++ with the next call to support_fuse_next. ++ ++ Typical use involves handling some basics using the ++ support_fuse_handle_* building blocks, following by a switch ++ statement on the result member of the returned struct, to implement ++ what a particular test needs. Casts to payload data should be made ++ using support_fuse_in_cast. ++ ++ By default, FUSE_FORGET responses are filtered. See ++ support_fuse_filter_forget for turning that off. */ ++struct fuse_in_header *support_fuse_next (struct support_fuse *f) ++ __nonnull ((1)); ++ ++/* This function can be called from a callback function to handle ++ basic aspects of directories (OPENDIR, GETATTR, RELEASEDIR). ++ inh->nodeid is used as the inode number for the directory. This ++ function must be called after support_fuse_next. */ ++bool support_fuse_handle_directory (struct support_fuse *f) __nonnull ((1)); ++ ++/* This function can be called from a callback function to handle ++ access to the mount point itself, after call support_fuse_next. */ ++bool support_fuse_handle_mountpoint (struct support_fuse *f) __nonnull ((1)); ++ ++/* If FILTER_ENABLED, future support_fuse_next calls will not return ++ FUSE_FORGET events (and simply discared them, as they require no ++ reply). If !FILTER_ENABLED, the callback needs to handle ++ FUSE_FORGET events and call support_fuse_no_reply. */ ++void support_fuse_filter_forget (struct support_fuse *f, bool filter_enabled) ++ __nonnull ((1)); ++ ++/* This function should be called from the callback function after ++ support_fuse_next returned a non-null pointer. It sends out a ++ response packet on the FUSE device with the supplied payload data. */ ++void support_fuse_reply (struct support_fuse *f, ++ const void *payload, size_t payload_size) ++ __nonnull ((1)) __attr_access ((__read_only__, 2, 3)); ++ ++/* This function should be called from the callback function. It ++ replies to a request with an error indicator. ERROR must be positive. */ ++void support_fuse_reply_error (struct support_fuse *f, uint32_t error) ++ __nonnull ((1)); ++ ++/* This function should be called from the callback function. It ++ sends out an empty (but success-indicating) reply packet. */ ++void support_fuse_reply_empty (struct support_fuse *f) __nonnull ((1)); ++ ++/* Do not send a reply. Only to be used after a support_fuse_next ++ call that returned a FUSE_FORGET event. */ ++void support_fuse_no_reply (struct support_fuse *f) __nonnull ((1)); ++ ++/* Specific reponse preparation functions. The returned object can be ++ updated as needed. If a NODEID argument is present, it will be ++ used to set the inode and FUSE nodeid fields. Without such an ++ argument, it is initialized from the current request (if the reply ++ requires this field). This function must be called after ++ support_fuse_next. The actual response must be sent using ++ support_fuse_reply_prepared (or a support_fuse_reply_error call can ++ be used to cancel the response). */ ++struct fuse_entry_out *support_fuse_prepare_entry (struct support_fuse *f, ++ uint64_t nodeid) ++ __nonnull ((1)); ++struct fuse_attr_out *support_fuse_prepare_attr (struct support_fuse *f) ++ __nonnull ((1)); ++ ++/* Similar to the other support_fuse_prepare_* functions, but it ++ prepares for two response packets. They can be updated through the ++ pointers written to *OUT_ENTRY and *OUT_OPEN prior to calling ++ support_fuse_reply_prepared. */ ++void support_fuse_prepare_create (struct support_fuse *f, ++ uint64_t nodeid, ++ struct fuse_entry_out **out_entry, ++ struct fuse_open_out **out_open) ++ __nonnull ((1, 3, 4)); ++ ++ ++/* Prepare sending a directory stream. Must be called after ++ support_fuse_next and before support_fuse_dirstream_add. */ ++struct support_fuse_dirstream; ++struct support_fuse_dirstream *support_fuse_prepare_readdir (struct ++ support_fuse *f); ++ ++/* Adds directory using D_INO, D_OFF, D_TYPE, D_NAME to the directory ++ stream D. Must be called after support_fuse_prepare_readdir. ++ ++ D_OFF is the offset of the next directory entry, not the current ++ one. The first entry has offset zero. The first requested offset ++ can be obtained from the READ payload (struct fuse_read_in) prior ++ to calling this function. ++ ++ Returns true if the entry could be added to the buffer, or false if ++ there was insufficient room. Sending the buffer is delayed until ++ support_fuse_reply_prepared is called. */ ++bool support_fuse_dirstream_add (struct support_fuse_dirstream *d, ++ uint64_t d_ino, uint64_t d_off, ++ uint32_t d_type, ++ const char *d_name); ++ ++/* Send a prepared response. Must be called after one of the ++ support_fuse_prepare_* functions and before the next ++ support_fuse_next call. */ ++void support_fuse_reply_prepared (struct support_fuse *f) __nonnull ((1)); ++ ++#endif /* SUPPORT_FUSE_H */ +diff --git a/support/support_fuse.c b/support/support_fuse.c +new file mode 100644 +index 0000000000..135dbf1198 +--- /dev/null ++++ b/support/support_fuse.c +@@ -0,0 +1,705 @@ ++/* Facilities for FUSE-backed file system tests. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef __linux__ ++# include ++#else ++/* Fallback definitions that mark the test as unsupported. */ ++# define mount(...) ({ FAIL_UNSUPPORTED ("mount"); -1; }) ++# define umount(...) ({ FAIL_UNSUPPORTED ("mount"); -1; }) ++#endif ++ ++struct support_fuse ++{ ++ char *mountpoint; ++ void *buffer_start; /* Begin of allocation. */ ++ void *buffer_next; /* Next read position. */ ++ void *buffer_limit; /* End of buffered data. */ ++ void *buffer_end; /* End of allocation. */ ++ struct fuse_in_header *inh; /* Most recent request (support_fuse_next). */ ++ union /* Space for prepared responses. */ ++ { ++ struct fuse_attr_out attr; ++ struct fuse_entry_out entry; ++ struct ++ { ++ struct fuse_entry_out entry; ++ struct fuse_open_out open; ++ } create; ++ } prepared; ++ void *prepared_pointer; /* NULL if inactive. */ ++ size_t prepared_size; /* 0 if inactive. */ ++ ++ /* Used for preparing readdir responses. Already used-up area for ++ the current request is counted by prepared_size. */ ++ void *readdir_buffer; ++ size_t readdir_buffer_size; ++ ++ pthread_t handler; /* Thread handling requests. */ ++ uid_t uid; /* Cached value for the current process. */ ++ uid_t gid; /* Cached value for the current process. */ ++ int fd; /* FUSE file descriptor. */ ++ int connection; /* Entry under /sys/fs/fuse/connections. */ ++ bool filter_forget; /* Controls FUSE_FORGET event dropping. */ ++ _Atomic bool disconnected; ++}; ++ ++struct fuse_thread_wrapper_args ++{ ++ struct support_fuse *f; ++ support_fuse_callback callback; ++ void *closure; ++}; ++ ++/* Set by support_fuse_init to indicate that support_fuse_mount may be ++ called. */ ++static bool support_fuse_init_called; ++ ++/* Allocate the read buffer in F with SIZE bytes capacity. Does not ++ free the previously allocated buffer. */ ++static void support_fuse_allocate (struct support_fuse *f, size_t size) ++ __nonnull ((1)); ++ ++/* Internal mkdtemp replacement */ ++static char * support_fuse_mkdir (const char *prefix) __nonnull ((1)); ++ ++/* Low-level allocation function for support_fuse_mount. Does not ++ perform the mount. */ ++static struct support_fuse *support_fuse_open (void); ++ ++/* Thread wrapper function for use with pthread_create. Uses struct ++ fuse_thread_wrapper_args. */ ++static void *support_fuse_thread_wrapper (void *closure) __nonnull ((1)); ++ ++/* Initial step before preparing a reply. SIZE must be the size of ++ the F->prepared member that is going to be used. */ ++static void support_fuse_prepare_1 (struct support_fuse *f, size_t size); ++ ++/* Similar to support_fuse_reply_error, but not check that ERROR is ++ not zero. */ ++static void support_fuse_reply_error_1 (struct support_fuse *f, ++ uint32_t error) __nonnull ((1)); ++ ++/* Path to the directory containing mount points. Initialized by an ++ ELF constructor. All mountpoints are collected there so that the ++ test wrapper can clean them up without keeping track of them ++ individually. */ ++static char *support_fuse_mountpoints; ++ ++/* PID of the process that should clean up the mount points in the ELF ++ destructor. */ ++static pid_t support_fuse_cleanup_pid; ++ ++static void ++support_fuse_allocate (struct support_fuse *f, size_t size) ++{ ++ f->buffer_start = xmalloc (size); ++ f->buffer_end = f->buffer_start + size; ++ f->buffer_limit = f->buffer_start; ++ f->buffer_next = f->buffer_limit; ++} ++ ++void ++support_fuse_filter_forget (struct support_fuse *f, bool filter) ++{ ++ f->filter_forget = filter; ++} ++ ++void * ++support_fuse_cast_internal (struct fuse_in_header *p, uint32_t expected) ++{ ++ if (expected != p->opcode ++ && !(expected == FUSE_READ && p->opcode == FUSE_READDIR)) ++ { ++ char *expected1 = support_fuse_opcode (expected); ++ char *actual = support_fuse_opcode (p->opcode); ++ FAIL_EXIT1 ("attempt to cast %s to %s", actual, expected1); ++ } ++ return p + 1; ++} ++ ++void * ++support_fuse_cast_name_internal (struct fuse_in_header *p, uint32_t expected, ++ size_t skip, char **name) ++{ ++ char *result = support_fuse_cast_internal (p, expected); ++ *name = result + skip; ++ return result; ++} ++ ++bool ++support_fuse_dirstream_add (struct support_fuse_dirstream *d, ++ uint64_t d_ino, uint64_t d_off, ++ uint32_t d_type, const char *d_name) ++{ ++ struct support_fuse *f = (struct support_fuse *) d; ++ size_t structlen = offsetof (struct fuse_dirent, name); ++ size_t namelen = strlen (d_name); /* No null termination. */ ++ size_t required_size = FUSE_DIRENT_ALIGN (structlen + namelen); ++ if (f->readdir_buffer_size - f->prepared_size < required_size) ++ return false; ++ struct fuse_dirent entry = ++ { ++ .ino = d_ino, ++ .off = d_off, ++ .type = d_type, ++ .namelen = namelen, ++ }; ++ memcpy (f->readdir_buffer + f->prepared_size, &entry, structlen); ++ /* Use strncpy to write padding and avoid passing uninitialized ++ bytes to the read system call. */ ++ strncpy (f->readdir_buffer + f->prepared_size + structlen, d_name, ++ required_size - structlen); ++ f->prepared_size += required_size; ++ return true; ++} ++ ++bool ++support_fuse_handle_directory (struct support_fuse *f) ++{ ++ TEST_VERIFY (f->inh != NULL); ++ switch (f->inh->opcode) ++ { ++ case FUSE_OPENDIR: ++ { ++ struct fuse_open_out out = ++ { ++ }; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ return true; ++ case FUSE_RELEASEDIR: ++ support_fuse_reply_empty (f); ++ return true; ++ case FUSE_GETATTR: ++ { ++ struct fuse_attr_out *out = support_fuse_prepare_attr (f); ++ out->attr.mode = S_IFDIR | 0700; ++ support_fuse_reply_prepared (f); ++ } ++ return true; ++ default: ++ return false; ++ } ++} ++ ++bool ++support_fuse_handle_mountpoint (struct support_fuse *f) ++{ ++ TEST_VERIFY (f->inh != NULL); ++ /* 1 is the root node. */ ++ if (f->inh->opcode == FUSE_GETATTR && f->inh->nodeid == 1) ++ return support_fuse_handle_directory (f); ++ return false; ++} ++ ++void ++support_fuse_init (void) ++{ ++ support_fuse_init_called = true; ++ ++ support_become_root (); ++ if (!support_enter_mount_namespace ()) ++ FAIL_UNSUPPORTED ("mount namespaces not supported"); ++} ++ ++void ++support_fuse_init_no_namespace (void) ++{ ++ support_fuse_init_called = true; ++} ++ ++static char * ++support_fuse_mkdir (const char *prefix) ++{ ++ /* Do not use mkdtemp to avoid interfering with its tests. */ ++ unsigned int counter = 1; ++ unsigned int pid = getpid (); ++ while (true) ++ { ++ char *path = xasprintf ("%s%u.%u/", prefix, pid, counter); ++ if (mkdir (path, 0700) == 0) ++ return path; ++ if (errno != EEXIST) ++ FAIL_EXIT1 ("mkdir (\"%s\"): %m", path); ++ free (path); ++ ++counter; ++ } ++} ++ ++struct support_fuse * ++support_fuse_mount (support_fuse_callback callback, void *closure) ++{ ++ TEST_VERIFY_EXIT (support_fuse_init_called); ++ ++ /* Request at least minor version 12 because it changed struct sizes. */ ++ enum { min_version = 12 }; ++ ++ struct support_fuse *f = support_fuse_open (); ++ char *mount_options ++ = xasprintf ("fd=%d,rootmode=040700,user_id=%u,group_id=%u", ++ f->fd, f->uid, f->gid); ++ if (mount ("fuse", f->mountpoint, "fuse.glibc", ++ MS_NOSUID|MS_NODEV, mount_options) ++ != 0) ++ FAIL_EXIT1 ("FUSE mount on %s: %m", f->mountpoint); ++ free (mount_options); ++ ++ /* Retry with an older FUSE version. */ ++ while (true) ++ { ++ struct fuse_in_header *inh = support_fuse_next (f); ++ struct fuse_init_in *init_in = support_fuse_cast (INIT, inh); ++ if (init_in->major < 7 ++ || (init_in->major == 7 && init_in->minor < min_version)) ++ FAIL_UNSUPPORTED ("kernel FUSE version is %u.%u, too old", ++ init_in->major, init_in->minor); ++ if (init_in->major > 7) ++ { ++ uint32_t major = 7; ++ support_fuse_reply (f, &major, sizeof (major)); ++ continue; ++ } ++ TEST_VERIFY (init_in->flags & FUSE_DONT_MASK); ++ struct fuse_init_out out = ++ { ++ .major = 7, ++ .minor = min_version, ++ /* Request that the kernel does not apply umask. */ ++ .flags = FUSE_DONT_MASK, ++ }; ++ support_fuse_reply (f, &out, sizeof (out)); ++ ++ { ++ struct fuse_thread_wrapper_args args = ++ { ++ .f = f, ++ .callback = callback, ++ .closure = closure, ++ }; ++ f->handler = xpthread_create (NULL, ++ support_fuse_thread_wrapper, &args); ++ struct stat64 st; ++ xstat64 (f->mountpoint, &st); ++ f->connection = minor (st.st_dev); ++ /* Got a reply from the thread, safe to deallocate args. */ ++ } ++ ++ return f; ++ } ++} ++ ++const char * ++support_fuse_mountpoint (struct support_fuse *f) ++{ ++ return f->mountpoint; ++} ++ ++void ++support_fuse_no_reply (struct support_fuse *f) ++{ ++ TEST_VERIFY (f->inh != NULL); ++ TEST_COMPARE (f->inh->opcode, FUSE_FORGET); ++ f->inh = NULL; ++} ++ ++char * ++support_fuse_opcode (uint32_t op) ++{ ++ const char *result; ++ switch (op) ++ { ++#define X(n) case n: result = #n; break ++ X(FUSE_LOOKUP); ++ X(FUSE_FORGET); ++ X(FUSE_GETATTR); ++ X(FUSE_SETATTR); ++ X(FUSE_READLINK); ++ X(FUSE_SYMLINK); ++ X(FUSE_MKNOD); ++ X(FUSE_MKDIR); ++ X(FUSE_UNLINK); ++ X(FUSE_RMDIR); ++ X(FUSE_RENAME); ++ X(FUSE_LINK); ++ X(FUSE_OPEN); ++ X(FUSE_READ); ++ X(FUSE_WRITE); ++ X(FUSE_STATFS); ++ X(FUSE_RELEASE); ++ X(FUSE_FSYNC); ++ X(FUSE_SETXATTR); ++ X(FUSE_GETXATTR); ++ X(FUSE_LISTXATTR); ++ X(FUSE_REMOVEXATTR); ++ X(FUSE_FLUSH); ++ X(FUSE_INIT); ++ X(FUSE_OPENDIR); ++ X(FUSE_READDIR); ++ X(FUSE_RELEASEDIR); ++ X(FUSE_FSYNCDIR); ++ X(FUSE_GETLK); ++ X(FUSE_SETLK); ++ X(FUSE_SETLKW); ++ X(FUSE_ACCESS); ++ X(FUSE_CREATE); ++ X(FUSE_INTERRUPT); ++ X(FUSE_BMAP); ++ X(FUSE_DESTROY); ++ X(FUSE_IOCTL); ++ X(FUSE_POLL); ++ X(FUSE_NOTIFY_REPLY); ++ X(FUSE_BATCH_FORGET); ++ X(FUSE_FALLOCATE); ++ X(FUSE_READDIRPLUS); ++ X(FUSE_RENAME2); ++ X(FUSE_LSEEK); ++ X(FUSE_COPY_FILE_RANGE); ++ X(FUSE_SETUPMAPPING); ++ X(FUSE_REMOVEMAPPING); ++ X(FUSE_SYNCFS); ++ X(FUSE_TMPFILE); ++ X(FUSE_STATX); ++#undef X ++ default: ++ return xasprintf ("FUSE_unknown_%u", op); ++ } ++ return xstrdup (result); ++} ++ ++static struct support_fuse * ++support_fuse_open (void) ++{ ++ struct support_fuse *result = xmalloc (sizeof (*result)); ++ result->mountpoint = support_fuse_mkdir (support_fuse_mountpoints); ++ result->inh = NULL; ++ result->prepared_pointer = NULL; ++ result->prepared_size = 0; ++ result->readdir_buffer = NULL; ++ result->readdir_buffer_size = 0; ++ result->uid = getuid (); ++ result->gid = getgid (); ++ result->fd = open ("/dev/fuse", O_RDWR, 0); ++ if (result->fd < 0) ++ { ++ if (errno == ENOENT || errno == ENODEV || errno == EPERM ++ || errno == EACCES) ++ FAIL_UNSUPPORTED ("cannot open /dev/fuse: %m"); ++ else ++ FAIL_EXIT1 ("cannot open /dev/fuse: %m"); ++ } ++ result->connection = -1; ++ result->filter_forget = true; ++ result->disconnected = false; ++ support_fuse_allocate (result, FUSE_MIN_READ_BUFFER); ++ return result; ++} ++ ++static void ++support_fuse_prepare_1 (struct support_fuse *f, size_t size) ++{ ++ TEST_VERIFY (f->prepared_pointer == NULL); ++ f->prepared_size = size; ++ memset (&f->prepared, 0, size); ++ f->prepared_pointer = &f->prepared; ++} ++ ++struct fuse_attr_out * ++support_fuse_prepare_attr (struct support_fuse *f) ++{ ++ support_fuse_prepare_1 (f, sizeof (f->prepared.attr)); ++ f->prepared.attr.attr.uid = f->uid; ++ f->prepared.attr.attr.gid = f->gid; ++ f->prepared.attr.attr.ino = f->inh->nodeid; ++ return &f->prepared.attr; ++} ++ ++void ++support_fuse_prepare_create (struct support_fuse *f, ++ uint64_t nodeid, ++ struct fuse_entry_out **out_entry, ++ struct fuse_open_out **out_open) ++{ ++ support_fuse_prepare_1 (f, sizeof (f->prepared.create)); ++ f->prepared.create.entry.nodeid = nodeid; ++ f->prepared.create.entry.attr.uid = f->uid; ++ f->prepared.create.entry.attr.gid = f->gid; ++ f->prepared.create.entry.attr.ino = nodeid; ++ *out_entry = &f->prepared.create.entry; ++ *out_open = &f->prepared.create.open; ++} ++ ++struct fuse_entry_out * ++support_fuse_prepare_entry (struct support_fuse *f, uint64_t nodeid) ++{ ++ support_fuse_prepare_1 (f, sizeof (f->prepared.entry)); ++ f->prepared.entry.nodeid = nodeid; ++ f->prepared.entry.attr.uid = f->uid; ++ f->prepared.entry.attr.gid = f->gid; ++ f->prepared.entry.attr.ino = nodeid; ++ return &f->prepared.entry; ++} ++ ++struct support_fuse_dirstream * ++support_fuse_prepare_readdir (struct support_fuse *f) ++{ ++ support_fuse_prepare_1 (f, 0); ++ struct fuse_read_in *p = support_fuse_cast (READ, f->inh); ++ if (p->size > f->readdir_buffer_size) ++ { ++ free (f->readdir_buffer); ++ f->readdir_buffer = xmalloc (p->size); ++ f->readdir_buffer_size = p->size; ++ } ++ f->prepared_pointer = f->readdir_buffer; ++ return (struct support_fuse_dirstream *) f; ++} ++ ++struct fuse_in_header * ++support_fuse_next (struct support_fuse *f) ++{ ++ TEST_VERIFY (f->inh == NULL); ++ while (true) ++ { ++ if (f->buffer_next < f->buffer_limit) ++ { ++ f->inh = f->buffer_next; ++ f->buffer_next = (void *) f->buffer_next + f->inh->len; ++ /* Suppress FUSE_FORGET responses if requested. */ ++ if (f->filter_forget && f->inh->opcode == FUSE_FORGET) ++ { ++ f->inh = NULL; ++ continue; ++ } ++ return f->inh; ++ } ++ ssize_t ret = read (f->fd, f->buffer_start, ++ f->buffer_end - f->buffer_start); ++ if (ret == 0) ++ FAIL_EXIT (1, "unexpected EOF on FUSE device"); ++ if (ret < 0 && errno == EINVAL) ++ { ++ /* Increase buffer size. */ ++ size_t new_size = 2 * (size_t) (f->buffer_end - f->buffer_start); ++ free (f->buffer_start); ++ support_fuse_allocate (f, new_size); ++ continue; ++ } ++ if (ret < 0) ++ { ++ if (f->disconnected) ++ /* Unmount detected. */ ++ return NULL; ++ FAIL_EXIT1 ("read error on FUSE device: %m"); ++ } ++ /* Read was successful, make [next, limit) the active buffer area. */ ++ f->buffer_next = f->buffer_start; ++ f->buffer_limit = (void *) f->buffer_start + ret; ++ } ++} ++ ++void ++support_fuse_reply (struct support_fuse *f, ++ const void *payload, size_t payload_size) ++{ ++ TEST_VERIFY_EXIT (f->inh != NULL); ++ TEST_VERIFY (f->prepared_pointer == NULL); ++ struct fuse_out_header outh = ++ { ++ .len = sizeof (outh) + payload_size, ++ .unique = f->inh->unique, ++ }; ++ struct iovec iov[] = ++ { ++ { &outh, sizeof (outh) }, ++ { (void *) payload, payload_size }, ++ }; ++ ssize_t ret = writev (f->fd, iov, array_length (iov)); ++ if (ret < 0) ++ { ++ if (!f->disconnected) ++ /* Some kernels produce write errors upon disconnect. */ ++ FAIL_EXIT1 ("FUSE write failed for %s response" ++ " (%zu bytes payload): %m", ++ support_fuse_opcode (f->inh->opcode), payload_size); ++ } ++ else if (ret != sizeof (outh) + payload_size) ++ FAIL_EXIT1 ("FUSE write short for %s response (%zu bytes payload):" ++ " %zd bytes", ++ support_fuse_opcode (f->inh->opcode), payload_size, ret); ++ f->inh = NULL; ++} ++ ++void ++support_fuse_reply_empty (struct support_fuse *f) ++{ ++ support_fuse_reply_error_1 (f, 0); ++} ++ ++static void ++support_fuse_reply_error_1 (struct support_fuse *f, uint32_t error) ++{ ++ TEST_VERIFY_EXIT (f->inh != NULL); ++ struct fuse_out_header outh = ++ { ++ .len = sizeof (outh), ++ .error = -error, ++ .unique = f->inh->unique, ++ }; ++ ssize_t ret = write (f->fd, &outh, sizeof (outh)); ++ if (ret < 0) ++ { ++ /* Some kernels produce write errors upon disconnect. */ ++ if (!f->disconnected) ++ FAIL_EXIT1 ("FUSE write failed for %s error response: %m", ++ support_fuse_opcode (f->inh->opcode)); ++ } ++ else if (ret != sizeof (outh)) ++ FAIL_EXIT1 ("FUSE write short for %s error response: %zd bytes", ++ support_fuse_opcode (f->inh->opcode), ret); ++ f->inh = NULL; ++ f->prepared_pointer = NULL; ++ f->prepared_size = 0; ++} ++ ++void ++support_fuse_reply_error (struct support_fuse *f, uint32_t error) ++{ ++ TEST_VERIFY (error > 0); ++ support_fuse_reply_error_1 (f, error); ++} ++ ++void ++support_fuse_reply_prepared (struct support_fuse *f) ++{ ++ TEST_VERIFY_EXIT (f->prepared_pointer != NULL); ++ /* Re-use the non-prepared reply function. It requires ++ f->prepared_* to be non-null, so reset the fields before the call. */ ++ void *prepared_pointer = f->prepared_pointer; ++ size_t prepared_size = f->prepared_size; ++ f->prepared_pointer = NULL; ++ f->prepared_size = 0; ++ support_fuse_reply (f, prepared_pointer, prepared_size); ++} ++ ++static void * ++support_fuse_thread_wrapper (void *closure) ++{ ++ struct fuse_thread_wrapper_args args ++ = *(struct fuse_thread_wrapper_args *) closure; ++ ++ /* Handle the initial stat call. */ ++ struct fuse_in_header *inh = support_fuse_next (args.f); ++ if (inh == NULL || !support_fuse_handle_mountpoint (args.f)) ++ { ++ support_fuse_reply_error (args.f, EIO); ++ return NULL; ++ } ++ ++ args.callback (args.f, args.closure); ++ return NULL; ++} ++ ++void ++support_fuse_unmount (struct support_fuse *f) ++{ ++ /* Signal the unmount to the handler thread. Some kernels report ++ not just ENODEV errors on read. */ ++ f->disconnected = true; ++ ++ { ++ char *path = xasprintf ("/sys/fs/fuse/connections/%d/abort", ++ f->connection); ++ /* Some kernels do not support these files under /sys. */ ++ int fd = open (path, O_RDWR | O_TRUNC); ++ if (fd >= 0) ++ { ++ TEST_COMPARE (write (fd, "1", 1), 1); ++ xclose (fd); ++ } ++ free (path); ++ } ++ if (umount (f->mountpoint) != 0) ++ FAIL ("FUSE: umount (\"%s\"): %m", f->mountpoint); ++ xpthread_join (f->handler); ++ if (rmdir (f->mountpoint) != 0) ++ FAIL ("FUSE: rmdir (\"%s\"): %m", f->mountpoint); ++ xclose (f->fd); ++ free (f->mountpoint); ++ free (f->readdir_buffer); ++ free (f); ++} ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ /* The test_dir test driver variable is not yet set at this point. */ ++ const char *tmpdir = getenv ("TMPDIR"); ++ if (tmpdir == NULL || tmpdir[0] == '\0') ++ tmpdir = "/tmp"; ++ ++ char *prefix = xasprintf ("%s/glibc-tst-fuse.", tmpdir); ++ support_fuse_mountpoints = support_fuse_mkdir (prefix); ++ free (prefix); ++ support_fuse_cleanup_pid = getpid (); ++} ++ ++static void __attribute__ ((destructor)) ++fini (void) ++{ ++ if (support_fuse_cleanup_pid != getpid () ++ || support_fuse_mountpoints == NULL) ++ return; ++ DIR *dir = xopendir (support_fuse_mountpoints); ++ while (true) ++ { ++ struct dirent64 *e = readdir64 (dir); ++ if (e == NULL) ++ /* Ignore errors. */ ++ break; ++ if (*e->d_name == '.') ++ /* Skip "." and "..". No hidden files expected. */ ++ continue; ++ if (unlinkat (dirfd (dir), e->d_name, AT_REMOVEDIR) != 0) ++ break; ++ rewinddir (dir); ++ } ++ xclosedir (dir); ++ rmdir (support_fuse_mountpoints); ++ free (support_fuse_mountpoints); ++ support_fuse_mountpoints = NULL; ++} +diff --git a/support/tst-support_fuse.c b/support/tst-support_fuse.c +new file mode 100644 +index 0000000000..c4075a6608 +--- /dev/null ++++ b/support/tst-support_fuse.c +@@ -0,0 +1,348 @@ ++/* Facilities for FUSE-backed file system tests. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ /* Turn on returning FUSE_FORGET responses. */ ++ support_fuse_filter_forget (f, false); ++ ++ /* Inode and nodeid for "file" and "new". */ ++ enum { NODE_FILE = 2, NODE_NEW, NODE_SUBDIR, NODE_SYMLINK }; ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ { ++ char *opcode = support_fuse_opcode (inh->opcode); ++ printf ("info: (T) event %s(%llu) len=%u nodeid=%llu\n", ++ opcode, (unsigned long long int) inh->unique, inh->len, ++ (unsigned long long int) inh->nodeid); ++ free (opcode); ++ } ++ ++ /* Handle mountpoint and basic directory operation for the root (1). */ ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ ++ switch (inh->opcode) ++ { ++ case FUSE_READDIR: ++ /* Implementation of getdents64. */ ++ if (inh->nodeid == 1) ++ { ++ struct support_fuse_dirstream *d ++ = support_fuse_prepare_readdir (f); ++ TEST_COMPARE (support_fuse_cast (READ, inh)->offset, 0); ++ TEST_VERIFY (support_fuse_dirstream_add (d, 1, 1, DT_DIR, ".")); ++ TEST_VERIFY (support_fuse_dirstream_add (d, 1, 2, DT_DIR, "..")); ++ TEST_VERIFY (support_fuse_dirstream_add (d, NODE_FILE, 3, DT_REG, ++ "file")); ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ case FUSE_LOOKUP: ++ /* Part of the implementation of open. */ ++ { ++ char *name = support_fuse_cast (LOOKUP, inh); ++ printf (" name: %s\n", name); ++ if (inh->nodeid == 1 && strcmp (name, "file") == 0) ++ { ++ struct fuse_entry_out *out ++ = support_fuse_prepare_entry (f, NODE_FILE); ++ out->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ } ++ else if (inh->nodeid == 1 && strcmp (name, "symlink") == 0) ++ { ++ struct fuse_entry_out *out ++ = support_fuse_prepare_entry (f, NODE_SYMLINK); ++ out->attr.mode = S_IFLNK | 0777; ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, ENOENT); ++ } ++ break; ++ case FUSE_OPEN: ++ /* Implementation of open. */ ++ { ++ struct fuse_open_in *p = support_fuse_cast (OPEN, inh); ++ if (inh->nodeid == NODE_FILE) ++ { ++ TEST_VERIFY (!(p->flags & O_EXCL)); ++ struct fuse_open_out out = { 0, }; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ else ++ support_fuse_reply_error (f, ENOENT); ++ } ++ break; ++ case FUSE_GETATTR: ++ /* Happens after open. */ ++ if (inh->nodeid == NODE_FILE) ++ { ++ struct fuse_attr_out *out = support_fuse_prepare_attr (f); ++ out->attr.mode = S_IFREG | 0600; ++ out->attr.size = strlen ("Hello, world!"); ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, ENOENT); ++ break; ++ case FUSE_READ: ++ /* Implementation of read. */ ++ if (inh->nodeid == NODE_FILE) ++ { ++ struct fuse_read_in *p = support_fuse_cast (READ, inh); ++ TEST_COMPARE (p->offset, 0); ++ TEST_VERIFY (p->size >= strlen ("Hello, world!")); ++ support_fuse_reply (f, ++ "Hello, world!", strlen ("Hello, world!")); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ case FUSE_FLUSH: ++ /* Sent in response to close. */ ++ support_fuse_reply_empty (f); ++ break; ++ case FUSE_GETXATTR: ++ /* This happens as part of a open-for-write operation. ++ Signal no support for extended attributes. */ ++ support_fuse_reply_error (f, ENOSYS); ++ break; ++ case FUSE_SETATTR: ++ /* This happens as part of a open-for-write operation to ++ implement O_TRUNC. */ ++ if (inh->nodeid == NODE_FILE) ++ { ++ struct fuse_setattr_in *p = support_fuse_cast (SETATTR, inh); ++ /* FATTR_LOCKOWNER may also be set. */ ++ TEST_COMPARE ((p->valid) & ~ FATTR_LOCKOWNER, FATTR_SIZE); ++ TEST_COMPARE (p->size, 0); ++ struct fuse_attr_out *out = support_fuse_prepare_attr (f); ++ out->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ case FUSE_WRITE: ++ /* Implementation of write. */ ++ if (inh->nodeid == NODE_FILE) ++ { ++ struct fuse_write_in *p = support_fuse_cast (WRITE, inh); ++ TEST_COMPARE (p->offset, 0); ++ /* Write payload follows after struct fuse_write_in. */ ++ TEST_COMPARE_BLOB (p + 1, p->size, ++ "Good day to you too.", ++ strlen ("Good day to you too.")); ++ struct fuse_write_out out = ++ { ++ .size = p->size, ++ }; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ case FUSE_CREATE: ++ /* Implementation of O_CREAT. */ ++ if (inh->nodeid == 1) ++ { ++ char *name; ++ struct fuse_create_in *p ++ = support_fuse_cast_name (CREATE, inh, &name); ++ TEST_VERIFY (S_ISREG (p->mode)); ++ TEST_COMPARE (p->mode & 07777, 0600); ++ TEST_COMPARE_STRING (name, "new"); ++ struct fuse_entry_out *out_entry; ++ struct fuse_open_out *out_open; ++ support_fuse_prepare_create (f, NODE_NEW, &out_entry, &out_open); ++ out_entry->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ case FUSE_MKDIR: ++ /* Implementation of mkdir. */ ++ { ++ if (inh->nodeid == 1) ++ { ++ char *name; ++ struct fuse_mkdir_in *p ++ = support_fuse_cast_name (MKDIR, inh, &name); ++ TEST_COMPARE (p->mode, 01234); ++ TEST_COMPARE_STRING (name, "subdir"); ++ struct fuse_entry_out *out ++ = support_fuse_prepare_entry (f, NODE_SUBDIR); ++ out->attr.mode = S_IFDIR | p->mode; ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ } ++ break; ++ case FUSE_READLINK: ++ /* Implementation of readlink. */ ++ TEST_COMPARE (inh->nodeid, NODE_SYMLINK); ++ if (inh->nodeid == NODE_SYMLINK) ++ support_fuse_reply (f, "target-of-symbolic-link", ++ strlen ("target-of-symbolic-link")); ++ else ++ support_fuse_reply_error (f, EINVAL); ++ break; ++ case FUSE_FORGET: ++ support_fuse_no_reply (f); ++ break; ++ default: ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ ++ printf ("info: Attributes of mountpoint/root directory %s\n", ++ support_fuse_mountpoint (f)); ++ { ++ struct statx st; ++ xstatx (AT_FDCWD, support_fuse_mountpoint (f), 0, STATX_BASIC_STATS, &st); ++ TEST_COMPARE (st.stx_uid, getuid ()); ++ TEST_COMPARE (st.stx_gid, getgid ()); ++ TEST_VERIFY (S_ISDIR (st.stx_mode)); ++ TEST_COMPARE (st.stx_mode & 07777, 0700); ++ } ++ ++ printf ("info: List directory %s\n", support_fuse_mountpoint (f)); ++ { ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ ++ struct dirent *e = xreaddir (dir); ++ TEST_COMPARE (e->d_ino, 1); ++#ifdef _DIRENT_HAVE_D_OFF ++ TEST_COMPARE (e->d_off, 1); ++#endif ++ TEST_COMPARE (e->d_type, DT_DIR); ++ TEST_COMPARE_STRING (e->d_name, "."); ++ ++ e = xreaddir (dir); ++ TEST_COMPARE (e->d_ino, 1); ++#ifdef _DIRENT_HAVE_D_OFF ++ TEST_COMPARE (e->d_off, 2); ++#endif ++ TEST_COMPARE (e->d_type, DT_DIR); ++ TEST_COMPARE_STRING (e->d_name, ".."); ++ ++ e = xreaddir (dir); ++ TEST_COMPARE (e->d_ino, 2); ++#ifdef _DIRENT_HAVE_D_OFF ++ TEST_COMPARE (e->d_off, 3); ++#endif ++ TEST_COMPARE (e->d_type, DT_REG); ++ TEST_COMPARE_STRING (e->d_name, "file"); ++ ++ TEST_COMPARE (closedir (dir), 0); ++ } ++ ++ char *file_path = xasprintf ("%s/file", support_fuse_mountpoint (f)); ++ ++ printf ("info: Attributes of file %s\n", file_path); ++ { ++ struct statx st; ++ xstatx (AT_FDCWD, file_path, 0, STATX_BASIC_STATS, &st); ++ TEST_COMPARE (st.stx_uid, getuid ()); ++ TEST_COMPARE (st.stx_gid, getgid ()); ++ TEST_VERIFY (S_ISREG (st.stx_mode)); ++ TEST_COMPARE (st.stx_mode & 07777, 0600); ++ TEST_COMPARE (st.stx_size, strlen ("Hello, world!")); ++ } ++ ++ printf ("info: Read from %s\n", file_path); ++ { ++ int fd = xopen (file_path, O_RDONLY, 0); ++ char buf[64]; ++ ssize_t len = read (fd, buf, sizeof (buf)); ++ if (len < 0) ++ FAIL_EXIT1 ("read: %m"); ++ TEST_COMPARE_BLOB (buf, len, "Hello, world!", strlen ("Hello, world!")); ++ xclose (fd); ++ } ++ ++ printf ("info: Write to %s\n", file_path); ++ { ++ int fd = xopen (file_path, O_WRONLY | O_TRUNC, 0); ++ xwrite (fd, "Good day to you too.", strlen ("Good day to you too.")); ++ xclose (fd); ++ } ++ ++ printf ("info: Attempt O_EXCL creation of existing %s\n", file_path); ++ /* O_EXCL creation shall fail. */ ++ errno = 0; ++ TEST_COMPARE (open64 (file_path, O_RDWR | O_EXCL | O_CREAT, 0600), -1); ++ TEST_COMPARE (errno, EEXIST); ++ ++ free (file_path); ++ ++ { ++ char *new_path = xasprintf ("%s/new", support_fuse_mountpoint (f)); ++ printf ("info: Test successful O_EXCL creation at %s\n", new_path); ++ int fd = xopen (new_path, O_RDWR | O_EXCL | O_CREAT, 0600); ++ xclose (fd); ++ free (new_path); ++ } ++ ++ { ++ char *subdir_path = xasprintf ("%s/subdir", support_fuse_mountpoint (f)); ++ xmkdir (subdir_path, 01234); ++ } ++ ++ { ++ char *symlink_path = xasprintf ("%s/symlink", support_fuse_mountpoint (f)); ++ char *target = xreadlink (symlink_path); ++ TEST_COMPARE_STRING (target, "target-of-symbolic-link"); ++ free (target); ++ free (symlink_path); ++ } ++ ++ support_fuse_unmount (f); ++ return 0; ++} ++ ++#include +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-11.patch b/SOURCES/glibc-RHEL-50545-11.patch new file mode 100644 index 0000000..4681971 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-11.patch @@ -0,0 +1,501 @@ +From e3db0a699c639e97deddcb15939fd9c162801c77 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Sat, 21 Sep 2024 19:25:35 +0200 +Subject: [PATCH] misc: FUSE-based tests for mkstemp +Content-type: text/plain; charset=UTF-8 + +The tests check that O_EXCL is used properly, that 0600 is used +as the mode, that the characters used are as expected, and that +the distribution of names generated is reasonably random. + +The tests run very slowly on some kernel versions, so make them +xtests. + +Reviewed-by: DJ Delorie + +Conflicts + misc/Makefile + context +--- + misc/Makefile | 6 + + misc/tst-mkstemp-fuse-parallel.c | 219 +++++++++++++++++++++++++++++++ + misc/tst-mkstemp-fuse.c | 197 +++++++++++++++++++++++++++ + 3 files changed, 422 insertions(+) + create mode 100644 misc/tst-mkstemp-fuse-parallel.c + create mode 100644 misc/tst-mkstemp-fuse.c + +diff --git a/misc/Makefile b/misc/Makefile +index 7b7f8351bf..1422c95317 100644 +--- a/misc/Makefile ++++ b/misc/Makefile +@@ -109,6 +109,12 @@ tests-static := tst-empty + tests-internal += tst-fd_to_filename + tests-static += tst-fd_to_filename + ++# Tests with long run times. ++xtests += \ ++ tst-mkstemp-fuse \ ++ tst-mkstemp-fuse-parallel \ ++ # xtests ++ + ifeq ($(run-built-tests),yes) + tests-special += $(objpfx)tst-error1-mem.out \ + $(objpfx)tst-allocate_once-mem.out +diff --git a/misc/tst-mkstemp-fuse-parallel.c b/misc/tst-mkstemp-fuse-parallel.c +new file mode 100644 +index 0000000000..219f26cb3b +--- /dev/null ++++ b/misc/tst-mkstemp-fuse-parallel.c +@@ -0,0 +1,246 @@ ++/* FUSE-based test for mkstemp. Parallel collision statistics. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* The number of subprocesses that call mkstemp. */ ++static pid_t processes[4]; ++ ++/* Enough space to record the expected number of replies (62**3) for ++ each process. */ ++enum { results_allocated = array_length (processes) * 62 * 62 * 62 }; ++ ++/* The thread will store the results there. */ ++static uint64_t *results; ++ ++/* Currently used part of the results array. */ ++static size_t results_used; ++ ++ ++/* Copied from upstream's string/strlcpy.c . */ ++static size_t ++strlcpy (char *__restrict dest, const char *__restrict src, size_t size) ++{ ++ size_t src_length = strlen (src); ++ ++ if (__glibc_unlikely (src_length >= size)) ++ { ++ if (size > 0) ++ { ++ /* Copy the leading portion of the string. The last ++ character is subsequently overwritten with the NUL ++ terminator, but the destination size is usually a ++ multiple of a small power of two, so writing it twice ++ should be more efficient than copying an odd number of ++ bytes. */ ++ memcpy (dest, src, size); ++ dest[size - 1] = '\0'; ++ } ++ } ++ else ++ /* Copy the string and its terminating NUL character. */ ++ memcpy (dest, src, src_length + 1); ++ return src_length; ++} ++ ++/* Fail with EEXIST (so that mkstemp tries again). Record observed ++ names for later statistical analysis. */ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ if (inh->opcode != FUSE_LOOKUP || results_used >= results_allocated) ++ { ++ support_fuse_reply_error (f, EIO); ++ continue; ++ } ++ ++ char *name = support_fuse_cast (LOOKUP, inh); ++ TEST_COMPARE_BLOB (name, 3, "new", 3); ++ TEST_COMPARE (strlen (name), 9); ++ /* Extract 8 bytes of the name: 'w', the X replacements, and the ++ null terminator. Treat it as an uint64_t for easy sorting ++ below. Endianess does not matter because the relative order ++ of the entries is not important; sorting is only used to find ++ duplicates. */ ++ TEST_VERIFY_EXIT (results_used < results_allocated); ++ memcpy (&results[results_used], name + 2, 8); ++ ++results_used; ++ struct fuse_entry_out *out = support_fuse_prepare_entry (f, 2); ++ out->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ } ++} ++ ++/* Used to sort the results array, to find duplicates. */ ++static int ++results_sort (const void *a1, const void *b1) ++{ ++ const uint64_t *a = a1; ++ const uint64_t *b = b1; ++ if (*a < *b) ++ return -1; ++ if (*a == *b) ++ return 0; ++ return 1; ++} ++ ++/* Number of occurrences of certain streak lengths. */ ++static size_t streak_lengths[6]; ++ ++/* Called for every encountered streak. */ ++static inline void ++report_streak (uint64_t current, size_t length) ++{ ++ if (length > 1) ++ { ++ printf ("info: name \"ne%.8s\" repeats: %zu\n", ++ (char *) ¤t, length); ++ TEST_VERIFY_EXIT (length < array_length (streak_lengths)); ++ } ++ TEST_VERIFY_EXIT (length < array_length (streak_lengths)); ++ ++streak_lengths[length]; ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ results = xmalloc (results_allocated * sizeof (*results)); ++ ++ struct shared ++ { ++ /* Used to synchronize the start of all subprocesses, to make it ++ more likely to expose concurrency-related bugs. */ ++ pthread_barrier_t barrier1; ++ pthread_barrier_t barrier2; ++ ++ /* Filled in after fork. */ ++ char mountpoint[4096]; ++ }; ++ ++ /* Used to synchronize the start of all subprocesses, to make it ++ more likely to expose concurrency-related bugs. */ ++ struct shared *pshared = support_shared_allocate (sizeof (*pshared)); ++ { ++ pthread_barrierattr_t attr; ++ xpthread_barrierattr_init (&attr); ++ xpthread_barrierattr_setpshared (&attr, PTHREAD_PROCESS_SHARED); ++ xpthread_barrierattr_destroy (&attr); ++ xpthread_barrier_init (&pshared->barrier1, &attr, ++ array_length (processes) + 1); ++ xpthread_barrier_init (&pshared->barrier2, &attr, ++ array_length (processes) + 1); ++ xpthread_barrierattr_destroy (&attr); ++ } ++ ++ for (int i = 0; i < array_length (processes); ++i) ++ { ++ processes[i] = xfork (); ++ if (processes[i] == 0) ++ { ++ /* Wait for mountpoint initialization. */ ++ xpthread_barrier_wait (&pshared->barrier1); ++ char *path = xasprintf ("%s/newXXXXXX", pshared->mountpoint); ++ ++ /* Park this process until all processes have started. */ ++ xpthread_barrier_wait (&pshared->barrier2); ++ errno = 0; ++ TEST_COMPARE (mkstemp (path), -1); ++ TEST_COMPARE (errno, EEXIST); ++ free (path); ++ _exit (0); ++ } ++ } ++ ++ /* Do this after the forking, to minimize initialization inteference. */ ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ TEST_VERIFY (strlcpy (pshared->mountpoint, support_fuse_mountpoint (f), ++ sizeof (pshared->mountpoint)) ++ < sizeof (pshared->mountpoint)); ++ xpthread_barrier_wait (&pshared->barrier1); ++ ++ puts ("info: performing mkstemp calls"); ++ xpthread_barrier_wait (&pshared->barrier2); ++ ++ for (int i = 0; i < array_length (processes); ++i) ++ { ++ int status; ++ xwaitpid (processes[i], &status, 0); ++ TEST_COMPARE (status, 0); ++ } ++ ++ support_fuse_unmount (f); ++ xpthread_barrier_destroy (&pshared->barrier2); ++ xpthread_barrier_destroy (&pshared->barrier1); ++ ++ printf ("info: checking results (count %zu)\n", results_used); ++ qsort (results, results_used, sizeof (*results), results_sort); ++ ++ uint64_t current = -1; ++ size_t streak = 0; ++ for (size_t i = 0; i < results_used; ++i) ++ if (results[i] == current) ++ ++streak; ++ else ++ { ++ report_streak (current, streak); ++ current = results[i]; ++ streak = 1; ++ } ++ report_streak (current, streak); ++ ++ puts ("info: repetition count distribution:"); ++ for (int i = 1; i < array_length (streak_lengths); ++i) ++ printf (" length %d: %zu\n", i, streak_lengths[i]); ++ /* Some arbitrary threshold, hopefully unlikely enough. In over ++ 260,000 runs of a simulation of this test, at most 26 pairs were ++ observed, and only one three-way collisions. */ ++ if (streak_lengths[2] > 30) ++ FAIL ("unexpected repetition count 2: %zu", streak_lengths[2]); ++ if (streak_lengths[3] > 2) ++ FAIL ("unexpected repetition count 3: %zu", streak_lengths[3]); ++ for (int i = 4; i < array_length (streak_lengths); ++i) ++ if (streak_lengths[i] > 0) ++ FAIL ("too many repeats of count %d: %zu", i, streak_lengths[i]); ++ ++ free (results); ++ ++ return 0; ++} ++ ++#include +diff --git a/misc/tst-mkstemp-fuse.c b/misc/tst-mkstemp-fuse.c +new file mode 100644 +index 0000000000..5ac6a6872a +--- /dev/null ++++ b/misc/tst-mkstemp-fuse.c +@@ -0,0 +1,197 @@ ++/* FUSE-based test for mkstemp. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Set to true in do_test to cause the first FUSE_CREATE attempt to fail. */ ++static _Atomic bool simulate_creat_race; ++ ++/* Basic tests with eventually successful creation. */ ++static void ++fuse_thread_basic (struct support_fuse *f, void *closure) ++{ ++ char *previous_name = NULL; ++ int state = 0; ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ ++ switch (inh->opcode) ++ { ++ case FUSE_LOOKUP: ++ /* File does not exist initially. */ ++ TEST_COMPARE (inh->nodeid, 1); ++ if (simulate_creat_race) ++ { ++ if (state < 3) ++ ++state; ++ else ++ FAIL ("invalid state: %d", state); ++ } ++ else ++ { ++ TEST_COMPARE (state, 0); ++ state = 3; ++ } ++ support_fuse_reply_error (f, ENOENT); ++ break; ++ case FUSE_CREATE: ++ { ++ TEST_COMPARE (inh->nodeid, 1); ++ char *name; ++ struct fuse_create_in *p ++ = support_fuse_cast_name (CREATE, inh, &name); ++ /* Name follows after struct fuse_create_in. */ ++ TEST_COMPARE (p->flags & O_ACCMODE, O_RDWR); ++ TEST_VERIFY (p->flags & O_EXCL); ++ TEST_VERIFY (p->flags & O_CREAT); ++ TEST_COMPARE (p->mode & 07777, 0600); ++ TEST_VERIFY (S_ISREG (p->mode)); ++ TEST_COMPARE_BLOB (name, 3, "new", 3); ++ ++ if (state != 3 && simulate_creat_race) ++ { ++ ++state; ++ support_fuse_reply_error (f, EEXIST); ++ } ++ else ++ { ++ if (previous_name != NULL) ++ /* This test has a very small probability of failure ++ due to a harmless collision (one in 62**6 tests). */ ++ TEST_VERIFY (strcmp (name, previous_name) != 0); ++ TEST_COMPARE (state, 3); ++ ++state; ++ struct fuse_entry_out *entry; ++ struct fuse_open_out *open; ++ support_fuse_prepare_create (f, 2, &entry, &open); ++ entry->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ } ++ free (previous_name); ++ previous_name = xstrdup (name); ++ } ++ break; ++ case FUSE_FLUSH: ++ case FUSE_RELEASE: ++ TEST_COMPARE (state, 4); ++ TEST_COMPARE (inh->nodeid, 2); ++ support_fuse_reply_empty (f); ++ break; ++ default: ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++ free (previous_name); ++} ++ ++/* Reply that all files exist. */ ++static void ++fuse_thread_eexist (struct support_fuse *f, void *closure) ++{ ++ uint64_t counter = 0; ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ ++ switch (inh->opcode) ++ { ++ case FUSE_LOOKUP: ++ ++counter; ++ TEST_COMPARE (inh->nodeid, 1); ++ char *name = support_fuse_cast (LOOKUP, inh); ++ TEST_COMPARE_BLOB (name, 3, "new", 3); ++ TEST_COMPARE (strlen (name), 9); ++ for (int i = 3; i <= 8; ++i) ++ { ++ /* The glibc implementation uses letters and digits only. */ ++ char ch = name[i]; ++ TEST_VERIFY (('0' <= ch && ch <= '9') ++ || ('a' <= ch && ch <= 'z') ++ || ('A' <= ch && ch <= 'Z')); ++ } ++ struct fuse_entry_out out = ++ { ++ .nodeid = 2, ++ .attr = { ++ .mode = S_IFREG | 0600, ++ .ino = 2, ++ }, ++ }; ++ support_fuse_reply (f, &out, sizeof (out)); ++ break; ++ default: ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++ /* Verify that mkstemp has retried a lot. The current ++ implementation tries 62 * 62 * 62 times until it goves up. */ ++ TEST_VERIFY (counter >= 200000); ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ for (int do_simulate_creat_race = 0; do_simulate_creat_race < 2; ++ ++do_simulate_creat_race) ++ { ++ simulate_creat_race = do_simulate_creat_race; ++ printf ("info: testing with simulate_creat_race == %d\n", ++ (int) simulate_creat_race); ++ struct support_fuse *f = support_fuse_mount (fuse_thread_basic, NULL); ++ char *path = xasprintf ("%s/newXXXXXX", support_fuse_mountpoint (f)); ++ int fd = mkstemp (path); ++ TEST_VERIFY (fd > 2); ++ xclose (fd); ++ free (path); ++ support_fuse_unmount (f); ++ } ++ ++ puts ("info: testing EEXIST failure case for mkstemp"); ++ { ++ struct support_fuse *f = support_fuse_mount (fuse_thread_eexist, NULL); ++ char *path = xasprintf ("%s/newXXXXXX", support_fuse_mountpoint (f)); ++ errno = 0; ++ TEST_COMPARE (mkstemp (path), -1); ++ TEST_COMPARE (errno, EEXIST); ++ free (path); ++ support_fuse_unmount (f); ++ } ++ ++ return 0; ++} ++ ++#include +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-12.patch b/SOURCES/glibc-RHEL-50545-12.patch new file mode 100644 index 0000000..a54cff9 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-12.patch @@ -0,0 +1,40 @@ +From 455c7622835d16c79e49fe75b8d3a1ae59a3d0ee Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Sat, 21 Sep 2024 19:25:35 +0200 +Subject: [PATCH] support: Fix memory leaks in FUSE tests +Content-type: text/plain; charset=UTF-8 + +The internal read buffer (used by all FUSE tests) was not freed. +The support/tst-support_fuse test missed a deallocation. +--- + support/support_fuse.c | 1 + + support/tst-support_fuse.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/support/support_fuse.c b/support/support_fuse.c +index 135dbf1198..f6c063b549 100644 +--- a/support/support_fuse.c ++++ b/support/support_fuse.c +@@ -659,6 +659,7 @@ support_fuse_unmount (struct support_fuse *f) + if (rmdir (f->mountpoint) != 0) + FAIL ("FUSE: rmdir (\"%s\"): %m", f->mountpoint); + xclose (f->fd); ++ free (f->buffer_start); + free (f->mountpoint); + free (f->readdir_buffer); + free (f); +diff --git a/support/tst-support_fuse.c b/support/tst-support_fuse.c +index c4075a6608..9ee637cbab 100644 +--- a/support/tst-support_fuse.c ++++ b/support/tst-support_fuse.c +@@ -331,6 +331,7 @@ do_test (void) + { + char *subdir_path = xasprintf ("%s/subdir", support_fuse_mountpoint (f)); + xmkdir (subdir_path, 01234); ++ free (subdir_path); + } + + { +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-13.patch b/SOURCES/glibc-RHEL-50545-13.patch new file mode 100644 index 0000000..59b5f29 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-13.patch @@ -0,0 +1,32 @@ +From 366cce74d2aa2e5753d8787d415b745fd57fda04 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Sat, 21 Sep 2024 19:29:13 +0200 +Subject: [PATCH] support: Add valgrind instructions to +Content-type: text/plain; charset=UTF-8 + +Replacing an outdated comment (namespace setup is now handled by +support_fuse_init). +--- + support/fuse.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/support/fuse.h b/support/fuse.h +index 4c365fbc0c..1c862bedbe 100644 +--- a/support/fuse.h ++++ b/support/fuse.h +@@ -16,8 +16,10 @@ + License along with the GNU C Library; if not, see + . */ + +-/* Before using this functionality, use support_enter_mount_namespace +- to ensure that mounts do not impact the overall system. */ ++/* To run FUSE tests under valgrind, pass the ++ --sim-hints=fuse-compatible option to valgrind. This option tells ++ valgrind that additional system calls effectively call back into ++ the current program. */ + + #ifndef SUPPORT_FUSE_H + #define SUPPORT_FUSE_H +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-14.patch b/SOURCES/glibc-RHEL-50545-14.patch new file mode 100644 index 0000000..c2674d1 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-14.patch @@ -0,0 +1,24 @@ +From 3ef26b708725b528a1c69ab3eb523036c50b89d6 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Tue, 24 Sep 2024 13:05:48 +0200 +Subject: [PATCH] misc: Link tst-mkstemp-fuse-parallel with + $(shared-thread-library) +Content-type: text/plain; charset=UTF-8 + +The barrier functions require this on Hurd. +--- + misc/Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/misc/Makefile b/misc/Makefile +index 1422c95317..a932b1aab4 100644 +--- a/misc/Makefile ++++ b/misc/Makefile +@@ -178,3 +178,4 @@ $(objpfx)tst-select: $(librt) + $(objpfx)tst-select-time64: $(librt) + $(objpfx)tst-pselect: $(librt) + $(objpfx)tst-pselect-time64: $(librt) ++$(objpfx)tst-mkstemp-fuse-parallel: $(shared-thread-library) +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-2.patch b/SOURCES/glibc-RHEL-50545-2.patch new file mode 100644 index 0000000..b392625 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-2.patch @@ -0,0 +1,785 @@ +From 026a84a54d3b6c23b999b793e2a6f8ecd211e3b8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20B=C3=A9rat?= +Date: Thu, 1 Jun 2023 12:40:05 -0400 +Subject: [PATCH] tests: replace write by xwrite +Content-type: text/plain; charset=UTF-8 + +Using write without cheks leads to warn unused result when __wur is +enabled. + +Reviewed-by: Siddhesh Poyarekar +--- + dirent/tst-fdopendir.c | 4 +++- + io/tst-faccessat.c | 3 ++- + io/tst-fchmodat.c | 3 ++- + io/tst-fchownat.c | 3 ++- + io/tst-fstatat.c | 3 ++- + io/tst-futimesat.c | 3 ++- + io/tst-linkat.c | 3 ++- + io/tst-openat.c | 3 ++- + io/tst-renameat.c | 3 ++- + io/tst-symlinkat.c | 3 ++- + io/tst-unlinkat.c | 3 ++- + libio/bug-ungetc.c | 4 +++- + libio/bug-ungetc3.c | 4 +++- + libio/bug-ungetc4.c | 4 +++- + libio/bug-wfflush.c | 4 +++- + libio/bug-wsetpos.c | 4 +++- + nptl/tst-stackguard1.c | 4 +++- + nptl/tst-tls3.c | 2 ++ + nptl/tst-tls3mod.c | 5 +++-- + rt/tst-cpuclock2.c | 4 +++- + rt/tst-cputimer1.c | 4 +++- + rt/tst-cputimer2.c | 4 +++- + rt/tst-cputimer3.c | 4 +++- + support/test-container.c | 8 ++++---- + sysdeps/pthread/tst-cond18.c | 4 +++- + sysdeps/pthread/tst-flock1.c | 3 ++- + sysdeps/pthread/tst-flock2.c | 3 ++- + sysdeps/pthread/tst-key1.c | 11 ++++++----- + sysdeps/pthread/tst-signal1.c | 3 ++- + sysdeps/pthread/tst-signal2.c | 3 ++- + sysdeps/pthread/tst-timer.c | 3 ++- + time/tst-cpuclock1.c | 4 +++- + 32 files changed, 84 insertions(+), 39 deletions(-) + +diff --git a/dirent/tst-fdopendir.c b/dirent/tst-fdopendir.c +index 6321af1daa..2c9520574d 100644 +--- a/dirent/tst-fdopendir.c ++++ b/dirent/tst-fdopendir.c +@@ -7,6 +7,8 @@ + #include + #include + ++#include ++ + #ifndef O_NOATIME + # define O_NOATIME 0 + #endif +@@ -22,7 +24,7 @@ do_test (void) + return 1; + } + +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + close (fd); + + struct stat64 st; +diff --git a/io/tst-faccessat.c b/io/tst-faccessat.c +index 7bdeed008c..b90954e318 100644 +--- a/io/tst-faccessat.c ++++ b/io/tst-faccessat.c +@@ -8,6 +8,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -96,7 +97,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + /* Before closing the file, try using this file descriptor to open +diff --git a/io/tst-fchmodat.c b/io/tst-fchmodat.c +index 7d4a8717ff..83003e2f21 100644 +--- a/io/tst-fchmodat.c ++++ b/io/tst-fchmodat.c +@@ -8,6 +8,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -98,7 +99,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + struct stat64 st1; +diff --git a/io/tst-fchownat.c b/io/tst-fchownat.c +index e8adf6229f..c0b87cda8f 100644 +--- a/io/tst-fchownat.c ++++ b/io/tst-fchownat.c +@@ -6,6 +6,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -106,7 +107,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + struct stat64 st1; +diff --git a/io/tst-fstatat.c b/io/tst-fstatat.c +index 4766bb2e71..6a60024b63 100644 +--- a/io/tst-fstatat.c ++++ b/io/tst-fstatat.c +@@ -6,6 +6,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -94,7 +95,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + struct stat64 st1; +diff --git a/io/tst-futimesat.c b/io/tst-futimesat.c +index 3d41721f42..b7ef386e06 100644 +--- a/io/tst-futimesat.c ++++ b/io/tst-futimesat.c +@@ -28,6 +28,7 @@ + + #include + #include ++#include + + #ifndef struct_stat + # define struct_stat struct stat64 +@@ -114,7 +115,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + struct_stat st1; +diff --git a/io/tst-linkat.c b/io/tst-linkat.c +index 97445b7954..6b22a01c88 100644 +--- a/io/tst-linkat.c ++++ b/io/tst-linkat.c +@@ -6,6 +6,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -94,7 +95,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + struct stat64 st1; +diff --git a/io/tst-openat.c b/io/tst-openat.c +index 741b8d0ad2..2ce89e3db1 100644 +--- a/io/tst-openat.c ++++ b/io/tst-openat.c +@@ -6,6 +6,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -94,7 +95,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + + /* Before closing the file, try using this file descriptor to open + another file. This must fail. */ +diff --git a/io/tst-renameat.c b/io/tst-renameat.c +index 435302b52b..0b9da5fd6d 100644 +--- a/io/tst-renameat.c ++++ b/io/tst-renameat.c +@@ -6,6 +6,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -94,7 +95,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + struct stat64 st1; +diff --git a/io/tst-symlinkat.c b/io/tst-symlinkat.c +index 214a8e348e..4a34994df7 100644 +--- a/io/tst-symlinkat.c ++++ b/io/tst-symlinkat.c +@@ -6,6 +6,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -94,7 +95,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + puts ("file created"); + + struct stat64 st1; +diff --git a/io/tst-unlinkat.c b/io/tst-unlinkat.c +index e21d56f9f7..21a2dbaf57 100644 +--- a/io/tst-unlinkat.c ++++ b/io/tst-unlinkat.c +@@ -6,6 +6,7 @@ + #include + #include + ++#include + + static void prepare (void); + #define PREPARE(argc, argv) prepare () +@@ -94,7 +95,7 @@ do_test (void) + puts ("file creation failed"); + return 1; + } +- write (fd, "hello", 5); ++ xwrite (fd, "hello", 5); + close (fd); + puts ("file created"); + +diff --git a/libio/bug-ungetc.c b/libio/bug-ungetc.c +index 51940b68f5..4ea2d14ed6 100644 +--- a/libio/bug-ungetc.c ++++ b/libio/bug-ungetc.c +@@ -2,6 +2,8 @@ + + #include + ++#include ++ + static void do_prepare (void); + #define PREPARE(argc, argv) do_prepare () + static int do_test (void); +@@ -20,7 +22,7 @@ do_prepare (void) + printf ("cannot create temporary file: %m\n"); + exit (1); + } +- write (fd, pattern, sizeof (pattern)); ++ xwrite (fd, pattern, sizeof (pattern)); + close (fd); + } + +diff --git a/libio/bug-ungetc3.c b/libio/bug-ungetc3.c +index 0c83c1161e..6100d7a936 100644 +--- a/libio/bug-ungetc3.c ++++ b/libio/bug-ungetc3.c +@@ -2,6 +2,8 @@ + + #include + ++#include ++ + static void do_prepare (void); + #define PREPARE(argc, argv) do_prepare () + static int do_test (void); +@@ -20,7 +22,7 @@ do_prepare (void) + printf ("cannot create temporary file: %m\n"); + exit (1); + } +- write (fd, pattern, sizeof (pattern)); ++ xwrite (fd, pattern, sizeof (pattern)); + close (fd); + } + +diff --git a/libio/bug-ungetc4.c b/libio/bug-ungetc4.c +index 0bd02a570d..8a05def686 100644 +--- a/libio/bug-ungetc4.c ++++ b/libio/bug-ungetc4.c +@@ -19,6 +19,8 @@ + + #include + ++#include ++ + static void do_prepare (void); + #define PREPARE(argc, argv) do_prepare () + static int do_test (void); +@@ -37,7 +39,7 @@ do_prepare (void) + printf ("cannot create temporary file: %m\n"); + exit (1); + } +- write (fd, pattern, sizeof (pattern) - 1); ++ xwrite (fd, pattern, sizeof (pattern) - 1); + close (fd); + } + +diff --git a/libio/bug-wfflush.c b/libio/bug-wfflush.c +index a8fd61e997..d1b9d8e9de 100644 +--- a/libio/bug-wfflush.c ++++ b/libio/bug-wfflush.c +@@ -3,6 +3,8 @@ + #include + #include + ++#include ++ + static void do_prepare (void); + #define PREPARE(argc, argv) do_prepare () + static int do_test (void); +@@ -20,7 +22,7 @@ do_prepare (void) + printf ("cannot create temporary file: %m\n"); + exit (1); + } +- write (fd, "1!", 2); ++ xwrite (fd, "1!", 2); + close (fd); + } + +diff --git a/libio/bug-wsetpos.c b/libio/bug-wsetpos.c +index ccb22a4b62..0fc373ba49 100644 +--- a/libio/bug-wsetpos.c ++++ b/libio/bug-wsetpos.c +@@ -4,6 +4,8 @@ + #include + #include + ++#include ++ + static void do_prepare (void); + #define PREPARE(argc, argv) do_prepare () + static int do_test (void); +@@ -22,7 +24,7 @@ do_prepare (void) + printf ("cannot create temporary file: %m\n"); + exit (1); + } +- write (fd, pattern, sizeof (pattern)); ++ xwrite (fd, pattern, sizeof (pattern)); + close (fd); + } + +diff --git a/nptl/tst-stackguard1.c b/nptl/tst-stackguard1.c +index b9cf6844de..4ac57157e9 100644 +--- a/nptl/tst-stackguard1.c ++++ b/nptl/tst-stackguard1.c +@@ -28,6 +28,8 @@ + #include + #include + ++#include ++ + static const char *command; + static bool child; + static uintptr_t stack_chk_guard_copy; +@@ -97,7 +99,7 @@ do_test (void) + else if (ret != NULL) + return 1; + +- write (2, &stack_chk_guard_copy, sizeof (stack_chk_guard_copy)); ++ xwrite (2, &stack_chk_guard_copy, sizeof (stack_chk_guard_copy)); + return 0; + } + +diff --git a/nptl/tst-tls3.c b/nptl/tst-tls3.c +index b1a40c624a..33d94c8cc5 100644 +--- a/nptl/tst-tls3.c ++++ b/nptl/tst-tls3.c +@@ -27,6 +27,8 @@ + #include + #include + ++#include ++ + #define THE_SIG SIGUSR1 + + /* The stack size can be overriden. With a sufficiently large stack +diff --git a/nptl/tst-tls3mod.c b/nptl/tst-tls3mod.c +index c6e8910b1e..345a48e1c7 100644 +--- a/nptl/tst-tls3mod.c ++++ b/nptl/tst-tls3mod.c +@@ -26,6 +26,7 @@ + #include + #include + ++#include + + extern pthread_barrier_t b; + +@@ -44,7 +45,7 @@ handler (int sig) + { + if (sig != THE_SIG) + { +- write (STDOUT_FILENO, "wrong signal\n", 13); ++ xwrite (STDOUT_FILENO, "wrong signal\n", 13); + _exit (1); + } + +@@ -52,7 +53,7 @@ handler (int sig) + + if (sem_post (&s) != 0) + { +- write (STDOUT_FILENO, "sem_post failed\n", 16); ++ xwrite (STDOUT_FILENO, "sem_post failed\n", 16); + _exit (1); + } + } +diff --git a/rt/tst-cpuclock2.c b/rt/tst-cpuclock2.c +index e4584d8791..8afd34ed9c 100644 +--- a/rt/tst-cpuclock2.c ++++ b/rt/tst-cpuclock2.c +@@ -37,6 +37,8 @@ do_test () + #include + #include + ++#include ++ + static pthread_barrier_t barrier; + + /* This function is intended to rack up both user and system time. */ +@@ -55,7 +57,7 @@ chew_cpu (void *arg) + for (int i = 0; i < 100; ++i) + for (size_t j = 0; j < sizeof buf; ++j) + buf[j] = 0xbb; +- write (nullfd, (char *) buf, sizeof buf); ++ xwrite (nullfd, (char *) buf, sizeof buf); + close (nullfd); + } + +diff --git a/rt/tst-cputimer1.c b/rt/tst-cputimer1.c +index 8f5dd76cf2..18d8b195a2 100644 +--- a/rt/tst-cputimer1.c ++++ b/rt/tst-cputimer1.c +@@ -11,6 +11,8 @@ + #include + #include + ++#include ++ + #define TEST_CLOCK CLOCK_PROCESS_CPUTIME_ID + #define TEST_CLOCK_MISSING(clock) \ + (setup_test () ? "process CPU clock timer support" : NULL) +@@ -29,7 +31,7 @@ chew_cpu (void *arg) + for (int i = 0; i < 100; ++i) + for (size_t j = 0; j < sizeof buf; ++j) + buf[j] = 0xbb; +- write (nullfd, (char *) buf, sizeof buf); ++ xwrite (nullfd, (char *) buf, sizeof buf); + close (nullfd); + } + +diff --git a/rt/tst-cputimer2.c b/rt/tst-cputimer2.c +index 397d7998c0..a5700d4bac 100644 +--- a/rt/tst-cputimer2.c ++++ b/rt/tst-cputimer2.c +@@ -12,6 +12,8 @@ + #include + #include + ++#include ++ + static clockid_t worker_thread_clock; + + #define TEST_CLOCK worker_thread_clock +@@ -32,7 +34,7 @@ chew_cpu (void *arg) + for (int i = 0; i < 100; ++i) + for (size_t j = 0; j < sizeof buf; ++j) + buf[j] = 0xbb; +- write (nullfd, (char *) buf, sizeof buf); ++ xwrite (nullfd, (char *) buf, sizeof buf); + close (nullfd); + } + +diff --git a/rt/tst-cputimer3.c b/rt/tst-cputimer3.c +index 056766a377..786de93a02 100644 +--- a/rt/tst-cputimer3.c ++++ b/rt/tst-cputimer3.c +@@ -13,6 +13,8 @@ + #include + #include + ++#include ++ + static clockid_t child_clock; + + #define TEST_CLOCK child_clock +@@ -33,7 +35,7 @@ chew_cpu (void) + for (int i = 0; i < 100; ++i) + for (size_t j = 0; j < sizeof buf; ++j) + buf[j] = 0xbb; +- write (nullfd, (char *) buf, sizeof buf); ++ xwrite (nullfd, (char *) buf, sizeof buf); + close (nullfd); + if (getppid () == 1) + _exit (2); +diff --git a/support/test-container.c b/support/test-container.c +index e68f16eecf..d4ca41fe7c 100644 +--- a/support/test-container.c ++++ b/support/test-container.c +@@ -1177,7 +1177,7 @@ main (int argc, char **argv) + int status; + + /* Send the child's "outside" pid to it. */ +- write (pipes[1], &child, sizeof(child)); ++ xwrite (pipes[1], &child, sizeof(child)); + close (pipes[0]); + close (pipes[1]); + +@@ -1246,7 +1246,7 @@ main (int argc, char **argv) + + sprintf (tmp, "%lld %lld 1\n", + (long long) (be_su ? 0 : original_uid), (long long) original_uid); +- write (UMAP, tmp, strlen (tmp)); ++ xwrite (UMAP, tmp, strlen (tmp)); + xclose (UMAP); + + /* We must disable setgroups () before we can map our groups, else we +@@ -1255,7 +1255,7 @@ main (int argc, char **argv) + if (GMAP >= 0) + { + /* We support kernels old enough to not have this. */ +- write (GMAP, "deny\n", 5); ++ xwrite (GMAP, "deny\n", 5); + xclose (GMAP); + } + +@@ -1267,7 +1267,7 @@ main (int argc, char **argv) + + sprintf (tmp, "%lld %lld 1\n", + (long long) (be_su ? 0 : original_gid), (long long) original_gid); +- write (GMAP, tmp, strlen (tmp)); ++ xwrite (GMAP, tmp, strlen (tmp)); + xclose (GMAP); + } + +diff --git a/sysdeps/pthread/tst-cond18.c b/sysdeps/pthread/tst-cond18.c +index edac4fa4ff..ffae356c04 100644 +--- a/sysdeps/pthread/tst-cond18.c ++++ b/sysdeps/pthread/tst-cond18.c +@@ -25,6 +25,8 @@ + #include + #include + ++#include ++ + pthread_cond_t cv = PTHREAD_COND_INITIALIZER; + pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + bool exiting; +@@ -41,7 +43,7 @@ tf (void *id) + while (!exiting) + { + if ((spins++ % 1000) == 0) +- write (fd, ".", 1); ++ xwrite (fd, ".", 1); + pthread_mutex_unlock (&lock); + + pthread_mutex_lock (&lock); +diff --git a/sysdeps/pthread/tst-flock1.c b/sysdeps/pthread/tst-flock1.c +index 7eef9070ab..9de148afd3 100644 +--- a/sysdeps/pthread/tst-flock1.c ++++ b/sysdeps/pthread/tst-flock1.c +@@ -22,6 +22,7 @@ + #include + #include + ++#include + + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + +@@ -57,7 +58,7 @@ do_test (void) + + unlink (tmp); + +- write (fd, "foobar xyzzy", 12); ++ xwrite (fd, "foobar xyzzy", 12); + + if (flock (fd, LOCK_EX | LOCK_NB) != 0) + { +diff --git a/sysdeps/pthread/tst-flock2.c b/sysdeps/pthread/tst-flock2.c +index 8762e93b52..952b79e5db 100644 +--- a/sysdeps/pthread/tst-flock2.c ++++ b/sysdeps/pthread/tst-flock2.c +@@ -25,6 +25,7 @@ + #include + #include + ++#include + + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + static pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER; +@@ -71,7 +72,7 @@ do_test (void) + + int i; + for (i = 0; i < 20; ++i) +- write (fd, "foobar xyzzy", 12); ++ xwrite (fd, "foobar xyzzy", 12); + + pthread_barrier_t *b; + b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE, +diff --git a/sysdeps/pthread/tst-key1.c b/sysdeps/pthread/tst-key1.c +index 933edafef8..60245c4e47 100644 +--- a/sysdeps/pthread/tst-key1.c ++++ b/sysdeps/pthread/tst-key1.c +@@ -22,6 +22,7 @@ + #include + #include + ++#include + + static int do_test (void); + +@@ -52,7 +53,7 @@ do_test (void) + + if (pthread_setspecific (keys[i], (const void *) (i + 100l)) != 0) + { +- write (2, "setspecific failed\n", 19); ++ xwrite (2, "setspecific failed\n", 19); + _exit (1); + } + } +@@ -61,13 +62,13 @@ do_test (void) + { + if (pthread_getspecific (keys[i]) != (void *) (i + 100l)) + { +- write (2, "getspecific failed\n", 19); ++ xwrite (2, "getspecific failed\n", 19); + _exit (1); + } + + if (pthread_key_delete (keys[i]) != 0) + { +- write (2, "key_delete failed\n", 18); ++ xwrite (2, "key_delete failed\n", 18); + _exit (1); + } + } +@@ -75,13 +76,13 @@ do_test (void) + /* Now it must be once again possible to allocate keys. */ + if (pthread_key_create (&keys[0], NULL) != 0) + { +- write (2, "2nd key_create failed\n", 22); ++ xwrite (2, "2nd key_create failed\n", 22); + _exit (1); + } + + if (pthread_key_delete (keys[0]) != 0) + { +- write (2, "2nd key_delete failed\n", 22); ++ xwrite (2, "2nd key_delete failed\n", 22); + _exit (1); + } + +diff --git a/sysdeps/pthread/tst-signal1.c b/sysdeps/pthread/tst-signal1.c +index d1073e8459..d1082027ca 100644 +--- a/sysdeps/pthread/tst-signal1.c ++++ b/sysdeps/pthread/tst-signal1.c +@@ -26,6 +26,7 @@ + #include + #include + ++#include + + static sigset_t ss; + static pthread_barrier_t *b; +@@ -106,7 +107,7 @@ do_test (void) + + int i; + for (i = 0; i < 20; ++i) +- write (fd, "foobar xyzzy", 12); ++ xwrite (fd, "foobar xyzzy", 12); + + b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); +diff --git a/sysdeps/pthread/tst-signal2.c b/sysdeps/pthread/tst-signal2.c +index dfe7d9f64a..15b7747877 100644 +--- a/sysdeps/pthread/tst-signal2.c ++++ b/sysdeps/pthread/tst-signal2.c +@@ -26,6 +26,7 @@ + #include + #include + ++#include + + static sigset_t ss; + static pthread_barrier_t *b; +@@ -112,7 +113,7 @@ do_test (void) + + int i; + for (i = 0; i < 20; ++i) +- write (fd, "foobar xyzzy", 12); ++ xwrite (fd, "foobar xyzzy", 12); + + b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); +diff --git a/sysdeps/pthread/tst-timer.c b/sysdeps/pthread/tst-timer.c +index 47472ab8e1..4cfe0b67dc 100644 +--- a/sysdeps/pthread/tst-timer.c ++++ b/sysdeps/pthread/tst-timer.c +@@ -25,6 +25,7 @@ + #include + #include + ++#include + + static void + notify_func1 (union sigval sigval) +@@ -45,7 +46,7 @@ signal_func (int sig) + { + static const char text[] = "signal_func\n"; + signal (sig, signal_func); +- write (STDOUT_FILENO, text, sizeof text - 1); ++ xwrite (STDOUT_FILENO, text, sizeof text - 1); + } + + static void +diff --git a/time/tst-cpuclock1.c b/time/tst-cpuclock1.c +index 6f2e70a58a..6a793e06df 100644 +--- a/time/tst-cpuclock1.c ++++ b/time/tst-cpuclock1.c +@@ -27,6 +27,8 @@ + #include + #include + ++#include ++ + /* This function is intended to rack up both user and system time. */ + static void + chew_cpu (void) +@@ -41,7 +43,7 @@ chew_cpu (void) + for (int i = 0; i < 100; ++i) + for (size_t j = 0; j < sizeof buf; ++j) + buf[j] = 0xbb; +- write (nullfd, (char *) buf, sizeof buf); ++ xwrite (nullfd, (char *) buf, sizeof buf); + close (nullfd); + if (getppid () == 1) + _exit (2); +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-3.patch b/SOURCES/glibc-RHEL-50545-3.patch new file mode 100644 index 0000000..076b7f7 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-3.patch @@ -0,0 +1,30 @@ +From 34bb581e7713589d38c797c214f4c6bf2b14b702 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 16 Aug 2024 16:05:19 +0200 +Subject: [PATCH] support: Include for strcmp in + support_format_addrinfo.c +Content-type: text/plain; charset=UTF-8 + +This is currently implied by the internal headers, but it makes +sense not to rely on this. + +Reviewed-by: Adhemerval Zanella +--- + support/support_format_addrinfo.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/support/support_format_addrinfo.c b/support/support_format_addrinfo.c +index cbc72910a9..77f4db345c 100644 +--- a/support/support_format_addrinfo.c ++++ b/support/support_format_addrinfo.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + #include + +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-4.patch b/SOURCES/glibc-RHEL-50545-4.patch new file mode 100644 index 0000000..612e0ec --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-4.patch @@ -0,0 +1,91 @@ +From 921690512946d73bf66a8c495baff31316e4489f Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 16 Aug 2024 16:05:19 +0200 +Subject: [PATCH] support: Add the xstatx function +Content-type: text/plain; charset=UTF-8 + +Reviewed-by: Adhemerval Zanella + +Conflict: + support/Makefile + context +--- + support/Makefile | 1 + + support/xstatx.c | 32 ++++++++++++++++++++++++++++++++ + support/xunistd.h | 2 ++ + 3 files changed, 35 insertions(+) + create mode 100644 support/xstatx.c + +diff --git a/support/Makefile b/support/Makefile +index aa57207bdc..5b1c96a49e 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -200,6 +200,7 @@ libsupport-routines = \ + xsignal \ + xsigstack \ + xsocket \ ++ xstatx \ + xposix_spawn \ + xposix_spawn_file_actions_addclose \ + xposix_spawn_file_actions_adddup2 \ +diff --git a/support/xstatx.c b/support/xstatx.c +new file mode 100644 +index 0000000000..621f2440f8 +--- /dev/null ++++ b/support/xstatx.c +@@ -0,0 +1,32 @@ ++/* Error-checking wrapper for statx. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++ ++void ++xstatx (int fd, const char *path, int flags, unsigned int mask, ++ struct statx *stx) ++{ ++ if (statx (fd, path, flags, mask, stx) != 0) ++ FAIL_EXIT1 ("statx (AT_FDCWD, \"%s\", 0x%x, 0x%x): %m", ++ path, (unsigned int) flags, mask); ++} +diff --git a/support/xunistd.h b/support/xunistd.h +index 13be9a46a3..cc74c4fad0 100644 +--- a/support/xunistd.h ++++ b/support/xunistd.h +@@ -30,6 +30,7 @@ + __BEGIN_DECLS + + struct stat64; ++struct statx; + + pid_t xfork (void); + pid_t xwaitpid (pid_t, int *status, int flags); +@@ -51,6 +52,7 @@ void __REDIRECT (xstat, (const char *path, struct stat *), xstat_time64); + void __REDIRECT (xlstat, (const char *path, struct stat *), xlstat_time64); + void __REDIRECT (xfstat, (int fd, struct stat *), xfstat_time64); + #endif ++void xstatx (int, const char *, int, unsigned int, struct statx *); + void xmkdir (const char *path, mode_t); + void xchroot (const char *path); + void xunlink (const char *path); +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-5.patch b/SOURCES/glibc-RHEL-50545-5.patch new file mode 100644 index 0000000..b1b9e6a --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-5.patch @@ -0,0 +1,410 @@ +From bf2927484152e12996af60ea439cf94b66fcd81d Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 16 Aug 2024 16:05:20 +0200 +Subject: [PATCH] io: Use struct statx and xstatx in tests +Content-type: text/plain; charset=UTF-8 + +This avoids the need to define struct_statx to an appropriate +struct stat type variant because struct statx does not change +based on time/file offset flags. + +Reviewed-by: Adhemerval Zanella +--- + io/tst-futimens-time64.c | 1 - + io/tst-futimens.c | 13 +++++-------- + io/tst-futimes-time64.c | 1 - + io/tst-futimes.c | 13 +++++-------- + io/tst-futimesat-time64.c | 3 --- + io/tst-futimesat.c | 30 ++++++++---------------------- + io/tst-lutimes-time64.c | 1 - + io/tst-lutimes.c | 26 ++++++++++++-------------- + io/tst-utime-time64.c | 1 - + io/tst-utime.c | 13 +++++-------- + io/tst-utimensat-time64.c | 1 - + io/tst-utimensat.c | 35 +++++++++++++++++------------------ + io/tst-utimes-time64.c | 1 - + io/tst-utimes.c | 13 +++++-------- + 14 files changed, 57 insertions(+), 95 deletions(-) + +diff --git a/io/tst-futimens-time64.c b/io/tst-futimens-time64.c +index 88fcb38489..71204a6166 100644 +--- a/io/tst-futimens-time64.c ++++ b/io/tst-futimens-time64.c +@@ -1,2 +1 @@ +-#define struct_stat struct stat + #include "tst-futimens.c" +diff --git a/io/tst-futimens.c b/io/tst-futimens.c +index 6204befedd..075ca42b93 100644 +--- a/io/tst-futimens.c ++++ b/io/tst-futimens.c +@@ -18,26 +18,23 @@ + + #include + #include ++#include + #include + +-#ifndef struct_stat +-# define struct_stat struct stat64 +-#endif +- + static int + test_futimens_helper (const char *file, int fd, const struct timespec *ts) + { + int result = futimens (fd, ts); + TEST_VERIFY_EXIT (result == 0); + +- struct_stat st; +- xfstat (fd, &st); ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); + + /* Check if seconds for atime match */ +- TEST_COMPARE (st.st_atime, ts[0].tv_sec); ++ TEST_COMPARE (st.stx_atime.tv_sec, ts[0].tv_sec); + + /* Check if seconds for mtime match */ +- TEST_COMPARE (st.st_mtime, ts[1].tv_sec); ++ TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec); + + return 0; + } +diff --git a/io/tst-futimes-time64.c b/io/tst-futimes-time64.c +index d489c265d1..eeb4bed7c4 100644 +--- a/io/tst-futimes-time64.c ++++ b/io/tst-futimes-time64.c +@@ -1,2 +1 @@ +-#define struct_stat struct stat + #include "tst-futimes.c" +diff --git a/io/tst-futimes.c b/io/tst-futimes.c +index d21acf6a24..612fe460cf 100644 +--- a/io/tst-futimes.c ++++ b/io/tst-futimes.c +@@ -18,27 +18,24 @@ + + #include + #include ++#include + #include + #include + +-#ifndef struct_stat +-# define struct_stat struct stat64 +-#endif +- + static int + test_futimens_helper (const char *file, int fd, const struct timeval *tv) + { + int r = futimes (fd, tv); + TEST_VERIFY_EXIT (r == 0); + +- struct_stat st; +- xfstat (fd, &st); ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); + + /* Check if seconds for atime match */ +- TEST_COMPARE (st.st_atime, tv[0].tv_sec); ++ TEST_COMPARE (st.stx_atime.tv_sec, tv[0].tv_sec); + + /* Check if seconds for mtime match */ +- TEST_COMPARE (st.st_mtime, tv[1].tv_sec); ++ TEST_COMPARE (st.stx_mtime.tv_sec, tv[1].tv_sec); + + return 0; + } +diff --git a/io/tst-futimesat-time64.c b/io/tst-futimesat-time64.c +index f6c0500eef..1585317579 100644 +--- a/io/tst-futimesat-time64.c ++++ b/io/tst-futimesat-time64.c +@@ -1,4 +1 @@ +-#define struct_stat struct stat +-#define fstat fstat +-#define fstatat fstatat + #include "io/tst-futimesat.c" +diff --git a/io/tst-futimesat.c b/io/tst-futimesat.c +index 67a8551beb..feae4e7aa7 100644 +--- a/io/tst-futimesat.c ++++ b/io/tst-futimesat.c +@@ -30,12 +30,6 @@ + #include + #include + +-#ifndef struct_stat +-# define struct_stat struct stat64 +-# define fstat fstat64 +-# define fstatat fstatat64 +-#endif +- + static int dir_fd; + + static void +@@ -118,19 +112,15 @@ do_test (void) + xwrite (fd, "hello", 5); + puts ("file created"); + +- struct_stat st1; +- if (fstat (fd, &st1) != 0) +- { +- puts ("fstat64 failed"); +- return 1; +- } ++ struct statx st1; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st1); + + close (fd); + + struct timeval tv[2]; +- tv[0].tv_sec = st1.st_atime + 1; ++ tv[0].tv_sec = st1.stx_atime.tv_sec + 1; + tv[0].tv_usec = 0; +- tv[1].tv_sec = st1.st_mtime + 1; ++ tv[1].tv_sec = st1.stx_mtime.tv_sec + 1; + tv[1].tv_usec = 0; + if (futimesat (dir_fd, "some-file", tv) != 0) + { +@@ -138,16 +128,12 @@ do_test (void) + return 1; + } + +- struct_stat st2; +- if (fstatat (dir_fd, "some-file", &st2, 0) != 0) +- { +- puts ("fstatat64 failed"); +- return 1; +- } ++ struct statx st2; ++ xstatx (dir_fd, "some-file", 0, STATX_BASIC_STATS, &st2); + +- if (st2.st_mtime != tv[1].tv_sec ++ if (st2.stx_mtime.tv_sec != tv[1].tv_sec + #ifdef _STATBUF_ST_NSEC +- || st2.st_mtim.tv_nsec != 0 ++ || st2.stx_mtime.tv_nsec != 0 + #endif + ) + { +diff --git a/io/tst-lutimes-time64.c b/io/tst-lutimes-time64.c +index 06caec0a91..c5bea965da 100644 +--- a/io/tst-lutimes-time64.c ++++ b/io/tst-lutimes-time64.c +@@ -1,2 +1 @@ +-#define struct_stat struct stat + #include "tst-lutimes.c" +diff --git a/io/tst-lutimes.c b/io/tst-lutimes.c +index edef5ab90e..78bcc58291 100644 +--- a/io/tst-lutimes.c ++++ b/io/tst-lutimes.c +@@ -18,34 +18,32 @@ + + #include + #include ++#include + #include + #include + +-#ifndef struct_stat +-# define struct_stat struct stat64 +-#endif +- + static int + test_lutimes_helper (const char *testfile, int fd, const char *testlink, + const struct timeval *tv) + { +- struct_stat stfile_orig; +- xlstat (testfile, &stfile_orig); ++ struct statx stfile_orig; ++ xstatx (AT_FDCWD, testfile, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, ++ &stfile_orig); + + TEST_VERIFY_EXIT (lutimes (testlink, tv) == 0); + +- struct_stat stlink; +- xlstat (testlink, &stlink); ++ struct statx stlink; ++ xstatx (AT_FDCWD, testlink, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, &stlink); + +- TEST_COMPARE (stlink.st_atime, tv[0].tv_sec); +- TEST_COMPARE (stlink.st_mtime, tv[1].tv_sec); ++ TEST_COMPARE (stlink.stx_atime.tv_sec, tv[0].tv_sec); ++ TEST_COMPARE (stlink.stx_mtime.tv_sec, tv[1].tv_sec); + + /* Check if the timestamp from original file is not changed. */ +- struct_stat stfile; +- xlstat (testfile, &stfile); ++ struct statx stfile; ++ xstatx (AT_FDCWD, testfile, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, &stfile); + +- TEST_COMPARE (stfile_orig.st_atime, stfile.st_atime); +- TEST_COMPARE (stfile_orig.st_mtime, stfile.st_mtime); ++ TEST_COMPARE (stfile_orig.stx_atime.tv_sec, stfile.stx_atime.tv_sec); ++ TEST_COMPARE (stfile_orig.stx_mtime.tv_sec, stfile.stx_mtime.tv_sec); + + return 0; + } +diff --git a/io/tst-utime-time64.c b/io/tst-utime-time64.c +index eb62f59126..8894592a15 100644 +--- a/io/tst-utime-time64.c ++++ b/io/tst-utime-time64.c +@@ -1,2 +1 @@ +-#define struct_stat struct stat + #include "tst-utime.c" +diff --git a/io/tst-utime.c b/io/tst-utime.c +index e2e6dcd04c..f329358289 100644 +--- a/io/tst-utime.c ++++ b/io/tst-utime.c +@@ -19,26 +19,23 @@ + #include + #include + #include ++#include + #include + +-#ifndef struct_stat +-# define struct_stat struct stat64 +-#endif +- + static int + test_utime_helper (const char *file, int fd, const struct utimbuf *ut) + { + int result = utime (file, ut); + TEST_VERIFY_EXIT (result == 0); + +- struct_stat st; +- xfstat (fd, &st); ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); + + /* Check if seconds for actime match */ +- TEST_COMPARE (st.st_atime, ut->actime); ++ TEST_COMPARE (st.stx_atime.tv_sec, ut->actime); + + /* Check if seconds for modtime match */ +- TEST_COMPARE (st.st_mtime, ut->modtime); ++ TEST_COMPARE (st.stx_mtime.tv_sec, ut->modtime); + + return 0; + } +diff --git a/io/tst-utimensat-time64.c b/io/tst-utimensat-time64.c +index 7ac7d8df1d..5d60fce881 100644 +--- a/io/tst-utimensat-time64.c ++++ b/io/tst-utimensat-time64.c +@@ -1,2 +1 @@ +-#define struct_stat struct stat + #include "tst-utimensat.c" +diff --git a/io/tst-utimensat.c b/io/tst-utimensat.c +index 3d9a72c471..2a756d7b07 100644 +--- a/io/tst-utimensat.c ++++ b/io/tst-utimensat.c +@@ -22,10 +22,6 @@ + #include + #include + +-#ifndef struct_stat +-# define struct_stat struct stat64 +-#endif +- + static int + test_utimesat_helper (const char *testfile, int fd, const char *testlink, + const struct timespec *ts) +@@ -33,35 +29,38 @@ test_utimesat_helper (const char *testfile, int fd, const char *testlink, + { + TEST_VERIFY_EXIT (utimensat (fd, testfile, ts, 0) == 0); + +- struct_stat st; +- xfstat (fd, &st); ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); + + /* Check if seconds for atime match */ +- TEST_COMPARE (st.st_atime, ts[0].tv_sec); ++ TEST_COMPARE (st.stx_atime.tv_sec, ts[0].tv_sec); + + /* Check if seconds for mtime match */ +- TEST_COMPARE (st.st_mtime, ts[1].tv_sec); ++ TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec); + } + + { +- struct_stat stfile_orig; +- xlstat (testfile, &stfile_orig); ++ struct statx stfile_orig; ++ xstatx (AT_FDCWD, testfile, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, ++ &stfile_orig); + + TEST_VERIFY_EXIT (utimensat (0 /* ignored */, testlink, ts, + AT_SYMLINK_NOFOLLOW) + == 0); +- struct_stat stlink; +- xlstat (testlink, &stlink); ++ struct statx stlink; ++ xstatx (AT_FDCWD, testlink, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, ++ &stlink); + +- TEST_COMPARE (stlink.st_atime, ts[0].tv_sec); +- TEST_COMPARE (stlink.st_mtime, ts[1].tv_sec); ++ TEST_COMPARE (stlink.stx_atime.tv_sec, ts[0].tv_sec); ++ TEST_COMPARE (stlink.stx_mtime.tv_sec, ts[1].tv_sec); + + /* Check if the timestamp from original file is not changed. */ +- struct_stat stfile; +- xlstat (testfile, &stfile); ++ struct statx stfile; ++ xstatx (AT_FDCWD, testfile, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, ++ &stfile); + +- TEST_COMPARE (stfile_orig.st_atime, stfile.st_atime); +- TEST_COMPARE (stfile_orig.st_mtime, stfile.st_mtime); ++ TEST_COMPARE (stfile_orig.stx_atime.tv_sec, stfile.stx_atime.tv_sec); ++ TEST_COMPARE (stfile_orig.stx_mtime.tv_sec, stfile.stx_mtime.tv_sec); + } + + return 0; +diff --git a/io/tst-utimes-time64.c b/io/tst-utimes-time64.c +index 234ec02541..026ef5f78d 100644 +--- a/io/tst-utimes-time64.c ++++ b/io/tst-utimes-time64.c +@@ -1,2 +1 @@ +-#define struct_stat struct stat + #include "tst-utimes.c" +diff --git a/io/tst-utimes.c b/io/tst-utimes.c +index 8edcfabebf..6cd436c5a0 100644 +--- a/io/tst-utimes.c ++++ b/io/tst-utimes.c +@@ -18,28 +18,25 @@ + + #include + #include ++#include + #include + #include + #include + +-#ifndef struct_stat +-# define struct_stat struct stat64 +-#endif +- + static int + test_utimes_helper (const char *file, int fd, const struct timeval *tv) + { + int result = utimes (file, tv); + TEST_VERIFY_EXIT (result == 0); + +- struct_stat st; +- xfstat (fd, &st); ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); + + /* Check if seconds for atime match */ +- TEST_COMPARE (st.st_atime, tv[0].tv_sec); ++ TEST_COMPARE (st.stx_atime.tv_sec, tv[0].tv_sec); + + /* Check if seconds for mtime match */ +- TEST_COMPARE (st.st_mtime, tv[1].tv_sec); ++ TEST_COMPARE (st.stx_mtime.tv_sec, tv[1].tv_sec); + + return 0; + } +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-6.patch b/SOURCES/glibc-RHEL-50545-6.patch new file mode 100644 index 0000000..ea404be --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-6.patch @@ -0,0 +1,452 @@ +From e7c14e542d8d858b824b5df4f4e3dc93695e6171 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 16 Aug 2024 16:05:20 +0200 +Subject: [PATCH] support: Use macros for *stat wrappers +Content-type: text/plain; charset=UTF-8 + +Macros will automatically use the correct types, without +having to fiddle with internal glibc macros. It's also +impossible to get the types wrong due to aliasing because +support_check_stat_fd and support_check_stat_path do not +depend on the struct stat* types. + +The changes reveal some inconsistencies in tests. + +Reviewed-by: Adhemerval Zanella + +Conflicts + locale/tst-localedef-path-norm.c + context + support/Makefile + context + support/xunistd.h + context + all + copyright years +--- + elf/tst-ldconfig-bad-aux-cache.c | 2 +- + io/tst-copy_file_range.c | 2 +- + io/tst-statx.c | 4 +-- + locale/tst-localedef-path-norm.c | 2 +- + localedata/tst-localedef-hardlinks.c | 2 +- + posix/tst-execveat.c | 2 +- + stdio-common/tst-renameat2.c | 2 +- + stdlib/tst-system.c | 2 +- + support/Makefile | 8 ++--- + support/support-xfstat-time64.c | 32 ------------------- + support/support-xstat-time64.c | 32 ------------------- + support/support-xstat.c | 30 ----------------- + support/{xlstat.c => support_check_stat_fd.c} | 11 +++---- + ...ort-xfstat.c => support_check_stat_path.c} | 9 +++--- + support/xlstat-time64.c | 32 ------------------- + support/xunistd.h | 30 ++++++++--------- + 16 files changed, 34 insertions(+), 168 deletions(-) + delete mode 100644 support/support-xfstat-time64.c + delete mode 100644 support/support-xstat-time64.c + delete mode 100644 support/support-xstat.c + rename support/{xlstat.c => support_check_stat_fd.c} (76%) + rename support/{support-xfstat.c => support_check_stat_path.c} (81%) + delete mode 100644 support/xlstat-time64.c + +diff --git a/elf/tst-ldconfig-bad-aux-cache.c b/elf/tst-ldconfig-bad-aux-cache.c +index 7f1fbb5252..8c2e62ecc2 100644 +--- a/elf/tst-ldconfig-bad-aux-cache.c ++++ b/elf/tst-ldconfig-bad-aux-cache.c +@@ -85,7 +85,7 @@ do_test (void) + support_capture_subprocess_check (&result, "execv", 0, sc_allow_none); + support_capture_subprocess_free (&result); + +- xstat (path, &fs); ++ xstat64 (path, &fs); + + size = fs.st_size; + /* Run 3 tests, each truncating aux-cache shorter and shorter. */ +diff --git a/io/tst-copy_file_range.c b/io/tst-copy_file_range.c +index 9837b7c339..3d7b0aa901 100644 +--- a/io/tst-copy_file_range.c ++++ b/io/tst-copy_file_range.c +@@ -117,7 +117,7 @@ simple_file_copy (void) + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 6 + length); + + struct stat64 st; +- xfstat (outfd, &st); ++ xfstat64 (outfd, &st); + if (length > 0) + TEST_COMPARE (st.st_size, out_skipped + length); + else +diff --git a/io/tst-statx.c b/io/tst-statx.c +index d84568859e..685924ae76 100644 +--- a/io/tst-statx.c ++++ b/io/tst-statx.c +@@ -78,7 +78,7 @@ both_implementations_tests (statx_function impl, const char *path, int fd) + struct statx stx = { 0, }; + TEST_COMPARE (statx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &stx), 0); + struct stat64 st; +- xfstat (fd, &st); ++ xfstat64 (fd, &st); + TEST_COMPARE (stx.stx_mode, st.st_mode); + TEST_COMPARE (stx.stx_dev_major, major (st.st_dev)); + TEST_COMPARE (stx.stx_dev_minor, minor (st.st_dev)); +@@ -88,7 +88,7 @@ both_implementations_tests (statx_function impl, const char *path, int fd) + TEST_COMPARE (statx (AT_FDCWD, "/dev/null", 0, STATX_BASIC_STATS, &stx), + 0); + struct stat64 st; +- xstat ("/dev/null", &st); ++ xstat64 ("/dev/null", &st); + TEST_COMPARE (stx.stx_mode, st.st_mode); + TEST_COMPARE (stx.stx_dev_major, major (st.st_dev)); + TEST_COMPARE (stx.stx_dev_minor, minor (st.st_dev)); +diff --git a/locale/tst-localedef-path-norm.c b/locale/tst-localedef-path-norm.c +index ffe8cbd467..f592b9a960 100644 +--- a/locale/tst-localedef-path-norm.c ++++ b/locale/tst-localedef-path-norm.c +@@ -81,7 +81,7 @@ run_test (struct test_closure data) + support_capture_subprocess_free (&result); + + /* Verify path is present and is a directory. */ +- xstat (path, &fs); ++ xstat64 (path, &fs); + TEST_VERIFY_EXIT (S_ISDIR (fs.st_mode)); + printf ("info: Directory '%s' exists.\n", path); + } +diff --git a/localedata/tst-localedef-hardlinks.c b/localedata/tst-localedef-hardlinks.c +index e88215a150..23927b462f 100644 +--- a/localedata/tst-localedef-hardlinks.c ++++ b/localedata/tst-localedef-hardlinks.c +@@ -62,7 +62,7 @@ check_link (struct test_data step) + char *output; + + output = xasprintf ("%s/%s", support_complocaledir_prefix, step.output); +- xstat (output, &locale); ++ xstat64 (output, &locale); + free (output); + TEST_COMPARE (locale.st_nlink, step.st_nlink); + } +diff --git a/posix/tst-execveat.c b/posix/tst-execveat.c +index 4565d6b19f..dde034a9f1 100644 +--- a/posix/tst-execveat.c ++++ b/posix/tst-execveat.c +@@ -155,7 +155,7 @@ do_test (void) + tmp_sh = xasprintf ("%s/tmp_sh", tmp_dir); + add_temp_file (tmp_sh); + fd_out = xopen (symlink_name, O_CREAT | O_WRONLY, 0); +- xstat ("/bin/sh", &st); ++ xstat64 ("/bin/sh", &st); + fd = xopen ("/bin/sh", O_RDONLY, 0); + xcopy_file_range (fd, 0, fd_out, 0, st.st_size, 0); + xfchmod (fd_out, 0700); +diff --git a/stdio-common/tst-renameat2.c b/stdio-common/tst-renameat2.c +index b65afed75e..7f4345f716 100644 +--- a/stdio-common/tst-renameat2.c ++++ b/stdio-common/tst-renameat2.c +@@ -82,7 +82,7 @@ static void + check_size (const char *path, off64_t expected_size) + { + struct stat64 st; +- xstat (path, &st); ++ xstat64 (path, &st); + if (st.st_size != expected_size) + FAIL_EXIT1 ("file \"%s\": expected size %lld, actual size %lld", + path, (unsigned long long int) expected_size, +diff --git a/stdlib/tst-system.c b/stdlib/tst-system.c +index 47c742f963..b5b630a41b 100644 +--- a/stdlib/tst-system.c ++++ b/stdlib/tst-system.c +@@ -156,7 +156,7 @@ do_test (void) + + { + struct stat64 st; +- xstat (_PATH_BSHELL, &st); ++ xstat64 (_PATH_BSHELL, &st); + mode_t mode = st.st_mode; + xchmod (_PATH_BSHELL, mode & ~(S_IXUSR | S_IXGRP | S_IXOTH)); + +diff --git a/support/Makefile b/support/Makefile +index 5b1c96a49e..6e3c55394f 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -42,14 +42,12 @@ libsupport-routines = \ + resolv_test \ + set_fortify_handler \ + support_stack_alloc \ +- support-xfstat \ +- support-xfstat-time64 \ +- support-xstat \ +- support-xstat-time64 \ + support_become_root \ + support_can_chroot \ + support_capture_subprocess \ + support_capture_subprocess_check \ ++ support_check_stat_fd \ ++ support_check_stat_path \ + support_chroot \ + support_copy_file \ + support_copy_file_range \ +@@ -130,8 +128,6 @@ libsupport-routines = \ + xgetsockname \ + xlisten \ + xlseek \ +- xlstat \ +- xlstat-time64 \ + xmalloc \ + xmemstream \ + xmkdir \ +diff --git a/support/support-xfstat-time64.c b/support/support-xfstat-time64.c +deleted file mode 100644 +index 589a69bb3e..0000000000 +--- a/support/support-xfstat-time64.c ++++ /dev/null +@@ -1,32 +0,0 @@ +-/* 64-bit time_t stat with error checking. +- Copyright (C) 2021 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* NB: Non-standard file name to avoid sysdeps override for xstat. */ +- +-#include +-#include +-#include +- +-#if __TIMESIZE != 64 +-void +-xfstat_time64 (int fd, struct __stat64_t64 *result) +-{ +- if (__fstat64_time64 (fd, result) != 0) +- FAIL_EXIT1 ("__fstat64_time64 (%d): %m", fd); +-} +-#endif +diff --git a/support/support-xstat-time64.c b/support/support-xstat-time64.c +deleted file mode 100644 +index 451948734a..0000000000 +--- a/support/support-xstat-time64.c ++++ /dev/null +@@ -1,32 +0,0 @@ +-/* 64-bit time_t stat with error checking. +- Copyright (C) 2021 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* NB: Non-standard file name to avoid sysdeps override for xstat. */ +- +-#include +-#include +-#include +- +-#if __TIMESIZE != 64 +-void +-xstat_time64 (const char *path, struct __stat64_t64 *result) +-{ +- if (__stat64_time64 (path, result) != 0) +- FAIL_EXIT1 ("__stat64_time64 (\"%s\"): %m", path); +-} +-#endif +diff --git a/support/support-xstat.c b/support/support-xstat.c +deleted file mode 100644 +index ce866f74d2..0000000000 +--- a/support/support-xstat.c ++++ /dev/null +@@ -1,30 +0,0 @@ +-/* stat64 with error checking. +- Copyright (C) 2017-2021 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* NB: Non-standard file name to avoid sysdeps override for xstat. */ +- +-#include +-#include +-#include +- +-void +-xstat (const char *path, struct stat64 *result) +-{ +- if (stat64 (path, result) != 0) +- FAIL_EXIT1 ("stat64 (\"%s\"): %m", path); +-} +diff --git a/support/xlstat.c b/support/support_check_stat_fd.c +similarity index 76% +rename from support/xlstat.c +rename to support/support_check_stat_fd.c +index 87df988879..4c12adf6b7 100644 +--- a/support/xlstat.c ++++ b/support/support_check_stat_fd.c +@@ -1,5 +1,5 @@ +-/* lstat64 with error checking. +- Copyright (C) 2017-2021 Free Software Foundation, Inc. ++/* Error checking for descriptor-based stat functions. ++ Copyright (C) 2024 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -18,11 +18,10 @@ + + #include + #include +-#include + + void +-xlstat (const char *path, struct stat64 *result) ++support_check_stat_fd (const char *name, int fd, int result) + { +- if (lstat64 (path, result) != 0) +- FAIL_EXIT1 ("lstat64 (\"%s\"): %m", path); ++ if (result != 0) ++ FAIL_EXIT1 ("%s (%d): %m", name, fd); + } +diff --git a/support/support-xfstat.c b/support/support_check_stat_path.c +similarity index 81% +rename from support/support-xfstat.c +rename to support/support_check_stat_path.c +index ab4b01c97d..3cf72afe59 100644 +--- a/support/support-xfstat.c ++++ b/support/support_check_stat_path.c +@@ -1,4 +1,4 @@ +-/* fstat64 with error checking. ++/* Error checking for path-based stat functions. + Copyright (C) 2017-2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -18,11 +18,10 @@ + + #include + #include +-#include + + void +-xfstat (int fd, struct stat64 *result) ++support_check_stat_path (const char *name, const char *path, int result) + { +- if (fstat64 (fd, result) != 0) +- FAIL_EXIT1 ("fstat64 (%d): %m", fd); ++ if (result != 0) ++ FAIL_EXIT1 ("%s (\"%s\"): %m", name, path); + } +diff --git a/support/xlstat-time64.c b/support/xlstat-time64.c +deleted file mode 100644 +index 2bc3ca6593..0000000000 +--- a/support/xlstat-time64.c ++++ /dev/null +@@ -1,32 +0,0 @@ +-/* 64-bit time_t stat with error checking. +- Copyright (C) 2021 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* NB: Non-standard file name to avoid sysdeps override for xstat. */ +- +-#include +-#include +-#include +- +-#if __TIMESIZE != 64 +-void +-xlstat_time64 (const char *path, struct __stat64_t64 *result) +-{ +- if (__lstat64_time64 (path, result) != 0) +- FAIL_EXIT1 ("__lstat64_time64 (\"%s\"): %m", path); +-} +-#endif +diff --git a/support/xunistd.h b/support/xunistd.h +index cc74c4fad0..204951bce7 100644 +--- a/support/xunistd.h ++++ b/support/xunistd.h +@@ -29,7 +29,6 @@ + + __BEGIN_DECLS + +-struct stat64; + struct statx; + + pid_t xfork (void); +@@ -37,21 +36,20 @@ pid_t xwaitpid (pid_t, int *status, int + void xpipe (int[2]); + void xdup2 (int, int); + int xopen (const char *path, int flags, mode_t); +-#ifndef __USE_TIME_BITS64 +-# ifdef __USE_FILE_OFFSET64 +-void xstat (const char *path, struct stat *); +-void xlstat (const char *path, struct stat *); +-void xfstat (int fd, struct stat *); +-# else +-void xstat (const char *path, struct stat64 *); +-void xlstat (const char *path, struct stat64 *); +-void xfstat (int fd, struct stat64 *); +-# endif +-#else +-void __REDIRECT (xstat, (const char *path, struct stat *), xstat_time64); +-void __REDIRECT (xlstat, (const char *path, struct stat *), xlstat_time64); +-void __REDIRECT (xfstat, (int fd, struct stat *), xfstat_time64); +-#endif ++void support_check_stat_fd (const char *name, int fd, int result); ++void support_check_stat_path (const char *name, const char *path, int result); ++#define xstat(path, st) \ ++ (support_check_stat_path ("stat", (path), stat ((path), (st)))) ++#define xfstat(fd, st) \ ++ (support_check_stat_fd ("fstat", (fd), fstat ((fd), (st)))) ++#define xlstat(path, st) \ ++ (support_check_stat_path ("lstat", (path), lstat ((path), (st)))) ++#define xstat64(path, st) \ ++ (support_check_stat_path ("stat64", (path), stat64 ((path), (st)))) ++#define xfstat64(fd, st) \ ++ (support_check_stat_fd ("fstat64", (fd), fstat64 ((fd), (st)))) ++#define xlstat64(path, st) \ ++ (support_check_stat_path ("lstat64", (path), lstat64 ((path), (st)))) + void xstatx (int, const char *, int, unsigned int, struct statx *); + void xmkdir (const char *path, mode_t); + void xchroot (const char *path); +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-7.patch b/SOURCES/glibc-RHEL-50545-7.patch new file mode 100644 index 0000000..b07088e --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-7.patch @@ -0,0 +1,47 @@ +From 34e52acd55d69964d14fb3188c5538442b8b32be Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Thu, 22 Aug 2024 16:14:17 +0200 +Subject: [PATCH] support: Report errno constants in TEST_COMPARE failures +Content-type: text/plain; charset=UTF-8 + +If the expression is errno, decode it as an errno constant +using strerrorname_np. + +Reviewed-by: Arjun Shankar +--- + support/support_test_compare_failure.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/support/support_test_compare_failure.c b/support/support_test_compare_failure.c +index ae73d200cd..dba79e413f 100644 +--- a/support/support_test_compare_failure.c ++++ b/support/support_test_compare_failure.c +@@ -17,7 +17,9 @@ + . */ + + #include ++#include + #include ++#include + #include + + static void +@@ -31,7 +33,14 @@ report (const char *which, const char *expr, long long value, int positive, + printf ("%lld", value); + unsigned long long mask + = (~0ULL) >> (8 * (sizeof (unsigned long long) - size)); +- printf (" (0x%llx); from: %s\n", (unsigned long long) value & mask, expr); ++ const char *errno_constant = NULL; ++ if (strcmp (expr, "errno") == 0 ++ && positive && (unsigned long long int) value <= INT_MAX) ++ errno_constant = strerrorname_np (value); ++ printf (" (0x%llx", (unsigned long long) value & mask); ++ if (errno_constant != NULL) ++ printf (", %s", errno_constant); ++ printf ("); from: %s\n", expr); + } + + void +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-8.patch b/SOURCES/glibc-RHEL-50545-8.patch new file mode 100644 index 0000000..e6d036a --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-8.patch @@ -0,0 +1,1661 @@ +From b09a520bb6d98d465818aadfd0641751ce824053 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 30 Aug 2024 21:51:46 +0200 +Subject: [PATCH] Bundle userspace header from Linux 6.10 +Content-type: text/plain; charset=UTF-8 + +And include the required licensing information. The only +change is a removed trailing empty line in +LICENSES/exceptions/Linux-syscall-note. + +Bundling is the recommended way to deal with +the evolution of the FUSE userspace interface because +structs change sizes over time. The kernel maintains +compatibility, but source-level compatibility on recompilation +may require additional code that is aware of older struct sizes. + +Signed-off-by: Florian Weimer +Reviewed-by: DJ Delorie +--- + support/bundled/README | 5 + + support/bundled/linux/COPYING | 20 + + .../LICENSES/exceptions/Linux-syscall-note | 24 + + .../bundled/linux/LICENSES/preferred/GPL-2.0 | 359 +++++ + .../bundled/linux/include/uapi/linux/fuse.h | 1189 +++++++++++++++++ + 5 files changed, 1597 insertions(+) + create mode 100644 support/bundled/README + create mode 100644 support/bundled/linux/COPYING + create mode 100644 support/bundled/linux/LICENSES/exceptions/Linux-syscall-note + create mode 100644 support/bundled/linux/LICENSES/preferred/GPL-2.0 + create mode 100644 support/bundled/linux/include/uapi/linux/fuse.h + +diff --git a/support/bundled/README b/support/bundled/README +new file mode 100644 +index 0000000000..e861b3d40a +--- /dev/null ++++ b/support/bundled/README +@@ -0,0 +1,5 @@ ++This subtree contains bundled files included verbatim from other ++sources. They are used for building the support/ infrastructure. ++ ++linux/ ++ Select files from the Linux 6.10 source tree. +diff --git a/support/bundled/linux/COPYING b/support/bundled/linux/COPYING +new file mode 100644 +index 0000000000..a635a38ef9 +--- /dev/null ++++ b/support/bundled/linux/COPYING +@@ -0,0 +1,20 @@ ++The Linux Kernel is provided under: ++ ++ SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note ++ ++Being under the terms of the GNU General Public License version 2 only, ++according with: ++ ++ LICENSES/preferred/GPL-2.0 ++ ++With an explicit syscall exception, as stated at: ++ ++ LICENSES/exceptions/Linux-syscall-note ++ ++In addition, other licenses may also apply. Please see: ++ ++ Documentation/process/license-rules.rst ++ ++for more details. ++ ++All contributions to the Linux Kernel are subject to this COPYING file. +diff --git a/support/bundled/linux/LICENSES/exceptions/Linux-syscall-note b/support/bundled/linux/LICENSES/exceptions/Linux-syscall-note +new file mode 100644 +index 0000000000..adbe756a05 +--- /dev/null ++++ b/support/bundled/linux/LICENSES/exceptions/Linux-syscall-note +@@ -0,0 +1,24 @@ ++SPDX-Exception-Identifier: Linux-syscall-note ++SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html ++SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+, GPL-2.0-only, GPL-2.0-or-later ++Usage-Guide: ++ This exception is used together with one of the above SPDX-Licenses ++ to mark user space API (uapi) header files so they can be included ++ into non GPL compliant user space application code. ++ To use this exception add it with the keyword WITH to one of the ++ identifiers in the SPDX-Licenses tag: ++ SPDX-License-Identifier: WITH Linux-syscall-note ++License-Text: ++ ++ NOTE! This copyright does *not* cover user programs that use kernel ++ services by normal system calls - this is merely considered normal use ++ of the kernel, and does *not* fall under the heading of "derived work". ++ Also note that the GPL below is copyrighted by the Free Software ++ Foundation, but the instance of code that it refers to (the Linux ++ kernel) is copyrighted by me and others who actually wrote it. ++ ++ Also note that the only valid version of the GPL as far as the kernel ++ is concerned is _this_ particular version of the license (ie v2, not ++ v2.2 or v3.x or whatever), unless explicitly otherwise stated. ++ ++ Linus Torvalds +diff --git a/support/bundled/linux/LICENSES/preferred/GPL-2.0 b/support/bundled/linux/LICENSES/preferred/GPL-2.0 +new file mode 100644 +index 0000000000..ff0812fd89 +--- /dev/null ++++ b/support/bundled/linux/LICENSES/preferred/GPL-2.0 +@@ -0,0 +1,359 @@ ++Valid-License-Identifier: GPL-2.0 ++Valid-License-Identifier: GPL-2.0-only ++Valid-License-Identifier: GPL-2.0+ ++Valid-License-Identifier: GPL-2.0-or-later ++SPDX-URL: https://spdx.org/licenses/GPL-2.0.html ++Usage-Guide: ++ To use this license in source code, put one of the following SPDX ++ tag/value pairs into a comment according to the placement ++ guidelines in the licensing rules documentation. ++ For 'GNU General Public License (GPL) version 2 only' use: ++ SPDX-License-Identifier: GPL-2.0 ++ or ++ SPDX-License-Identifier: GPL-2.0-only ++ For 'GNU General Public License (GPL) version 2 or any later version' use: ++ SPDX-License-Identifier: GPL-2.0+ ++ or ++ SPDX-License-Identifier: GPL-2.0-or-later ++License-Text: ++ ++ GNU GENERAL PUBLIC LICENSE ++ Version 2, June 1991 ++ ++ Copyright (C) 1989, 1991 Free Software Foundation, Inc. ++ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++License is intended to guarantee your freedom to share and change free ++software--to make sure the software is free for all its users. This ++General Public License applies to most of the Free Software ++Foundation's software and to any other program whose authors commit to ++using it. (Some other Free Software Foundation software is covered by ++the GNU Library General Public License instead.) You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++this service if you wish), that you receive source code or can get it ++if you want it, that you can change the software or use pieces of it ++in new free programs; and that you know you can do these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++anyone to deny you these rights or to ask you to surrender the rights. ++These restrictions translate to certain responsibilities for you if you ++distribute copies of the software, or if you modify it. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must give the recipients all the rights that ++you have. You must make sure that they, too, receive or can get the ++source code. And you must show them these terms so they know their ++rights. ++ ++ We protect your rights with two steps: (1) copyright the software, and ++(2) offer you this license which gives you legal permission to copy, ++distribute and/or modify the software. ++ ++ Also, for each author's protection and ours, we want to make certain ++that everyone understands that there is no warranty for this free ++software. If the software is modified by someone else and passed on, we ++want its recipients to know that what they have is not the original, so ++that any problems introduced by others will not reflect on the original ++authors' reputations. ++ ++ Finally, any free program is threatened constantly by software ++patents. We wish to avoid the danger that redistributors of a free ++program will individually obtain patent licenses, in effect making the ++program proprietary. To prevent this, we have made it clear that any ++patent must be licensed for everyone's free use or not licensed at all. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ GNU GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License applies to any program or other work which contains ++a notice placed by the copyright holder saying it may be distributed ++under the terms of this General Public License. The "Program", below, ++refers to any such program or work, and a "work based on the Program" ++means either the Program or any derivative work under copyright law: ++that is to say, a work containing the Program or a portion of it, ++either verbatim or with modifications and/or translated into another ++language. (Hereinafter, translation is included without limitation in ++the term "modification".) Each licensee is addressed as "you". ++ ++Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running the Program is not restricted, and the output from the Program ++is covered only if its contents constitute a work based on the ++Program (independent of having been made by running the Program). ++Whether that is true depends on what the Program does. ++ ++ 1. You may copy and distribute verbatim copies of the Program's ++source code as you receive it, in any medium, provided that you ++conspicuously and appropriately publish on each copy an appropriate ++copyright notice and disclaimer of warranty; keep intact all the ++notices that refer to this License and to the absence of any warranty; ++and give any other recipients of the Program a copy of this License ++along with the Program. ++ ++You may charge a fee for the physical act of transferring a copy, and ++you may at your option offer warranty protection in exchange for a fee. ++ ++ 2. You may modify your copy or copies of the Program or any portion ++of it, thus forming a work based on the Program, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) You must cause the modified files to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ b) You must cause any work that you distribute or publish, that in ++ whole or in part contains or is derived from the Program or any ++ part thereof, to be licensed as a whole at no charge to all third ++ parties under the terms of this License. ++ ++ c) If the modified program normally reads commands interactively ++ when run, you must cause it, when started running for such ++ interactive use in the most ordinary way, to print or display an ++ announcement including an appropriate copyright notice and a ++ notice that there is no warranty (or else, saying that you provide ++ a warranty) and that users may redistribute the program under ++ these conditions, and telling the user how to view a copy of this ++ License. (Exception: if the Program itself is interactive but ++ does not normally print such an announcement, your work based on ++ the Program is not required to print an announcement.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Program, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Program, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Program. ++ ++In addition, mere aggregation of another work not based on the Program ++with the Program (or with a work based on the Program) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may copy and distribute the Program (or a work based on it, ++under Section 2) in object code or executable form under the terms of ++Sections 1 and 2 above provided that you also do one of the following: ++ ++ a) Accompany it with the complete corresponding machine-readable ++ source code, which must be distributed under the terms of Sections ++ 1 and 2 above on a medium customarily used for software interchange; or, ++ ++ b) Accompany it with a written offer, valid for at least three ++ years, to give any third party, for a charge no more than your ++ cost of physically performing source distribution, a complete ++ machine-readable copy of the corresponding source code, to be ++ distributed under the terms of Sections 1 and 2 above on a medium ++ customarily used for software interchange; or, ++ ++ c) Accompany it with the information you received as to the offer ++ to distribute corresponding source code. (This alternative is ++ allowed only for noncommercial distribution and only if you ++ received the program in object code or executable form with such ++ an offer, in accord with Subsection b above.) ++ ++The source code for a work means the preferred form of the work for ++making modifications to it. For an executable work, complete source ++code means all the source code for all modules it contains, plus any ++associated interface definition files, plus the scripts used to ++control compilation and installation of the executable. However, as a ++special exception, the source code distributed need not include ++anything that is normally distributed (in either source or binary ++form) with the major components (compiler, kernel, and so on) of the ++operating system on which the executable runs, unless that component ++itself accompanies the executable. ++ ++If distribution of executable or object code is made by offering ++access to copy from a designated place, then offering equivalent ++access to copy the source code from the same place counts as ++distribution of the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 4. You may not copy, modify, sublicense, or distribute the Program ++except as expressly provided under this License. Any attempt ++otherwise to copy, modify, sublicense or distribute the Program is ++void, and will automatically terminate your rights under this License. ++However, parties who have received copies, or rights, from you under ++this License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++ 5. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Program or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Program (or any work based on the ++Program), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Program or works based on it. ++ ++ 6. Each time you redistribute the Program (or any work based on the ++Program), the recipient automatically receives a license from the ++original licensor to copy, distribute or modify the Program subject to ++these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties to ++this License. ++ ++ 7. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Program at all. For example, if a patent ++license would not permit royalty-free redistribution of the Program by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Program. ++ ++If any portion of this section is held invalid or unenforceable under ++any particular circumstance, the balance of the section is intended to ++apply and the section as a whole is intended to apply in other ++circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system, which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 8. If the distribution and/or use of the Program is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Program under this License ++may add an explicit geographical distribution limitation excluding ++those countries, so that distribution is permitted only in or among ++countries not thus excluded. In such case, this License incorporates ++the limitation as if written in the body of this License. ++ ++ 9. The Free Software Foundation may publish revised and/or new versions ++of the General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Program ++specifies a version number of this License which applies to it and "any ++later version", you have the option of following the terms and conditions ++either of that version or of any later version published by the Free ++Software Foundation. If the Program does not specify a version number of ++this License, you may choose any version ever published by the Free Software ++Foundation. ++ ++ 10. If you wish to incorporate parts of the Program into other free ++programs whose distribution conditions are different, write to the author ++to ask for permission. For software which is copyrighted by the Free ++Software Foundation, write to the Free Software Foundation; we sometimes ++make exceptions for this. Our decision will be guided by the two goals ++of preserving the free status of all derivatives of our free software and ++of promoting the sharing and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY ++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN ++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES ++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED ++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS ++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, ++REPAIR OR CORRECTION. ++ ++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR ++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, ++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING ++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED ++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY ++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER ++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ++POSSIBILITY OF SUCH DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++If the program is interactive, make it output a short notice like this ++when it starts in an interactive mode: ++ ++ Gnomovision version 69, Copyright (C) year name of author ++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, the commands you use may ++be called something other than `show w' and `show c'; they could even be ++mouse-clicks or menu items--whatever suits your program. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the program, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program ++ `Gnomovision' (which makes passes at compilers) written by James Hacker. ++ ++ , 1 April 1989 ++ Ty Coon, President of Vice ++ ++This General Public License does not permit incorporating your program into ++proprietary programs. If your program is a subroutine library, you may ++consider it more useful to permit linking proprietary applications with the ++library. If this is what you want to do, use the GNU Library General ++Public License instead of this License. +diff --git a/support/bundled/linux/include/uapi/linux/fuse.h b/support/bundled/linux/include/uapi/linux/fuse.h +new file mode 100644 +index 0000000000..d08b99d60f +--- /dev/null ++++ b/support/bundled/linux/include/uapi/linux/fuse.h +@@ -0,0 +1,1189 @@ ++/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ ++/* ++ This file defines the kernel interface of FUSE ++ Copyright (C) 2001-2008 Miklos Szeredi ++ ++ This program can be distributed under the terms of the GNU GPL. ++ See the file COPYING. ++ ++ This -- and only this -- header file may also be distributed under ++ the terms of the BSD Licence as follows: ++ ++ Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ 1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ 2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ ++ THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND ++ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE ++ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ SUCH DAMAGE. ++*/ ++ ++/* ++ * This file defines the kernel interface of FUSE ++ * ++ * Protocol changelog: ++ * ++ * 7.1: ++ * - add the following messages: ++ * FUSE_SETATTR, FUSE_SYMLINK, FUSE_MKNOD, FUSE_MKDIR, FUSE_UNLINK, ++ * FUSE_RMDIR, FUSE_RENAME, FUSE_LINK, FUSE_OPEN, FUSE_READ, FUSE_WRITE, ++ * FUSE_RELEASE, FUSE_FSYNC, FUSE_FLUSH, FUSE_SETXATTR, FUSE_GETXATTR, ++ * FUSE_LISTXATTR, FUSE_REMOVEXATTR, FUSE_OPENDIR, FUSE_READDIR, ++ * FUSE_RELEASEDIR ++ * - add padding to messages to accommodate 32-bit servers on 64-bit kernels ++ * ++ * 7.2: ++ * - add FOPEN_DIRECT_IO and FOPEN_KEEP_CACHE flags ++ * - add FUSE_FSYNCDIR message ++ * ++ * 7.3: ++ * - add FUSE_ACCESS message ++ * - add FUSE_CREATE message ++ * - add filehandle to fuse_setattr_in ++ * ++ * 7.4: ++ * - add frsize to fuse_kstatfs ++ * - clean up request size limit checking ++ * ++ * 7.5: ++ * - add flags and max_write to fuse_init_out ++ * ++ * 7.6: ++ * - add max_readahead to fuse_init_in and fuse_init_out ++ * ++ * 7.7: ++ * - add FUSE_INTERRUPT message ++ * - add POSIX file lock support ++ * ++ * 7.8: ++ * - add lock_owner and flags fields to fuse_release_in ++ * - add FUSE_BMAP message ++ * - add FUSE_DESTROY message ++ * ++ * 7.9: ++ * - new fuse_getattr_in input argument of GETATTR ++ * - add lk_flags in fuse_lk_in ++ * - add lock_owner field to fuse_setattr_in, fuse_read_in and fuse_write_in ++ * - add blksize field to fuse_attr ++ * - add file flags field to fuse_read_in and fuse_write_in ++ * - Add ATIME_NOW and MTIME_NOW flags to fuse_setattr_in ++ * ++ * 7.10 ++ * - add nonseekable open flag ++ * ++ * 7.11 ++ * - add IOCTL message ++ * - add unsolicited notification support ++ * - add POLL message and NOTIFY_POLL notification ++ * ++ * 7.12 ++ * - add umask flag to input argument of create, mknod and mkdir ++ * - add notification messages for invalidation of inodes and ++ * directory entries ++ * ++ * 7.13 ++ * - make max number of background requests and congestion threshold ++ * tunables ++ * ++ * 7.14 ++ * - add splice support to fuse device ++ * ++ * 7.15 ++ * - add store notify ++ * - add retrieve notify ++ * ++ * 7.16 ++ * - add BATCH_FORGET request ++ * - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct ++ * fuse_ioctl_iovec' instead of ambiguous 'struct iovec' ++ * - add FUSE_IOCTL_32BIT flag ++ * ++ * 7.17 ++ * - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK ++ * ++ * 7.18 ++ * - add FUSE_IOCTL_DIR flag ++ * - add FUSE_NOTIFY_DELETE ++ * ++ * 7.19 ++ * - add FUSE_FALLOCATE ++ * ++ * 7.20 ++ * - add FUSE_AUTO_INVAL_DATA ++ * ++ * 7.21 ++ * - add FUSE_READDIRPLUS ++ * - send the requested events in POLL request ++ * ++ * 7.22 ++ * - add FUSE_ASYNC_DIO ++ * ++ * 7.23 ++ * - add FUSE_WRITEBACK_CACHE ++ * - add time_gran to fuse_init_out ++ * - add reserved space to fuse_init_out ++ * - add FATTR_CTIME ++ * - add ctime and ctimensec to fuse_setattr_in ++ * - add FUSE_RENAME2 request ++ * - add FUSE_NO_OPEN_SUPPORT flag ++ * ++ * 7.24 ++ * - add FUSE_LSEEK for SEEK_HOLE and SEEK_DATA support ++ * ++ * 7.25 ++ * - add FUSE_PARALLEL_DIROPS ++ * ++ * 7.26 ++ * - add FUSE_HANDLE_KILLPRIV ++ * - add FUSE_POSIX_ACL ++ * ++ * 7.27 ++ * - add FUSE_ABORT_ERROR ++ * ++ * 7.28 ++ * - add FUSE_COPY_FILE_RANGE ++ * - add FOPEN_CACHE_DIR ++ * - add FUSE_MAX_PAGES, add max_pages to init_out ++ * - add FUSE_CACHE_SYMLINKS ++ * ++ * 7.29 ++ * - add FUSE_NO_OPENDIR_SUPPORT flag ++ * ++ * 7.30 ++ * - add FUSE_EXPLICIT_INVAL_DATA ++ * - add FUSE_IOCTL_COMPAT_X32 ++ * ++ * 7.31 ++ * - add FUSE_WRITE_KILL_PRIV flag ++ * - add FUSE_SETUPMAPPING and FUSE_REMOVEMAPPING ++ * - add map_alignment to fuse_init_out, add FUSE_MAP_ALIGNMENT flag ++ * ++ * 7.32 ++ * - add flags to fuse_attr, add FUSE_ATTR_SUBMOUNT, add FUSE_SUBMOUNTS ++ * ++ * 7.33 ++ * - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID ++ * - add FUSE_OPEN_KILL_SUIDGID ++ * - extend fuse_setxattr_in, add FUSE_SETXATTR_EXT ++ * - add FUSE_SETXATTR_ACL_KILL_SGID ++ * ++ * 7.34 ++ * - add FUSE_SYNCFS ++ * ++ * 7.35 ++ * - add FOPEN_NOFLUSH ++ * ++ * 7.36 ++ * - extend fuse_init_in with reserved fields, add FUSE_INIT_EXT init flag ++ * - add flags2 to fuse_init_in and fuse_init_out ++ * - add FUSE_SECURITY_CTX init flag ++ * - add security context to create, mkdir, symlink, and mknod requests ++ * - add FUSE_HAS_INODE_DAX, FUSE_ATTR_DAX ++ * ++ * 7.37 ++ * - add FUSE_TMPFILE ++ * ++ * 7.38 ++ * - add FUSE_EXPIRE_ONLY flag to fuse_notify_inval_entry ++ * - add FOPEN_PARALLEL_DIRECT_WRITES ++ * - add total_extlen to fuse_in_header ++ * - add FUSE_MAX_NR_SECCTX ++ * - add extension header ++ * - add FUSE_EXT_GROUPS ++ * - add FUSE_CREATE_SUPP_GROUP ++ * - add FUSE_HAS_EXPIRE_ONLY ++ * ++ * 7.39 ++ * - add FUSE_DIRECT_IO_ALLOW_MMAP ++ * - add FUSE_STATX and related structures ++ * ++ * 7.40 ++ * - add max_stack_depth to fuse_init_out, add FUSE_PASSTHROUGH init flag ++ * - add backing_id to fuse_open_out, add FOPEN_PASSTHROUGH open flag ++ * - add FUSE_NO_EXPORT_SUPPORT init flag ++ * - add FUSE_NOTIFY_RESEND, add FUSE_HAS_RESEND init flag ++ */ ++ ++#ifndef _LINUX_FUSE_H ++#define _LINUX_FUSE_H ++ ++#ifdef __KERNEL__ ++#include ++#else ++#include ++#endif ++ ++/* ++ * Version negotiation: ++ * ++ * Both the kernel and userspace send the version they support in the ++ * INIT request and reply respectively. ++ * ++ * If the major versions match then both shall use the smallest ++ * of the two minor versions for communication. ++ * ++ * If the kernel supports a larger major version, then userspace shall ++ * reply with the major version it supports, ignore the rest of the ++ * INIT message and expect a new INIT message from the kernel with a ++ * matching major version. ++ * ++ * If the library supports a larger major version, then it shall fall ++ * back to the major protocol version sent by the kernel for ++ * communication and reply with that major version (and an arbitrary ++ * supported minor version). ++ */ ++ ++/** Version number of this interface */ ++#define FUSE_KERNEL_VERSION 7 ++ ++/** Minor version number of this interface */ ++#define FUSE_KERNEL_MINOR_VERSION 40 ++ ++/** The node ID of the root inode */ ++#define FUSE_ROOT_ID 1 ++ ++/* Make sure all structures are padded to 64bit boundary, so 32bit ++ userspace works under 64bit kernels */ ++ ++struct fuse_attr { ++ uint64_t ino; ++ uint64_t size; ++ uint64_t blocks; ++ uint64_t atime; ++ uint64_t mtime; ++ uint64_t ctime; ++ uint32_t atimensec; ++ uint32_t mtimensec; ++ uint32_t ctimensec; ++ uint32_t mode; ++ uint32_t nlink; ++ uint32_t uid; ++ uint32_t gid; ++ uint32_t rdev; ++ uint32_t blksize; ++ uint32_t flags; ++}; ++ ++/* ++ * The following structures are bit-for-bit compatible with the statx(2) ABI in ++ * Linux. ++ */ ++struct fuse_sx_time { ++ int64_t tv_sec; ++ uint32_t tv_nsec; ++ int32_t __reserved; ++}; ++ ++struct fuse_statx { ++ uint32_t mask; ++ uint32_t blksize; ++ uint64_t attributes; ++ uint32_t nlink; ++ uint32_t uid; ++ uint32_t gid; ++ uint16_t mode; ++ uint16_t __spare0[1]; ++ uint64_t ino; ++ uint64_t size; ++ uint64_t blocks; ++ uint64_t attributes_mask; ++ struct fuse_sx_time atime; ++ struct fuse_sx_time btime; ++ struct fuse_sx_time ctime; ++ struct fuse_sx_time mtime; ++ uint32_t rdev_major; ++ uint32_t rdev_minor; ++ uint32_t dev_major; ++ uint32_t dev_minor; ++ uint64_t __spare2[14]; ++}; ++ ++struct fuse_kstatfs { ++ uint64_t blocks; ++ uint64_t bfree; ++ uint64_t bavail; ++ uint64_t files; ++ uint64_t ffree; ++ uint32_t bsize; ++ uint32_t namelen; ++ uint32_t frsize; ++ uint32_t padding; ++ uint32_t spare[6]; ++}; ++ ++struct fuse_file_lock { ++ uint64_t start; ++ uint64_t end; ++ uint32_t type; ++ uint32_t pid; /* tgid */ ++}; ++ ++/** ++ * Bitmasks for fuse_setattr_in.valid ++ */ ++#define FATTR_MODE (1 << 0) ++#define FATTR_UID (1 << 1) ++#define FATTR_GID (1 << 2) ++#define FATTR_SIZE (1 << 3) ++#define FATTR_ATIME (1 << 4) ++#define FATTR_MTIME (1 << 5) ++#define FATTR_FH (1 << 6) ++#define FATTR_ATIME_NOW (1 << 7) ++#define FATTR_MTIME_NOW (1 << 8) ++#define FATTR_LOCKOWNER (1 << 9) ++#define FATTR_CTIME (1 << 10) ++#define FATTR_KILL_SUIDGID (1 << 11) ++ ++/** ++ * Flags returned by the OPEN request ++ * ++ * FOPEN_DIRECT_IO: bypass page cache for this open file ++ * FOPEN_KEEP_CACHE: don't invalidate the data cache on open ++ * FOPEN_NONSEEKABLE: the file is not seekable ++ * FOPEN_CACHE_DIR: allow caching this directory ++ * FOPEN_STREAM: the file is stream-like (no file position at all) ++ * FOPEN_NOFLUSH: don't flush data cache on close (unless FUSE_WRITEBACK_CACHE) ++ * FOPEN_PARALLEL_DIRECT_WRITES: Allow concurrent direct writes on the same inode ++ * FOPEN_PASSTHROUGH: passthrough read/write io for this open file ++ */ ++#define FOPEN_DIRECT_IO (1 << 0) ++#define FOPEN_KEEP_CACHE (1 << 1) ++#define FOPEN_NONSEEKABLE (1 << 2) ++#define FOPEN_CACHE_DIR (1 << 3) ++#define FOPEN_STREAM (1 << 4) ++#define FOPEN_NOFLUSH (1 << 5) ++#define FOPEN_PARALLEL_DIRECT_WRITES (1 << 6) ++#define FOPEN_PASSTHROUGH (1 << 7) ++ ++/** ++ * INIT request/reply flags ++ * ++ * FUSE_ASYNC_READ: asynchronous read requests ++ * FUSE_POSIX_LOCKS: remote locking for POSIX file locks ++ * FUSE_FILE_OPS: kernel sends file handle for fstat, etc... (not yet supported) ++ * FUSE_ATOMIC_O_TRUNC: handles the O_TRUNC open flag in the filesystem ++ * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." ++ * FUSE_BIG_WRITES: filesystem can handle write size larger than 4kB ++ * FUSE_DONT_MASK: don't apply umask to file mode on create operations ++ * FUSE_SPLICE_WRITE: kernel supports splice write on the device ++ * FUSE_SPLICE_MOVE: kernel supports splice move on the device ++ * FUSE_SPLICE_READ: kernel supports splice read on the device ++ * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks ++ * FUSE_HAS_IOCTL_DIR: kernel supports ioctl on directories ++ * FUSE_AUTO_INVAL_DATA: automatically invalidate cached pages ++ * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) ++ * FUSE_READDIRPLUS_AUTO: adaptive readdirplus ++ * FUSE_ASYNC_DIO: asynchronous direct I/O submission ++ * FUSE_WRITEBACK_CACHE: use writeback cache for buffered writes ++ * FUSE_NO_OPEN_SUPPORT: kernel supports zero-message opens ++ * FUSE_PARALLEL_DIROPS: allow parallel lookups and readdir ++ * FUSE_HANDLE_KILLPRIV: fs handles killing suid/sgid/cap on write/chown/trunc ++ * FUSE_POSIX_ACL: filesystem supports posix acls ++ * FUSE_ABORT_ERROR: reading the device after abort returns ECONNABORTED ++ * FUSE_MAX_PAGES: init_out.max_pages contains the max number of req pages ++ * FUSE_CACHE_SYMLINKS: cache READLINK responses ++ * FUSE_NO_OPENDIR_SUPPORT: kernel supports zero-message opendir ++ * FUSE_EXPLICIT_INVAL_DATA: only invalidate cached pages on explicit request ++ * FUSE_MAP_ALIGNMENT: init_out.map_alignment contains log2(byte alignment) for ++ * foffset and moffset fields in struct ++ * fuse_setupmapping_out and fuse_removemapping_one. ++ * FUSE_SUBMOUNTS: kernel supports auto-mounting directory submounts ++ * FUSE_HANDLE_KILLPRIV_V2: fs kills suid/sgid/cap on write/chown/trunc. ++ * Upon write/truncate suid/sgid is only killed if caller ++ * does not have CAP_FSETID. Additionally upon ++ * write/truncate sgid is killed only if file has group ++ * execute permission. (Same as Linux VFS behavior). ++ * FUSE_SETXATTR_EXT: Server supports extended struct fuse_setxattr_in ++ * FUSE_INIT_EXT: extended fuse_init_in request ++ * FUSE_INIT_RESERVED: reserved, do not use ++ * FUSE_SECURITY_CTX: add security context to create, mkdir, symlink, and ++ * mknod ++ * FUSE_HAS_INODE_DAX: use per inode DAX ++ * FUSE_CREATE_SUPP_GROUP: add supplementary group info to create, mkdir, ++ * symlink and mknod (single group that matches parent) ++ * FUSE_HAS_EXPIRE_ONLY: kernel supports expiry-only entry invalidation ++ * FUSE_DIRECT_IO_ALLOW_MMAP: allow shared mmap in FOPEN_DIRECT_IO mode. ++ * FUSE_NO_EXPORT_SUPPORT: explicitly disable export support ++ * FUSE_HAS_RESEND: kernel supports resending pending requests, and the high bit ++ * of the request ID indicates resend requests ++ */ ++#define FUSE_ASYNC_READ (1 << 0) ++#define FUSE_POSIX_LOCKS (1 << 1) ++#define FUSE_FILE_OPS (1 << 2) ++#define FUSE_ATOMIC_O_TRUNC (1 << 3) ++#define FUSE_EXPORT_SUPPORT (1 << 4) ++#define FUSE_BIG_WRITES (1 << 5) ++#define FUSE_DONT_MASK (1 << 6) ++#define FUSE_SPLICE_WRITE (1 << 7) ++#define FUSE_SPLICE_MOVE (1 << 8) ++#define FUSE_SPLICE_READ (1 << 9) ++#define FUSE_FLOCK_LOCKS (1 << 10) ++#define FUSE_HAS_IOCTL_DIR (1 << 11) ++#define FUSE_AUTO_INVAL_DATA (1 << 12) ++#define FUSE_DO_READDIRPLUS (1 << 13) ++#define FUSE_READDIRPLUS_AUTO (1 << 14) ++#define FUSE_ASYNC_DIO (1 << 15) ++#define FUSE_WRITEBACK_CACHE (1 << 16) ++#define FUSE_NO_OPEN_SUPPORT (1 << 17) ++#define FUSE_PARALLEL_DIROPS (1 << 18) ++#define FUSE_HANDLE_KILLPRIV (1 << 19) ++#define FUSE_POSIX_ACL (1 << 20) ++#define FUSE_ABORT_ERROR (1 << 21) ++#define FUSE_MAX_PAGES (1 << 22) ++#define FUSE_CACHE_SYMLINKS (1 << 23) ++#define FUSE_NO_OPENDIR_SUPPORT (1 << 24) ++#define FUSE_EXPLICIT_INVAL_DATA (1 << 25) ++#define FUSE_MAP_ALIGNMENT (1 << 26) ++#define FUSE_SUBMOUNTS (1 << 27) ++#define FUSE_HANDLE_KILLPRIV_V2 (1 << 28) ++#define FUSE_SETXATTR_EXT (1 << 29) ++#define FUSE_INIT_EXT (1 << 30) ++#define FUSE_INIT_RESERVED (1 << 31) ++/* bits 32..63 get shifted down 32 bits into the flags2 field */ ++#define FUSE_SECURITY_CTX (1ULL << 32) ++#define FUSE_HAS_INODE_DAX (1ULL << 33) ++#define FUSE_CREATE_SUPP_GROUP (1ULL << 34) ++#define FUSE_HAS_EXPIRE_ONLY (1ULL << 35) ++#define FUSE_DIRECT_IO_ALLOW_MMAP (1ULL << 36) ++#define FUSE_PASSTHROUGH (1ULL << 37) ++#define FUSE_NO_EXPORT_SUPPORT (1ULL << 38) ++#define FUSE_HAS_RESEND (1ULL << 39) ++ ++/* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */ ++#define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP ++ ++/** ++ * CUSE INIT request/reply flags ++ * ++ * CUSE_UNRESTRICTED_IOCTL: use unrestricted ioctl ++ */ ++#define CUSE_UNRESTRICTED_IOCTL (1 << 0) ++ ++/** ++ * Release flags ++ */ ++#define FUSE_RELEASE_FLUSH (1 << 0) ++#define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1) ++ ++/** ++ * Getattr flags ++ */ ++#define FUSE_GETATTR_FH (1 << 0) ++ ++/** ++ * Lock flags ++ */ ++#define FUSE_LK_FLOCK (1 << 0) ++ ++/** ++ * WRITE flags ++ * ++ * FUSE_WRITE_CACHE: delayed write from page cache, file handle is guessed ++ * FUSE_WRITE_LOCKOWNER: lock_owner field is valid ++ * FUSE_WRITE_KILL_SUIDGID: kill suid and sgid bits ++ */ ++#define FUSE_WRITE_CACHE (1 << 0) ++#define FUSE_WRITE_LOCKOWNER (1 << 1) ++#define FUSE_WRITE_KILL_SUIDGID (1 << 2) ++ ++/* Obsolete alias; this flag implies killing suid/sgid only. */ ++#define FUSE_WRITE_KILL_PRIV FUSE_WRITE_KILL_SUIDGID ++ ++/** ++ * Read flags ++ */ ++#define FUSE_READ_LOCKOWNER (1 << 1) ++ ++/** ++ * Ioctl flags ++ * ++ * FUSE_IOCTL_COMPAT: 32bit compat ioctl on 64bit machine ++ * FUSE_IOCTL_UNRESTRICTED: not restricted to well-formed ioctls, retry allowed ++ * FUSE_IOCTL_RETRY: retry with new iovecs ++ * FUSE_IOCTL_32BIT: 32bit ioctl ++ * FUSE_IOCTL_DIR: is a directory ++ * FUSE_IOCTL_COMPAT_X32: x32 compat ioctl on 64bit machine (64bit time_t) ++ * ++ * FUSE_IOCTL_MAX_IOV: maximum of in_iovecs + out_iovecs ++ */ ++#define FUSE_IOCTL_COMPAT (1 << 0) ++#define FUSE_IOCTL_UNRESTRICTED (1 << 1) ++#define FUSE_IOCTL_RETRY (1 << 2) ++#define FUSE_IOCTL_32BIT (1 << 3) ++#define FUSE_IOCTL_DIR (1 << 4) ++#define FUSE_IOCTL_COMPAT_X32 (1 << 5) ++ ++#define FUSE_IOCTL_MAX_IOV 256 ++ ++/** ++ * Poll flags ++ * ++ * FUSE_POLL_SCHEDULE_NOTIFY: request poll notify ++ */ ++#define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0) ++ ++/** ++ * Fsync flags ++ * ++ * FUSE_FSYNC_FDATASYNC: Sync data only, not metadata ++ */ ++#define FUSE_FSYNC_FDATASYNC (1 << 0) ++ ++/** ++ * fuse_attr flags ++ * ++ * FUSE_ATTR_SUBMOUNT: Object is a submount root ++ * FUSE_ATTR_DAX: Enable DAX for this file in per inode DAX mode ++ */ ++#define FUSE_ATTR_SUBMOUNT (1 << 0) ++#define FUSE_ATTR_DAX (1 << 1) ++ ++/** ++ * Open flags ++ * FUSE_OPEN_KILL_SUIDGID: Kill suid and sgid if executable ++ */ ++#define FUSE_OPEN_KILL_SUIDGID (1 << 0) ++ ++/** ++ * setxattr flags ++ * FUSE_SETXATTR_ACL_KILL_SGID: Clear SGID when system.posix_acl_access is set ++ */ ++#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0) ++ ++/** ++ * notify_inval_entry flags ++ * FUSE_EXPIRE_ONLY ++ */ ++#define FUSE_EXPIRE_ONLY (1 << 0) ++ ++/** ++ * extension type ++ * FUSE_MAX_NR_SECCTX: maximum value of &fuse_secctx_header.nr_secctx ++ * FUSE_EXT_GROUPS: &fuse_supp_groups extension ++ */ ++enum fuse_ext_type { ++ /* Types 0..31 are reserved for fuse_secctx_header */ ++ FUSE_MAX_NR_SECCTX = 31, ++ FUSE_EXT_GROUPS = 32, ++}; ++ ++enum fuse_opcode { ++ FUSE_LOOKUP = 1, ++ FUSE_FORGET = 2, /* no reply */ ++ FUSE_GETATTR = 3, ++ FUSE_SETATTR = 4, ++ FUSE_READLINK = 5, ++ FUSE_SYMLINK = 6, ++ FUSE_MKNOD = 8, ++ FUSE_MKDIR = 9, ++ FUSE_UNLINK = 10, ++ FUSE_RMDIR = 11, ++ FUSE_RENAME = 12, ++ FUSE_LINK = 13, ++ FUSE_OPEN = 14, ++ FUSE_READ = 15, ++ FUSE_WRITE = 16, ++ FUSE_STATFS = 17, ++ FUSE_RELEASE = 18, ++ FUSE_FSYNC = 20, ++ FUSE_SETXATTR = 21, ++ FUSE_GETXATTR = 22, ++ FUSE_LISTXATTR = 23, ++ FUSE_REMOVEXATTR = 24, ++ FUSE_FLUSH = 25, ++ FUSE_INIT = 26, ++ FUSE_OPENDIR = 27, ++ FUSE_READDIR = 28, ++ FUSE_RELEASEDIR = 29, ++ FUSE_FSYNCDIR = 30, ++ FUSE_GETLK = 31, ++ FUSE_SETLK = 32, ++ FUSE_SETLKW = 33, ++ FUSE_ACCESS = 34, ++ FUSE_CREATE = 35, ++ FUSE_INTERRUPT = 36, ++ FUSE_BMAP = 37, ++ FUSE_DESTROY = 38, ++ FUSE_IOCTL = 39, ++ FUSE_POLL = 40, ++ FUSE_NOTIFY_REPLY = 41, ++ FUSE_BATCH_FORGET = 42, ++ FUSE_FALLOCATE = 43, ++ FUSE_READDIRPLUS = 44, ++ FUSE_RENAME2 = 45, ++ FUSE_LSEEK = 46, ++ FUSE_COPY_FILE_RANGE = 47, ++ FUSE_SETUPMAPPING = 48, ++ FUSE_REMOVEMAPPING = 49, ++ FUSE_SYNCFS = 50, ++ FUSE_TMPFILE = 51, ++ FUSE_STATX = 52, ++ ++ /* CUSE specific operations */ ++ CUSE_INIT = 4096, ++ ++ /* Reserved opcodes: helpful to detect structure endian-ness */ ++ CUSE_INIT_BSWAP_RESERVED = 1048576, /* CUSE_INIT << 8 */ ++ FUSE_INIT_BSWAP_RESERVED = 436207616, /* FUSE_INIT << 24 */ ++}; ++ ++enum fuse_notify_code { ++ FUSE_NOTIFY_POLL = 1, ++ FUSE_NOTIFY_INVAL_INODE = 2, ++ FUSE_NOTIFY_INVAL_ENTRY = 3, ++ FUSE_NOTIFY_STORE = 4, ++ FUSE_NOTIFY_RETRIEVE = 5, ++ FUSE_NOTIFY_DELETE = 6, ++ FUSE_NOTIFY_RESEND = 7, ++ FUSE_NOTIFY_CODE_MAX, ++}; ++ ++/* The read buffer is required to be at least 8k, but may be much larger */ ++#define FUSE_MIN_READ_BUFFER 8192 ++ ++#define FUSE_COMPAT_ENTRY_OUT_SIZE 120 ++ ++struct fuse_entry_out { ++ uint64_t nodeid; /* Inode ID */ ++ uint64_t generation; /* Inode generation: nodeid:gen must ++ be unique for the fs's lifetime */ ++ uint64_t entry_valid; /* Cache timeout for the name */ ++ uint64_t attr_valid; /* Cache timeout for the attributes */ ++ uint32_t entry_valid_nsec; ++ uint32_t attr_valid_nsec; ++ struct fuse_attr attr; ++}; ++ ++struct fuse_forget_in { ++ uint64_t nlookup; ++}; ++ ++struct fuse_forget_one { ++ uint64_t nodeid; ++ uint64_t nlookup; ++}; ++ ++struct fuse_batch_forget_in { ++ uint32_t count; ++ uint32_t dummy; ++}; ++ ++struct fuse_getattr_in { ++ uint32_t getattr_flags; ++ uint32_t dummy; ++ uint64_t fh; ++}; ++ ++#define FUSE_COMPAT_ATTR_OUT_SIZE 96 ++ ++struct fuse_attr_out { ++ uint64_t attr_valid; /* Cache timeout for the attributes */ ++ uint32_t attr_valid_nsec; ++ uint32_t dummy; ++ struct fuse_attr attr; ++}; ++ ++struct fuse_statx_in { ++ uint32_t getattr_flags; ++ uint32_t reserved; ++ uint64_t fh; ++ uint32_t sx_flags; ++ uint32_t sx_mask; ++}; ++ ++struct fuse_statx_out { ++ uint64_t attr_valid; /* Cache timeout for the attributes */ ++ uint32_t attr_valid_nsec; ++ uint32_t flags; ++ uint64_t spare[2]; ++ struct fuse_statx stat; ++}; ++ ++#define FUSE_COMPAT_MKNOD_IN_SIZE 8 ++ ++struct fuse_mknod_in { ++ uint32_t mode; ++ uint32_t rdev; ++ uint32_t umask; ++ uint32_t padding; ++}; ++ ++struct fuse_mkdir_in { ++ uint32_t mode; ++ uint32_t umask; ++}; ++ ++struct fuse_rename_in { ++ uint64_t newdir; ++}; ++ ++struct fuse_rename2_in { ++ uint64_t newdir; ++ uint32_t flags; ++ uint32_t padding; ++}; ++ ++struct fuse_link_in { ++ uint64_t oldnodeid; ++}; ++ ++struct fuse_setattr_in { ++ uint32_t valid; ++ uint32_t padding; ++ uint64_t fh; ++ uint64_t size; ++ uint64_t lock_owner; ++ uint64_t atime; ++ uint64_t mtime; ++ uint64_t ctime; ++ uint32_t atimensec; ++ uint32_t mtimensec; ++ uint32_t ctimensec; ++ uint32_t mode; ++ uint32_t unused4; ++ uint32_t uid; ++ uint32_t gid; ++ uint32_t unused5; ++}; ++ ++struct fuse_open_in { ++ uint32_t flags; ++ uint32_t open_flags; /* FUSE_OPEN_... */ ++}; ++ ++struct fuse_create_in { ++ uint32_t flags; ++ uint32_t mode; ++ uint32_t umask; ++ uint32_t open_flags; /* FUSE_OPEN_... */ ++}; ++ ++struct fuse_open_out { ++ uint64_t fh; ++ uint32_t open_flags; ++ int32_t backing_id; ++}; ++ ++struct fuse_release_in { ++ uint64_t fh; ++ uint32_t flags; ++ uint32_t release_flags; ++ uint64_t lock_owner; ++}; ++ ++struct fuse_flush_in { ++ uint64_t fh; ++ uint32_t unused; ++ uint32_t padding; ++ uint64_t lock_owner; ++}; ++ ++struct fuse_read_in { ++ uint64_t fh; ++ uint64_t offset; ++ uint32_t size; ++ uint32_t read_flags; ++ uint64_t lock_owner; ++ uint32_t flags; ++ uint32_t padding; ++}; ++ ++#define FUSE_COMPAT_WRITE_IN_SIZE 24 ++ ++struct fuse_write_in { ++ uint64_t fh; ++ uint64_t offset; ++ uint32_t size; ++ uint32_t write_flags; ++ uint64_t lock_owner; ++ uint32_t flags; ++ uint32_t padding; ++}; ++ ++struct fuse_write_out { ++ uint32_t size; ++ uint32_t padding; ++}; ++ ++#define FUSE_COMPAT_STATFS_SIZE 48 ++ ++struct fuse_statfs_out { ++ struct fuse_kstatfs st; ++}; ++ ++struct fuse_fsync_in { ++ uint64_t fh; ++ uint32_t fsync_flags; ++ uint32_t padding; ++}; ++ ++#define FUSE_COMPAT_SETXATTR_IN_SIZE 8 ++ ++struct fuse_setxattr_in { ++ uint32_t size; ++ uint32_t flags; ++ uint32_t setxattr_flags; ++ uint32_t padding; ++}; ++ ++struct fuse_getxattr_in { ++ uint32_t size; ++ uint32_t padding; ++}; ++ ++struct fuse_getxattr_out { ++ uint32_t size; ++ uint32_t padding; ++}; ++ ++struct fuse_lk_in { ++ uint64_t fh; ++ uint64_t owner; ++ struct fuse_file_lock lk; ++ uint32_t lk_flags; ++ uint32_t padding; ++}; ++ ++struct fuse_lk_out { ++ struct fuse_file_lock lk; ++}; ++ ++struct fuse_access_in { ++ uint32_t mask; ++ uint32_t padding; ++}; ++ ++struct fuse_init_in { ++ uint32_t major; ++ uint32_t minor; ++ uint32_t max_readahead; ++ uint32_t flags; ++ uint32_t flags2; ++ uint32_t unused[11]; ++}; ++ ++#define FUSE_COMPAT_INIT_OUT_SIZE 8 ++#define FUSE_COMPAT_22_INIT_OUT_SIZE 24 ++ ++struct fuse_init_out { ++ uint32_t major; ++ uint32_t minor; ++ uint32_t max_readahead; ++ uint32_t flags; ++ uint16_t max_background; ++ uint16_t congestion_threshold; ++ uint32_t max_write; ++ uint32_t time_gran; ++ uint16_t max_pages; ++ uint16_t map_alignment; ++ uint32_t flags2; ++ uint32_t max_stack_depth; ++ uint32_t unused[6]; ++}; ++ ++#define CUSE_INIT_INFO_MAX 4096 ++ ++struct cuse_init_in { ++ uint32_t major; ++ uint32_t minor; ++ uint32_t unused; ++ uint32_t flags; ++}; ++ ++struct cuse_init_out { ++ uint32_t major; ++ uint32_t minor; ++ uint32_t unused; ++ uint32_t flags; ++ uint32_t max_read; ++ uint32_t max_write; ++ uint32_t dev_major; /* chardev major */ ++ uint32_t dev_minor; /* chardev minor */ ++ uint32_t spare[10]; ++}; ++ ++struct fuse_interrupt_in { ++ uint64_t unique; ++}; ++ ++struct fuse_bmap_in { ++ uint64_t block; ++ uint32_t blocksize; ++ uint32_t padding; ++}; ++ ++struct fuse_bmap_out { ++ uint64_t block; ++}; ++ ++struct fuse_ioctl_in { ++ uint64_t fh; ++ uint32_t flags; ++ uint32_t cmd; ++ uint64_t arg; ++ uint32_t in_size; ++ uint32_t out_size; ++}; ++ ++struct fuse_ioctl_iovec { ++ uint64_t base; ++ uint64_t len; ++}; ++ ++struct fuse_ioctl_out { ++ int32_t result; ++ uint32_t flags; ++ uint32_t in_iovs; ++ uint32_t out_iovs; ++}; ++ ++struct fuse_poll_in { ++ uint64_t fh; ++ uint64_t kh; ++ uint32_t flags; ++ uint32_t events; ++}; ++ ++struct fuse_poll_out { ++ uint32_t revents; ++ uint32_t padding; ++}; ++ ++struct fuse_notify_poll_wakeup_out { ++ uint64_t kh; ++}; ++ ++struct fuse_fallocate_in { ++ uint64_t fh; ++ uint64_t offset; ++ uint64_t length; ++ uint32_t mode; ++ uint32_t padding; ++}; ++ ++/** ++ * FUSE request unique ID flag ++ * ++ * Indicates whether this is a resend request. The receiver should handle this ++ * request accordingly. ++ */ ++#define FUSE_UNIQUE_RESEND (1ULL << 63) ++ ++struct fuse_in_header { ++ uint32_t len; ++ uint32_t opcode; ++ uint64_t unique; ++ uint64_t nodeid; ++ uint32_t uid; ++ uint32_t gid; ++ uint32_t pid; ++ uint16_t total_extlen; /* length of extensions in 8byte units */ ++ uint16_t padding; ++}; ++ ++struct fuse_out_header { ++ uint32_t len; ++ int32_t error; ++ uint64_t unique; ++}; ++ ++struct fuse_dirent { ++ uint64_t ino; ++ uint64_t off; ++ uint32_t namelen; ++ uint32_t type; ++ char name[]; ++}; ++ ++/* Align variable length records to 64bit boundary */ ++#define FUSE_REC_ALIGN(x) \ ++ (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1)) ++ ++#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name) ++#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x) ++#define FUSE_DIRENT_SIZE(d) \ ++ FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen) ++ ++struct fuse_direntplus { ++ struct fuse_entry_out entry_out; ++ struct fuse_dirent dirent; ++}; ++ ++#define FUSE_NAME_OFFSET_DIRENTPLUS \ ++ offsetof(struct fuse_direntplus, dirent.name) ++#define FUSE_DIRENTPLUS_SIZE(d) \ ++ FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen) ++ ++struct fuse_notify_inval_inode_out { ++ uint64_t ino; ++ int64_t off; ++ int64_t len; ++}; ++ ++struct fuse_notify_inval_entry_out { ++ uint64_t parent; ++ uint32_t namelen; ++ uint32_t flags; ++}; ++ ++struct fuse_notify_delete_out { ++ uint64_t parent; ++ uint64_t child; ++ uint32_t namelen; ++ uint32_t padding; ++}; ++ ++struct fuse_notify_store_out { ++ uint64_t nodeid; ++ uint64_t offset; ++ uint32_t size; ++ uint32_t padding; ++}; ++ ++struct fuse_notify_retrieve_out { ++ uint64_t notify_unique; ++ uint64_t nodeid; ++ uint64_t offset; ++ uint32_t size; ++ uint32_t padding; ++}; ++ ++/* Matches the size of fuse_write_in */ ++struct fuse_notify_retrieve_in { ++ uint64_t dummy1; ++ uint64_t offset; ++ uint32_t size; ++ uint32_t dummy2; ++ uint64_t dummy3; ++ uint64_t dummy4; ++}; ++ ++struct fuse_backing_map { ++ int32_t fd; ++ uint32_t flags; ++ uint64_t padding; ++}; ++ ++/* Device ioctls: */ ++#define FUSE_DEV_IOC_MAGIC 229 ++#define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t) ++#define FUSE_DEV_IOC_BACKING_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 1, \ ++ struct fuse_backing_map) ++#define FUSE_DEV_IOC_BACKING_CLOSE _IOW(FUSE_DEV_IOC_MAGIC, 2, uint32_t) ++ ++struct fuse_lseek_in { ++ uint64_t fh; ++ uint64_t offset; ++ uint32_t whence; ++ uint32_t padding; ++}; ++ ++struct fuse_lseek_out { ++ uint64_t offset; ++}; ++ ++struct fuse_copy_file_range_in { ++ uint64_t fh_in; ++ uint64_t off_in; ++ uint64_t nodeid_out; ++ uint64_t fh_out; ++ uint64_t off_out; ++ uint64_t len; ++ uint64_t flags; ++}; ++ ++#define FUSE_SETUPMAPPING_FLAG_WRITE (1ull << 0) ++#define FUSE_SETUPMAPPING_FLAG_READ (1ull << 1) ++struct fuse_setupmapping_in { ++ /* An already open handle */ ++ uint64_t fh; ++ /* Offset into the file to start the mapping */ ++ uint64_t foffset; ++ /* Length of mapping required */ ++ uint64_t len; ++ /* Flags, FUSE_SETUPMAPPING_FLAG_* */ ++ uint64_t flags; ++ /* Offset in Memory Window */ ++ uint64_t moffset; ++}; ++ ++struct fuse_removemapping_in { ++ /* number of fuse_removemapping_one follows */ ++ uint32_t count; ++}; ++ ++struct fuse_removemapping_one { ++ /* Offset into the dax window start the unmapping */ ++ uint64_t moffset; ++ /* Length of mapping required */ ++ uint64_t len; ++}; ++ ++#define FUSE_REMOVEMAPPING_MAX_ENTRY \ ++ (PAGE_SIZE / sizeof(struct fuse_removemapping_one)) ++ ++struct fuse_syncfs_in { ++ uint64_t padding; ++}; ++ ++/* ++ * For each security context, send fuse_secctx with size of security context ++ * fuse_secctx will be followed by security context name and this in turn ++ * will be followed by actual context label. ++ * fuse_secctx, name, context ++ */ ++struct fuse_secctx { ++ uint32_t size; ++ uint32_t padding; ++}; ++ ++/* ++ * Contains the information about how many fuse_secctx structures are being ++ * sent and what's the total size of all security contexts (including ++ * size of fuse_secctx_header). ++ * ++ */ ++struct fuse_secctx_header { ++ uint32_t size; ++ uint32_t nr_secctx; ++}; ++ ++/** ++ * struct fuse_ext_header - extension header ++ * @size: total size of this extension including this header ++ * @type: type of extension ++ * ++ * This is made compatible with fuse_secctx_header by using type values > ++ * FUSE_MAX_NR_SECCTX ++ */ ++struct fuse_ext_header { ++ uint32_t size; ++ uint32_t type; ++}; ++ ++/** ++ * struct fuse_supp_groups - Supplementary group extension ++ * @nr_groups: number of supplementary groups ++ * @groups: flexible array of group IDs ++ */ ++struct fuse_supp_groups { ++ uint32_t nr_groups; ++ uint32_t groups[]; ++}; ++ ++#endif /* _LINUX_FUSE_H */ +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50545-9.patch b/SOURCES/glibc-RHEL-50545-9.patch new file mode 100644 index 0000000..4127da1 --- /dev/null +++ b/SOURCES/glibc-RHEL-50545-9.patch @@ -0,0 +1,438 @@ +From 3b1d32177635023e37bec7fbfd77c3cfb2659eb1 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Fri, 30 Aug 2024 21:52:10 +0200 +Subject: [PATCH] support: Add +Content-type: text/plain; charset=UTF-8 + +Use static functions for readdir/readdir_r, so that +-D_FILE_OFFSET_BITS=64 does not improperly redirect calls to the wrong +implementation. + +Reviewed-by: DJ Delorie + +Conflicts + support/Makefile + context +--- + support/Makefile | 6 +++ + support/support_readdir_check.c | 30 +++++++++++ + support/support_readdir_r_check.c | 35 +++++++++++++ + support/tst-xdirent.c | 76 +++++++++++++++++++++++++++ + support/xclosedir.c | 28 ++++++++++ + support/xdirent.h | 86 +++++++++++++++++++++++++++++++ + support/xfdopendir.c | 30 +++++++++++ + support/xopendir.c | 30 +++++++++++ + 8 files changed, 321 insertions(+) + create mode 100644 support/support_readdir_check.c + create mode 100644 support/support_readdir_r_check.c + create mode 100644 support/tst-xdirent.c + create mode 100644 support/xclosedir.c + create mode 100644 support/xdirent.h + create mode 100644 support/xfdopendir.c + create mode 100644 support/xopendir.c + +diff --git a/support/Makefile b/support/Makefile +index 26bd3d38e4..8fb4d2c500 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -73,6 +73,8 @@ libsupport-routines = \ + support_quote_blob \ + support_quote_blob_wide \ + support_quote_string \ ++ support_readdir_check \ ++ support_readdir_r_check \ + support_record_failure \ + support_run_diff \ + support_select_modifies_timeout \ +@@ -112,6 +114,7 @@ libsupport-routines = \ + xclock_settime_time64 \ + xclone \ + xclose \ ++ xclosedir \ + xchmod \ + xconnect \ + xcopy_file_range \ +@@ -120,6 +123,7 @@ libsupport-routines = \ + xdup2 \ + xfchmod \ + xfclose \ ++ xfdopendir \ + xfopen \ + xfork \ + xftruncate \ +@@ -137,6 +141,7 @@ libsupport-routines = \ + xmunmap \ + xnewlocale \ + xopen \ ++ xopendir \ + xpipe \ + xpoll \ + xposix_memalign \ +@@ -306,6 +311,7 @@ tests = \ + tst-test_compare_string \ + tst-test_compare_string_wide \ + tst-timespec \ ++ tst-xdirent \ + tst-xreadlink \ + tst-xsigstack \ + +diff --git a/support/support_readdir_check.c b/support/support_readdir_check.c +new file mode 100644 +index 0000000000..5687004276 +--- /dev/null ++++ b/support/support_readdir_check.c +@@ -0,0 +1,30 @@ ++/* Error-checking helper for xreaddir, xreaddir64. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++void * ++support_readdir_check (const char *name, void *result, int saved_errno) ++{ ++ if (result == NULL && errno != 0) ++ FAIL_EXIT1 ("%s: %m", name); ++ errno = saved_errno; ++ return result; ++} +diff --git a/support/support_readdir_r_check.c b/support/support_readdir_r_check.c +new file mode 100644 +index 0000000000..6bbb0d0b32 +--- /dev/null ++++ b/support/support_readdir_r_check.c +@@ -0,0 +1,35 @@ ++/* Error-checking helper for xreaddir_r, xreaddir64_r. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++int ++support_readdir_r_check (const char *name, int result, void *buf, void *ptr) ++{ ++ if (result != 0) ++ { ++ errno = result; ++ FAIL_EXIT1 ("%s: %m", name); ++ } ++ if (buf != ptr) ++ FAIL_EXIT1 ("%s: buffer pointer and returned pointer differ: %p != %p", ++ name, buf, ptr); ++ return result; ++} +diff --git a/support/tst-xdirent.c b/support/tst-xdirent.c +new file mode 100644 +index 0000000000..642483165a +--- /dev/null ++++ b/support/tst-xdirent.c +@@ -0,0 +1,76 @@ ++/* Compile test for error-checking wrappers for ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ { ++ DIR *d = xopendir ("."); ++ struct dirent *e = xreaddir (d); ++ /* Assume that the "." special entry always comes first. */ ++ TEST_COMPARE_STRING (e->d_name, "."); ++ while (xreaddir (d) != NULL) ++ ; ++ xclosedir (d); ++ } ++ ++ { ++ DIR *d = xopendir ("."); ++ struct dirent64 *e = xreaddir64 (d); ++ TEST_COMPARE_STRING (e->d_name, "."); ++ while (xreaddir64 (d) != NULL) ++ ; ++ xclosedir (d); ++ } ++ ++ /* The functions readdir_r, readdir64_r were deprecated in glibc 2.24. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations"); ++ ++ { ++ DIR *d = xopendir ("."); ++ struct dirent buf = { 0, }; ++ TEST_VERIFY (xreaddir_r (d, &buf)); ++ TEST_COMPARE_STRING (buf.d_name, "."); ++ while (xreaddir_r (d, &buf)) ++ ; ++ xclosedir (d); ++ } ++ ++ { ++ DIR *d = xopendir ("."); ++ struct dirent64 buf = { 0, }; ++ TEST_VERIFY (xreaddir64_r (d, &buf)); ++ TEST_COMPARE_STRING (buf.d_name, "."); ++ while (xreaddir64_r (d, &buf)) ++ ; ++ xclosedir (d); ++ } ++ ++ DIAG_POP_NEEDS_COMMENT; ++ ++ return 0; ++} ++ ++#include +diff --git a/support/xclosedir.c b/support/xclosedir.c +new file mode 100644 +index 0000000000..b490df5598 +--- /dev/null ++++ b/support/xclosedir.c +@@ -0,0 +1,28 @@ ++/* Error-checking wrapper for closedir. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++void ++xclosedir (DIR *dir) ++{ ++ if (closedir (dir) != 0) ++ FAIL_EXIT1 ("closedir: %m"); ++} +diff --git a/support/xdirent.h b/support/xdirent.h +new file mode 100644 +index 0000000000..8465d70ec1 +--- /dev/null ++++ b/support/xdirent.h +@@ -0,0 +1,86 @@ ++/* Error-checking wrappers for ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef SUPPORT_XDIRENT_H ++#define SUPPORT_XDIRENT_H ++ ++#include ++#include ++#include ++#include ++#include ++ ++__BEGIN_DECLS ++ ++DIR *xopendir (const char *path); ++DIR *xfdopendir (int fd); ++void xclosedir (DIR *); ++ ++void *support_readdir_check (const char *, void *, int); ++ ++static __attribute__ ((unused)) struct dirent * ++xreaddir (DIR *stream) ++{ ++ int saved_errno = errno; ++ errno = 0; ++ struct dirent *result = readdir (stream); ++ return support_readdir_check ("readdir", result, saved_errno); ++} ++ ++static __attribute__ ((unused)) struct dirent64 * ++xreaddir64 (DIR *stream) ++{ ++ int saved_errno = errno; ++ errno = 0; ++ struct dirent64 *result = readdir64 (stream); ++ return support_readdir_check ("readdir64", result, saved_errno); ++} ++ ++/* The functions readdir_r, readdir64_r were deprecated in glibc 2.24. */ ++DIAG_PUSH_NEEDS_COMMENT; ++DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations"); ++ ++int support_readdir_r_check (const char *, int, void *, void *); ++ ++static __attribute__ ((unused)) bool ++xreaddir_r (DIR *stream, struct dirent *buf) ++{ ++ struct dirent *ptr; ++ int ret = readdir_r (stream, buf, &ptr); ++ if (ret == 0 && ptr == NULL) ++ return false; ++ support_readdir_r_check ("readdir_r", ret, buf, ptr); ++ return true; ++} ++ ++static __attribute__ ((unused)) bool ++xreaddir64_r (DIR *stream, struct dirent64 *buf) ++{ ++ struct dirent64 *ptr; ++ int ret = readdir64_r (stream, buf, &ptr); ++ if (ret == 0 && ptr == NULL) ++ return false; ++ support_readdir_r_check ("readdir64_r", ret, buf, ptr); ++ return true; ++} ++ ++DIAG_POP_NEEDS_COMMENT; ++ ++__END_DECLS ++ ++#endif /* SUPPORT_XDIRENT_H */ +diff --git a/support/xfdopendir.c b/support/xfdopendir.c +new file mode 100644 +index 0000000000..d881d28c73 +--- /dev/null ++++ b/support/xfdopendir.c +@@ -0,0 +1,30 @@ ++/* Error-checking wrapper for fdopendir. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++DIR * ++xfdopendir (int fd) ++{ ++ DIR *result = fdopendir (fd); ++ if (result == NULL) ++ FAIL_EXIT1 ("fdopendir (%d): %m", fd); ++ return result; ++} +diff --git a/support/xopendir.c b/support/xopendir.c +new file mode 100644 +index 0000000000..e4aee07fee +--- /dev/null ++++ b/support/xopendir.c +@@ -0,0 +1,30 @@ ++/* Error-checking wrapper for opendir. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++DIR * ++xopendir (const char *path) ++{ ++ DIR *result = opendir (path); ++ if (result == NULL) ++ FAIL_EXIT1 ("opendir (\"%s\"): %m", path); ++ return result; ++} +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-50548-1.patch b/SOURCES/glibc-RHEL-50548-1.patch new file mode 100644 index 0000000..15099a5 --- /dev/null +++ b/SOURCES/glibc-RHEL-50548-1.patch @@ -0,0 +1,94 @@ +commit 424d97be50488beb6196c0ff0bc3dfeb87b4281c +Author: Florian Weimer +Date: Fri Aug 30 20:37:18 2024 +0200 + + io: Add error tests for fchmod + + On Linux most descriptors that do not correspond to file system + entities (such as anonymous pipes and sockets) have file permissions + that can be changed. While it is possible to create a custom file + system that returns (say) EINVAL for an fchmod attempt, testing this + does not appear to be useful. + + Reviewed-by: Carlos O'Donell + +Conflicts: + io/Makefile + (usual tests conflict) + +diff --git a/io/Makefile b/io/Makefile +index 5284a1282dd07e3d..30dd48b8acf9dcb9 100644 +--- a/io/Makefile ++++ b/io/Makefile +@@ -79,7 +79,8 @@ tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ + tst-futimens \ + tst-utimensat \ + tst-closefrom \ +- tst-ftw-bz28126 ++ tst-ftw-bz28126 \ ++ tst-fchmod-errors + + tests-time64 := \ + tst-fcntl-time64 \ +diff --git a/io/tst-fchmod-errors.c b/io/tst-fchmod-errors.c +new file mode 100644 +index 0000000000000000..ee15300fc3edf6f0 +--- /dev/null ++++ b/io/tst-fchmod-errors.c +@@ -0,0 +1,56 @@ ++/* Test various fchmod error cases. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ { ++ /* Permissions on /dev/null (the opened descriptor) cannot be changed. */ ++ int fd = xopen ("/dev/null", O_RDWR, 0); ++ errno = 0; ++ TEST_COMPARE (fchmod (fd, 0), -1); ++ TEST_COMPARE (errno, EPERM); ++ xclose (fd); ++ ++ /* Now testing an invalid file descriptor. */ ++ errno = 0; ++ TEST_COMPARE (fchmod (fd, 0600), -1); ++ TEST_COMPARE (errno, EBADF); ++ } ++ ++ errno = 0; ++ TEST_COMPARE (fchmod (-1, 0600), -1); ++ TEST_COMPARE (errno, EBADF); ++ ++ errno = 0; ++ TEST_COMPARE (fchmod (AT_FDCWD, 0600), -1); ++ TEST_COMPARE (errno, EBADF); ++ ++ /* Linux supports fchmod on pretty much all file descriptors, so ++ there is no check for failure on specific types of descriptors ++ here. */ ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-50548-2.patch b/SOURCES/glibc-RHEL-50548-2.patch new file mode 100644 index 0000000..3236001 --- /dev/null +++ b/SOURCES/glibc-RHEL-50548-2.patch @@ -0,0 +1,44 @@ +commit 3844cdc33093dbe1e33ddb831eada9bdb4a482b9 +Author: Florian Weimer +Date: Fri Aug 30 22:07:12 2024 +0200 + + io: Fix destructive nature of tst-fchmod-errors + + We must not change the permissions of /dev/null if running + as root. + + Reviewed-by: Carlos O'Donell + +diff --git a/io/tst-fchmod-errors.c b/io/tst-fchmod-errors.c +index ee15300fc3edf6f0..bf2a4c568e33aeaa 100644 +--- a/io/tst-fchmod-errors.c ++++ b/io/tst-fchmod-errors.c +@@ -18,8 +18,10 @@ + + #include + #include ++#include + #include + #include ++#include + + static int + do_test (void) +@@ -27,9 +29,14 @@ do_test (void) + { + /* Permissions on /dev/null (the opened descriptor) cannot be changed. */ + int fd = xopen ("/dev/null", O_RDWR, 0); +- errno = 0; +- TEST_COMPARE (fchmod (fd, 0), -1); +- TEST_COMPARE (errno, EPERM); ++ if (getuid () == 0) ++ puts ("info: /dev/null fchmod test skipped because of root privileges"); ++ else ++ { ++ errno = 0; ++ TEST_COMPARE (fchmod (fd, 0), -1); ++ TEST_COMPARE (errno, EPERM); ++ } + xclose (fd); + + /* Now testing an invalid file descriptor. */ diff --git a/SOURCES/glibc-RHEL-50548-3.patch b/SOURCES/glibc-RHEL-50548-3.patch new file mode 100644 index 0000000..e7d53f5 --- /dev/null +++ b/SOURCES/glibc-RHEL-50548-3.patch @@ -0,0 +1,149 @@ +commit 43669fcf7315f494bbbc2c040cedeb0fa8416a5f +Author: Florian Weimer +Date: Thu Aug 22 11:02:51 2024 +0200 + + io: Add FUSE-based test for fchmod + + Test all mode arguments, and that extra bits are ignored + as required by POSIX. + + Reviewed-by: DJ Delorie + +Conflicts: + io/Makefile + (usual tests conflict) + +diff --git a/io/Makefile b/io/Makefile +index 30dd48b8acf9dcb9..cc78a438a8898ae3 100644 +--- a/io/Makefile ++++ b/io/Makefile +@@ -80,7 +80,8 @@ tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ + tst-utimensat \ + tst-closefrom \ + tst-ftw-bz28126 \ +- tst-fchmod-errors ++ tst-fchmod-errors \ ++ tst-fchmod-fuse + + tests-time64 := \ + tst-fcntl-time64 \ +diff --git a/io/tst-fchmod-fuse.c b/io/tst-fchmod-fuse.c +new file mode 100644 +index 0000000000000000..fbd3309963491105 +--- /dev/null ++++ b/io/tst-fchmod-fuse.c +@@ -0,0 +1,114 @@ ++/* FUSE-based test for fchmod. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Set from do_test to indicate the expected incoming mode change request. */ ++static _Atomic int expected_mode; ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_LOOKUP: ++ { ++ char *name = support_fuse_cast (LOOKUP, inh); ++ TEST_COMPARE_STRING (name, "file"); ++ struct fuse_entry_out *out ++ = support_fuse_prepare_entry (f, 2); ++ out->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ } ++ break; ++ case FUSE_OPEN: ++ { ++ TEST_COMPARE (inh->nodeid, 2); ++ struct fuse_open_in *p = support_fuse_cast (OPEN, inh); ++ TEST_COMPARE (p->flags & O_ACCMODE, O_RDWR); ++ struct fuse_open_out out = { 0, }; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ break; ++ case FUSE_SETATTR: ++ { ++ TEST_COMPARE (inh->nodeid, 2); ++ struct fuse_setattr_in *p = support_fuse_cast (SETATTR, inh); ++ TEST_COMPARE (p->valid , FATTR_MODE); ++ TEST_COMPARE (p->mode, S_IFREG | expected_mode); ++ struct fuse_attr_out *out = support_fuse_prepare_attr (f); ++ out->attr.mode = S_IFREG | p->mode; ++ support_fuse_reply_prepared (f); ++ } ++ break; ++ case FUSE_FLUSH: ++ support_fuse_reply_empty (f); ++ break; ++ default: ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++/* Test all mode values with the specified extra bits. */ ++static void ++test_with_bits (int fd, unsigned int extra_bits) ++{ ++ for (int do_mode = 0; do_mode <= 07777; ++do_mode) ++ { ++ expected_mode = do_mode; ++ TEST_COMPARE (fchmod (fd, extra_bits | do_mode), 0); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ char *path = xasprintf ("%s/file", support_fuse_mountpoint (f)); ++ int fd = xopen (path, O_RDWR, 0600); ++ free (path); ++ ++ test_with_bits (fd, 0); ++ /* POSIX requires that the extra bits are ignored. */ ++ test_with_bits (fd, S_IFREG); ++ test_with_bits (fd, S_IFDIR); ++ test_with_bits (fd, ~07777); ++ ++ xclose (fd); ++ support_fuse_unmount (f); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-50550.patch b/SOURCES/glibc-RHEL-50550.patch new file mode 100644 index 0000000..b448e5a --- /dev/null +++ b/SOURCES/glibc-RHEL-50550.patch @@ -0,0 +1,89 @@ +commit 70d083630563831e7069ad412cd3ab0b33638e92 +Author: Florian Weimer +Date: Thu Dec 19 20:56:44 2024 +0100 + + Linux: Accept null arguments for utimensat pathname + + This matches kernel behavior. With this change, it is possible + to use utimensat as a replacement for the futimens interface, + similar to what glibc does internally. + + Reviewed-by: Paul Eggert + +diff --git a/io/sys/stat.h b/io/sys/stat.h +index f7874ec5baa60022..93cf8e02744f29a6 100644 +--- a/io/sys/stat.h ++++ b/io/sys/stat.h +@@ -433,13 +433,13 @@ extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) + extern int utimensat (int __fd, const char *__path, + const struct timespec __times[2], + int __flags) +- __THROW __nonnull ((2)); ++ __THROW; + # else + # ifdef __REDIRECT_NTH + extern int __REDIRECT_NTH (utimensat, (int fd, const char *__path, + const struct timespec __times[2], + int flags), +- __utimensat64) __nonnull ((2)); ++ __utimensat64); + # else + # define utimensat __utimensat64 + # endif +diff --git a/io/tst-utimensat.c b/io/tst-utimensat.c +index 425cc9c58b1d218c..17dfa2c96251493d 100644 +--- a/io/tst-utimensat.c ++++ b/io/tst-utimensat.c +@@ -39,6 +39,38 @@ test_utimesat_helper (const char *testfile, int fd, const char *testlink, + TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec); + } + ++ /* Alter the timestamp using a NULL path. */ ++ { ++ struct timespec ts1[2] = {ts[0], ts[1]}; ++ ts1[0].tv_sec ^= 1; ++ ts1[1].tv_sec ^= 1; ++ ++ TEST_VERIFY_EXIT (utimensat (fd, NULL, ts1, 0) == 0); ++ ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); ++ ++ /* Check if seconds for atime match */ ++ TEST_COMPARE (st.stx_atime.tv_sec, ts[0].tv_sec ^ 1); ++ ++ /* Check if seconds for mtime match */ ++ TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec ^ 1); ++ } ++ ++ /* And switch it back using a NULL path. */ ++ { ++ TEST_VERIFY_EXIT (utimensat (fd, NULL, ts, 0) == 0); ++ ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); ++ ++ /* Check if seconds for atime match */ ++ TEST_COMPARE (st.stx_atime.tv_sec, ts[0].tv_sec); ++ ++ /* Check if seconds for mtime match */ ++ TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec); ++ } ++ + { + struct statx stfile_orig; + xstatx (AT_FDCWD, testfile, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, +diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c +index e9061d23239212ad..c173c73ac0699529 100644 +--- a/sysdeps/unix/sysv/linux/utimensat.c ++++ b/sysdeps/unix/sysv/linux/utimensat.c +@@ -75,9 +75,6 @@ int + __utimensat64 (int fd, const char *file, const struct __timespec64 tsp64[2], + int flags) + { +- if (file == NULL) +- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); +- + return __utimensat64_helper (fd, file, &tsp64[0], flags); + } + diff --git a/SOURCES/glibc-RHEL-50662-1.patch b/SOURCES/glibc-RHEL-50662-1.patch new file mode 100644 index 0000000..3e429ae --- /dev/null +++ b/SOURCES/glibc-RHEL-50662-1.patch @@ -0,0 +1,58 @@ +commit 868ab8923a2ec977faafec97ecafac0c3159c1b2 +Author: Florian Weimer +Date: Thu Jun 13 18:56:30 2024 +0200 + + resolv: Track single-request fallback via _res._flags (bug 31476) + + This avoids changing _res.options, which inteferes with change + detection as part of automatic reloading of /etc/resolv.conf. + + Reviewed-by: DJ Delorie + +diff -Nrup a/resolv/res_send.c b/resolv/res_send.c +--- a/resolv/res_send.c 2024-10-20 19:06:22.807194569 -0400 ++++ b/resolv/res_send.c 2024-10-20 19:05:56.917074062 -0400 +@@ -947,9 +947,11 @@ send_dg(res_state statp, + seconds /= statp->nscount; + if (seconds <= 0) + seconds = 1; +- bool single_request_reopen = (statp->options & RES_SNGLKUPREOP) != 0; +- bool single_request = (((statp->options & RES_SNGLKUP) != 0) +- | single_request_reopen); ++ bool single_request_reopen = ((statp->options & RES_SNGLKUPREOP) ++ || (statp->_flags & RES_F_SNGLKUPREOP)); ++ bool single_request = ((statp->options & RES_SNGLKUP) ++ || (statp->_flags & RES_F_SNGLKUP) ++ || single_request_reopen); + int save_gotsomewhere = *gotsomewhere; + + int retval; +@@ -1006,14 +1008,14 @@ send_dg(res_state statp, + have received the first answer. */ + if (!single_request) + { +- statp->options |= RES_SNGLKUP; ++ statp->_flags |= RES_F_SNGLKUP; + single_request = true; + *gotsomewhere = save_gotsomewhere; + goto retry; + } + else if (!single_request_reopen) + { +- statp->options |= RES_SNGLKUPREOP; ++ statp->_flags |= RES_F_SNGLKUPREOP; + single_request_reopen = true; + *gotsomewhere = save_gotsomewhere; + __res_iclose (statp, false); +diff -Nrup a/resolv/resolv-internal.h b/resolv/resolv-internal.h +--- a/resolv/resolv-internal.h 2024-10-20 19:06:22.807194569 -0400 ++++ b/resolv/resolv-internal.h 2024-10-20 19:07:31.700515224 -0400 +@@ -26,6 +26,8 @@ + #define RES_F_VC 0x00000001 /* Socket is TCP. */ + #define RES_F_CONN 0x00000002 /* Socket is connected. */ + #define RES_F_EDNS0ERR 0x00000004 /* EDNS0 caused errors. */ ++#define RES_F_SNGLKUP 0x00200000 /* Private version of RES_SNGLKUP. */ ++#define RES_F_SNGLKUPREOP 0x00400000 /* Private version of RES_SNGLKUPREOP. */ + + /* Legacy function. This needs to be removed once all NSS modules + have been adjusted. */ diff --git a/SOURCES/glibc-RHEL-50662-2.patch b/SOURCES/glibc-RHEL-50662-2.patch new file mode 100644 index 0000000..2f35180 --- /dev/null +++ b/SOURCES/glibc-RHEL-50662-2.patch @@ -0,0 +1,200 @@ +commit 691a3b2e9bfaba842e46a5ccb7f5e6ea144c3ade +Author: Florian Weimer +Date: Wed Jul 24 12:06:47 2024 +0200 + + resolv: Allow short error responses to match any query (bug 31890) + + Reviewed-by: DJ Delorie + +diff --git a/resolv/Makefile b/resolv/Makefile +index 5f44f5896b..d927e337d9 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -106,6 +106,7 @@ tests += \ + tst-resolv-nondecimal \ + tst-resolv-res_init-multi \ + tst-resolv-search \ ++ tst-resolv-short-response \ + tst-resolv-trailing \ + + # This test calls __res_context_send directly, which is not exported +@@ -299,6 +300,8 @@ $(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library) ++$(objpfx)tst-resolv-short-response: $(objpfx)libresolv.so \ ++ $(shared-thread-library) + $(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-threads: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-txnid-collision: $(objpfx)libresolv.a \ +diff --git a/resolv/res_send.c b/resolv/res_send.c +index ea7cf192b2..572e72c32f 100644 +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -1199,19 +1199,30 @@ send_dg(res_state statp, + } + + /* Check for the correct header layout and a matching +- question. */ ++ question. Some recursive resolvers send REFUSED ++ without copying back the question section ++ (producing a response that is only HFIXEDSZ bytes ++ long). Skip query matching in this case. */ ++ bool thisansp_error = (anhp->rcode == SERVFAIL || ++ anhp->rcode == NOTIMP || ++ anhp->rcode == REFUSED); ++ bool skip_query_match = (*thisresplenp == HFIXEDSZ ++ && ntohs (anhp->qdcount) == 0 ++ && thisansp_error); + int matching_query = 0; /* Default to no matching query. */ + if (!recvresp1 + && anhp->id == hp->id +- && __libc_res_queriesmatch (buf, buf + buflen, +- *thisansp, +- *thisansp + *thisanssizp)) ++ && (skip_query_match ++ || __libc_res_queriesmatch (buf, buf + buflen, ++ *thisansp, ++ *thisansp + *thisanssizp))) + matching_query = 1; + if (!recvresp2 + && anhp->id == hp2->id +- && __libc_res_queriesmatch (buf2, buf2 + buflen2, +- *thisansp, +- *thisansp + *thisanssizp)) ++ && (skip_query_match ++ || __libc_res_queriesmatch (buf2, buf2 + buflen2, ++ *thisansp, ++ *thisansp + *thisanssizp))) + matching_query = 2; + if (matching_query == 0) + /* Spurious UDP packet. Drop it and continue +@@ -1221,9 +1232,7 @@ send_dg(res_state statp, + goto wait; + } + +- if (anhp->rcode == SERVFAIL || +- anhp->rcode == NOTIMP || +- anhp->rcode == REFUSED) { ++ if (thisansp_error) { + next_ns: + if (recvresp1 || (buf2 != NULL && recvresp2)) { + *resplen2 = 0; +diff --git a/resolv/tst-resolv-short-response.c b/resolv/tst-resolv-short-response.c +new file mode 100644 +index 0000000000..cf1e39876f +--- /dev/null ++++ b/resolv/tst-resolv-short-response.c +@@ -0,0 +1,112 @@ ++/* Test for spurious timeouts with short 12-byte responses (bug 31890). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* The rcode in the initial response. */ ++static volatile int rcode; ++ ++static void ++response (const struct resolv_response_context *ctx, ++ struct resolv_response_builder *b, ++ const char *qname, uint16_t qclass, uint16_t qtype) ++{ ++ switch (ctx->server_index) ++ { ++ case 0: ++ /* First server times out. */ ++ struct resolv_response_flags flags = {.rcode = rcode}; ++ resolv_response_init (b, flags); ++ break; ++ case 1: ++ /* Second server sends reply. */ ++ resolv_response_init (b, (struct resolv_response_flags) {}); ++ resolv_response_add_question (b, qname, qclass, qtype); ++ resolv_response_section (b, ns_s_an); ++ resolv_response_open_record (b, qname, qclass, qtype, 0); ++ switch (qtype) ++ { ++ case T_A: ++ { ++ char ipv4[4] = {192, 0, 2, 17}; ++ resolv_response_add_data (b, &ipv4, sizeof (ipv4)); ++ } ++ break; ++ case T_AAAA: ++ { ++ char ipv6[16] ++ = {0x20, 0x01, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; ++ resolv_response_add_data (b, &ipv6, sizeof (ipv6)); ++ } ++ break; ++ default: ++ FAIL_EXIT1 ("unexpected TYPE%d query", qtype); ++ } ++ resolv_response_close_record (b); ++ break; ++ default: ++ FAIL_EXIT1 ("unexpected query to server %d", ctx->server_index); ++ } ++} ++ ++static void ++check_one (void) ++{ ++ ++ /* The buggy 1-second query timeout results in 30 seconds of delay, ++ which triggers a test timeout failure. */ ++ for (int i = 0; i < 10; ++i) ++ { ++ check_hostent ("www.example", gethostbyname ("www.example"), ++ "name: www.example\n" ++ "address: 192.0.2.17\n"); ++ check_hostent ("www.example", gethostbyname2 ("www.example", AF_INET6), ++ "name: www.example\n" ++ "address: 2001:db8::1\n"); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ struct resolv_test *aux = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response, ++ }); ++ ++ _res.options |= RES_SNGLKUP; ++ ++ rcode = 2; /* SERVFAIL. */ ++ check_one (); ++ ++ rcode = 4; /* NOTIMP. */ ++ check_one (); ++ ++ rcode = 5; /* REFUSED. */ ++ check_one (); ++ ++ resolv_test_end (aux); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-50662-3.patch b/SOURCES/glibc-RHEL-50662-3.patch new file mode 100644 index 0000000..6524bce --- /dev/null +++ b/SOURCES/glibc-RHEL-50662-3.patch @@ -0,0 +1,208 @@ +commit af625987d619388a100b153520d3ee308bda9889 +Author: Florian Weimer +Date: Wed Jul 24 12:06:47 2024 +0200 + + resolv: Do not wait for non-existing second DNS response after error (bug 30081) + + In single-request mode, there is no second response after an error + because the second query has not been sent yet. Waiting for it + introduces an unnecessary timeout. + + Reviewed-by: DJ Delorie + +diff --git a/resolv/Makefile b/resolv/Makefile +index d927e337d9..abff7fc007 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -106,6 +106,7 @@ tests += \ + tst-resolv-nondecimal \ + tst-resolv-res_init-multi \ + tst-resolv-search \ ++ tst-resolv-semi-failure \ + tst-resolv-short-response \ + tst-resolv-trailing \ + +@@ -300,6 +301,8 @@ $(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library) ++$(objpfx)tst-resolv-semi-failure: $(objpfx)libresolv.so \ ++ $(shared-thread-library) + $(objpfx)tst-resolv-short-response: $(objpfx)libresolv.so \ + $(shared-thread-library) + $(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library) +diff --git a/resolv/res_send.c b/resolv/res_send.c +index 572e72c32f..9c77613f37 100644 +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -1238,7 +1238,7 @@ send_dg(res_state statp, + *resplen2 = 0; + return resplen; + } +- if (buf2 != NULL) ++ if (buf2 != NULL && !single_request) + { + /* No data from the first reply. */ + resplen = 0; +diff --git a/resolv/tst-resolv-semi-failure.c b/resolv/tst-resolv-semi-failure.c +new file mode 100644 +index 0000000000..aa9798b5a7 +--- /dev/null ++++ b/resolv/tst-resolv-semi-failure.c +@@ -0,0 +1,133 @@ ++/* Test parallel failure/success responses (bug 30081). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* The rcode in the initial response. */ ++static volatile int rcode; ++ ++/* Whether to fail the initial A query (!fail_aaaa) or the initial ++ AAAA query (fail_aaaa). */ ++static volatile bool fail_aaaa; ++ ++static void ++response (const struct resolv_response_context *ctx, ++ struct resolv_response_builder *b, ++ const char *qname, uint16_t qclass, uint16_t qtype) ++{ ++ /* Handle the failing query. */ ++ if ((fail_aaaa && qtype == T_AAAA) && ctx->server_index == 0) ++ { ++ struct resolv_response_flags flags = {.rcode = rcode}; ++ resolv_response_init (b, flags); ++ return; ++ } ++ ++ /* Otherwise produce a response. */ ++ resolv_response_init (b, (struct resolv_response_flags) {}); ++ resolv_response_add_question (b, qname, qclass, qtype); ++ resolv_response_section (b, ns_s_an); ++ resolv_response_open_record (b, qname, qclass, qtype, 0); ++ switch (qtype) ++ { ++ case T_A: ++ { ++ char ipv4[4] = {192, 0, 2, 17}; ++ resolv_response_add_data (b, &ipv4, sizeof (ipv4)); ++ } ++ break; ++ case T_AAAA: ++ { ++ char ipv6[16] ++ = {0x20, 0x01, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; ++ resolv_response_add_data (b, &ipv6, sizeof (ipv6)); ++ } ++ break; ++ default: ++ FAIL_EXIT1 ("unexpected TYPE%d query", qtype); ++ } ++ resolv_response_close_record (b); ++} ++ ++static void ++check_one (void) ++{ ++ ++ /* The buggy 1-second query timeout results in 30 seconds of delay, ++ which triggers are test timeout failure. */ ++ for (int i = 0; i < 30; ++i) ++ { ++ static const struct addrinfo hints = ++ { ++ .ai_family = AF_UNSPEC, ++ .ai_socktype = SOCK_STREAM, ++ }; ++ struct addrinfo *ai; ++ int ret = getaddrinfo ("www.example", "80", &hints, &ai); ++ const char *expected; ++ if (ret == 0 && ai->ai_next != NULL) ++ expected = ("address: STREAM/TCP 192.0.2.17 80\n" ++ "address: STREAM/TCP 2001:db8::1 80\n"); ++ else ++ /* Only one response because the AAAA lookup failure is ++ treated as an ignoreable error. */ ++ expected = "address: STREAM/TCP 192.0.2.17 80\n"; ++ check_addrinfo ("www.example", ai, ret, expected); ++ if (ret == 0) ++ freeaddrinfo (ai); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ for (int do_single_lookup = 0; do_single_lookup < 2; ++do_single_lookup) ++ { ++ struct resolv_test *aux = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response, ++ }); ++ ++ if (do_single_lookup) ++ _res.options |= RES_SNGLKUP; ++ ++ for (int do_fail_aaaa = 0; do_fail_aaaa < 2; ++do_fail_aaaa) ++ { ++ fail_aaaa = do_fail_aaaa; ++ ++ rcode = 2; /* SERVFAIL. */ ++ check_one (); ++ ++ rcode = 4; /* NOTIMP. */ ++ check_one (); ++ ++ rcode = 5; /* REFUSED. */ ++ check_one (); ++ } ++ ++ resolv_test_end (aux); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/resolv/tst-resolv-short-response.c b/resolv/tst-resolv-short-response.c +index cf1e39876f..be354ae1c7 100644 +--- a/resolv/tst-resolv-short-response.c ++++ b/resolv/tst-resolv-short-response.c +@@ -81,6 +81,18 @@ check_one (void) + check_hostent ("www.example", gethostbyname2 ("www.example", AF_INET6), + "name: www.example\n" + "address: 2001:db8::1\n"); ++ static const struct addrinfo hints = ++ { ++ .ai_family = AF_UNSPEC, ++ .ai_socktype = SOCK_STREAM, ++ }; ++ struct addrinfo *ai; ++ int ret = getaddrinfo ("www.example", "80", &hints, &ai); ++ check_addrinfo ("www.example", ai, ret, ++ "address: STREAM/TCP 192.0.2.17 80\n" ++ "address: STREAM/TCP 2001:db8::1 80\n"); ++ if (ret == 0) ++ freeaddrinfo (ai); + } + } + diff --git a/SOURCES/glibc-RHEL-50662-4.patch b/SOURCES/glibc-RHEL-50662-4.patch new file mode 100644 index 0000000..db465d8 --- /dev/null +++ b/SOURCES/glibc-RHEL-50662-4.patch @@ -0,0 +1,83 @@ +commit 95f61610f3e481d191b6184432342236fd59186d +Author: Florian Weimer +Date: Wed Jul 24 12:06:47 2024 +0200 + + resolv: Support clearing option flags with a “-” prefix (bug 14799) + + I think using a “-” prefix is less confusing than introducing + double-negation construct (“no-no-tld-query”). + + Reviewed-by: DJ Delorie + +Conflicts: + NEWS + (Dropped) + +diff --git a/resolv/res_init.c b/resolv/res_init.c +index 263263d474..243532b3ad 100644 +--- a/resolv/res_init.c ++++ b/resolv/res_init.c +@@ -682,27 +682,29 @@ res_setoptions (struct resolv_conf_parser *parser, const char *options) + { + char str[22]; + uint8_t len; +- uint8_t clear; + unsigned long int flag; + } options[] = { + #define STRnLEN(str) str, sizeof (str) - 1 +- { STRnLEN ("rotate"), 0, RES_ROTATE }, +- { STRnLEN ("edns0"), 0, RES_USE_EDNS0 }, +- { STRnLEN ("single-request-reopen"), 0, RES_SNGLKUPREOP }, +- { STRnLEN ("single-request"), 0, RES_SNGLKUP }, +- { STRnLEN ("no_tld_query"), 0, RES_NOTLDQUERY }, +- { STRnLEN ("no-tld-query"), 0, RES_NOTLDQUERY }, +- { STRnLEN ("no-reload"), 0, RES_NORELOAD }, +- { STRnLEN ("use-vc"), 0, RES_USEVC }, +- { STRnLEN ("trust-ad"), 0, RES_TRUSTAD }, +- { STRnLEN ("no-aaaa"), 0, RES_NOAAAA }, ++ { STRnLEN ("rotate"), RES_ROTATE }, ++ { STRnLEN ("edns0"), RES_USE_EDNS0 }, ++ { STRnLEN ("single-request-reopen"), RES_SNGLKUPREOP }, ++ { STRnLEN ("single-request"), RES_SNGLKUP }, ++ { STRnLEN ("no_tld_query"), RES_NOTLDQUERY }, ++ { STRnLEN ("no-tld-query"), RES_NOTLDQUERY }, ++ { STRnLEN ("no-reload"), RES_NORELOAD }, ++ { STRnLEN ("use-vc"), RES_USEVC }, ++ { STRnLEN ("trust-ad"), RES_TRUSTAD }, ++ { STRnLEN ("no-aaaa"), RES_NOAAAA }, + }; + #define noptions (sizeof (options) / sizeof (options[0])) ++ bool negate_option = *cp == '-'; ++ if (negate_option) ++ ++cp; + for (int i = 0; i < noptions; ++i) + if (strncmp (cp, options[i].str, options[i].len) == 0) + { +- if (options[i].clear) +- parser->template.options &= options[i].flag; ++ if (negate_option) ++ parser->template.options &= ~options[i].flag; + else + parser->template.options |= options[i].flag; + break; +diff --git a/resolv/tst-resolv-res_init-skeleton.c b/resolv/tst-resolv-res_init-skeleton.c +index 6bef62cde2..d3a19eb305 100644 +--- a/resolv/tst-resolv-res_init-skeleton.c ++++ b/resolv/tst-resolv-res_init-skeleton.c +@@ -679,6 +679,16 @@ struct test_case test_cases[] = + "; nameserver[0]: [192.0.2.1]:53\n", + .res_options = "attempts:5 ndots:3 edns0 ", + }, ++ {.name = "RES_OPTIONS can clear flags", ++ .conf = "options ndots:2 use-vc no-aaaa edns0\n" ++ "nameserver 192.0.2.1\n", ++ .expected = "options ndots:3 use-vc\n" ++ "search example.com\n" ++ "; search[0]: example.com\n" ++ "nameserver 192.0.2.1\n" ++ "; nameserver[0]: [192.0.2.1]:53\n", ++ .res_options = "ndots:3 -edns0 -no-aaaa", ++ }, + {.name = "many search list entries (bug 19569)", + .conf = "nameserver 192.0.2.1\n" + "search corp.example.com support.example.com" diff --git a/SOURCES/glibc-RHEL-50662-5.patch b/SOURCES/glibc-RHEL-50662-5.patch new file mode 100644 index 0000000..c3722c2 --- /dev/null +++ b/SOURCES/glibc-RHEL-50662-5.patch @@ -0,0 +1,208 @@ +commit 765325951ac5c7d072278c9424930b29657e9758 +Author: Florian Weimer +Date: Wed Jul 24 12:06:47 2024 +0200 + + resolv: Implement strict-error stub resolver option (bug 27929) + + For now, do not enable this mode by default due to the potential + impact on compatibility with existing deployments. + + Reviewed-by: DJ Delorie + +Conflicts: + NEWS + (Dropped) + +diff --git a/resolv/res_init.c b/resolv/res_init.c +index 243532b3ad..b838dc7064 100644 +--- a/resolv/res_init.c ++++ b/resolv/res_init.c +@@ -695,6 +695,7 @@ res_setoptions (struct resolv_conf_parser *parser, const char *options) + { STRnLEN ("use-vc"), RES_USEVC }, + { STRnLEN ("trust-ad"), RES_TRUSTAD }, + { STRnLEN ("no-aaaa"), RES_NOAAAA }, ++ { STRnLEN ("strict-error"), RES_STRICTERR }, + }; + #define noptions (sizeof (options) / sizeof (options[0])) + bool negate_option = *cp == '-'; +diff --git a/resolv/res_send.c b/resolv/res_send.c +index 9c77613f37..9a284ed44a 100644 +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -1234,21 +1234,38 @@ send_dg(res_state statp, + + if (thisansp_error) { + next_ns: +- if (recvresp1 || (buf2 != NULL && recvresp2)) { +- *resplen2 = 0; +- return resplen; +- } +- if (buf2 != NULL && !single_request) ++ /* Outside of strict-error mode, use the first ++ response even if the second response is an ++ error. This allows parallel resolution to ++ succeed even if the recursive resolver ++ always answers with SERVFAIL for AAAA ++ queries (which still happens in practice ++ unfortunately). ++ ++ In strict-error mode, always switch to the ++ next server and try to get a response from ++ there. */ ++ if ((statp->options & RES_STRICTERR) == 0) + { +- /* No data from the first reply. */ +- resplen = 0; +- /* We are waiting for a possible second reply. */ +- if (matching_query == 1) +- recvresp1 = 1; +- else +- recvresp2 = 1; +- +- goto wait; ++ if (recvresp1 || (buf2 != NULL && recvresp2)) ++ { ++ *resplen2 = 0; ++ return resplen; ++ } ++ ++ if (buf2 != NULL && !single_request) ++ { ++ /* No data from the first reply. */ ++ resplen = 0; ++ /* We are waiting for a possible ++ second reply. */ ++ if (matching_query == 1) ++ recvresp1 = 1; ++ else ++ recvresp2 = 1; ++ ++ goto wait; ++ } + } + + /* don't retry if called from dig */ +diff --git a/resolv/resolv.h b/resolv/resolv.h +index f40d6c58ce..b8a0f66a5f 100644 +--- a/resolv/resolv.h ++++ b/resolv/resolv.h +@@ -133,6 +133,7 @@ struct res_sym { + #define RES_NORELOAD 0x02000000 /* No automatic configuration reload. */ + #define RES_TRUSTAD 0x04000000 /* Request AD bit, keep it in responses. */ + #define RES_NOAAAA 0x08000000 /* Suppress AAAA queries. */ ++#define RES_STRICTERR 0x10000000 /* Report more DNS errors as errors. */ + + #define RES_DEFAULT (RES_RECURSE|RES_DEFNAMES|RES_DNSRCH) + +diff --git a/resolv/tst-resolv-res_init-skeleton.c b/resolv/tst-resolv-res_init-skeleton.c +index d3a19eb305..e41bcebd9d 100644 +--- a/resolv/tst-resolv-res_init-skeleton.c ++++ b/resolv/tst-resolv-res_init-skeleton.c +@@ -129,6 +129,7 @@ print_resp (FILE *fp, res_state resp) + print_option_flag (fp, &options, RES_NORELOAD, "no-reload"); + print_option_flag (fp, &options, RES_TRUSTAD, "trust-ad"); + print_option_flag (fp, &options, RES_NOAAAA, "no-aaaa"); ++ print_option_flag (fp, &options, RES_STRICTERR, "strict-error"); + fputc ('\n', fp); + if (options != 0) + fprintf (fp, "; error: unresolved option bits: 0x%x\n", options); +@@ -741,6 +742,15 @@ struct test_case test_cases[] = + "nameserver 192.0.2.1\n" + "; nameserver[0]: [192.0.2.1]:53\n" + }, ++ {.name = "strict-error flag", ++ .conf = "options strict-error\n" ++ "nameserver 192.0.2.1\n", ++ .expected = "options strict-error\n" ++ "search example.com\n" ++ "; search[0]: example.com\n" ++ "nameserver 192.0.2.1\n" ++ "; nameserver[0]: [192.0.2.1]:53\n" ++ }, + { NULL } + }; + +diff --git a/resolv/tst-resolv-semi-failure.c b/resolv/tst-resolv-semi-failure.c +index aa9798b5a7..b7681210f4 100644 +--- a/resolv/tst-resolv-semi-failure.c ++++ b/resolv/tst-resolv-semi-failure.c +@@ -67,6 +67,9 @@ response (const struct resolv_response_context *ctx, + resolv_response_close_record (b); + } + ++/* Set to 1 if strict error checking is enabled. */ ++static int do_strict_error; ++ + static void + check_one (void) + { +@@ -83,7 +86,10 @@ check_one (void) + struct addrinfo *ai; + int ret = getaddrinfo ("www.example", "80", &hints, &ai); + const char *expected; +- if (ret == 0 && ai->ai_next != NULL) ++ /* In strict-error mode, a switch to the second name server ++ happens, and both responses are received, so a single ++ response is a bug. */ ++ if (do_strict_error || (ret == 0 && ai->ai_next != NULL)) + expected = ("address: STREAM/TCP 192.0.2.17 80\n" + "address: STREAM/TCP 2001:db8::1 80\n"); + else +@@ -99,33 +105,36 @@ check_one (void) + static int + do_test (void) + { +- for (int do_single_lookup = 0; do_single_lookup < 2; ++do_single_lookup) +- { +- struct resolv_test *aux = resolv_test_start +- ((struct resolv_redirect_config) +- { +- .response_callback = response, +- }); ++ for (do_strict_error = 0; do_strict_error < 2; ++do_strict_error) ++ for (int do_single_lookup = 0; do_single_lookup < 2; ++do_single_lookup) ++ { ++ struct resolv_test *aux = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response, ++ }); + +- if (do_single_lookup) +- _res.options |= RES_SNGLKUP; ++ if (do_strict_error) ++ _res.options |= RES_STRICTERR; ++ if (do_single_lookup) ++ _res.options |= RES_SNGLKUP; + +- for (int do_fail_aaaa = 0; do_fail_aaaa < 2; ++do_fail_aaaa) +- { +- fail_aaaa = do_fail_aaaa; ++ for (int do_fail_aaaa = 0; do_fail_aaaa < 2; ++do_fail_aaaa) ++ { ++ fail_aaaa = do_fail_aaaa; + +- rcode = 2; /* SERVFAIL. */ +- check_one (); ++ rcode = 2; /* SERVFAIL. */ ++ check_one (); + +- rcode = 4; /* NOTIMP. */ +- check_one (); ++ rcode = 4; /* NOTIMP. */ ++ check_one (); + +- rcode = 5; /* REFUSED. */ +- check_one (); +- } ++ rcode = 5; /* REFUSED. */ ++ check_one (); ++ } + +- resolv_test_end (aux); +- } ++ resolv_test_end (aux); ++ } + + return 0; + } diff --git a/SOURCES/glibc-RHEL-50662-6.patch b/SOURCES/glibc-RHEL-50662-6.patch new file mode 100644 index 0000000..d14093c --- /dev/null +++ b/SOURCES/glibc-RHEL-50662-6.patch @@ -0,0 +1,28 @@ +commit ec119972cb2598c04ec7d4219e20506006836f64 +Author: Florian Weimer +Date: Thu Aug 1 10:46:10 2024 +0200 + + resolv: Fix tst-resolv-short-response for older GCC (bug 32042) + + Previous GCC versions do not support the C23 change that + allows labels on declarations. + + Reviewed-by: Adhemerval Zanella + +diff --git a/resolv/tst-resolv-short-response.c b/resolv/tst-resolv-short-response.c +index be354ae1c7..9b06b0c176 100644 +--- a/resolv/tst-resolv-short-response.c ++++ b/resolv/tst-resolv-short-response.c +@@ -33,8 +33,10 @@ response (const struct resolv_response_context *ctx, + { + case 0: + /* First server times out. */ +- struct resolv_response_flags flags = {.rcode = rcode}; +- resolv_response_init (b, flags); ++ { ++ struct resolv_response_flags flags = {.rcode = rcode}; ++ resolv_response_init (b, flags); ++ } + break; + case 1: + /* Second server sends reply. */ diff --git a/SOURCES/glibc-RHEL-54250.patch b/SOURCES/glibc-RHEL-54250.patch new file mode 100644 index 0000000..712376c --- /dev/null +++ b/SOURCES/glibc-RHEL-54250.patch @@ -0,0 +1,60 @@ +commit 3f54e459a633b4247be91b9d0f68a7e08720b8d8 +Author: Frédéric Bérat +Date: Tue Aug 13 12:01:26 2024 +0200 + + libio/tst-getdelim: Add new test covering NUL as a delimiter + + Add a new test to getdelim to verify that '\0' can be set as a + delimiter. + + Reviewed-by: Florian Weimer + +diff --git a/libio/tst-getdelim.c b/libio/tst-getdelim.c +index 44437326691228be..15e2d873a50df782 100644 +--- a/libio/tst-getdelim.c ++++ b/libio/tst-getdelim.c +@@ -1,4 +1,6 @@ +-/* Check that getdelim sets error indicator on error (BZ #29917) ++/* Test getdelim conforming to POSIX specifications. ++ ++ Note: Most getdelim use cases are covered by stdio-common/tst-getline. + + Copyright (C) 2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. +@@ -18,18 +20,36 @@ + . */ + + #include ++#include + #include + + #include ++#include ++#include + + static int + do_test (void) + { ++ /* Check that getdelim sets error indicator on error (BZ #29917) */ + clearerr (stdin); + TEST_VERIFY (getdelim (0, 0, '\n', stdin) == -1); + TEST_VERIFY (ferror (stdin) != 0); + TEST_VERIFY (errno == EINVAL); + ++ /* Test getdelim with NUL as delimiter */ ++ verbose_printf ("Testing NUL delimiter\n"); ++ char *lineptr = NULL; ++ size_t linelen = 0; ++ char membuf[] = "abc\0d\nef\0"; ++ FILE *memstream = fmemopen (membuf, sizeof (membuf), "r"); ++ TEST_VERIFY_EXIT (memstream != NULL); ++ TEST_VERIFY (getdelim (&lineptr, &linelen, '\0', memstream) != -1); ++ TEST_COMPARE_BLOB (lineptr, 4, "abc\0", 4); ++ TEST_VERIFY (getdelim (&lineptr, &linelen, '\0', memstream) != -1); ++ TEST_COMPARE_BLOB (lineptr, 5, "d\nef\0", 5); ++ fclose (memstream); ++ free (lineptr); ++ + return 0; + } + diff --git a/SOURCES/glibc-RHEL-54413.patch b/SOURCES/glibc-RHEL-54413.patch new file mode 100644 index 0000000..17188df --- /dev/null +++ b/SOURCES/glibc-RHEL-54413.patch @@ -0,0 +1,630 @@ +commit 7f04bb4e49413bd57ac3215f3480b09ae7131968 +Author: Joseph Myers +Date: Wed Aug 21 19:58:14 2024 +0000 + + Add more tests of getline + + There is very little test coverage for getline (only a minimal + stdio-common/tstgetln.c which doesn't verify anything about the + results of the getline calls). Add some more thorough tests + (generally using fopencookie for convenience in testing various cases + for what the input and possible errors / EOF in the file read might + look like). + + Note the following regarding testing of error cases: + + * Nothing is said in the specifications about what if anything might + be written into the buffer, and whether it might be reallocated, in + error cases. The expectation of the tests (required to avoid memory + leaks on error) is that at least on error cases, the invariant that + lineptr points to at least n bytes is maintained. + + * The optional EOVERFLOW error case specified in POSIX, "The number of + bytes to be written into the buffer, including the delimiter + character (if encountered), would exceed {SSIZE_MAX}.", doesn't seem + practically testable, as any case reading so many characters (half + the address space) would also be liable to run into allocation + failure along (ENOMEM) the way. + + * If a read error occurs part way through reading an input line, it + seems unclear whether a partial line should be returned by getline + (avoid input getting lost), which is what glibc does at least in the + fopencookie case used in this test, or whether getline should return + -1 (error) (so avoiding the program misbehaving by processing a + truncated line as if it were complete). (There was a short, + inconclusive discussion about this on the Austin Group list on 9-10 + November 2014.) + + * The POSIX specification of getline inherits errors from fgetc. I + didn't try to cover fgetc errors systematically, just one example of + such an error. + + Tested for x86_64 and x86. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index bc314af0617e1647..ea8598bbe3a6dfdd 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -177,6 +177,8 @@ tests := \ + tst-fread \ + tst-fseek \ + tst-fwrite \ ++ tst-getline \ ++ tst-getline-enomem \ + tst-gets \ + tst-grouping \ + tst-long-dbl-fphex \ +@@ -244,6 +246,8 @@ tests-special += \ + ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ ++ $(objpfx)tst-getline-enomem-mem.out \ ++ $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ + $(objpfx)tst-printf-bz25691-mem.out \ + $(objpfx)tst-printf-fp-free-mem.out \ +@@ -252,6 +256,10 @@ tests-special += \ + # tests-special + + generated += \ ++ tst-getline-enomem-mem.out \ ++ tst-getline-enomem.mtrace \ ++ tst-getline-mem.out \ ++ tst-getline.mtrace \ + tst-printf-bz18872-mem.out \ + tst-printf-bz18872.c \ + tst-printf-bz18872.mtrace \ +@@ -314,6 +322,12 @@ tst-scanf-bz27650-ENV = \ + tst-ungetc-leak-ENV = \ + MALLOC_TRACE=$(objpfx)tst-ungetc-leak.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-getline-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-getline.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-getline-enomem-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-getline-enomem.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-getline-enomem.c b/stdio-common/tst-getline-enomem.c +new file mode 100644 +index 0000000000000000..7fc70ea9b51d1262 +--- /dev/null ++++ b/stdio-common/tst-getline-enomem.c +@@ -0,0 +1,78 @@ ++/* Test getline: ENOMEM on allocation failure. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* Produce a stream of test data based on data in COOKIE (ignored), ++ storing up to SIZE bytes in BUF. */ ++ ++static ssize_t ++io_read (void *cookie, char *buf, size_t size) ++{ ++ memset (buf, 'x', size); ++ return size; ++} ++ ++/* Set up a test stream with fopencookie. */ ++ ++static FILE * ++open_test_stream (void) ++{ ++ static cookie_io_functions_t io_funcs = { .read = io_read }; ++ static int cookie; ++ FILE *fp = fopencookie (&cookie, "r", io_funcs); ++ TEST_VERIFY_EXIT (fp != NULL); ++ return fp; ++} ++ ++int ++do_test (void) ++{ ++ FILE *fp; ++ char *lineptr = NULL; ++ size_t size = 0; ++ ssize_t ret; ++ mtrace (); ++ /* Test ENOMEM (and error indicator for stream set) for memory ++ allocation failure. */ ++ verbose_printf ("Testing memory allocation failure\n"); ++ fp = open_test_stream (); ++ struct rlimit limit; ++ TEST_VERIFY_EXIT (getrlimit (RLIMIT_AS, &limit) == 0); ++ limit.rlim_cur = 32 * 1024 * 1024; ++ TEST_VERIFY_EXIT (setrlimit (RLIMIT_AS, &limit) == 0); ++ errno = 0; ++ ret = getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, ENOMEM); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ free (lineptr); ++ fclose (fp); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-getline.c b/stdio-common/tst-getline.c +new file mode 100644 +index 0000000000000000..29eb7cec0f344872 +--- /dev/null ++++ b/stdio-common/tst-getline.c +@@ -0,0 +1,451 @@ ++/* Test getline. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++static struct test_data ++{ ++ /* Input test data for fopencookie stream. */ ++ const char *in_data; ++ ++ /* The amount of test data left. */ ++ size_t in_data_left; ++ ++ /* Error number for forcing an error on next read. */ ++ int in_error; ++ ++ /* Error number for forcing an error (rather than EOF) after all ++ bytes read. */ ++ int in_error_after; ++} the_cookie; ++ ++/* Produce a stream of test data based on data in COOKIE, storing up ++ to SIZE bytes in BUF. */ ++ ++static ssize_t ++io_read (void *cookie, char *buf, size_t size) ++{ ++ struct test_data *p = cookie; ++ if (p->in_error) ++ { ++ errno = p->in_error; ++ return -1; ++ } ++ if (size > p->in_data_left) ++ size = p->in_data_left; ++ memcpy (buf, p->in_data, size); ++ p->in_data += size; ++ p->in_data_left -= size; ++ if (p->in_data_left == 0) ++ p->in_error = p->in_error_after; ++ return size; ++} ++ ++/* Set up a test stream with fopencookie. */ ++ ++static FILE * ++open_test_stream (const char *in_data, size_t size) ++{ ++ static cookie_io_functions_t io_funcs = { .read = io_read }; ++ the_cookie.in_data = in_data; ++ the_cookie.in_data_left = size; ++ the_cookie.in_error = 0; ++ the_cookie.in_error_after = 0; ++ FILE *fp = fopencookie (&the_cookie, "r", io_funcs); ++ TEST_VERIFY_EXIT (fp != NULL); ++ return fp; ++} ++ ++/* Set up a test stream with fopencookie, using data from a string ++ literal. */ ++#define OPEN_TEST_STREAM(IN_DATA) open_test_stream (IN_DATA, sizeof (IN_DATA)) ++ ++/* Wrap getline to verify that (as per the glibc manual), *LINEPTR is ++ returned as non-null and with at least *N bytes (even on error or ++ EOF). Also clear errno for the benefit of tests that check the ++ value of errno after the call. */ ++ ++ssize_t ++wrap_getline (char **lineptr, size_t *n, FILE *stream) ++{ ++ errno = 0; ++ ssize_t ret = getline (lineptr, n, stream); ++ if (lineptr != NULL && n != NULL) ++ { ++ TEST_VERIFY (*lineptr != NULL); ++ TEST_VERIFY (malloc_usable_size (*lineptr) >= *n); ++ } ++ return ret; ++} ++ ++int ++do_test (void) ++{ ++ FILE *fp; ++ char *lineptr = NULL; ++ size_t size = 0; ++ ssize_t ret; ++ mtrace (); ++ /* Test failure with EINVAL (and error indicator for stream set) if ++ lineptr is a null pointer. */ ++ verbose_printf ("Testing lineptr == NULL\n"); ++ fp = OPEN_TEST_STREAM ("test"); ++ ret = wrap_getline (NULL, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test failure with EINVAL (and error indicator for stream set) if ++ n is a null pointer. */ ++ verbose_printf ("Testing n == NULL\n"); ++ fp = OPEN_TEST_STREAM ("test"); ++ ret = wrap_getline (&lineptr, NULL, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test failure with EINVAL (and error indicator for stream set) if ++ both lineptr and n are null pointers. */ ++ verbose_printf ("Testing lineptr == NULL and n == NULL\n"); ++ fp = OPEN_TEST_STREAM ("test"); ++ ret = wrap_getline (NULL, NULL, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test normal line, fitting in available space (including case with ++ null bytes). */ ++ verbose_printf ("Testing normal nonempty input\n"); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = OPEN_TEST_STREAM ("foo\nbar\0\n\0baz\nte\0st\n"); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "foo\n", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "bar\0\n", 6); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "\0baz\n", 6); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 6); ++ TEST_COMPARE_BLOB (lineptr, 7, "te\0st\n", 7); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 1); ++ TEST_COMPARE_BLOB (lineptr, 1, "", 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ /* Test normal line, with reallocation (including case with null bytes). */ ++ verbose_printf ("Testing normal nonempty input with reallocation\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = OPEN_TEST_STREAM ("foo\nbar\0\n\0baz\nte\0st\n" ++ "foo\nbar\0\n\0baz\nte\0st\n"); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "foo\n", 5); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "bar\0\n", 6); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "\0baz\n", 6); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 6); ++ TEST_COMPARE_BLOB (lineptr, 7, "te\0st\n", 7); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "foo\n", 5); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "bar\0\n", 6); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "\0baz\n", 6); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 6); ++ TEST_COMPARE_BLOB (lineptr, 7, "te\0st\n", 7); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 1); ++ TEST_COMPARE_BLOB (lineptr, 1, "", 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ /* Test EOF before delimiter but after some bytes read, fitting in ++ available space (including case with null bytes). */ ++ verbose_printf ("Testing EOF before delimiter\n"); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("foo", 3); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("bar\0", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "bar\0", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("\0baz", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "\0baz", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("te\0st", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "te\0st", 6); ++ fclose (fp); ++ /* Test EOF before delimiter but after some bytes read, with ++ reallocation (including case with null bytes). */ ++ verbose_printf ("Testing EOF before delimiter with reallocation\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("foo", 3); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ fclose (fp); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("bar\0", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "bar\0", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("\0baz", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "\0baz", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("te\0st", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "te\0st", 6); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("foo", 3); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("bar\0", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "bar\0", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("\0baz", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "\0baz", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("te\0st", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "te\0st", 6); ++ fclose (fp); ++ /* Test EOF with no bytes read (nothing is specified about anything ++ written to the buffer), including EOF again when already at end ++ of file. */ ++ verbose_printf ("Testing EOF with no bytes read\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("", 0); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("", 0); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ /* Test error occurring with no bytes read, including calling ++ wrap_getline again while the file is in error state. */ ++ verbose_printf ("Testing error with no bytes read\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("", 0); ++ the_cookie.in_error = EINVAL; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ /* Make sure error state is sticky. */ ++ the_cookie.in_error = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test error occurring after some bytes read. Specifications are ++ ambiguous here; at least in the fopencookie case used for ++ testing, glibc returns the partial line (but with the error ++ indicator on the stream set). */ ++ verbose_printf ("Testing error after some bytes read\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("foo", 3); ++ the_cookie.in_error_after = EINVAL; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ /* Make sure error state is sticky. */ ++ the_cookie.in_error = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test EBADF error as a representative example of an fgetc error ++ resulting in an error from wrap_getline. We don't try to cover all ++ error cases for fgetc here. */ ++ verbose_printf ("Testing EBADF error\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = xfopen ("/dev/null", "r"); ++ xclose (fileno (fp)); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test EAGAIN error as an example of an fgetc error on a valid file ++ descriptor. */ ++ verbose_printf ("Testing EAGAIN error\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ int pipefd[2]; ++ xpipe (pipefd); ++ ret = fcntl (pipefd[0], F_SETFL, O_NONBLOCK); ++ TEST_VERIFY_EXIT (ret == 0); ++ fp = fdopen (pipefd[0], "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EAGAIN); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ /* Make sure error state is sticky (even after more data is ++ available to read). */ ++ xwrite (pipefd[1], "x\n", 2); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ free (lineptr); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-69003.patch b/SOURCES/glibc-RHEL-56032.patch similarity index 100% rename from SOURCES/glibc-RHEL-69003.patch rename to SOURCES/glibc-RHEL-56032.patch diff --git a/SOURCES/glibc-RHEL-56539.patch b/SOURCES/glibc-RHEL-56539.patch new file mode 100644 index 0000000..64d5b3f --- /dev/null +++ b/SOURCES/glibc-RHEL-56539.patch @@ -0,0 +1,146 @@ +commit f4ae345810942db891bddf9b482c72b3a120c3b2 +Author: Florian Weimer +Date: Thu Aug 29 11:06:08 2024 +0200 + + io: Add tst-lstat-nofollow, tst-lstat-nofollow-time64 + + They verify that lstat, lstat64 do not follow symbolic links. + + Reviewed-by: DJ Delorie + +Conflicts: + io/Makefile (new test added) + +diff --git a/io/Makefile b/io/Makefile +index cc78a438a8898ae3..05e6b798d669d1b1 100644 +--- a/io/Makefile ++++ b/io/Makefile +@@ -81,7 +81,8 @@ tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ + tst-closefrom \ + tst-ftw-bz28126 \ + tst-fchmod-errors \ +- tst-fchmod-fuse ++ tst-fchmod-fuse \ ++ tst-lstat-nofollow \ + + tests-time64 := \ + tst-fcntl-time64 \ +@@ -90,6 +91,7 @@ tests-time64 := \ + tst-futimes-time64\ + tst-futimesat-time64 \ + tst-lchmod-time64 \ ++ tst-lstat-nofollow-time64 \ + tst-lutimes-time64 \ + tst-stat-time64 \ + tst-utime-time64 \ +diff --git a/io/tst-lstat-nofollow-time64.c b/io/tst-lstat-nofollow-time64.c +new file mode 100644 +index 0000000000000000..45feb3f13085ae44 +--- /dev/null ++++ b/io/tst-lstat-nofollow-time64.c +@@ -0,0 +1 @@ ++#include "tst-lstat-nofollow.c" +diff --git a/io/tst-lstat-nofollow.c b/io/tst-lstat-nofollow.c +new file mode 100644 +index 0000000000000000..5bbb557c72938a8a +--- /dev/null ++++ b/io/tst-lstat-nofollow.c +@@ -0,0 +1,98 @@ ++/* Test that lstat does not follow symbolic links. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_LOOKUP: ++ { ++ TEST_COMPARE (inh->nodeid, 1); ++ TEST_COMPARE_STRING (support_fuse_cast (LOOKUP, inh), "symlink"); ++ struct fuse_entry_out *out = support_fuse_prepare_entry (f, 2); ++ out->attr.mode = S_IFLNK | 0777; ++ out->attr.size = strlen ("target"); ++ support_fuse_reply_prepared (f); ++ } ++ break; ++ case FUSE_GETATTR: ++ { ++ TEST_COMPARE (inh->nodeid, 2); ++ struct fuse_attr_out *out = support_fuse_prepare_attr (f); ++ out->attr.mode = S_IFLNK | 0777; ++ out->attr.size = strlen ("target"); ++ support_fuse_reply_prepared (f); ++ } ++ break; ++ case FUSE_READLINK: ++ /* The lstat operation must not attempt to look at the ++ symbolic link target. */ ++ FAIL ("attempt to obtain target of symblic link for node %llu", ++ (unsigned long long int) inh->nodeid); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ } ++ } ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ char *symlink_path = xasprintf ("%s/symlink", support_fuse_mountpoint (f)); ++ ++ { ++ struct stat st = { 0, }; ++ TEST_COMPARE (lstat (symlink_path, &st), 0); ++ TEST_COMPARE (st.st_uid, getuid ()); ++ TEST_COMPARE (st.st_gid, getgid ()); ++ TEST_COMPARE (st.st_size, 6); ++ TEST_COMPARE (st.st_mode, S_IFLNK | 0777); ++ } ++ ++ { ++ struct stat64 st = { 0, }; ++ TEST_COMPARE (lstat64 (symlink_path, &st), 0); ++ TEST_COMPARE (st.st_uid, getuid ()); ++ TEST_COMPARE (st.st_gid, getgid ()); ++ TEST_COMPARE (st.st_size, 6); ++ TEST_COMPARE (st.st_mode, S_IFLNK | 0777); ++ } ++ ++ free (symlink_path); ++ support_fuse_unmount (f); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-56540-1.patch b/SOURCES/glibc-RHEL-56540-1.patch new file mode 100644 index 0000000..f1f1941 --- /dev/null +++ b/SOURCES/glibc-RHEL-56540-1.patch @@ -0,0 +1,526 @@ +commit 1251e9ea49fba9f53bbf4f290f3db90c01931fa7 +Author: Florian Weimer +Date: Thu Sep 12 09:40:25 2024 +0200 + + support: Add + + It allows to read directories using the six readdir variants + without writing type-specific code or using skeleton files + that are compiled four times. + + The readdir_r subtest for support_readdir_expect_error revealed + bug 32124. + + Reviewed-by: DJ Delorie + +diff --git a/support/Makefile b/support/Makefile +index c7e03b76cc64c805..3b8509c88db4662a 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -77,6 +77,7 @@ libsupport-routines = \ + support_quote_blob \ + support_quote_blob_wide \ + support_quote_string \ ++ support_readdir \ + support_readdir_check \ + support_readdir_r_check \ + support_record_failure \ +@@ -326,6 +327,7 @@ tests = \ + tst-support_quote_blob \ + tst-support_quote_blob_wide \ + tst-support_quote_string \ ++ tst-support_readdir \ + tst-support_record_failure \ + tst-test_compare \ + tst-test_compare_blob \ +diff --git a/support/readdir.h b/support/readdir.h +new file mode 100644 +index 0000000000000000..7d7c7650d42efb70 +--- /dev/null ++++ b/support/readdir.h +@@ -0,0 +1,85 @@ ++/* Type-generic wrapper for readdir functions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef SUPPORT_READDIR_H ++#define SUPPORT_READDIR_H ++ ++#include ++#include ++#include ++ ++__BEGIN_DECLS ++ ++/* Definition independent of _FILE_OFFSET_BITS. */ ++struct support_dirent ++{ ++ uint64_t d_ino; ++ uint64_t d_off; /* 0 if d_off is not supported. */ ++ uint32_t d_type; ++ char *d_name; ++}; ++ ++/* Operation to be performed by support_readdir below. */ ++enum support_readdir_op ++ { ++ SUPPORT_READDIR, ++ SUPPORT_READDIR64, ++ SUPPORT_READDIR_R, ++ SUPPORT_READDIR64_R, ++ SUPPORT_READDIR64_COMPAT, ++ SUPPORT_READDIR64_R_COMPAT, ++ }; ++ ++/* Returns the last supported function. May exclude ++ SUPPORT_READDIR64_R_COMPAT if not implemented. */ ++enum support_readdir_op support_readdir_op_last (void); ++ ++/* Returns the name of the function that corresponds to the OP constant. */ ++const char *support_readdir_function (enum support_readdir_op op); ++ ++/* Returns the d_ino field width for OP, in bits. */ ++unsigned int support_readdir_inode_width (enum support_readdir_op op); ++ ++/* Returns the d_off field width for OP, in bits. Zero if not present. */ ++unsigned int support_readdir_offset_width (enum support_readdir_op op); ++ ++/* Returns true if OP is an _r variant with name length restrictions. */ ++bool support_readdir_r_variant (enum support_readdir_op op); ++ ++/* First, free E->d_name and set the field to NULL. Then call the ++ readdir variant as specified by OP. If successfully, copy fields ++ to E, make a copy of the entry name using strdup, and write its ++ addres sto E->d_name. ++ ++ Return true if an entry was read, or false if the end of the ++ directory stream was reached. Terminates the process upon error. ++ The caller is expected to free E->d_name if the function is not ++ called again for this E. ++ ++ Note that this function assumes that E->d_name has been initialized ++ to NULL or has been allocated by a previous call to this function. */ ++bool support_readdir (DIR *stream, enum support_readdir_op op, ++ struct support_dirent *e) __nonnull ((1, 3)); ++ ++/* Checks that the readdir operation OP fails with errno value EXPECTED. */ ++void support_readdir_expect_error (DIR *stream, enum support_readdir_op op, ++ int expected) __nonnull ((1)); ++ ++__END_DECLS ++ ++#endif /* SUPPORT_READDIR_H */ +diff --git a/support/support_readdir.c b/support/support_readdir.c +new file mode 100644 +index 0000000000000000..10d808416f7a0456 +--- /dev/null ++++ b/support/support_readdir.c +@@ -0,0 +1,318 @@ ++/* Type-generic wrapper for readdir functions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Copied from . */ ++struct __old_dirent64 ++ { ++ __ino_t d_ino; ++ __off64_t d_off; ++ unsigned short int d_reclen; ++ unsigned char d_type; ++ char d_name[256]; ++ }; ++ ++static struct __old_dirent64 *(*readdir64_compat) (DIR *); ++static int (*readdir64_r_compat) (DIR *, struct __old_dirent64 *, ++ struct __old_dirent64 **); ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ /* These compat symbols exists on alpha, i386, m67k , powerpc, s390, ++ sparc. at the same GLIBC_2.1 version. */ ++ readdir64_compat = dlvsym (RTLD_DEFAULT, "readdir64", "GLIBC_2.1"); ++ readdir64_r_compat = dlvsym (RTLD_DEFAULT, "readdir64_r", "GLIBC_2.1"); ++} ++ ++enum support_readdir_op ++support_readdir_op_last (void) ++{ ++ if (readdir64_r_compat != NULL) ++ { ++ TEST_VERIFY (readdir64_compat != NULL); ++ return SUPPORT_READDIR64_R_COMPAT; ++ } ++ else ++ return SUPPORT_READDIR64_R; ++} ++ ++const char * ++support_readdir_function (enum support_readdir_op op) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ return "readdir"; ++ case SUPPORT_READDIR64: ++ return "readdir64"; ++ case SUPPORT_READDIR_R: ++ return "readdir_r"; ++ case SUPPORT_READDIR64_R: ++ return "readdir64_r"; ++ case SUPPORT_READDIR64_COMPAT: ++ return "readdir64@GBLIC_2.1"; ++ case SUPPORT_READDIR64_R_COMPAT: ++ return "readdir64_r@GBLIC_2.1"; ++ } ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++unsigned int ++support_readdir_inode_width (enum support_readdir_op op) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR_R: ++ return sizeof ((struct dirent) { 0, }.d_ino) * 8; ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_R: ++ return sizeof ((struct dirent64) { 0, }.d_ino) * 8; ++ case SUPPORT_READDIR64_COMPAT: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return sizeof ((struct __old_dirent64) { 0, }.d_ino) * 8; ++ } ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++unsigned int ++support_readdir_offset_width (enum support_readdir_op op) ++{ ++#ifdef _DIRENT_HAVE_D_OFF ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR_R: ++ return sizeof ((struct dirent) { 0, }.d_off) * 8; ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_R: ++ return sizeof ((struct dirent64) { 0, }.d_off) * 8; ++ case SUPPORT_READDIR64_COMPAT: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return sizeof ((struct __old_dirent64) { 0, }.d_off) * 8; ++ } ++#else ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR_R: ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_R: ++ case SUPPORT_READDIR64_COMPAT: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return 0; ++ } ++#endif ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++bool ++support_readdir_r_variant (enum support_readdir_op op) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_COMPAT: ++ return false; ++ case SUPPORT_READDIR_R: ++ case SUPPORT_READDIR64_R: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return true; ++ } ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++static bool ++copy_dirent (struct support_dirent *dst, struct dirent *src) ++{ ++ if (src == NULL) ++ return false; ++ dst->d_ino = src->d_ino; ++#ifdef _DIRENT_HAVE_D_OFF ++ dst->d_off = src->d_off; ++#else ++ dst->d_off = 0; ++#endif ++ dst->d_type = src->d_type; ++ dst->d_name = xstrdup (src->d_name); ++ return true; ++} ++ ++static bool ++copy_dirent64 (struct support_dirent *dst, struct dirent64 *src) ++{ ++ if (src == NULL) ++ return false; ++ dst->d_ino = src->d_ino; ++#ifdef _DIRENT_HAVE_D_OFF ++ dst->d_off = src->d_off; ++#else ++ dst->d_off = 0; ++#endif ++ dst->d_type = src->d_type; ++ dst->d_name = xstrdup (src->d_name); ++ return true; ++} ++ ++static bool ++copy_old_dirent64 (struct support_dirent *dst, struct __old_dirent64 *src) ++{ ++ if (src == NULL) ++ return false; ++ dst->d_ino = src->d_ino; ++#ifdef _DIRENT_HAVE_D_OFF ++ dst->d_off = src->d_off; ++#else ++ dst->d_off = 0; ++#endif ++ dst->d_type = src->d_type; ++ dst->d_name = xstrdup (src->d_name); ++ return true; ++} ++ ++bool ++support_readdir (DIR *stream, enum support_readdir_op op, ++ struct support_dirent *e) ++{ ++ free (e->d_name); ++ e->d_name = NULL; ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ return copy_dirent (e, xreaddir (stream)); ++ case SUPPORT_READDIR64: ++ return copy_dirent64 (e, xreaddir64 (stream)); ++ ++ /* The functions readdir_r, readdir64_r were deprecated in glibc 2.24. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations"); ++ ++ case SUPPORT_READDIR_R: ++ { ++ struct dirent buf; ++ if (!xreaddir_r (stream, &buf)) ++ return false; ++ return copy_dirent (e, &buf); ++ } ++ case SUPPORT_READDIR64_R: ++ { ++ struct dirent64 buf; ++ if (!xreaddir64_r (stream, &buf)) ++ return false; ++ return copy_dirent64 (e, &buf); ++ } ++ ++ DIAG_POP_NEEDS_COMMENT; ++ ++ case SUPPORT_READDIR64_COMPAT: ++ if (readdir64_compat == NULL) ++ FAIL_EXIT1 ("readdir64 compat function not implemented"); ++ return copy_old_dirent64 (e, readdir64_compat (stream)); ++ ++ case SUPPORT_READDIR64_R_COMPAT: ++ { ++ if (readdir64_r_compat == NULL) ++ FAIL_EXIT1 ("readdir64_r compat function not implemented"); ++ struct __old_dirent64 buf; ++ struct __old_dirent64 *e1; ++ int ret = readdir64_r_compat (stream, &buf, &e1); ++ if (ret != 0) ++ { ++ errno = ret; ++ FAIL ("readdir64_r@GLIBC_2.1: %m"); ++ return false; ++ } ++ if (e1 == NULL) ++ return false; ++ return copy_old_dirent64 (e, e1); ++ } ++ } ++ FAIL_EXIT1 ("support_readdir: invalid op argument %d", (int) op); ++} ++ ++void ++support_readdir_expect_error (DIR *stream, enum support_readdir_op op, ++ int expected) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ errno = 0; ++ TEST_VERIFY (readdir (stream) == NULL); ++ TEST_COMPARE (errno, expected); ++ return; ++ case SUPPORT_READDIR64: ++ errno = 0; ++ TEST_VERIFY (readdir64 (stream) == NULL); ++ TEST_COMPARE (errno, expected); ++ return; ++ ++ /* The functions readdir_r, readdir64_r were deprecated in glibc 2.24. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations"); ++ ++ case SUPPORT_READDIR_R: ++ { ++ struct dirent buf; ++ struct dirent *e; ++ errno = readdir_r (stream, &buf, &e); ++ TEST_COMPARE (errno, expected);; ++ } ++ return; ++ case SUPPORT_READDIR64_R: ++ { ++ struct dirent64 buf; ++ struct dirent64 *e; ++ errno = readdir64_r (stream, &buf, &e); ++ TEST_COMPARE (errno, expected);; ++ } ++ return; ++ ++ DIAG_POP_NEEDS_COMMENT; ++ ++ case SUPPORT_READDIR64_COMPAT: ++ if (readdir64_compat == NULL) ++ FAIL_EXIT1 ("readdir64_r compat function not implemented"); ++ errno = 0; ++ TEST_VERIFY (readdir64_compat (stream) == NULL); ++ TEST_COMPARE (errno, expected); ++ return; ++ case SUPPORT_READDIR64_R_COMPAT: ++ { ++ if (readdir64_r_compat == NULL) ++ FAIL_EXIT1 ("readdir64_r compat function not implemented"); ++ struct __old_dirent64 buf; ++ struct __old_dirent64 *e; ++ errno = readdir64_r_compat (stream, &buf, &e); ++ TEST_COMPARE (errno, expected); ++ } ++ return; ++ } ++ FAIL_EXIT1 ("support_readdir_expect_error: invalid op argument %d", ++ (int) op); ++} +diff --git a/support/tst-support_readdir.c b/support/tst-support_readdir.c +new file mode 100644 +index 0000000000000000..c0639571c7c3f516 +--- /dev/null ++++ b/support/tst-support_readdir.c +@@ -0,0 +1,70 @@ ++/* Test the support_readdir function. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ DIR *reference_stream = xopendir ("."); ++ struct dirent64 *reference = xreaddir64 (reference_stream); ++ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ DIR *stream = xopendir ("."); ++ struct support_dirent e; ++ memset (&e, 0xcc, sizeof (e)); ++ e.d_name = NULL; ++ TEST_VERIFY (support_readdir (stream, op, &e)); ++ TEST_COMPARE (e.d_ino, reference->d_ino); ++ if (support_readdir_offset_width (op) != 0) ++ TEST_COMPARE (e.d_off, reference->d_off); ++ else ++ TEST_COMPARE (e.d_off, 0); ++ TEST_COMPARE (e.d_type, reference->d_type); ++ TEST_COMPARE_STRING (e.d_name, reference->d_name); ++ free (e.d_name); ++ xclosedir (stream); ++ } ++ ++ xclosedir (reference_stream); ++ ++ /* Error injection test. */ ++ int devnull = xopen ("/dev/null", O_RDONLY, 0); ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ DIR *stream = xopendir ("."); ++ /* A descriptor incompatible with readdir. */ ++ xdup2 (devnull, dirfd (stream)); ++ errno = -1; ++ support_readdir_expect_error (stream, op, ENOTDIR); ++ xclosedir (stream); ++ } ++ xclose (devnull); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-56540-2.patch b/SOURCES/glibc-RHEL-56540-2.patch new file mode 100644 index 0000000..a4ccf82 --- /dev/null +++ b/SOURCES/glibc-RHEL-56540-2.patch @@ -0,0 +1,34 @@ +commit c9154cad66aa0b11ede62cc9190d3485c5ef6941 +Author: Florian Weimer +Date: Thu Sep 12 18:26:04 2024 +0200 + + support: Fix Hurd build of tst-support_readdir + + Check for the availability of the d_off member at compile time, not + run time. + + Fixes commit 1251e9ea49fba9f53bbf4f290f3db90c01931fa7 + ("support: Add "). + +diff --git a/support/tst-support_readdir.c b/support/tst-support_readdir.c +index c0639571c7c3f516..66be94fa802e727a 100644 +--- a/support/tst-support_readdir.c ++++ b/support/tst-support_readdir.c +@@ -39,10 +39,13 @@ do_test (void) + e.d_name = NULL; + TEST_VERIFY (support_readdir (stream, op, &e)); + TEST_COMPARE (e.d_ino, reference->d_ino); +- if (support_readdir_offset_width (op) != 0) +- TEST_COMPARE (e.d_off, reference->d_off); +- else +- TEST_COMPARE (e.d_off, 0); ++#ifdef _DIRENT_HAVE_D_OFF ++ TEST_VERIFY (support_readdir_offset_width (op) != 0); ++ TEST_COMPARE (e.d_off, reference->d_off); ++#else ++ TEST_COMPARE (support_readdir_offset_width (op), 0); ++ TEST_COMPARE (e.d_off, 0); ++#endif + TEST_COMPARE (e.d_type, reference->d_type); + TEST_COMPARE_STRING (e.d_name, reference->d_name); + free (e.d_name); diff --git a/SOURCES/glibc-RHEL-56540-3.patch b/SOURCES/glibc-RHEL-56540-3.patch new file mode 100644 index 0000000..b35ccfc --- /dev/null +++ b/SOURCES/glibc-RHEL-56540-3.patch @@ -0,0 +1,241 @@ +commit 6aa1645f669322b36bda8e1fded6fd524d3e08ff +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + dirent: Add tst-rewinddir + + It verifies that rewinddir allows restarting the directory + iteration. + + Reviewed-by: DJ Delorie + +Conflicts: + dirent/Makefile (new test added) + +diff --git a/dirent/Makefile b/dirent/Makefile +index afc7226a5bf012d6..5bad3c112209a2ce 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -31,7 +31,8 @@ routines := opendir closedir readdir readdir_r rewinddir \ + scandir-cancel scandir-tail scandir64-tail + + tests := list tst-seekdir opendir-tst1 bug-readdir1 tst-fdopendir \ +- tst-fdopendir2 tst-scandir tst-scandir64 ++ tst-fdopendir2 tst-scandir tst-scandir64 \ ++ tst-rewinddir \ + + CFLAGS-scandir.c += $(uses-callbacks) + CFLAGS-scandir64.c += $(uses-callbacks) +diff --git a/dirent/tst-rewinddir.c b/dirent/tst-rewinddir.c +new file mode 100644 +index 0000000000000000..1479766ebe8fc911 +--- /dev/null ++++ b/dirent/tst-rewinddir.c +@@ -0,0 +1,207 @@ ++/* Test for rewinddir, using FUSE. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Return the file name at the indicated directory offset. */ ++static char * ++name_at_offset (unsigned int offset) ++{ ++ if (offset <= 1) ++ return xstrdup (".." + !offset); /* "." or "..". */ ++ else ++ /* Pad the name with a lot of zeros, so that the dirent buffer gets ++ filled more quickly. */ ++ return xasprintf ("file%0240u", offset); ++} ++ ++/* This many directory entries, including "." and "..". */ ++enum { directory_entries = 200 }; ++ ++/* Add the directory entry at OFFSET to the stream D. */ ++static uint64_t ++add_directory_entry (struct support_fuse_dirstream *d, uint64_t offset) ++{ ++ if (offset >= directory_entries) ++ return 0; ++ ++ char *name = name_at_offset (offset); ++ uint64_t ino = 1000 + offset; /* Arbitrary value, distinct from 1. */ ++ uint32_t type = DT_REG; ++ if (offset <= 1) ++ { ++ type = DT_DIR; ++ ino = 1; ++ } ++ ++ ++offset; ++ bool added = support_fuse_dirstream_add (d, ino, offset, type, name); ++ free (name); ++ if (added) ++ return offset; ++ else ++ return 0; ++} ++ ++/* Set to true if getdents64 should produce only one entry. */ ++static bool one_entry_per_getdents64; ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_READDIR: ++ if (inh->nodeid == 1) ++ { ++ uint64_t offset = support_fuse_cast (READ, inh)->offset; ++ struct support_fuse_dirstream *d ++ = support_fuse_prepare_readdir (f); ++ while (true) ++ { ++ offset = add_directory_entry (d, offset); ++ if (offset == 0 || one_entry_per_getdents64) ++ break; ++ } ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++/* Lists the entire directory from start to end. */ ++static void ++verify_directory (DIR *dir, enum support_readdir_op op) ++{ ++ struct support_dirent e = { 0, }; ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ for (int i = 2; i < directory_entries; ++i) ++ { ++ char *expected = name_at_offset (i); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, expected); ++ free (expected); ++ } ++ TEST_VERIFY (!support_readdir (dir, op, &e)); ++ free (e.d_name); ++} ++ ++/* Run tests with rewinding after ENTRIES readdir calls. */ ++static void ++rewind_after (unsigned int rewind_at) ++{ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ printf ("info: testing %s (rewind_at=%u)\n", ++ support_readdir_function (op), rewind_at); ++ ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ struct support_dirent e = { 0, }; ++ ++ switch (rewind_at) ++ { ++ case 0: ++ break; ++ case 1: ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ break; ++ default: ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ for (int i = 2; i < directory_entries; ++i) ++ { ++ if (i == rewind_at) ++ break; ++ char *expected = name_at_offset (i); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, expected); ++ free (expected); ++ } ++ break; ++ } ++ ++ errno = 0; ++ rewinddir (dir); ++ TEST_COMPARE (errno, 0); ++ verify_directory (dir, op); ++ ++ free (e.d_name); ++ xclosedir (dir); ++ support_fuse_unmount (f); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ /* One pass without rewinding to verify that the generated directory ++ content matches expectations. */ ++ { ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ verify_directory (dir, SUPPORT_READDIR64); ++ xclosedir (dir); ++ support_fuse_unmount (f); ++ } ++ ++ for (int do_unbuffered = 0; do_unbuffered < 2; ++do_unbuffered) ++ { ++ one_entry_per_getdents64 = do_unbuffered; ++ ++ for (int i = 0; i < 20; ++i) ++ rewind_after (i); ++ rewind_after (50); ++ rewind_after (100); ++ rewind_after (150); ++ rewind_after (180); ++ rewind_after (199); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-56542-1.patch b/SOURCES/glibc-RHEL-56542-1.patch new file mode 100644 index 0000000..e0fe19d --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-1.patch @@ -0,0 +1,56 @@ +commit 0e12ca024119ec6c6d2ac852a65046002efa0e80 +Author: Steve Grubb +Date: Fri Mar 11 15:29:06 2022 -0500 + + associate a deallocation for opendir + + This patch associates closedir as a deallocation for opendir and fdopendir. + This required moving the closedir declaration above the other 2 functions. + + Reviewed-by: Paul Eggert + Reviewed-by: Siddhesh Poyarekar + +diff --git a/dirent/dirent.h b/dirent/dirent.h +index 1d1fab7e55cdad4d..84834e8db9dea874 100644 +--- a/dirent/dirent.h ++++ b/dirent/dirent.h +@@ -126,28 +126,30 @@ enum + The actual structure is opaque to users. */ + typedef struct __dirstream DIR; + ++/* Close the directory stream DIRP. ++ Return 0 if successful, -1 if not. ++ ++ This function is a possible cancellation point and therefore not ++ marked with __THROW. */ ++extern int closedir (DIR *__dirp) __nonnull ((1)); ++ + /* Open a directory stream on NAME. + Return a DIR stream on the directory, or NULL if it could not be opened. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +-extern DIR *opendir (const char *__name) __nonnull ((1)); ++extern DIR *opendir (const char *__name) __nonnull ((1)) ++ __attribute_malloc__ __attr_dealloc (closedir, 1); + + #ifdef __USE_XOPEN2K8 + /* Same as opendir, but open the stream on the file descriptor FD. + + This function is a possible cancellation point and therefore not + marked with __THROW. */ +-extern DIR *fdopendir (int __fd); ++extern DIR *fdopendir (int __fd) ++ __attribute_malloc__ __attr_dealloc (closedir, 1); + #endif + +-/* Close the directory stream DIRP. +- Return 0 if successful, -1 if not. +- +- This function is a possible cancellation point and therefore not +- marked with __THROW. */ +-extern int closedir (DIR *__dirp) __nonnull ((1)); +- + /* Read a directory entry from DIRP. Return a pointer to a `struct + dirent' describing the entry, or NULL for EOF or error. The + storage returned may be overwritten by a later readdir call on the diff --git a/SOURCES/glibc-RHEL-56542-2.patch b/SOURCES/glibc-RHEL-56542-2.patch new file mode 100644 index 0000000..ebdd4fb --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-2.patch @@ -0,0 +1,236 @@ +commit 766b73768b290b303f5b56268c6c0d588d5a9267 +Author: Florian Weimer +Date: Mon Sep 19 08:10:41 2022 +0200 + + Linux: Do not skip d_ino == 0 entries in readdir, readdir64 (bug 12165) + + POSIX does not say this value is special. For example, old XFS file + systems may still use inode number zero. + + Also update the comment regarding ENOENT. Linux may return ENOENT + for some file systems. + +diff --git a/sysdeps/unix/sysv/linux/readdir.c b/sysdeps/unix/sysv/linux/readdir.c +index b4801351645d1236..ef95611f09e761a4 100644 +--- a/sysdeps/unix/sysv/linux/readdir.c ++++ b/sysdeps/unix/sysv/linux/readdir.c +@@ -28,48 +28,33 @@ __readdir_unlocked (DIR *dirp) + struct dirent *dp; + int saved_errno = errno; + +- do ++ if (dirp->offset >= dirp->size) + { +- size_t reclen; ++ /* We've emptied out our buffer. Refill it. */ + +- if (dirp->offset >= dirp->size) ++ size_t maxread = dirp->allocation; ++ ssize_t bytes; ++ ++ bytes = __getdents (dirp->fd, dirp->data, maxread); ++ if (bytes <= 0) + { +- /* We've emptied out our buffer. Refill it. */ +- +- size_t maxread = dirp->allocation; +- ssize_t bytes; +- +- bytes = __getdents (dirp->fd, dirp->data, maxread); +- if (bytes <= 0) +- { +- /* On some systems getdents fails with ENOENT when the +- open directory has been rmdir'd already. POSIX.1 +- requires that we treat this condition like normal EOF. */ +- if (bytes < 0 && errno == ENOENT) +- bytes = 0; +- +- /* Don't modifiy errno when reaching EOF. */ +- if (bytes == 0) +- __set_errno (saved_errno); +- dp = NULL; +- break; +- } +- dirp->size = (size_t) bytes; +- +- /* Reset the offset into the buffer. */ +- dirp->offset = 0; ++ /* Linux may fail with ENOENT on some file systems if the ++ directory inode is marked as dead (deleted). POSIX ++ treats this as a regular end-of-directory condition, so ++ do not set errno in that case, to indicate success. */ ++ if (bytes == 0 || errno == ENOENT) ++ __set_errno (saved_errno); ++ return NULL; + } ++ dirp->size = (size_t) bytes; + +- dp = (struct dirent *) &dirp->data[dirp->offset]; +- +- reclen = dp->d_reclen; +- +- dirp->offset += reclen; +- +- dirp->filepos = dp->d_off; ++ /* Reset the offset into the buffer. */ ++ dirp->offset = 0; ++ } + +- /* Skip deleted files. */ +- } while (dp->d_ino == 0); ++ dp = (struct dirent *) &dirp->data[dirp->offset]; ++ dirp->offset += dp->d_reclen; ++ dirp->filepos = dp->d_off; + + return dp; + } +diff --git a/sysdeps/unix/sysv/linux/readdir64.c b/sysdeps/unix/sysv/linux/readdir64.c +index 52b11eb9d91bb5fd..8a60504649aa54a2 100644 +--- a/sysdeps/unix/sysv/linux/readdir64.c ++++ b/sysdeps/unix/sysv/linux/readdir64.c +@@ -37,48 +37,36 @@ __readdir64 (DIR *dirp) + __libc_lock_lock (dirp->lock); + #endif + +- do ++ if (dirp->offset >= dirp->size) + { +- size_t reclen; ++ /* We've emptied out our buffer. Refill it. */ + +- if (dirp->offset >= dirp->size) ++ size_t maxread = dirp->allocation; ++ ssize_t bytes; ++ ++ bytes = __getdents64 (dirp->fd, dirp->data, maxread); ++ if (bytes <= 0) + { +- /* We've emptied out our buffer. Refill it. */ +- +- size_t maxread = dirp->allocation; +- ssize_t bytes; +- +- bytes = __getdents64 (dirp->fd, dirp->data, maxread); +- if (bytes <= 0) +- { +- /* On some systems getdents fails with ENOENT when the +- open directory has been rmdir'd already. POSIX.1 +- requires that we treat this condition like normal EOF. */ +- if (bytes < 0 && errno == ENOENT) +- bytes = 0; +- +- /* Don't modifiy errno when reaching EOF. */ +- if (bytes == 0) +- __set_errno (saved_errno); +- dp = NULL; +- break; +- } +- dirp->size = (size_t) bytes; +- +- /* Reset the offset into the buffer. */ +- dirp->offset = 0; ++ /* Linux may fail with ENOENT on some file systems if the ++ directory inode is marked as dead (deleted). POSIX ++ treats this as a regular end-of-directory condition, so ++ do not set errno in that case, to indicate success. */ ++ if (bytes == 0 || errno == ENOENT) ++ __set_errno (saved_errno); ++#if IS_IN (libc) ++ __libc_lock_unlock (dirp->lock); ++#endif ++ return NULL; + } ++ dirp->size = (size_t) bytes; + +- dp = (struct dirent64 *) &dirp->data[dirp->offset]; +- +- reclen = dp->d_reclen; +- +- dirp->offset += reclen; +- +- dirp->filepos = dp->d_off; ++ /* Reset the offset into the buffer. */ ++ dirp->offset = 0; ++ } + +- /* Skip deleted files. */ +- } while (dp->d_ino == 0); ++ dp = (struct dirent64 *) &dirp->data[dirp->offset]; ++ dirp->offset += dp->d_reclen; ++ dirp->filepos = dp->d_off; + + #if IS_IN (libc) + __libc_lock_unlock (dirp->lock); +@@ -115,48 +103,36 @@ __old_readdir64 (DIR *dirp) + __libc_lock_lock (dirp->lock); + #endif + +- do ++ if (dirp->offset >= dirp->size) + { +- size_t reclen; ++ /* We've emptied out our buffer. Refill it. */ + +- if (dirp->offset >= dirp->size) ++ size_t maxread = dirp->allocation; ++ ssize_t bytes; ++ ++ bytes = __old_getdents64 (dirp->fd, dirp->data, maxread); ++ if (bytes <= 0) + { +- /* We've emptied out our buffer. Refill it. */ +- +- size_t maxread = dirp->allocation; +- ssize_t bytes; +- +- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread); +- if (bytes <= 0) +- { +- /* On some systems getdents fails with ENOENT when the +- open directory has been rmdir'd already. POSIX.1 +- requires that we treat this condition like normal EOF. */ +- if (bytes < 0 && errno == ENOENT) +- bytes = 0; +- +- /* Don't modifiy errno when reaching EOF. */ +- if (bytes == 0) +- __set_errno (saved_errno); +- dp = NULL; +- break; +- } +- dirp->size = (size_t) bytes; +- +- /* Reset the offset into the buffer. */ +- dirp->offset = 0; ++ /* Linux may fail with ENOENT on some file systems if the ++ directory inode is marked as dead (deleted). POSIX ++ treats this as a regular end-of-directory condition, so ++ do not set errno in that case, to indicate success. */ ++ if (bytes == 0 || errno == ENOENT) ++ __set_errno (saved_errno); ++#if IS_IN (libc) ++ __libc_lock_unlock (dirp->lock); ++#endif ++ return NULL; + } ++ dirp->size = (size_t) bytes; + +- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset]; +- +- reclen = dp->d_reclen; +- +- dirp->offset += reclen; +- +- dirp->filepos = dp->d_off; ++ /* Reset the offset into the buffer. */ ++ dirp->offset = 0; ++ } + +- /* Skip deleted files. */ +- } while (dp->d_ino == 0); ++ dp = (struct __old_dirent64 *) &dirp->data[dirp->offset]; ++ dirp->offset += dp->d_reclen; ++ dirp->filepos = dp->d_off; + + #if IS_IN (libc) + __libc_lock_unlock (dirp->lock); diff --git a/SOURCES/glibc-RHEL-56542-3.patch b/SOURCES/glibc-RHEL-56542-3.patch new file mode 100644 index 0000000..180b29e --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-3.patch @@ -0,0 +1,104 @@ +commit 4e16d89866e660426438238a47c2345bdc47dd97 +Author: Adhemerval Zanella +Date: Thu Aug 10 08:56:00 2023 -0300 + + linux: Make fdopendir fail with O_PATH (BZ 30373) + + It is not strictly required by the POSIX, since O_PATH is a Linux + extension, but it is QoI to fail early instead of at readdir. Also + the check is free, since fdopendir already checks if the file + descriptor is opened for read. + + Checked on x86_64-linux-gnu. + +Conflicts: + sysdeps/unix/sysv/linux/Makefile (new test added) + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 617f7718b2a5779d..74656e56038844aa 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -125,6 +125,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-prctl \ + tst-scm_rights \ + tst-getauxval \ ++ tst-fdopendir-o_path \ + # tests + + # Test for the symbol version of fcntl that was replaced in glibc 2.28. +diff --git a/sysdeps/unix/sysv/linux/fdopendir.c b/sysdeps/unix/sysv/linux/fdopendir.c +index 32ec10e206305e3c..d06eeb3cafa4966c 100644 +--- a/sysdeps/unix/sysv/linux/fdopendir.c ++++ b/sysdeps/unix/sysv/linux/fdopendir.c +@@ -37,10 +37,16 @@ __fdopendir (int fd) + return NULL; + } + +- /* Make sure the descriptor allows for reading. */ + int flags = __fcntl64_nocancel (fd, F_GETFL); + if (__glibc_unlikely (flags == -1)) + return NULL; ++ /* Fail early for descriptors opened with O_PATH. */ ++ if (__glibc_unlikely (flags & O_PATH)) ++ { ++ __set_errno (EBADF); ++ return NULL; ++ } ++ /* Make sure the descriptor allows for reading. */ + if (__glibc_unlikely ((flags & O_ACCMODE) == O_WRONLY)) + { + __set_errno (EINVAL); +diff --git a/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c b/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c +new file mode 100644 +index 0000000000000000..2531cf8ddb92ff45 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c +@@ -0,0 +1,48 @@ ++/* Check if fdopendir fails with file descriptor opened with O_PATH (BZ 30737) ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ char *dirname = support_create_temp_directory ("tst-fdopendir-o_path"); ++ ++ { ++ int fd = xopen (dirname, O_RDONLY | O_DIRECTORY, 0600); ++ DIR *dir = fdopendir (fd); ++ TEST_VERIFY_EXIT (dir != NULL); ++ closedir (dir); ++ } ++ ++ { ++ int fd = xopen (dirname, O_RDONLY | O_PATH | O_DIRECTORY, 0600); ++ TEST_VERIFY (fdopendir (fd) == NULL); ++ TEST_COMPARE (errno, EBADF); ++ xclose (fd); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-56542-4.patch b/SOURCES/glibc-RHEL-56542-4.patch new file mode 100644 index 0000000..18eb644 --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-4.patch @@ -0,0 +1,80 @@ +commit a4a12af5abe22d63fbebf0a219d8d13eff6db20c +Author: Carlos O'Donell +Date: Thu Jun 8 07:30:33 2023 -0400 + + dirent: Reformat Makefile. + + Reflow and sort Makefile. + + Code generation changes present due to link order changes. + + No regressions on x86_64 and i686. + +Conflicts: + dirent/Makefile (resorting) + +diff --git a/dirent/Makefile b/dirent/Makefile +index 5bad3c112209a2ce..450bcd5d8981f40b 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -22,17 +22,49 @@ subdir := dirent + + include ../Makeconfig + +-headers := dirent.h bits/dirent.h bits/dirent_ext.h +-routines := opendir closedir readdir readdir_r rewinddir \ +- seekdir telldir scandir alphasort versionsort \ +- getdents getdents64 dirfd readdir64 readdir64_r scandir64 \ +- alphasort64 versionsort64 fdopendir \ +- scandirat scandirat64 \ +- scandir-cancel scandir-tail scandir64-tail +- +-tests := list tst-seekdir opendir-tst1 bug-readdir1 tst-fdopendir \ +- tst-fdopendir2 tst-scandir tst-scandir64 \ +- tst-rewinddir \ ++headers := \ ++ bits/dirent.h \ ++ bits/dirent_ext.h \ ++ dirent.h \ ++ # headers ++routines := \ ++ alphasort \ ++ alphasort64 \ ++ closedir \ ++ dirfd \ ++ fdopendir \ ++ getdents \ ++ getdents64 \ ++ opendir \ ++ readdir \ ++ readdir64 \ ++ readdir64_r \ ++ readdir_r \ ++ rewinddir \ ++ scandir \ ++ scandir-cancel \ ++ scandir-tail \ ++ scandir64 \ ++ scandir64-tail \ ++ scandirat \ ++ scandirat64 \ ++ seekdir \ ++ telldir \ ++ versionsort \ ++ versionsort64 \ ++ # routines ++ ++tests := \ ++ bug-readdir1 \ ++ list \ ++ opendir-tst1 \ ++ tst-fdopendir \ ++ tst-fdopendir2 \ ++ tst-rewinddir \ ++ tst-scandir \ ++ tst-scandir64 \ ++ tst-seekdir \ ++ # tests + + CFLAGS-scandir.c += $(uses-callbacks) + CFLAGS-scandir64.c += $(uses-callbacks) diff --git a/SOURCES/glibc-RHEL-56542-5.patch b/SOURCES/glibc-RHEL-56542-5.patch new file mode 100644 index 0000000..3c21fe0 --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-5.patch @@ -0,0 +1,48 @@ +commit 61f2c2e1d1287a791c22d86c943b44bcf66bb8ad +Author: Florian Weimer +Date: Fri Aug 30 21:52:23 2024 +0200 + + Linux: readdir_r needs to report getdents failures (bug 32124) + + Upon error, return the errno value set by the __getdents call + in __readdir_unlocked. Previously, kernel-reported errors + were ignored. + + Reviewed-by: DJ Delorie + +diff --git a/sysdeps/unix/sysv/linux/readdir_r.c b/sysdeps/unix/sysv/linux/readdir_r.c +index 4792d730eb2c1fa1..2a2491e5e3786746 100644 +--- a/sysdeps/unix/sysv/linux/readdir_r.c ++++ b/sysdeps/unix/sysv/linux/readdir_r.c +@@ -25,14 +25,22 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result) + { + struct dirent *dp; + size_t reclen; ++ int saved_errno = errno; + + __libc_lock_lock (dirp->lock); + + while (1) + { ++ /* If errno is changed from 0, the NULL return value indicates ++ an actual error. It overrides a pending ENAMETOOLONG error. */ ++ __set_errno (0); + dp = __readdir_unlocked (dirp); + if (dp == NULL) +- break; ++ { ++ if (errno != 0) ++ dirp->errcode = errno; ++ break; ++ } + + reclen = dp->d_reclen; + if (reclen <= offsetof (struct dirent, d_name) + NAME_MAX + 1) +@@ -61,6 +69,7 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result) + + __libc_lock_unlock (dirp->lock); + ++ __set_errno (saved_errno); + return dp != NULL ? 0 : dirp->errcode; + } + diff --git a/SOURCES/glibc-RHEL-56542-6.patch b/SOURCES/glibc-RHEL-56542-6.patch new file mode 100644 index 0000000..d2c7e9f --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-6.patch @@ -0,0 +1,136 @@ +commit 4c09aa31b1aeea1329674109eb02d4ba506b0ad2 +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + dirent: Add tst-closedir-leaks + + It verfies that closedir deallocates memory and closes + file descriptors. + + Reviewed-by: DJ Delorie + +diff --git a/dirent/Makefile b/dirent/Makefile +index 450bcd5d8981f40b..a0404b82b81ed9e8 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -58,6 +58,7 @@ tests := \ + bug-readdir1 \ + list \ + opendir-tst1 \ ++ tst-closedir-leaks \ + tst-fdopendir \ + tst-fdopendir2 \ + tst-rewinddir \ +@@ -66,6 +67,18 @@ tests := \ + tst-seekdir \ + # tests + ++ifeq ($(run-built-tests),yes) ++ifneq ($(PERL),no) ++generated += \ ++ $(objpfx)tst-closedir-leaks-mem.out \ ++ # generated ++ ++tests-special += \ ++ $(objpfx)tst-closedir-leaks-mem.out \ ++ # tests-special ++endif # $(PERL) ! no ++endif # $(run-built-tests) == yes ++ + CFLAGS-scandir.c += $(uses-callbacks) + CFLAGS-scandir64.c += $(uses-callbacks) + CFLAGS-scandir-tail.c += $(uses-callbacks) +@@ -74,3 +87,10 @@ CFLAGS-scandir64-tail.c += $(uses-callbacks) + include ../Rules + + opendir-tst1-ARGS = --test-dir=${common-objpfx}dirent ++ ++tst-closedir-leaks-ENV += MALLOC_TRACE=$(objpfx)tst-closedir-leaks.mtrace \ ++ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so ++ ++$(objpfx)tst-closedir-leaks-mem.out: $(objpfx)tst-closedir-leaks.out ++ $(common-objpfx)malloc/mtrace $(objpfx)tst-closedir-leaks.mtrace > $@; \ ++ $(evaluate-test) +diff --git a/dirent/tst-closedir-leaks.c b/dirent/tst-closedir-leaks.c +new file mode 100644 +index 0000000000000000..d9de119b637ea623 +--- /dev/null ++++ b/dirent/tst-closedir-leaks.c +@@ -0,0 +1,77 @@ ++/* Test for resource leaks in closedir. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void ++one_test (enum support_readdir_op op, unsigned int read_limit, ++ bool use_fdopendir) ++{ ++ struct support_descriptors *fds = support_descriptors_list (); ++ struct support_dirent e = { 0, }; ++ ++ DIR *stream; ++ if (use_fdopendir) ++ { ++ int fd = xopen (".", O_RDONLY | O_DIRECTORY, 0); ++ stream = xfdopendir (fd); ++ /* The descriptor fd will be closed by closedir below. */ ++ } ++ else ++ stream = xopendir ("."); ++ for (unsigned int i = 0; i < read_limit; ++i) ++ if (!support_readdir (stream, op, &e)) ++ break; ++ TEST_COMPARE (closedir (stream), 0); ++ ++ free (e.d_name); ++ support_descriptors_check (fds); ++ support_descriptors_free (fds); ++} ++ ++static int ++do_test (void) ++{ ++ mtrace (); ++ ++ for (int use_fdopendir = 0; use_fdopendir < 2; ++use_fdopendir) ++ { ++ /* No reads, operation does not matter. */ ++ one_test (SUPPORT_READDIR, 0, use_fdopendir); ++ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last(); ++ ++op) ++ { ++ one_test (op, 1, use_fdopendir); ++ one_test (op, UINT_MAX, use_fdopendir); /* Unlimited reads. */ ++ } ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-56542-7.patch b/SOURCES/glibc-RHEL-56542-7.patch new file mode 100644 index 0000000..fffcfc6 --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-7.patch @@ -0,0 +1,389 @@ +commit e92718552e1d17b8eccbffb88bf5bbb2235c4596 +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + Linux: Use readdir64_r for compat __old_readdir64_r (bug 32128) + + It is not necessary to do the conversion at the getdents64 + layer for readdir64_r. Doing it piecewise for readdir64 + is slightly simpler and allows deleting __old_getdents64. + + This fixes bug 32128 because readdir64_r handles the length + check correctly. + + Reviewed-by: DJ Delorie + +diff --git a/sysdeps/unix/sysv/linux/getdents64.c b/sysdeps/unix/sysv/linux/getdents64.c +index 6323e003b30ae0e6..6f8e9147fbfb79bc 100644 +--- a/sysdeps/unix/sysv/linux/getdents64.c ++++ b/sysdeps/unix/sysv/linux/getdents64.c +@@ -33,100 +33,3 @@ __getdents64 (int fd, void *buf, size_t nbytes) + } + libc_hidden_def (__getdents64) + weak_alias (__getdents64, getdents64) +- +-#if _DIRENT_MATCHES_DIRENT64 +-strong_alias (__getdents64, __getdents) +-#else +-# include +- +-# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) +-# include +-# include +- +-static ssize_t +-handle_overflow (int fd, __off64_t offset, ssize_t count) +-{ +- /* If this is the first entry in the buffer, we can report the +- error. */ +- if (offset == 0) +- { +- __set_errno (EOVERFLOW); +- return -1; +- } +- +- /* Otherwise, seek to the overflowing entry, so that the next call +- will report the error, and return the data read so far. */ +- if (__lseek64 (fd, offset, SEEK_SET) != 0) +- return -1; +- return count; +-} +- +-ssize_t +-__old_getdents64 (int fd, char *buf, size_t nbytes) +-{ +- /* We do not move the individual directory entries. This is only +- possible if the target type (struct __old_dirent64) is smaller +- than the source type. */ +- _Static_assert (offsetof (struct __old_dirent64, d_name) +- <= offsetof (struct dirent64, d_name), +- "__old_dirent64 is larger than dirent64"); +- _Static_assert (__alignof__ (struct __old_dirent64) +- <= __alignof__ (struct dirent64), +- "alignment of __old_dirent64 is larger than dirent64"); +- +- ssize_t retval = INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes); +- if (retval > 0) +- { +- /* This is the marker for the first entry. Offset 0 is reserved +- for the first entry (see rewinddir). Here, we use it as a +- marker for the first entry in the buffer. We never actually +- seek to offset 0 because handle_overflow reports the error +- directly, so it does not matter that the offset is incorrect +- if entries have been read from the descriptor before (so that +- the descriptor is not actually at offset 0). */ +- __off64_t previous_offset = 0; +- +- char *p = buf; +- char *end = buf + retval; +- while (p < end) +- { +- struct dirent64 *source = (struct dirent64 *) p; +- +- /* Copy out the fixed-size data. */ +- __ino_t ino = source->d_ino; +- __off64_t offset = source->d_off; +- unsigned int reclen = source->d_reclen; +- unsigned char type = source->d_type; +- +- /* Check for ino_t overflow. */ +- if (__glibc_unlikely (ino != source->d_ino)) +- return handle_overflow (fd, previous_offset, p - buf); +- +- /* Convert to the target layout. Use a separate struct and +- memcpy to side-step aliasing issues. */ +- struct __old_dirent64 result; +- result.d_ino = ino; +- result.d_off = offset; +- result.d_reclen = reclen; +- result.d_type = type; +- +- /* Write the fixed-sized part of the result to the +- buffer. */ +- size_t result_name_offset = offsetof (struct __old_dirent64, d_name); +- memcpy (p, &result, result_name_offset); +- +- /* Adjust the position of the name if necessary. Copy +- everything until the end of the record, including the +- terminating NUL byte. */ +- if (result_name_offset != offsetof (struct dirent64, d_name)) +- memmove (p + result_name_offset, source->d_name, +- reclen - offsetof (struct dirent64, d_name)); +- +- p += reclen; +- previous_offset = offset; +- } +- } +- return retval; +-} +-# endif /* SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) */ +-#endif /* _DIRENT_MATCHES_DIRENT64 */ +diff --git a/sysdeps/unix/sysv/linux/olddirent.h b/sysdeps/unix/sysv/linux/olddirent.h +index 3e672d47f5a5e421..d1a486e855e744c3 100644 +--- a/sysdeps/unix/sysv/linux/olddirent.h ++++ b/sysdeps/unix/sysv/linux/olddirent.h +@@ -34,8 +34,6 @@ extern struct __old_dirent64 *__old_readdir64 (DIR *__dirp); + libc_hidden_proto (__old_readdir64); + extern int __old_readdir64_r (DIR *__dirp, struct __old_dirent64 *__entry, + struct __old_dirent64 **__result); +-extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes) +- attribute_hidden; + int __old_scandir64 (const char * __dir, + struct __old_dirent64 *** __namelist, + int (*__selector) (const struct __old_dirent64 *), +diff --git a/sysdeps/unix/sysv/linux/readdir64.c b/sysdeps/unix/sysv/linux/readdir64.c +index 8a60504649aa54a2..c3450b083b6b64cf 100644 +--- a/sysdeps/unix/sysv/linux/readdir64.c ++++ b/sysdeps/unix/sysv/linux/readdir64.c +@@ -26,17 +26,13 @@ + #undef __readdir + #undef readdir + +-/* Read a directory entry from DIRP. */ +-struct dirent64 * +-__readdir64 (DIR *dirp) ++/* Read a directory entry from DIRP. No locking. */ ++static struct dirent64 * ++__readdir64_unlocked (DIR *dirp) + { + struct dirent64 *dp; + int saved_errno = errno; + +-#if IS_IN (libc) +- __libc_lock_lock (dirp->lock); +-#endif +- + if (dirp->offset >= dirp->size) + { + /* We've emptied out our buffer. Refill it. */ +@@ -53,9 +49,6 @@ __readdir64 (DIR *dirp) + do not set errno in that case, to indicate success. */ + if (bytes == 0 || errno == ENOENT) + __set_errno (saved_errno); +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif + return NULL; + } + dirp->size = (size_t) bytes; +@@ -68,10 +61,16 @@ __readdir64 (DIR *dirp) + dirp->offset += dp->d_reclen; + dirp->filepos = dp->d_off; + +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif ++ return dp; ++} + ++/* Read a directory entry from DIRP. */ ++struct dirent64 * ++__readdir64 (DIR *dirp) ++{ ++ __libc_lock_lock (dirp->lock); ++ struct dirent64 *dp = __readdir64_unlocked (dirp); ++ __libc_lock_unlock (dirp->lock); + return dp; + } + libc_hidden_def (__readdir64) +@@ -99,45 +98,54 @@ __old_readdir64 (DIR *dirp) + struct __old_dirent64 *dp; + int saved_errno = errno; + +-#if IS_IN (libc) + __libc_lock_lock (dirp->lock); +-#endif + +- if (dirp->offset >= dirp->size) ++ while (1) + { +- /* We've emptied out our buffer. Refill it. */ ++ errno = 0; ++ struct dirent64 *newdp = __readdir64_unlocked (dirp); ++ if (newdp == NULL) ++ { ++ if (errno == 0 && dirp->errcode != 0) ++ __set_errno (dirp->errcode); ++ else if (errno == 0) ++ __set_errno (saved_errno); ++ dp = NULL; ++ break; ++ } + +- size_t maxread = dirp->allocation; +- ssize_t bytes; ++ /* Convert to the target layout. Use a separate struct and ++ memcpy to side-step aliasing issues. */ ++ struct __old_dirent64 result; ++ result.d_ino = newdp->d_ino; ++ result.d_off = newdp->d_off; ++ result.d_reclen = newdp->d_reclen; ++ result.d_type = newdp->d_type; + +- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread); +- if (bytes <= 0) ++ /* Check for ino_t overflow. */ ++ if (__glibc_unlikely (result.d_ino != newdp->d_ino)) + { +- /* Linux may fail with ENOENT on some file systems if the +- directory inode is marked as dead (deleted). POSIX +- treats this as a regular end-of-directory condition, so +- do not set errno in that case, to indicate success. */ +- if (bytes == 0 || errno == ENOENT) +- __set_errno (saved_errno); +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif +- return NULL; ++ dirp->errcode = ENAMETOOLONG; ++ continue; + } +- dirp->size = (size_t) bytes; + +- /* Reset the offset into the buffer. */ +- dirp->offset = 0; +- } ++ /* Overwrite the fixed-sized part. */ ++ dp = (struct __old_dirent64 *) newdp; ++ memcpy (dp, &result, offsetof (struct __old_dirent64, d_name)); + +- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset]; +- dirp->offset += dp->d_reclen; +- dirp->filepos = dp->d_off; ++ /* Move the name. */ ++ _Static_assert (offsetof (struct __old_dirent64, d_name) ++ <= offsetof (struct dirent64, d_name), ++ "old struct must be smaller"); ++ if (offsetof (struct __old_dirent64, d_name) ++ != offsetof (struct dirent64, d_name)) ++ memmove (dp->d_name, newdp->d_name, strlen (newdp->d_name) + 1); + +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif ++ __set_errno (saved_errno); ++ break; ++ } + ++ __libc_lock_unlock (dirp->lock); + return dp; + } + libc_hidden_def (__old_readdir64) +diff --git a/sysdeps/unix/sysv/linux/readdir64_r.c b/sysdeps/unix/sysv/linux/readdir64_r.c +index 073a6453d1bbbd61..0c60987343b1f37f 100644 +--- a/sysdeps/unix/sysv/linux/readdir64_r.c ++++ b/sysdeps/unix/sysv/linux/readdir64_r.c +@@ -135,91 +135,37 @@ attribute_compat_text_section + __old_readdir64_r (DIR *dirp, struct __old_dirent64 *entry, + struct __old_dirent64 **result) + { +- struct __old_dirent64 *dp; +- size_t reclen; +- const int saved_errno = errno; +- int ret; +- +- __libc_lock_lock (dirp->lock); +- +- do ++ while (1) + { +- if (dirp->offset >= dirp->size) +- { +- /* We've emptied out our buffer. Refill it. */ +- +- size_t maxread = dirp->allocation; +- ssize_t bytes; +- +- maxread = dirp->allocation; +- +- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread); +- if (bytes <= 0) +- { +- /* On some systems getdents fails with ENOENT when the +- open directory has been rmdir'd already. POSIX.1 +- requires that we treat this condition like normal EOF. */ +- if (bytes < 0 && errno == ENOENT) +- { +- bytes = 0; +- __set_errno (saved_errno); +- } +- if (bytes < 0) +- dirp->errcode = errno; ++ struct dirent64 new_entry; ++ struct dirent64 *newp; ++ int ret = __readdir64_r (dirp, &new_entry, &newp); + +- dp = NULL; +- break; +- } +- dirp->size = (size_t) bytes; +- +- /* Reset the offset into the buffer. */ +- dirp->offset = 0; ++ if (ret != 0) ++ return ret; ++ else if (newp == NULL) ++ { ++ *result = NULL; ++ return 0; + } +- +- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset]; +- +- reclen = dp->d_reclen; +- +- dirp->offset += reclen; +- +- dirp->filepos = dp->d_off; +- +- if (reclen > offsetof (struct __old_dirent64, d_name) + NAME_MAX + 1) ++ else + { +- /* The record is very long. It could still fit into the +- caller-supplied buffer if we can skip padding at the +- end. */ +- size_t namelen = _D_EXACT_NAMLEN (dp); +- if (namelen <= NAME_MAX) +- reclen = offsetof (struct __old_dirent64, d_name) + namelen + 1; +- else ++ entry->d_ino = newp->d_ino; ++ if (entry->d_ino != newp->d_ino) + { +- /* The name is too long. Ignore this file. */ +- dirp->errcode = ENAMETOOLONG; +- dp->d_ino = 0; ++ dirp->errcode = EOVERFLOW; + continue; + } ++ size_t namelen = strlen (newp->d_name); ++ entry->d_off = newp->d_off; ++ entry->d_reclen = (offsetof (struct __old_dirent64, d_name) ++ + namelen + 1); ++ entry->d_type = newp->d_type; ++ memcpy (entry->d_name, newp->d_name, namelen + 1); ++ *result = entry; ++ return 0; + } +- +- /* Skip deleted and ignored files. */ +- } +- while (dp->d_ino == 0); +- +- if (dp != NULL) +- { +- *result = memcpy (entry, dp, reclen); +- entry->d_reclen = reclen; +- ret = 0; + } +- else +- { +- *result = NULL; +- ret = dirp->errcode; +- } +- +- __libc_lock_unlock (dirp->lock); +- +- return ret; + } + + compat_symbol (libc, __old_readdir64_r, readdir64_r, GLIBC_2_1); diff --git a/SOURCES/glibc-RHEL-56542-8.patch b/SOURCES/glibc-RHEL-56542-8.patch new file mode 100644 index 0000000..cc4f908 --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-8.patch @@ -0,0 +1,264 @@ +commit 4ec355af454695556db1212d1c9ca9c3789cddf4 +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + dirent: Add tst-readdir-long + + It tests long names and ENAMETOOLONG handling, specifically + for readdir_r. This is a regression test for bug 14699, + bug 32124, and bug 32128. + + Reviewed-by: DJ Delorie + +Conflicts: + dirent/Makefile (fixup context) + +diff --git a/dirent/Makefile b/dirent/Makefile +index a0404b82b81ed9e8..d12be2f0384b184f 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -61,6 +61,7 @@ tests := \ + tst-closedir-leaks \ + tst-fdopendir \ + tst-fdopendir2 \ ++ tst-readdir-long \ + tst-rewinddir \ + tst-scandir \ + tst-scandir64 \ +diff --git a/dirent/tst-readdir-long.c b/dirent/tst-readdir-long.c +new file mode 100644 +index 0000000000000000..409318fa52fc664f +--- /dev/null ++++ b/dirent/tst-readdir-long.c +@@ -0,0 +1,231 @@ ++/* Test readdir (+variants) behavior with file names of varying length. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* If positive, at this length an EMSGSIZE error is injected. */ ++static _Atomic int inject_error_at_length; ++ ++/* Return a file name, LENGTH bytes long. */ ++static char * ++name_of_length (size_t length) ++{ ++ char *result = xmalloc (length + 1); ++ unsigned int prefix = snprintf (result, length + 1, "%zu-", length); ++ for (size_t i = prefix; i < length; ++i) ++ result[i] = 'A' + ((length + i) % 26); ++ result[length] = '\0'; ++ return result; ++} ++ ++/* Add the directory entry at OFFSET to the stream D. */ ++static uint64_t ++add_directory_entry (struct support_fuse_dirstream *d, uint64_t offset) ++{ ++ unsigned int length = offset + 1; ++ if (length > 1000) ++ /* Longer than what is possible to produce with 256 ++ UTF-8-encoded Unicode code points. */ ++ return 0; ++ ++ char *to_free = NULL; ++ const char *name; ++ uint64_t ino = 1000 + length; /* Arbitrary value, distinct from 1. */ ++ uint32_t type = DT_REG; ++ if (offset <= 1) ++ { ++ type = DT_DIR; ++ name = ".." + !offset; /* "." or "..". */ ++ ino = 1; ++ } ++ else if (length == 1000) ++ name = "short"; ++ else ++ { ++ to_free = name_of_length (length); ++ name = to_free; ++ } ++ ++ ++offset; ++ bool added = support_fuse_dirstream_add (d, ino, offset, type, name); ++ free (to_free); ++ if (added) ++ return offset; ++ else ++ return 0; ++} ++ ++/* Set to true if getdents64 should produce only one entry. */ ++static _Atomic bool one_entry_per_getdents64; ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_READDIR: ++ if (inh->nodeid == 1) ++ { ++ uint64_t offset = support_fuse_cast (READ, inh)->offset; ++ if (inject_error_at_length == offset + 1) ++ support_fuse_reply_error (f, EMSGSIZE); ++ else ++ { ++ struct support_fuse_dirstream *d ++ = support_fuse_prepare_readdir (f); ++ while (true) ++ { ++ offset = add_directory_entry (d, offset); ++ if (offset == 0 || one_entry_per_getdents64 ++ /* Error will be reported at next READDIR. */ ++ || offset + 1 == inject_error_at_length) ++ break; ++ } ++ support_fuse_reply_prepared (f); ++ } ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++/* Run the tests for the specified readdir variant OP. */ ++static void ++run_readdir_tests (struct support_fuse *f, enum support_readdir_op op) ++{ ++ printf ("info: testing %s (inject_error=%d unbuffered=%d)\n", ++ support_readdir_function (op), inject_error_at_length, ++ (int) one_entry_per_getdents64); ++ ++ bool testing_r = support_readdir_r_variant (op); ++ ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ struct support_dirent e = { 0, }; ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 1); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 1); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ ++ for (unsigned int i = 3; i < 1000; ++i) ++ { ++ if (i == inject_error_at_length) ++ /* Error expected below. */ ++ break; ++ ++ if (i >= sizeof ((struct dirent) { 0, }.d_name) && testing_r) ++ /* This is a readir_r test. The longer names are not ++ available because they do not fit into struct dirent. */ ++ break; ++ ++ char *expected_name = name_of_length (i); ++ TEST_COMPARE (strlen (expected_name), i); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 1000 + i); ++ TEST_COMPARE_STRING (e.d_name, expected_name); ++ free (expected_name); ++ } ++ ++ if (inject_error_at_length == 0) ++ { ++ /* Check that the ENAMETOOLONG error does not prevent reading a ++ later short name. */ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 2000); ++ TEST_COMPARE_STRING (e.d_name, "short"); ++ ++ if (testing_r) ++ /* An earlier name was too long. */ ++ support_readdir_expect_error (dir, op, ENAMETOOLONG); ++ else ++ /* Entire directory read without error. */ ++ TEST_VERIFY (!support_readdir (dir, op, &e)); ++ } ++ else ++ support_readdir_expect_error (dir, op, EMSGSIZE); ++ ++ free (e.d_name); ++ xclosedir (dir); ++} ++ ++/* Run all readdir variants for both fully-buffered an unbuffered ++ (one-at-a-time) directory streams. */ ++static void ++run_fully_buffered_and_singleton_buffers (struct support_fuse *f) ++{ ++ for (int do_one_entry = 0; do_one_entry < 2; ++do_one_entry) ++ { ++ one_entry_per_getdents64 = do_one_entry; ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last(); ++ ++op) ++ run_readdir_tests (f, op); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ /* Smoke test for name_of_length. */ ++ { ++ char *name = name_of_length (5); ++ TEST_COMPARE_STRING (name, "5-HIJ"); ++ free (name); ++ ++ name = name_of_length (6); ++ TEST_COMPARE_STRING (name, "6-IJKL"); ++ free (name); ++ } ++ ++ support_fuse_init (); ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ ++ run_fully_buffered_and_singleton_buffers (f); ++ ++ inject_error_at_length = 100; ++ run_fully_buffered_and_singleton_buffers (f); ++ ++ inject_error_at_length = 300; ++ run_fully_buffered_and_singleton_buffers (f); ++ ++ support_fuse_unmount (f); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-56542-9.patch b/SOURCES/glibc-RHEL-56542-9.patch new file mode 100644 index 0000000..4c41176 --- /dev/null +++ b/SOURCES/glibc-RHEL-56542-9.patch @@ -0,0 +1,214 @@ +commit 6f3f6c506cdaf981a4374f1f12863b98ac7fea1a +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + Linux: readdir64_r should not skip d_ino == 0 entries (bug 32126) + + This is the same bug as bug 12165, but for readdir_r. The + regression test covers both bug 12165 and bug 32126. + + Reviewed-by: DJ Delorie + +diff --git a/dirent/Makefile b/dirent/Makefile +index d12be2f0384b184f..4cecd169b42c540b 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -62,6 +62,7 @@ tests := \ + tst-fdopendir \ + tst-fdopendir2 \ + tst-readdir-long \ ++ tst-readdir-zero-inode \ + tst-rewinddir \ + tst-scandir \ + tst-scandir64 \ +diff --git a/dirent/tst-readdir-zero-inode.c b/dirent/tst-readdir-zero-inode.c +new file mode 100644 +index 0000000000000000..af9fb946abe6c483 +--- /dev/null ++++ b/dirent/tst-readdir-zero-inode.c +@@ -0,0 +1,134 @@ ++/* Test that readdir does not skip entries with d_ino == 0 (bug 12165). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Add the directory entry at OFFSET to the stream D. */ ++static uint64_t ++add_directory_entry (struct support_fuse_dirstream *d, uint64_t offset) ++{ ++ bool added = false; ++ ++offset; ++ switch (offset - 1) ++ { ++ case 0: ++ added = support_fuse_dirstream_add (d, 1, offset, DT_DIR, "."); ++ break; ++ case 1: ++ added = support_fuse_dirstream_add (d, 1, offset, DT_DIR, ".."); ++ break; ++ case 2: ++ added = support_fuse_dirstream_add (d, 2, offset, DT_REG, "before"); ++ break; ++ case 3: ++ added = support_fuse_dirstream_add (d, 0, offset, DT_REG, "zero"); ++ break; ++ case 4: ++ added = support_fuse_dirstream_add (d, 3, offset, DT_REG, "after"); ++ break; ++ } ++ if (added) ++ return offset; ++ else ++ return 0; ++} ++ ++/* Set to true if getdents64 should produce only one entry. */ ++static bool one_entry_per_getdents64; ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_READDIR: ++ if (inh->nodeid == 1) ++ { ++ uint64_t offset = support_fuse_cast (READ, inh)->offset; ++ struct support_fuse_dirstream *d ++ = support_fuse_prepare_readdir (f); ++ while (true) ++ { ++ offset = add_directory_entry (d, offset); ++ if (offset == 0 || one_entry_per_getdents64) ++ break; ++ } ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ struct support_dirent e = { 0, }; ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ TEST_COMPARE (e.d_ino, 1); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ TEST_COMPARE (e.d_ino, 1); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "before"); ++ TEST_COMPARE (e.d_ino, 2); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "zero"); ++ TEST_COMPARE (e.d_ino, 0); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "after"); ++ TEST_COMPARE (e.d_ino, 3); ++ ++ TEST_VERIFY (!support_readdir (dir, op, &e)); ++ ++ free (e.d_name); ++ xclosedir (dir); ++ support_fuse_unmount (f); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/readdir64_r.c b/sysdeps/unix/sysv/linux/readdir64_r.c +index 0c60987343b1f37f..2e188364ff5aa143 100644 +--- a/sysdeps/unix/sysv/linux/readdir64_r.c ++++ b/sysdeps/unix/sysv/linux/readdir64_r.c +@@ -37,7 +37,7 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result) + + __libc_lock_lock (dirp->lock); + +- do ++ while (1) + { + if (dirp->offset >= dirp->size) + { +@@ -79,26 +79,21 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result) + + dirp->filepos = dp->d_off; + +- if (reclen > offsetof (struct dirent64, d_name) + NAME_MAX + 1) ++ if (reclen <= offsetof (struct dirent64, d_name) + NAME_MAX + 1) ++ break; ++ ++ /* The record is very long. It could still fit into the ++ caller-supplied buffer if we can skip padding at the end. */ ++ size_t namelen = _D_EXACT_NAMLEN (dp); ++ if (namelen <= NAME_MAX) + { +- /* The record is very long. It could still fit into the +- caller-supplied buffer if we can skip padding at the +- end. */ +- size_t namelen = _D_EXACT_NAMLEN (dp); +- if (namelen <= NAME_MAX) +- reclen = offsetof (struct dirent64, d_name) + namelen + 1; +- else +- { +- /* The name is too long. Ignore this file. */ +- dirp->errcode = ENAMETOOLONG; +- dp->d_ino = 0; +- continue; +- } ++ reclen = offsetof (struct dirent64, d_name) + namelen + 1; ++ break; + } + +- /* Skip deleted and ignored files. */ ++ /* The name is too long. Ignore this file. */ ++ dirp->errcode = ENAMETOOLONG; + } +- while (dp->d_ino == 0); + + if (dp != NULL) + { diff --git a/SOURCES/glibc-RHEL-56743.patch b/SOURCES/glibc-RHEL-56743.patch new file mode 100644 index 0000000..e7b1bda --- /dev/null +++ b/SOURCES/glibc-RHEL-56743.patch @@ -0,0 +1,79 @@ +commit 55cd51d971b84fbb2cc0fe8140cc8581f98582c7 +Author: Joseph Myers +Date: Thu Aug 22 11:25:14 2024 +0000 + + Test mkdirat use of mode argument + + The test io/tst-mkdirat doesn't verify the permissions on the created + directory (thus, doesn't verify at all anything about how mkdirat uses + the mode argument). Add checks of this to the existing test. + + Tested for x86_64. + +diff --git a/io/tst-mkdirat.c b/io/tst-mkdirat.c +index 605e51ef1e966b42..b97bc3ca6d0cdf23 100644 +--- a/io/tst-mkdirat.c ++++ b/io/tst-mkdirat.c +@@ -53,6 +53,10 @@ prepare (void) + static int + do_test (void) + { ++ /* Find the current umask. */ ++ mode_t mask = umask (022); ++ umask (mask); ++ + /* fdopendir takes over the descriptor, make a copy. */ + int dupfd = dup (dir_fd); + if (dupfd == -1) +@@ -107,6 +111,13 @@ do_test (void) + puts ("mkdirat did not create a directory"); + return 1; + } ++ if ((st1.st_mode & 01777) != (~mask & 0777)) ++ { ++ printf ("mkdirat created directory with wrong mode %o, expected %o\n", ++ (unsigned int) (st1.st_mode & 01777), ++ (unsigned int) (~mask & 0777)); ++ return 1; ++ } + + dupfd = dup (dir_fd); + if (dupfd == -1) +@@ -156,6 +167,37 @@ do_test (void) + return 1; + } + ++ /* Test again with a different mode. */ ++ umask (0); ++ e = mkdirat (dir_fd, "some-dir", 01755); ++ umask (mask); ++ if (e == -1) ++ { ++ puts ("directory creation (different mode) failed"); ++ return 1; ++ } ++ if (fstatat64 (dir_fd, "some-dir", &st1, 0) != 0) ++ { ++ puts ("fstat64 (different mode) failed"); ++ return 1; ++ } ++ if (!S_ISDIR (st1.st_mode)) ++ { ++ puts ("mkdirat (different mode) did not create a directory"); ++ return 1; ++ } ++ if ((st1.st_mode & 01777) != 01755) ++ { ++ printf ("mkdirat (different mode) created directory with wrong mode %o\n", ++ (unsigned int) (st1.st_mode & 01777)); ++ return 1; ++ } ++ if (unlinkat (dir_fd, "some-dir", AT_REMOVEDIR) != 0) ++ { ++ puts ("unlinkat (different mode) failed"); ++ return 1; ++ } ++ + close (dir_fd); + + return 0; diff --git a/SOURCES/glibc-RHEL-57586.patch b/SOURCES/glibc-RHEL-57586.patch new file mode 100644 index 0000000..259060a --- /dev/null +++ b/SOURCES/glibc-RHEL-57586.patch @@ -0,0 +1,36 @@ +commit 6efd6cd46bf2257e674be4933a034542d80944eb +Author: Florian Weimer +Date: Fri Sep 6 14:07:00 2024 +0200 + + manual: Safety annotations for clock_gettime, clock_getres + + The annotations are preliminary, for consistency with existing + annotations on gettimeofday etc. + + Reviewed-by: Carlos O'Donell + +Conflicts: + manual/time.texi (fixing typo in context) + +diff --git a/manual/time.texi b/manual/time.texi +index 0c7a942b4c16946a..404d124d1bfdca5c 100644 +--- a/manual/time.texi ++++ b/manual/time.texi +@@ -503,7 +503,8 @@ Systems may support more than just these two clocks. + + @deftypefun int clock_gettime (clockid_t @var{clock}, struct timespec *@var{ts}) + @standards{POSIX.1, time.h} +-Get the current time accoding to the clock identified by @var{clock}, ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++Get the current time according to the clock identified by @var{clock}, + storing it as seconds and nanoseconds in @code{*@var{ts}}. + @xref{Time Types}, for a description of @code{struct timespec}. + +@@ -524,6 +525,7 @@ clock: + + @deftypefun int clock_getres (clockid_t @var{clock}, struct timespec *@var{res}) + @standards{POSIX.1, time.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + Get the actual resolution of the clock identified by @var{clock}, + storing it in @code{*@var{ts}}. + diff --git a/SOURCES/glibc-RHEL-58671.patch b/SOURCES/glibc-RHEL-58671.patch new file mode 100644 index 0000000..a991ece --- /dev/null +++ b/SOURCES/glibc-RHEL-58671.patch @@ -0,0 +1,90 @@ +commit 83fd4149ffdae86c8864a6828f39dd942956636f +Author: Aaron Merey +Date: Thu Sep 19 11:11:39 2024 -0400 + + Test that errno is set to 0 at program startup + + Add new testcase elf/tst-startup-errno.c which tests that errno is set + to 0 at first ELF constructor execution and at the start of the + program's main function. + + Tested for x86_64 + + Reviewed-by: Carlos O'Donell + +diff --git a/elf/Makefile b/elf/Makefile +index ffadf1c61f66bef8..ff59287519433b8d 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -434,6 +434,7 @@ tests += \ + tst-single_threaded-pthread \ + tst-sonamemove-dlopen \ + tst-sonamemove-link \ ++ tst-startup-errno \ + tst-thrlock \ + tst-tls10 \ + tst-tls11 \ +diff --git a/elf/tst-startup-errno.c b/elf/tst-startup-errno.c +new file mode 100644 +index 0000000000000000..59a1005fb674a5c3 +--- /dev/null ++++ b/elf/tst-startup-errno.c +@@ -0,0 +1,58 @@ ++/* Test the value of errno at program startup. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++/* Verify that errno is 0 at first ELF constructor execution and at ++ the start of main. */ ++ ++static void set_ctor_errno (void) __attribute__((constructor)); ++static int ctor_errno = -1; ++ ++static void ++set_ctor_errno (void) ++{ ++ ctor_errno = errno; ++} ++ ++static int ++get_ctor_errno (void) ++{ ++ return ctor_errno; ++} ++ ++int ++main (void) ++{ ++ if (errno != 0) ++ { ++ printf ("At start of main errno set to %d != 0\n", errno); ++ exit (1); ++ } ++ ++ if (get_ctor_errno () != 0) ++ { ++ printf ("At ctor exec errno set to %d != 0\n", get_ctor_errno ()); ++ exit (1); ++ } ++ ++ return 0; ++} ++ diff --git a/SOURCES/glibc-RHEL-58979.patch b/SOURCES/glibc-RHEL-58979.patch new file mode 100644 index 0000000..37cf6a3 --- /dev/null +++ b/SOURCES/glibc-RHEL-58979.patch @@ -0,0 +1,1527 @@ +commit 6ae9836ed24e4dc625b452a1472f1c150f3058cf +Author: Joseph Myers +Date: Fri Nov 29 16:43:56 2024 +0000 + + Add test of ELF hash collisions + + Add tests that the dynamic linker works correctly with symbol names + involving hash collisions, for both choices of hash style (and + --hash-style=both as well). I note that there weren't actually any + previous tests using --hash-style (so tests would only cover the + default linker configuration in that regard). Also test symbol + versions involving hash collisions. + + Tested for x86_64. + +Conflicts: + elf/Makefile (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index ff59287519433b8d..7d686ca7d190c921 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -414,6 +414,12 @@ tests += \ + tst-glibc-hwcaps-mask \ + tst-glibc-hwcaps-prepend \ + tst-global1 \ ++ tst-hash-collision1 \ ++ tst-hash-collision1-gnu \ ++ tst-hash-collision1-sysv \ ++ tst-hash-collision2 \ ++ tst-hash-collision2-gnu \ ++ tst-hash-collision2-sysv \ + tst-initfinilazyfail \ + tst-initorder \ + tst-initorder2 \ +@@ -488,6 +494,7 @@ tests-internal += \ + tst-create_format1 \ + tst-dl-hwcaps_split \ + tst-dlmopen2 \ ++ tst-hash-collision3 \ + tst-ptrguard1 \ + tst-stackguard1 \ + tst-tls-surplus \ +@@ -770,6 +777,16 @@ modules-names = \ + tst-filterobj-filtee \ + tst-filterobj-flt \ + tst-finilazyfailmod \ ++ tst-hash-collision1-mod \ ++ tst-hash-collision1-mod-gnu \ ++ tst-hash-collision1-mod-sysv \ ++ tst-hash-collision2-mod1 \ ++ tst-hash-collision2-mod1-gnu \ ++ tst-hash-collision2-mod1-sysv \ ++ tst-hash-collision2-mod2 \ ++ tst-hash-collision2-mod2-gnu \ ++ tst-hash-collision2-mod2-sysv \ ++ tst-hash-collision3-mod \ + tst-initlazyfailmod \ + tst-initorder2a \ + tst-initorder2b \ +@@ -923,7 +940,8 @@ modules-names += \ + + # Most modules build with _ISOMAC defined, but those filtered out + # depend on internal headers. +-modules-names-tests = $(filter-out ifuncmod% tst-tlsmod%,\ ++modules-names-tests = $(filter-out ifuncmod% tst-tlsmod% \ ++ tst-hash-collision3-mod,\ + $(modules-names)) + + ifeq (yes,$(have-mtls-dialect-gnu2)) +@@ -2781,3 +2799,25 @@ $(objpfx)tst-dlopen-tlsreinit3.out: $(objpfx)tst-auditmod1.so + tst-dlopen-tlsreinit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + $(objpfx)tst-dlopen-tlsreinit4.out: $(objpfx)tst-auditmod1.so + tst-dlopen-tlsreinit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so ++ ++LDFLAGS-tst-hash-collision1-mod.so = -Wl,--hash-style=both ++$(objpfx)tst-hash-collision1: $(objpfx)tst-hash-collision1-mod.so ++LDFLAGS-tst-hash-collision1-mod-gnu.so = -Wl,--hash-style=gnu ++$(objpfx)tst-hash-collision1-gnu: $(objpfx)tst-hash-collision1-mod-gnu.so ++LDFLAGS-tst-hash-collision1-mod-sysv.so = -Wl,--hash-style=sysv ++$(objpfx)tst-hash-collision1-sysv: $(objpfx)tst-hash-collision1-mod-sysv.so ++LDFLAGS-tst-hash-collision2-mod1.so = -Wl,--hash-style=both ++LDFLAGS-tst-hash-collision2-mod2.so = -Wl,--hash-style=both ++$(objpfx)tst-hash-collision2: $(objpfx)tst-hash-collision2-mod1.so \ ++ $(objpfx)tst-hash-collision2-mod2.so ++LDFLAGS-tst-hash-collision2-mod1-gnu.so = -Wl,--hash-style=gnu ++LDFLAGS-tst-hash-collision2-mod2-gnu.so = -Wl,--hash-style=gnu ++$(objpfx)tst-hash-collision2-gnu: $(objpfx)tst-hash-collision2-mod1-gnu.so \ ++ $(objpfx)tst-hash-collision2-mod2-gnu.so ++LDFLAGS-tst-hash-collision2-mod1-sysv.so = -Wl,--hash-style=sysv ++LDFLAGS-tst-hash-collision2-mod2-sysv.so = -Wl,--hash-style=sysv ++$(objpfx)tst-hash-collision2-sysv: $(objpfx)tst-hash-collision2-mod1-sysv.so \ ++ $(objpfx)tst-hash-collision2-mod2-sysv.so ++LDFLAGS-tst-hash-collision3-mod.so = \ ++ -Wl,--version-script=tst-hash-collision3-mod.map ++$(objpfx)tst-hash-collision3: $(objpfx)tst-hash-collision3-mod.so +diff --git a/elf/tst-hash-collision1-gnu.c b/elf/tst-hash-collision1-gnu.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision1-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision1-mod-gnu.c b/elf/tst-hash-collision1-mod-gnu.c +new file mode 100644 +index 0000000000000000..e4d03dd9bfd3520f +--- /dev/null ++++ b/elf/tst-hash-collision1-mod-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1-mod.c" +diff --git a/elf/tst-hash-collision1-mod-sysv.c b/elf/tst-hash-collision1-mod-sysv.c +new file mode 100644 +index 0000000000000000..e4d03dd9bfd3520f +--- /dev/null ++++ b/elf/tst-hash-collision1-mod-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1-mod.c" +diff --git a/elf/tst-hash-collision1-mod.c b/elf/tst-hash-collision1-mod.c +new file mode 100644 +index 0000000000000000..c848af8ae103f8ab +--- /dev/null ++++ b/elf/tst-hash-collision1-mod.c +@@ -0,0 +1,448 @@ ++/* Test ELF hash collisions: shared object. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++ ++int ++foo (void) ++{ ++ return 1; ++} ++ ++int ++Hxxxynpfoo (void) ++{ ++ return 2; ++} ++ ++int ++HxxxynpHxxxynpfoo (void) ++{ ++ return 3; ++} ++ ++int ++HxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 4; ++} ++ ++int ++HxxxynpHxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 5; ++} ++ ++ ++/* Names with hash collisions for GNU hash. */ ++ ++int ++bar (void) ++{ ++ return 10; ++} ++ ++int ++gliinmbar (void) ++{ ++ return 9; ++} ++ ++int ++gliinmgliinmbar (void) ++{ ++ return 8; ++} ++ ++int ++gliinmgliinmgliinmbar (void) ++{ ++ return 7; ++} ++ ++int ++gliinmgliinmgliinmgliinmbar (void) ++{ ++ return 6; ++} ++ ++ ++/* Names with specific hash values for each hash (see ++ tst-hash-collision1.c for details). */ ++ ++int ++Hxxxynp (void) ++{ ++ return 11; ++} ++ ++int ++HxxxypP (void) ++{ ++ return 12; ++} ++ ++int ++Hxxyinp (void) ++{ ++ return 13; ++} ++ ++int ++HxxyipP (void) ++{ ++ return 14; ++} ++ ++int ++HxxykNp (void) ++{ ++ return 15; ++} ++ ++int ++Hxxxyoa (void) ++{ ++ return 16; ++} ++ ++int ++HxxxypQ (void) ++{ ++ return 17; ++} ++ ++int ++HxxxyqA (void) ++{ ++ return 18; ++} ++ ++int ++HxxxzaA (void) ++{ ++ return 19; ++} ++ ++int ++Hxxxz_a (void) ++{ ++ return 20; ++} ++ ++int ++Hxxxyob (void) ++{ ++ return 21; ++} ++ ++int ++HxxxypR (void) ++{ ++ return 22; ++} ++ ++int ++HxxxyqB (void) ++{ ++ return 23; ++} ++ ++int ++HxxxzaB (void) ++{ ++ return 24; ++} ++ ++int ++Hxxxz_b (void) ++{ ++ return 25; ++} ++ ++int ++glidpk (void) ++{ ++ return 26; ++} ++ ++int ++glidqJ (void) ++{ ++ return 27; ++} ++ ++int ++glieOk (void) ++{ ++ return 28; ++} ++ ++int ++gliePJ (void) ++{ ++ return 29; ++} ++ ++int ++gljCpk (void) ++{ ++ return 30; ++} ++ ++int ++glidpl (void) ++{ ++ return 31; ++} ++ ++int ++glidqK (void) ++{ ++ return 32; ++} ++ ++int ++glieOl (void) ++{ ++ return 33; ++} ++ ++int ++gliePK (void) ++{ ++ return 34; ++} ++ ++int ++gljCpl (void) ++{ ++ return 35; ++} ++ ++int ++glidpm (void) ++{ ++ return 36; ++} ++ ++int ++glidqL (void) ++{ ++ return 37; ++} ++ ++int ++glieOm (void) ++{ ++ return 38; ++} ++ ++int ++gliePL (void) ++{ ++ return 39; ++} ++ ++int ++gljCpm (void) ++{ ++ return 40; ++} ++ ++int ++AdfmZru (void) ++{ ++ return 41; ++} ++ ++int ++AdfmZsT (void) ++{ ++ return 42; ++} ++ ++int ++AdfmZt3 (void) ++{ ++ return 43; ++} ++ ++int ++Adfn9ru (void) ++{ ++ return 44; ++} ++ ++int ++Adfn9sT (void) ++{ ++ return 45; ++} ++ ++int ++AdfmZrv (void) ++{ ++ return 46; ++} ++ ++int ++AdfmZsU (void) ++{ ++ return 47; ++} ++ ++int ++AdfmZt4 (void) ++{ ++ return 48; ++} ++ ++int ++Adfn9rv (void) ++{ ++ return 49; ++} ++ ++int ++Adfn9sU (void) ++{ ++ return 50; ++} ++ ++int ++AdfmZrw (void) ++{ ++ return 51; ++} ++ ++int ++AdfmZsV (void) ++{ ++ return 52; ++} ++ ++int ++AdfmZt5 (void) ++{ ++ return 53; ++} ++ ++int ++Adfn9rw (void) ++{ ++ return 54; ++} ++ ++int ++Adfn9sV (void) ++{ ++ return 55; ++} ++ ++int ++AdfmZrx (void) ++{ ++ return 56; ++} ++ ++int ++AdfmZsW (void) ++{ ++ return 57; ++} ++ ++int ++AdfmZt6 (void) ++{ ++ return 58; ++} ++ ++int ++Adfn9rx (void) ++{ ++ return 59; ++} ++ ++int ++Adfn9sW (void) ++{ ++ return 60; ++} ++ ++int ++glidpi (void) ++{ ++ return 61; ++} ++ ++int ++glidqH (void) ++{ ++ return 62; ++} ++ ++int ++glieOi (void) ++{ ++ return 63; ++} ++ ++int ++gliePH (void) ++{ ++ return 64; ++} ++ ++int ++gljCpi (void) ++{ ++ return 65; ++} ++ ++int ++glidpj (void) ++{ ++ return 66; ++} ++ ++int ++glidqI (void) ++{ ++ return 67; ++} ++ ++int ++glieOj (void) ++{ ++ return 68; ++} ++ ++int ++gliePI (void) ++{ ++ return 69; ++} ++ ++int ++gljCpj (void) ++{ ++ return 70; ++} +diff --git a/elf/tst-hash-collision1-sysv.c b/elf/tst-hash-collision1-sysv.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision1-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision1.c b/elf/tst-hash-collision1.c +new file mode 100644 +index 0000000000000000..80ab0da8f56ca9a3 +--- /dev/null ++++ b/elf/tst-hash-collision1.c +@@ -0,0 +1,196 @@ ++/* Test ELF hash collisions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++extern int foo (void); ++extern int Hxxxynpfoo (void); ++extern int HxxxynpHxxxynpfoo (void); ++extern int HxxxynpHxxxynpHxxxynpfoo (void); ++extern int HxxxynpHxxxynpHxxxynpHxxxynpfoo (void); ++ ++/* Names with hash collisions for GNU hash. */ ++extern int bar (void); ++extern int gliinmbar (void); ++extern int gliinmgliinmbar (void); ++extern int gliinmgliinmgliinmbar (void); ++extern int gliinmgliinmgliinmgliinmbar (void); ++ ++/* Classic ELF hash 0. */ ++extern int Hxxxynp (void); ++extern int HxxxypP (void); ++extern int Hxxyinp (void); ++extern int HxxyipP (void); ++extern int HxxykNp (void); ++ ++/* Classic ELF hash 1. */ ++extern int Hxxxyoa (void); ++extern int HxxxypQ (void); ++extern int HxxxyqA (void); ++extern int HxxxzaA (void); ++extern int Hxxxz_a (void); ++ ++/* Classic ELF hash 2. */ ++extern int Hxxxyob (void); ++extern int HxxxypR (void); ++extern int HxxxyqB (void); ++extern int HxxxzaB (void); ++extern int Hxxxz_b (void); ++ ++/* GNU hash 0. */ ++extern int glidpk (void); ++extern int glidqJ (void); ++extern int glieOk (void); ++extern int gliePJ (void); ++extern int gljCpk (void); ++ ++/* GNU hash 1. */ ++extern int glidpl (void); ++extern int glidqK (void); ++extern int glieOl (void); ++extern int gliePK (void); ++extern int gljCpl (void); ++ ++/* GNU hash 2. */ ++extern int glidpm (void); ++extern int glidqL (void); ++extern int glieOm (void); ++extern int gliePL (void); ++extern int gljCpm (void); ++ ++/* GNU hash 0x7ffffffe. */ ++extern int AdfmZru (void); ++extern int AdfmZsT (void); ++extern int AdfmZt3 (void); ++extern int Adfn9ru (void); ++extern int Adfn9sT (void); ++ ++/* GNU hash 0x7fffffff. */ ++extern int AdfmZrv (void); ++extern int AdfmZsU (void); ++extern int AdfmZt4 (void); ++extern int Adfn9rv (void); ++extern int Adfn9sU (void); ++ ++/* GNU hash 0x80000000. */ ++extern int AdfmZrw (void); ++extern int AdfmZsV (void); ++extern int AdfmZt5 (void); ++extern int Adfn9rw (void); ++extern int Adfn9sV (void); ++ ++/* GNU hash 0x80000001. */ ++extern int AdfmZrx (void); ++extern int AdfmZsW (void); ++extern int AdfmZt6 (void); ++extern int Adfn9rx (void); ++extern int Adfn9sW (void); ++ ++/* GNU hash 0xfffffffe. */ ++extern int glidpi (void); ++extern int glidqH (void); ++extern int glieOi (void); ++extern int gliePH (void); ++extern int gljCpi (void); ++ ++/* GNU hash 0xffffffff. */ ++extern int glidpj (void); ++extern int glidqI (void); ++extern int glieOj (void); ++extern int gliePI (void); ++extern int gljCpj (void); ++ ++ ++int ++do_test (void) ++{ ++ TEST_COMPARE (foo (), 1); ++ TEST_COMPARE (Hxxxynpfoo (), 2); ++ TEST_COMPARE (HxxxynpHxxxynpfoo (), 3); ++ TEST_COMPARE (HxxxynpHxxxynpHxxxynpfoo (), 4); ++ TEST_COMPARE (HxxxynpHxxxynpHxxxynpHxxxynpfoo (), 5); ++ TEST_COMPARE (gliinmgliinmgliinmgliinmbar (), 6); ++ TEST_COMPARE (gliinmgliinmgliinmbar (), 7); ++ TEST_COMPARE (gliinmgliinmbar (), 8); ++ TEST_COMPARE (gliinmbar (), 9); ++ TEST_COMPARE (bar (), 10); ++ TEST_COMPARE (Hxxxynp (), 11); ++ TEST_COMPARE (HxxxypP (), 12); ++ TEST_COMPARE (Hxxyinp (), 13); ++ TEST_COMPARE (HxxyipP (), 14); ++ TEST_COMPARE (HxxykNp (), 15); ++ TEST_COMPARE (Hxxxyoa (), 16); ++ TEST_COMPARE (HxxxypQ (), 17); ++ TEST_COMPARE (HxxxyqA (), 18); ++ TEST_COMPARE (HxxxzaA (), 19); ++ TEST_COMPARE (Hxxxz_a (), 20); ++ TEST_COMPARE (Hxxxyob (), 21); ++ TEST_COMPARE (HxxxypR (), 22); ++ TEST_COMPARE (HxxxyqB (), 23); ++ TEST_COMPARE (HxxxzaB (), 24); ++ TEST_COMPARE (Hxxxz_b (), 25); ++ TEST_COMPARE (glidpk (), 26); ++ TEST_COMPARE (glidqJ (), 27); ++ TEST_COMPARE (glieOk (), 28); ++ TEST_COMPARE (gliePJ (), 29); ++ TEST_COMPARE (gljCpk (), 30); ++ TEST_COMPARE (glidpl (), 31); ++ TEST_COMPARE (glidqK (), 32); ++ TEST_COMPARE (glieOl (), 33); ++ TEST_COMPARE (gliePK (), 34); ++ TEST_COMPARE (gljCpl (), 35); ++ TEST_COMPARE (glidpm (), 36); ++ TEST_COMPARE (glidqL (), 37); ++ TEST_COMPARE (glieOm (), 38); ++ TEST_COMPARE (gliePL (), 39); ++ TEST_COMPARE (gljCpm (), 40); ++ TEST_COMPARE (AdfmZru (), 41); ++ TEST_COMPARE (AdfmZsT (), 42); ++ TEST_COMPARE (AdfmZt3 (), 43); ++ TEST_COMPARE (Adfn9ru (), 44); ++ TEST_COMPARE (Adfn9sT (), 45); ++ TEST_COMPARE (AdfmZrv (), 46); ++ TEST_COMPARE (AdfmZsU (), 47); ++ TEST_COMPARE (AdfmZt4 (), 48); ++ TEST_COMPARE (Adfn9rv (), 49); ++ TEST_COMPARE (Adfn9sU (), 50); ++ TEST_COMPARE (AdfmZrw (), 51); ++ TEST_COMPARE (AdfmZsV (), 52); ++ TEST_COMPARE (AdfmZt5 (), 53); ++ TEST_COMPARE (Adfn9rw (), 54); ++ TEST_COMPARE (Adfn9sV (), 55); ++ TEST_COMPARE (AdfmZrx (), 56); ++ TEST_COMPARE (AdfmZsW (), 57); ++ TEST_COMPARE (AdfmZt6 (), 58); ++ TEST_COMPARE (Adfn9rx (), 59); ++ TEST_COMPARE (Adfn9sW (), 60); ++ TEST_COMPARE (glidpi (), 61); ++ TEST_COMPARE (glidqH (), 62); ++ TEST_COMPARE (glieOi (), 63); ++ TEST_COMPARE (gliePH (), 64); ++ TEST_COMPARE (gljCpi (), 65); ++ TEST_COMPARE (glidpj (), 66); ++ TEST_COMPARE (glidqI (), 67); ++ TEST_COMPARE (glieOj (), 68); ++ TEST_COMPARE (gliePI (), 69); ++ TEST_COMPARE (gljCpj (), 70); ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-hash-collision2-gnu.c b/elf/tst-hash-collision2-gnu.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision2-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision2-mod1-gnu.c b/elf/tst-hash-collision2-mod1-gnu.c +new file mode 100644 +index 0000000000000000..9aa5cc1477166c0f +--- /dev/null ++++ b/elf/tst-hash-collision2-mod1-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod1.c" +diff --git a/elf/tst-hash-collision2-mod1-sysv.c b/elf/tst-hash-collision2-mod1-sysv.c +new file mode 100644 +index 0000000000000000..9aa5cc1477166c0f +--- /dev/null ++++ b/elf/tst-hash-collision2-mod1-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod1.c" +diff --git a/elf/tst-hash-collision2-mod1.c b/elf/tst-hash-collision2-mod1.c +new file mode 100644 +index 0000000000000000..6adf75eb35117d69 +--- /dev/null ++++ b/elf/tst-hash-collision2-mod1.c +@@ -0,0 +1,280 @@ ++/* Test ELF hash collisions: shared object 1. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++ ++int ++foo (void) ++{ ++ return 1; ++} ++ ++int ++Hxxxynpfoo (void) ++{ ++ return 2; ++} ++ ++int ++HxxxynpHxxxynpfoo (void) ++{ ++ return 3; ++} ++ ++ ++/* Names with hash collisions for GNU hash. */ ++ ++int ++bar (void) ++{ ++ return 10; ++} ++ ++int ++gliinmbar (void) ++{ ++ return 9; ++} ++ ++int ++gliinmgliinmbar (void) ++{ ++ return 8; ++} ++ ++ ++/* Names with specific hash values for each hash (see ++ tst-hash-collision1.c for details). */ ++ ++int ++Hxxxynp (void) ++{ ++ return 11; ++} ++ ++int ++HxxxypP (void) ++{ ++ return 12; ++} ++ ++int ++Hxxyinp (void) ++{ ++ return 13; ++} ++ ++int ++Hxxxyoa (void) ++{ ++ return 16; ++} ++ ++int ++HxxxypQ (void) ++{ ++ return 17; ++} ++ ++int ++HxxxyqA (void) ++{ ++ return 18; ++} ++ ++int ++Hxxxyob (void) ++{ ++ return 21; ++} ++ ++int ++HxxxypR (void) ++{ ++ return 22; ++} ++ ++int ++HxxxyqB (void) ++{ ++ return 23; ++} ++ ++int ++glidpk (void) ++{ ++ return 26; ++} ++ ++int ++glidqJ (void) ++{ ++ return 27; ++} ++ ++int ++glieOk (void) ++{ ++ return 28; ++} ++ ++int ++glidpl (void) ++{ ++ return 31; ++} ++ ++int ++glidqK (void) ++{ ++ return 32; ++} ++ ++int ++glieOl (void) ++{ ++ return 33; ++} ++ ++int ++glidpm (void) ++{ ++ return 36; ++} ++ ++int ++glidqL (void) ++{ ++ return 37; ++} ++ ++int ++glieOm (void) ++{ ++ return 38; ++} ++ ++int ++AdfmZru (void) ++{ ++ return 41; ++} ++ ++int ++AdfmZsT (void) ++{ ++ return 42; ++} ++ ++int ++AdfmZt3 (void) ++{ ++ return 43; ++} ++ ++int ++AdfmZrv (void) ++{ ++ return 46; ++} ++ ++int ++AdfmZsU (void) ++{ ++ return 47; ++} ++ ++int ++AdfmZt4 (void) ++{ ++ return 48; ++} ++ ++int ++AdfmZrw (void) ++{ ++ return 51; ++} ++ ++int ++AdfmZsV (void) ++{ ++ return 52; ++} ++ ++int ++AdfmZt5 (void) ++{ ++ return 53; ++} ++ ++int ++AdfmZrx (void) ++{ ++ return 56; ++} ++ ++int ++AdfmZsW (void) ++{ ++ return 57; ++} ++ ++int ++AdfmZt6 (void) ++{ ++ return 58; ++} ++ ++int ++glidpi (void) ++{ ++ return 61; ++} ++ ++int ++glidqH (void) ++{ ++ return 62; ++} ++ ++int ++glieOi (void) ++{ ++ return 63; ++} ++ ++int ++glidpj (void) ++{ ++ return 66; ++} ++ ++int ++glidqI (void) ++{ ++ return 67; ++} ++ ++int ++glieOj (void) ++{ ++ return 68; ++} +diff --git a/elf/tst-hash-collision2-mod2-gnu.c b/elf/tst-hash-collision2-mod2-gnu.c +new file mode 100644 +index 0000000000000000..39579f6736fe366d +--- /dev/null ++++ b/elf/tst-hash-collision2-mod2-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod2.c" +diff --git a/elf/tst-hash-collision2-mod2-sysv.c b/elf/tst-hash-collision2-mod2-sysv.c +new file mode 100644 +index 0000000000000000..39579f6736fe366d +--- /dev/null ++++ b/elf/tst-hash-collision2-mod2-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod2.c" +diff --git a/elf/tst-hash-collision2-mod2.c b/elf/tst-hash-collision2-mod2.c +new file mode 100644 +index 0000000000000000..e0bb90e60bc477b7 +--- /dev/null ++++ b/elf/tst-hash-collision2-mod2.c +@@ -0,0 +1,196 @@ ++/* Test ELF hash collisions: shared object 2. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++ ++int ++HxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 4; ++} ++ ++int ++HxxxynpHxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 5; ++} ++ ++ ++/* Names with hash collisions for GNU hash. */ ++ ++int ++gliinmgliinmgliinmbar (void) ++{ ++ return 7; ++} ++ ++int ++gliinmgliinmgliinmgliinmbar (void) ++{ ++ return 6; ++} ++ ++ ++/* Names with specific hash values for each hash (see ++ tst-hash-collision1.c for details). */ ++ ++int ++HxxyipP (void) ++{ ++ return 14; ++} ++ ++int ++HxxykNp (void) ++{ ++ return 15; ++} ++ ++int ++HxxxzaA (void) ++{ ++ return 19; ++} ++ ++int ++Hxxxz_a (void) ++{ ++ return 20; ++} ++ ++int ++HxxxzaB (void) ++{ ++ return 24; ++} ++ ++int ++Hxxxz_b (void) ++{ ++ return 25; ++} ++ ++int ++gliePJ (void) ++{ ++ return 29; ++} ++ ++int ++gljCpk (void) ++{ ++ return 30; ++} ++ ++int ++gliePK (void) ++{ ++ return 34; ++} ++ ++int ++gljCpl (void) ++{ ++ return 35; ++} ++ ++int ++gliePL (void) ++{ ++ return 39; ++} ++ ++int ++gljCpm (void) ++{ ++ return 40; ++} ++ ++int ++Adfn9ru (void) ++{ ++ return 44; ++} ++ ++int ++Adfn9sT (void) ++{ ++ return 45; ++} ++ ++int ++Adfn9rv (void) ++{ ++ return 49; ++} ++ ++int ++Adfn9sU (void) ++{ ++ return 50; ++} ++ ++int ++Adfn9rw (void) ++{ ++ return 54; ++} ++ ++int ++Adfn9sV (void) ++{ ++ return 55; ++} ++ ++int ++Adfn9rx (void) ++{ ++ return 59; ++} ++ ++int ++Adfn9sW (void) ++{ ++ return 60; ++} ++ ++int ++gliePH (void) ++{ ++ return 64; ++} ++ ++int ++gljCpi (void) ++{ ++ return 65; ++} ++ ++int ++gliePI (void) ++{ ++ return 69; ++} ++ ++int ++gljCpj (void) ++{ ++ return 70; ++} +diff --git a/elf/tst-hash-collision2-sysv.c b/elf/tst-hash-collision2-sysv.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision2-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision2.c b/elf/tst-hash-collision2.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision2.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision3-mod.c b/elf/tst-hash-collision3-mod.c +new file mode 100644 +index 0000000000000000..f24a15c7d3b78aa7 +--- /dev/null ++++ b/elf/tst-hash-collision3-mod.c +@@ -0,0 +1,88 @@ ++/* Test ELF symbol version hash collisions: shared object. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++int ++foo1 (void) ++{ ++ return 1; ++} ++ ++int ++foo2 (void) ++{ ++ return 2; ++} ++ ++int ++foo3 (void) ++{ ++ return 3; ++} ++ ++int ++foo4 (void) ++{ ++ return 4; ++} ++ ++int ++foo5 (void) ++{ ++ return 5; ++} ++ ++int ++bar1 (void) ++{ ++ return 6; ++} ++ ++int ++bar2 (void) ++{ ++ return 7; ++} ++ ++int ++bar3 (void) ++{ ++ return 8; ++} ++ ++int ++bar4 (void) ++{ ++ return 9; ++} ++ ++int ++bar5 (void) ++{ ++ return 10; ++} ++ ++symbol_version (foo1, foo, Hxxxyoa); ++symbol_version (foo2, foo, HxxxypQ); ++symbol_version (foo3, foo, HxxxyqA); ++symbol_version (foo4, foo, HxxxzaA); ++symbol_version (foo5, foo, Hxxxz_a); ++symbol_version (bar1, bar, Hxxxyob); ++symbol_version (bar2, bar, HxxxypR); ++symbol_version (bar3, bar, HxxxyqB); ++symbol_version (bar4, bar, HxxxzaB); ++symbol_version (bar5, bar, Hxxxz_b); +diff --git a/elf/tst-hash-collision3-mod.map b/elf/tst-hash-collision3-mod.map +new file mode 100644 +index 0000000000000000..1b7d8498309c606b +--- /dev/null ++++ b/elf/tst-hash-collision3-mod.map +@@ -0,0 +1,43 @@ ++Base { ++ local: *; ++}; ++ ++Hxxxyoa { ++ global: foo; ++} Base; ++ ++HxxxypQ { ++ global: foo; ++} Base; ++ ++HxxxyqA { ++ global: foo; ++} Base; ++ ++HxxxzaA { ++ global: foo; ++} Base; ++ ++Hxxxz_a { ++ global: foo; ++} Base; ++ ++Hxxxyob { ++ global: bar; ++} Base; ++ ++HxxxypR { ++ global: bar; ++} Base; ++ ++HxxxyqB { ++ global: bar; ++} Base; ++ ++HxxxzaB { ++ global: bar; ++} Base; ++ ++Hxxxz_b { ++ global: bar; ++} Base; +diff --git a/elf/tst-hash-collision3.c b/elf/tst-hash-collision3.c +new file mode 100644 +index 0000000000000000..309869c3f86d3859 +--- /dev/null ++++ b/elf/tst-hash-collision3.c +@@ -0,0 +1,61 @@ ++/* Test ELF symbol version hash collisions. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++extern int ref_foo1 (void); ++extern int ref_foo2 (void); ++extern int ref_foo3 (void); ++extern int ref_foo4 (void); ++extern int ref_foo5 (void); ++extern int ref_bar1 (void); ++extern int ref_bar2 (void); ++extern int ref_bar3 (void); ++extern int ref_bar4 (void); ++extern int ref_bar5 (void); ++ ++symbol_version_reference (ref_foo1, foo, Hxxxyoa); ++symbol_version_reference (ref_foo2, foo, HxxxypQ); ++symbol_version_reference (ref_foo3, foo, HxxxyqA); ++symbol_version_reference (ref_foo4, foo, HxxxzaA); ++symbol_version_reference (ref_foo5, foo, Hxxxz_a); ++symbol_version_reference (ref_bar1, bar, Hxxxyob); ++symbol_version_reference (ref_bar2, bar, HxxxypR); ++symbol_version_reference (ref_bar3, bar, HxxxyqB); ++symbol_version_reference (ref_bar4, bar, HxxxzaB); ++symbol_version_reference (ref_bar5, bar, Hxxxz_b); ++ ++ ++int ++do_test (void) ++{ ++ TEST_COMPARE (ref_foo1 (), 1); ++ TEST_COMPARE (ref_foo2 (), 2); ++ TEST_COMPARE (ref_foo3 (), 3); ++ TEST_COMPARE (ref_foo4 (), 4); ++ TEST_COMPARE (ref_foo5 (), 5); ++ TEST_COMPARE (ref_bar1 (), 6); ++ TEST_COMPARE (ref_bar2 (), 7); ++ TEST_COMPARE (ref_bar3 (), 8); ++ TEST_COMPARE (ref_bar4 (), 9); ++ TEST_COMPARE (ref_bar5 (), 10); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-58987-1.patch b/SOURCES/glibc-RHEL-58987-1.patch new file mode 100644 index 0000000..e941392 --- /dev/null +++ b/SOURCES/glibc-RHEL-58987-1.patch @@ -0,0 +1,26 @@ +commit 062257c5d929e3c9a83a26624a09e57936ac6b5e +Author: Joseph Myers +Date: Thu Dec 5 21:40:57 2024 +0000 + + Fix typo in elf/Makefile:postclean-generated + + The postclean-generated setting in elf/Makefile lists + $(objpfx)/dso-sort-tests-2.generated-makefile twice and + $(objpfx)/dso-sort-tests-1.generated-makefile not at all, which looks + like a typo; fix it to list each once. + + Tested for x86_64. + +diff --git a/elf/Makefile b/elf/Makefile +index 96d5c290c9447c74..dfdcfc8e3d1e1770 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -1140,7 +1140,7 @@ $(objpfx)$(1).generated-makefile: $(1) + endef + endif + +-postclean-generated += $(objpfx)/dso-sort-tests-2.generated-makefile \ ++postclean-generated += $(objpfx)/dso-sort-tests-1.generated-makefile \ + $(objpfx)/dso-sort-tests-2.generated-makefile + + # Generate from each testcase description file diff --git a/SOURCES/glibc-RHEL-58987-2.patch b/SOURCES/glibc-RHEL-58987-2.patch new file mode 100644 index 0000000..fcbf4ba --- /dev/null +++ b/SOURCES/glibc-RHEL-58987-2.patch @@ -0,0 +1,333 @@ +commit d7f587398cfda79a48cde94a38c4eee660781d30 +Author: Joseph Myers +Date: Thu Dec 19 18:56:04 2024 +0000 + + Add further DSO dependency sorting tests + + The current DSO dependency sorting tests are for a limited number of + specific cases, including some from particular bug reports. + + Add tests that systematically cover all possible DAGs for an + executable and the shared libraries it depends on, directly or + indirectly, up to four objects (an executable and three shared + libraries). (For this kind of DAG - ones with a single source vertex + from which all others are reachable, and an ordering on the edges from + each vertex - there are 57 DAGs on four vertices, 3399 on five + vertices and 1026944 on six vertices; see + https://arxiv.org/pdf/2303.14710 for more details on this enumeration. + I've tested that the 3399 cases with five vertices do all pass if + enabled.) + + These tests are replicating the sorting logic from the dynamic linker + (thereby, for example, asserting that it doesn't accidentally change); + I'm not claiming that the logic in the dynamic linker is in some + abstract sense optimal. Note that these tests do illustrate how in + some cases the two sorting algorithms produce different results for a + DAG (I think all the existing tests for such differences are ones + involving cycles, and the motivation for the new algorithm was also to + improve the handling of cycles): + + tst-dso-ordering-all4-44: a->[bc];{}->[cba] + output(glibc.rtld.dynamic_sort=1): c>b>a>{}c>a>{}[abc] + output: c>b>a>{}[cb];{}->[cba] + output: c>b>a>{} $@ ++ ++$(objpfx)dso-sort-tests-all3.def: dso-sort-tests-all.py ++ $(PYTHON) $< 3 > $@ ++ ++$(objpfx)dso-sort-tests-all4.def: dso-sort-tests-all.py ++ $(PYTHON) $< 4 > $@ ++ ++$(eval $(call include_dsosort_tests_objpfx,dso-sort-tests-all2.def)) ++$(eval $(call include_dsosort_tests_objpfx,dso-sort-tests-all3.def)) ++$(eval $(call include_dsosort_tests_objpfx,dso-sort-tests-all4.def)) ++endif # $(have-tunables) + + check-abi: $(objpfx)check-abi-ld.out + tests-special += $(objpfx)check-abi-ld.out +diff --git a/elf/dso-sort-tests-all.py b/elf/dso-sort-tests-all.py +new file mode 100755 +index 0000000000000000..703e7d2eddae3482 +--- /dev/null ++++ b/elf/dso-sort-tests-all.py +@@ -0,0 +1,218 @@ ++#!/usr/bin/env python3 ++# Generate all DAGs for dependency ordering of a given number of objects. ++# Copyright (C) 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++# ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++# ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++import argparse ++import sys ++ ++ ++def print_dag(state, dag, postorder, postorder_new): ++ """Print a DAG in the form used by dso-ordering-test.py.""" ++ out = [] ++ for i in range(len(dag)): ++ if dag[i]: ++ if i == len(dag) - 1: ++ name = '{}' ++ else: ++ name = chr(ord('a') + len(dag) - 2 - i) ++ this_deps = [chr(ord('a') + len(dag) - 2 - j) for j in dag[i]] ++ this_out = ('[%s]' % (''.join(this_deps)) ++ if len(this_deps) > 1 ++ else this_deps[0]) ++ out.append('%s->%s' % (name, this_out)) ++ output_old = ( ++ '%s>{}<%s' % ++ ('>'.join(chr(ord('a') + i) for i in range(len(dag) - 2, -1, -1)), ++ '<'.join(chr(ord('a') + i) for i in range(0, len(dag) - 1)))) ++ if postorder == postorder_new: ++ print('tst-dso-ordering-all%d-%d: %s\n' ++ 'output: %s\n' ++ % (len(dag), state['num_dags'], ';'.join(out), output_old)) ++ else: ++ names_new = [chr(ord('a') + len(dag) - 2 - x) ++ for x in postorder_new[:-1]] ++ output_new = '%s>{}<%s' % ('>'.join(names_new), ++ '<'.join(reversed(names_new))) ++ print('tst-dso-ordering-all%d-%d: %s\n' ++ 'output(glibc.rtld.dynamic_sort=1): %s\n' ++ 'output(glibc.rtld.dynamic_sort=2): %s\n' ++ % (len(dag), state['num_dags'], ';'.join(out), output_old, ++ output_new)) ++ state['num_dags'] += 1 ++ ++ ++def gen_postorder_old(dag, postorder): ++ """Generate a postorder traversal of the vertices of the given ++ DAG, in the particular choice of ordering that corresponds to how ++ the dynamic linker sorts constructor executions (old algorithm).""" ++ # First list all the vertices, breadth-first. ++ postorder.append(len(dag) - 1) ++ for i in range(len(dag)): ++ for v in dag[postorder[i]]: ++ if v not in postorder: ++ postorder.append(v) ++ # Now move any vertex with an edge from a later one to just after ++ # the last vertex with an edge to it (emulating the older dynamic ++ # linker algorithm). ++ changed = True ++ while changed: ++ changed = False ++ i = 0 ++ while i < len(dag): ++ move_past = None ++ for k in range(len(dag) - 1, i, -1): ++ if postorder[i] in dag[postorder[k]]: ++ move_past = k ++ break ++ if move_past is None: ++ i += 1 ++ else: ++ changed = True ++ postorder[i:k+1] = postorder[i+1:k+1] + [postorder[i]] ++ # Finally, reverse the list. ++ postorder.reverse() ++ ++ ++def gen_postorder_dfs(dag, postorder, v): ++ """Traverse the dependencies of a vertex as part of generating a ++ postorder traversal of the given DAG (new algorithm).""" ++ if v in postorder: ++ return ++ for d in dag[v]: ++ gen_postorder_dfs(dag, postorder, d) ++ postorder.append(v) ++ ++ ++def gen_postorder_new(dag, postorder): ++ """Generate a postorder traversal of the vertices of the given ++ DAG, in the particular choice of ordering that corresponds to how ++ the dynamic linker sorts constructor executions (new algorithm).""" ++ # First list all the vertices, breadth-first. ++ tmp = [] ++ tmp.append(len(dag) - 1) ++ for i in range(len(dag)): ++ for v in dag[tmp[i]]: ++ if v not in tmp: ++ tmp.append(v) ++ # Starting at the end of the breadth-first list, do depth-first ++ # traversal of dependencies to add to the final ordering. ++ for v in reversed(tmp): ++ gen_postorder_dfs(dag, postorder, v) ++ ++ ++def gen_orderings_rec_sub(state, dag, num_done, num_swaps_done): ++ """Generate possible orderings for the edges out from each vertex ++ of a DAG and test whether a postorder traversal yields the ++ vertices in order, where orderings have already been generated for ++ some number of vertices and some number of initial edges have been ++ chosen in the ordering for the next vertex.""" ++ if num_swaps_done >= len(dag[num_done]) - 1: ++ gen_orderings_rec(state, dag, num_done + 1) ++ else: ++ for i in range(num_swaps_done, len(dag[num_done])): ++ ndag = dag ++ if i != num_swaps_done: ++ ndag = ndag.copy() ++ ndag[num_done] = ndag[num_done].copy() ++ first = ndag[num_done][num_swaps_done] ++ second = ndag[num_done][i] ++ ndag[num_done][i] = first ++ ndag[num_done][num_swaps_done] = second ++ gen_orderings_rec_sub(state, ndag, num_done, num_swaps_done + 1) ++ ++def gen_orderings_rec(state, dag, num_done): ++ """Generate possible orderings for the edges out from each vertex ++ of a DAG and test whether a postorder traversal yields the ++ vertices in order, where orderings have already been generated for ++ some number of vertices.""" ++ if num_done == len(dag): ++ postorder = [] ++ gen_postorder_old(dag, postorder) ++ if postorder == sorted(postorder): ++ postorder_new = [] ++ gen_postorder_new(dag, postorder_new) ++ print_dag(state, dag, postorder, postorder_new) ++ else: ++ gen_orderings_rec_sub(state, dag, num_done, 0) ++ ++ ++def gen_orderings(state, dag): ++ """Generate possible orderings for the edges out from each vertex ++ of a DAG and test whether a postorder traversal yields the ++ vertices in order.""" ++ gen_orderings_rec(state, dag, 0) ++ ++ ++def gen_dags_rec_sub(state, partial_dag, num_vertices, num_done_last): ++ """Generate DAGs, where a partial DAG for an initial subsequence ++ of the vertices, and partial information about edges from the last ++ vertex, are passed in.""" ++ if num_done_last == len(partial_dag) - 1: ++ gen_dags_rec(state, partial_dag, num_vertices) ++ else: ++ # Recurse with an edge to vertex num_done_last. ++ new_dag = partial_dag.copy() ++ new_dag[-1] = new_dag[-1].copy() ++ new_dag[-1].append(num_done_last) ++ gen_dags_rec_sub(state, new_dag, num_vertices, num_done_last + 1) ++ # Recurse without an edge to vertex num_done_last, unless this is ++ # the last vertex and num_done_last is not otherwise reachable. ++ can_recurse_without = len(partial_dag) < num_vertices ++ if not can_recurse_without: ++ for i in range(num_done_last + 1, len(partial_dag) - 1): ++ if num_done_last in partial_dag[i]: ++ can_recurse_without = True ++ break ++ if can_recurse_without: ++ gen_dags_rec_sub(state, partial_dag, num_vertices, ++ num_done_last + 1) ++ ++ ++def gen_dags_rec(state, partial_dag, num_vertices): ++ """Generate DAGs, where a partial DAG for an initial subsequence ++ of the vertices is passed in.""" ++ if len(partial_dag) == num_vertices: ++ gen_orderings(state, partial_dag) ++ else: ++ partial_dag = partial_dag.copy() ++ partial_dag.append([]) ++ gen_dags_rec_sub(state, partial_dag, num_vertices, 0) ++ ++ ++def gen_dags(state, num_vertices): ++ """Generate DAGs with the given number of vertices, last vertex a ++ distinguished root vertex from which all the others can be ++ reached, order of edges from each vertex considered significant, ++ such that a postorder traversal (corresponding to the order in ++ which DSO dependency constructors are executed) yields the ++ vertices in order.""" ++ gen_dags_rec(state, [[]], num_vertices) ++ ++ ++def main(argv): ++ """The main entry point.""" ++ parser = argparse.ArgumentParser( ++ description='Generate DAGs to test DSO dependency ordering.') ++ parser.add_argument('num_objects', help='number of objects in DAG') ++ print('tunable_option: glibc.rtld.dynamic_sort=1\n' ++ 'tunable_option: glibc.rtld.dynamic_sort=2\n') ++ gen_dags({'num_dags': 0}, int(parser.parse_args(argv).num_objects)) ++ ++ ++if __name__ == '__main__': ++ main(sys.argv[1:]) diff --git a/SOURCES/glibc-RHEL-58989-1.patch b/SOURCES/glibc-RHEL-58989-1.patch new file mode 100644 index 0000000..dd7bd38 --- /dev/null +++ b/SOURCES/glibc-RHEL-58989-1.patch @@ -0,0 +1,228 @@ +commit 3d53d18fc71c5d9ef4773b8bce04d54b80181926 +Author: Adhemerval Zanella +Date: Tue Mar 12 13:21:20 2024 -0300 + + elf: Enable TLS descriptor tests on aarch64 + + The aarch64 uses 'trad' for traditional tls and 'desc' for tls + descriptors, but unlike other targets it defaults to 'desc'. The + gnutls2 configure check does not set aarch64 as an ABI that uses + TLS descriptors, which then disable somes stests. + + Also rename the internal machinery fron gnu2 to tls descriptors. + + Checked on aarch64-linux-gnu. + Reviewed-by: H.J. Lu + + +Conflicts: + configure (regenerated) + configure.ac (fixed context) + elf/Makefile (fixed context) + sysdeps/arm/Makefile (fixed context) + +diff --git a/configure b/configure +index afa094324cdcf96d..605309159db1e2a0 100755 +--- a/configure ++++ b/configure +@@ -619,7 +619,7 @@ LIBGD + libc_cv_cc_loop_to_function + libc_cv_cc_submachine + libc_cv_cc_nofma +-libc_cv_mtls_dialect_gnu2 ++libc_cv_mtls_descriptor + fno_unit_at_a_time + libc_cv_has_glob_dat + libc_cv_hashstyle +@@ -3896,6 +3896,9 @@ libc_config_ok=no + # whether to use such directories. + with_fp_cond=1 + ++# A preconfigure script may define another name to TLS descriptor variant ++mtls_descriptor=gnu2 ++ + if frags=`ls -d $srcdir/sysdeps/*/preconfigure 2> /dev/null` + then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysdeps preconfigure fragments" >&5 +@@ -6162,9 +6165,9 @@ else + fi + + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mtls-dialect=gnu2" >&5 +-$as_echo_n "checking for -mtls-dialect=gnu2... " >&6; } +-if ${libc_cv_mtls_dialect_gnu2+:} false; then : ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tls descriptor support" >&5 ++$as_echo_n "checking for tls descriptor support... " >&6; } ++if ${libc_cv_mtls_descriptor+:} false; then : + $as_echo_n "(cached) " >&6 + else + cat > conftest.c <&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then +- libc_cv_mtls_dialect_gnu2=yes ++ libc_cv_mtls_descriptor=$mtls_descriptor + else +- libc_cv_mtls_dialect_gnu2=no ++ libc_cv_mtls_descriptor=no + fi + rm -f conftest* + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_dialect_gnu2" >&5 +-$as_echo "$libc_cv_mtls_dialect_gnu2" >&6; } ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_descriptor" >&5 ++$as_echo "$libc_cv_mtls_descriptor" >&6; } + + config_vars="$config_vars +-have-mtls-dialect-gnu2 = $libc_cv_mtls_dialect_gnu2" ++have-mtls-descriptor = $libc_cv_mtls_descriptor" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc puts quotes around section names" >&5 + $as_echo_n "checking whether cc puts quotes around section names... " >&6; } +diff --git a/configure.ac b/configure.ac +index 85ea64f9f5f4fd35..d18d8bdff9a7849d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -533,6 +533,9 @@ libc_config_ok=no + # whether to use such directories. + with_fp_cond=1 + ++# A preconfigure script may define another name to TLS descriptor variant ++mtls_descriptor=gnu2 ++ + dnl Let sysdeps/*/preconfigure act here. + LIBC_PRECONFIGURE([$srcdir], [for sysdeps]) + +@@ -1429,7 +1432,7 @@ else + fi + AC_SUBST(fno_unit_at_a_time) + +-AC_CACHE_CHECK([for -mtls-dialect=gnu2], libc_cv_mtls_dialect_gnu2, ++AC_CACHE_CHECK([for tls descriptor support], libc_cv_mtls_descriptor, + [dnl + cat > conftest.c <&AS_MESSAGE_LOG_FD]) ++if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles ++ -shared conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD]) + then +- libc_cv_mtls_dialect_gnu2=yes ++ libc_cv_mtls_descriptor=$mtls_descriptor + else +- libc_cv_mtls_dialect_gnu2=no ++ libc_cv_mtls_descriptor=no + fi + rm -f conftest*]) +-AC_SUBST(libc_cv_mtls_dialect_gnu2) +-LIBC_CONFIG_VAR([have-mtls-dialect-gnu2], [$libc_cv_mtls_dialect_gnu2]) ++AC_SUBST(libc_cv_mtls_descriptor) ++LIBC_CONFIG_VAR([have-mtls-descriptor], [$libc_cv_mtls_descriptor]) + + AC_CACHE_CHECK(whether cc puts quotes around section names, + libc_cv_have_section_quotes, +diff --git a/elf/Makefile b/elf/Makefile +index 7d686ca7d190c921..65eb3b9b28183821 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -944,13 +944,13 @@ modules-names-tests = $(filter-out ifuncmod% tst-tlsmod% \ + tst-hash-collision3-mod,\ + $(modules-names)) + +-ifeq (yes,$(have-mtls-dialect-gnu2)) ++ifneq (no,$(have-mtls-descriptor)) + tests += tst-gnu2-tls1 + modules-names += tst-gnu2-tls1mod + $(objpfx)tst-gnu2-tls1: $(objpfx)tst-gnu2-tls1mod.so + tst-gnu2-tls1mod.so-no-z-defs = yes +-CFLAGS-tst-gnu2-tls1mod.c += -mtls-dialect=gnu2 +-endif # $(have-mtls-dialect-gnu2) ++CFLAGS-tst-gnu2-tls1mod.c += -mtls-dialect=$(have-mtls-descriptor) ++endif # $(have-mtls-descriptor) + + ifeq (yes,$(have-protected-data)) + modules-names += tst-protected1moda tst-protected1modb +@@ -2719,11 +2719,11 @@ $(objpfx)tst-tls-allocation-failure-static-patched.out: \ + $(objpfx)tst-audit-tlsdesc: $(objpfx)tst-audit-tlsdesc-mod1.so \ + $(objpfx)tst-audit-tlsdesc-mod2.so \ + $(shared-thread-library) +-ifeq (yes,$(have-mtls-dialect-gnu2)) ++ifneq (no,$(have-mtls-descriptor)) + # The test is valid for all TLS types, but we want to exercise GNU2 + # TLS if possible. +-CFLAGS-tst-audit-tlsdesc-mod1.c += -mtls-dialect=gnu2 +-CFLAGS-tst-audit-tlsdesc-mod2.c += -mtls-dialect=gnu2 ++CFLAGS-tst-audit-tlsdesc-mod1.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-audit-tlsdesc-mod2.c += -mtls-dialect=$(have-mtls-descriptor) + endif + $(objpfx)tst-audit-tlsdesc-dlopen: $(shared-thread-library) + $(objpfx)tst-audit-tlsdesc-dlopen.out: $(objpfx)tst-audit-tlsdesc-mod1.so \ +@@ -2763,10 +2763,14 @@ $(objpfx)tst-tlsgap.out: \ + $(objpfx)tst-tlsgap-mod0.so \ + $(objpfx)tst-tlsgap-mod1.so \ + $(objpfx)tst-tlsgap-mod2.so +-ifeq (yes,$(have-mtls-dialect-gnu2)) +-CFLAGS-tst-tlsgap-mod0.c += -mtls-dialect=gnu2 +-CFLAGS-tst-tlsgap-mod1.c += -mtls-dialect=gnu2 +-CFLAGS-tst-tlsgap-mod2.c += -mtls-dialect=gnu2 ++ ++ifneq (no,$(have-mtls-descriptor)) ++CFLAGS-tst-tlsgap-mod0.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-tlsgap-mod1.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-tlsgap-mod2.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-gnu2-tls2mod0.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-gnu2-tls2mod1.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-gnu2-tls2mod2.c += -mtls-dialect=$(have-mtls-descriptor) + endif + + $(objpfx)tst-recursive-tls: $(objpfx)tst-recursive-tlsmallocmod.so +diff --git a/sysdeps/aarch64/preconfigure b/sysdeps/aarch64/preconfigure +index d9bd1f8558a079cb..19657b627bc84c4e 100644 +--- a/sysdeps/aarch64/preconfigure ++++ b/sysdeps/aarch64/preconfigure +@@ -2,5 +2,6 @@ case "$machine" in + aarch64*) + base_machine=aarch64 + machine=aarch64 ++ mtls_descriptor=desc + ;; + esac +diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile +index fb4164f0d9cf71fa..efe08b15e16ccda4 100644 +--- a/sysdeps/arm/Makefile ++++ b/sysdeps/arm/Makefile +@@ -18,15 +18,15 @@ $(objpfx)libgcc-stubs.a: $(objpfx)aeabi_unwind_cpp_pr1.os + lib-noranlib: $(objpfx)libgcc-stubs.a + + ifeq ($(build-shared),yes) +-ifeq ($(have-arm-tls-desc),yes) ++ifneq (no,$(have-mtls-descriptor)) + tests += tst-armtlsdescloc tst-armtlsdescextnow tst-armtlsdescextlazy + modules-names += tst-armtlsdesclocmod + modules-names += tst-armtlsdescextlazymod tst-armtlsdescextnowmod + CPPFLAGS-tst-armtlsdescextnowmod.c += -Dstatic= + CPPFLAGS-tst-armtlsdescextlazymod.c += -Dstatic= +-CFLAGS-tst-armtlsdesclocmod.c += -mtls-dialect=gnu2 +-CFLAGS-tst-armtlsdescextnowmod.c += -mtls-dialect=gnu2 +-CFLAGS-tst-armtlsdescextlazymod.c += -mtls-dialect=gnu2 ++CFLAGS-tst-armtlsdesclocmod.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-armtlsdescextnowmod.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-armtlsdescextlazymod.c += -mtls-dialect=$(have-mtls-descriptor) + LDFLAGS-tst-armtlsdescextnowmod.so += -Wl,-z,now + tst-armtlsdescloc-ENV = LD_BIND_NOW=1 + tst-armtlsdescextnow-ENV = LD_BIND_NOW=1 diff --git a/SOURCES/glibc-RHEL-58989-2.patch b/SOURCES/glibc-RHEL-58989-2.patch new file mode 100644 index 0000000..bbf813a --- /dev/null +++ b/SOURCES/glibc-RHEL-58989-2.patch @@ -0,0 +1,495 @@ +commit 9b5f2eb9fc5d3cf4b984f6002e69aac43296e922 +Author: Joseph Myers +Date: Thu Dec 5 09:53:47 2024 +0000 + + Add further test of TLS + + Add an additional test of TLS variables, with different alignment, + accessed from different modules. The idea of the alignment test is + similar to tst-tlsalign and the same code is shared for setting up + test variables, but unlike the tst-tlsalign code, there are multiple + threads and variables are accessed from multiple objects to verify + that they get a consistent notion of the address of an object within a + thread. Threads are repeatedly created and shut down to verify proper + initialization in each new thread. The test is also repeated with TLS + descriptors when supported. (However, only initial-exec TLS is + covered in this test.) + + Tested for x86_64. + +Conflicts: + elf/Makefile (fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index 4a9c983686126adf..9d48e408de0a67a4 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -454,6 +454,8 @@ tests += \ + tst-tls19 \ + tst-tls20 \ + tst-tls21 \ ++ tst-tls22 \ ++ tst-tls22-gnu2 \ + tst-tls4 \ + tst-tls5 \ + tst-tlsalign \ +@@ -592,9 +594,15 @@ tst-tls-many-dynamic-modules-dep-bad = \ + extra-test-objs += \ + $(tlsmod17a-modules:=.os) \ + $(tlsmod18a-modules:=.os) \ ++ tst-tls22-mod1-vars.os \ ++ tst-tls22-mod2-vars.os \ ++ tst-tls22-vars.o \ + tst-tlsalign-vars.o \ + # extra-test-objs + test-extras += \ ++ tst-tls22-mod1-vars \ ++ tst-tls22-mod2-vars \ ++ tst-tls22-vars \ + tst-tlsalign-vars \ + tst-tlsmod17a \ + tst-tlsmod18a \ +@@ -840,6 +848,10 @@ modules-names = \ + tst-tls19mod3 \ + tst-tls20mod-bad \ + tst-tls21mod \ ++ tst-tls22-mod1 \ ++ tst-tls22-mod1-gnu2 \ ++ tst-tls22-mod2 \ ++ tst-tls22-mod2-gnu2 \ + tst-tlsalign-lib \ + tst-tlsgap-mod0 \ + tst-tlsgap-mod1 \ +@@ -2822,3 +2834,27 @@ $(objpfx)tst-hash-collision2-sysv: $(objpfx)tst-hash-collision2-mod1-sysv.so \ + LDFLAGS-tst-hash-collision3-mod.so = \ + -Wl,--version-script=tst-hash-collision3-mod.map + $(objpfx)tst-hash-collision3: $(objpfx)tst-hash-collision3-mod.so ++ ++$(objpfx)tst-tls22: $(objpfx)tst-tls22-vars.o $(objpfx)tst-tls22-mod1.so \ ++ $(objpfx)tst-tls22-mod2.so $(shared-thread-library) ++$(objpfx)tst-tls22-mod1.so: $(objpfx)tst-tls22-mod1.os \ ++ $(objpfx)tst-tls22-mod1-vars.os $(objpfx)tst-tls22-mod2.so ++$(objpfx)tst-tls22-mod2.so: $(objpfx)tst-tls22-mod2.os \ ++ $(objpfx)tst-tls22-mod2-vars.os ++$(objpfx)tst-tls22-gnu2: $(objpfx)tst-tls22-vars.o \ ++ $(objpfx)tst-tls22-mod1-gnu2.so $(objpfx)tst-tls22-mod2-gnu2.so \ ++ $(shared-thread-library) ++$(objpfx)tst-tls22-mod1-gnu2.so: $(objpfx)tst-tls22-mod1-gnu2.os \ ++ $(objpfx)tst-tls22-mod1-vars.os $(objpfx)tst-tls22-mod2-gnu2.so ++$(objpfx)tst-tls22-mod2-gnu2.so: $(objpfx)tst-tls22-mod2-gnu2.os \ ++ $(objpfx)tst-tls22-mod2-vars.os ++ifneq (no,$(have-mtls-descriptor)) ++CFLAGS-tst-tls22-gnu2.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-tls22-mod1-gnu2.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-tls22-mod2-gnu2.c += -mtls-dialect=$(have-mtls-descriptor) ++endif ++# These reference symbols from the main executable. ++tst-tls22-mod1.so-no-z-defs = yes ++tst-tls22-mod1-gnu2.so-no-z-defs = yes ++tst-tls22-mod2.so-no-z-defs = yes ++tst-tls22-mod2-gnu2.so-no-z-defs = yes +diff --git a/elf/tst-tls22-gnu2.c b/elf/tst-tls22-gnu2.c +new file mode 100644 +index 0000000000000000..d9ce6df0b2bcc201 +--- /dev/null ++++ b/elf/tst-tls22-gnu2.c +@@ -0,0 +1 @@ ++#include +diff --git a/elf/tst-tls22-mod1-gnu2.c b/elf/tst-tls22-mod1-gnu2.c +new file mode 100644 +index 0000000000000000..0b085fe175b74962 +--- /dev/null ++++ b/elf/tst-tls22-mod1-gnu2.c +@@ -0,0 +1 @@ ++#include +diff --git a/elf/tst-tls22-mod1-vars.c b/elf/tst-tls22-mod1-vars.c +new file mode 100644 +index 0000000000000000..bdb7358287a325ee +--- /dev/null ++++ b/elf/tst-tls22-mod1-vars.c +@@ -0,0 +1,9 @@ ++#include ++ ++#define tdata1 mod1_tdata1 ++#define tdata2 mod1_tdata2 ++#define tdata3 mod1_tdata3 ++#define tbss1 mod1_tbss1 ++#define tbss2 mod1_tbss2 ++#define tbss3 mod1_tbss3 ++#include +diff --git a/elf/tst-tls22-mod1.c b/elf/tst-tls22-mod1.c +new file mode 100644 +index 0000000000000000..3a47d7bbc6cd16c2 +--- /dev/null ++++ b/elf/tst-tls22-mod1.c +@@ -0,0 +1,27 @@ ++/* Test TLS with varied alignment and multiple modules and threads. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++void ++test_mod1 (struct one_thread_data *data, int base_val) ++{ ++ STORE_ADDRS (&data->mod1_self, mod1); ++ STORE_ADDRS (&data->exe_from_mod1, exe); ++ STORE_ADDRS (&data->mod2_from_mod1, mod2); ++} +diff --git a/elf/tst-tls22-mod2-gnu2.c b/elf/tst-tls22-mod2-gnu2.c +new file mode 100644 +index 0000000000000000..a5260e0616d8b595 +--- /dev/null ++++ b/elf/tst-tls22-mod2-gnu2.c +@@ -0,0 +1 @@ ++#include +diff --git a/elf/tst-tls22-mod2-vars.c b/elf/tst-tls22-mod2-vars.c +new file mode 100644 +index 0000000000000000..9ef3452bba56e829 +--- /dev/null ++++ b/elf/tst-tls22-mod2-vars.c +@@ -0,0 +1,9 @@ ++#include ++ ++#define tdata1 mod2_tdata1 ++#define tdata2 mod2_tdata2 ++#define tdata3 mod2_tdata3 ++#define tbss1 mod2_tbss1 ++#define tbss2 mod2_tbss2 ++#define tbss3 mod2_tbss3 ++#include +diff --git a/elf/tst-tls22-mod2.c b/elf/tst-tls22-mod2.c +new file mode 100644 +index 0000000000000000..5d26d592b0262b1e +--- /dev/null ++++ b/elf/tst-tls22-mod2.c +@@ -0,0 +1,26 @@ ++/* Test TLS with varied alignment and multiple modules and threads. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++void ++test_mod2 (struct one_thread_data *data, int base_val) ++{ ++ STORE_ADDRS (&data->mod2_self, mod2); ++ STORE_ADDRS (&data->exe_from_mod2, exe); ++} +diff --git a/elf/tst-tls22-vars.c b/elf/tst-tls22-vars.c +new file mode 100644 +index 0000000000000000..2ad3ee7a3b6ac980 +--- /dev/null ++++ b/elf/tst-tls22-vars.c +@@ -0,0 +1,9 @@ ++#include ++ ++#define tdata1 exe_tdata1 ++#define tdata2 exe_tdata2 ++#define tdata3 exe_tdata3 ++#define tbss1 exe_tbss1 ++#define tbss2 exe_tbss2 ++#define tbss3 exe_tbss3 ++#include +diff --git a/elf/tst-tls22.c b/elf/tst-tls22.c +new file mode 100644 +index 0000000000000000..35a8cd82b22462ff +--- /dev/null ++++ b/elf/tst-tls22.c +@@ -0,0 +1,147 @@ ++/* Test TLS with varied alignment and multiple modules and threads. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static void ++check_addrs_align (const struct obj_addrs *addrs) ++{ ++ TEST_COMPARE (addrs->addr_tdata1 & (__alignof__ (int) - 1), 0); ++ TEST_COMPARE (addrs->addr_tdata2 & 0xf, 0); ++ TEST_COMPARE (addrs->addr_tdata3 & 0xfff, 0); ++ TEST_COMPARE (addrs->addr_tbss1 & (__alignof__ (int) - 1), 0); ++ TEST_COMPARE (addrs->addr_tbss2 & 0xf, 0); ++ TEST_COMPARE (addrs->addr_tbss3 & 0xfff, 0); ++} ++ ++static void ++check_addrs_same (const struct obj_addrs *addrs1, ++ const struct obj_addrs *addrs2) ++{ ++ TEST_COMPARE (addrs1->addr_tdata1, addrs2->addr_tdata1); ++ TEST_COMPARE (addrs1->addr_tdata2, addrs2->addr_tdata2); ++ TEST_COMPARE (addrs1->addr_tdata3, addrs2->addr_tdata3); ++ TEST_COMPARE (addrs1->addr_tbss1, addrs2->addr_tbss1); ++ TEST_COMPARE (addrs1->addr_tbss2, addrs2->addr_tbss2); ++ TEST_COMPARE (addrs1->addr_tbss3, addrs2->addr_tbss3); ++} ++ ++static void ++check_vals_before (const struct obj_values *vals) ++{ ++ TEST_COMPARE (vals->val_tdata1, 1); ++ TEST_COMPARE (vals->val_tdata2, 2); ++ TEST_COMPARE (vals->val_tdata3, 4); ++ TEST_COMPARE (vals->val_tbss1, 0); ++ TEST_COMPARE (vals->val_tbss2, 0); ++ TEST_COMPARE (vals->val_tbss3, 0); ++} ++ ++static void ++check_vals_after (const struct obj_values *vals, int base_val) ++{ ++ TEST_COMPARE (vals->val_tdata1, base_val); ++ TEST_COMPARE (vals->val_tdata2, base_val + 1); ++ TEST_COMPARE (vals->val_tdata3, base_val + 2); ++ TEST_COMPARE (vals->val_tbss1, base_val + 3); ++ TEST_COMPARE (vals->val_tbss2, base_val + 4); ++ TEST_COMPARE (vals->val_tbss3, base_val + 5); ++} ++ ++static void ++check_one_thread (const struct one_thread_data *data, int base_val) ++{ ++ check_vals_before (&data->exe_before); ++ check_vals_before (&data->mod1_before); ++ check_vals_before (&data->mod2_before); ++ check_vals_after (&data->exe_after, base_val); ++ check_vals_after (&data->mod1_after, base_val); ++ check_vals_after (&data->mod2_after, base_val); ++ check_addrs_align (&data->exe_self); ++ check_addrs_same (&data->exe_self, &data->exe_from_mod1); ++ check_addrs_same (&data->exe_self, &data->exe_from_mod2); ++ check_addrs_align (&data->mod1_self); ++ check_addrs_same (&data->mod1_self, &data->mod1_from_exe); ++ check_addrs_align (&data->mod2_self); ++ check_addrs_same (&data->mod2_self, &data->mod2_from_exe); ++ check_addrs_same (&data->mod2_self, &data->mod2_from_mod1); ++} ++ ++static void * ++thread_func (void *arg) ++{ ++ int base_val = (int) (intptr_t) arg + 10; ++ struct one_thread_data data; ++ /* Record the addresses of variables as seen from the main ++ executable (which should be the same as seen from the other ++ modules), and their initial values. */ ++ STORE_ADDRS (&data.exe_self, exe); ++ STORE_ADDRS (&data.mod1_from_exe, mod1); ++ STORE_ADDRS (&data.mod2_from_exe, mod2); ++ STORE_VALUES (&data.exe_before, exe); ++ STORE_VALUES (&data.mod1_before, mod1); ++ STORE_VALUES (&data.mod2_before, mod2); ++ /* Overwrite the value of variables. */ ++ OVERWRITE_VALUES (exe, base_val); ++ OVERWRITE_VALUES (mod1, base_val); ++ OVERWRITE_VALUES (mod2, base_val); ++ /* Record the addresses of variables as seen from other modules. */ ++ test_mod1 (&data, base_val); ++ test_mod2 (&data, base_val); ++ /* Record the overwritten values (thus making sure that no other ++ thread running in parallel has changed this thread's values). */ ++ STORE_VALUES (&data.exe_after, exe); ++ STORE_VALUES (&data.mod1_after, mod1); ++ STORE_VALUES (&data.mod2_after, mod2); ++ /* Check all the addresses and values recorded. */ ++ check_one_thread (&data, base_val); ++ return NULL; ++} ++ ++#define NUM_ITERS 50 ++#define NUM_THREADS 16 ++ ++/* For NUM_ITERS iterations, repeatedly create NUM_THREADS threads. ++ In each thread, we determine the addresses of TLS objects (both ++ from the module defining those objects and from other modules), and ++ their initial values, and store in values that are then read back; ++ we check that each object's address is the same regardless of the ++ module in which it is determined, that alignment of objects is as ++ required, and that the values of objects are as expected. */ ++ ++static int ++do_test (void) ++{ ++ for (size_t i = 0; i < NUM_ITERS; i++) ++ { ++ pthread_t threads[NUM_THREADS]; ++ for (size_t j = 0; j < NUM_THREADS; j++) ++ threads[j] = xpthread_create (NULL, thread_func, (void *) j); ++ /* Also run checks in the main thread, but only once because ++ those values don't get reinitialized. */ ++ if (i == 0) ++ thread_func ((void *) NUM_THREADS); ++ for (size_t j = 0; j < NUM_THREADS; j++) ++ xpthread_join (threads[j]); ++ } ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-tls22.h b/elf/tst-tls22.h +new file mode 100644 +index 0000000000000000..24b2e0a0b6af4d45 +--- /dev/null ++++ b/elf/tst-tls22.h +@@ -0,0 +1,115 @@ ++/* Test TLS with varied alignment and multiple modules and threads: header. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef TST_TLS22_H ++#define TST_TLS22_H ++ ++#include ++ ++extern __thread int exe_tdata1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tdata2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tdata3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tbss1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tbss2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tbss3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tdata1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tdata2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tdata3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tbss1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tbss2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tbss3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tdata1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tdata2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tdata3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tbss1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tbss2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tbss3 __attribute__ ((tls_model ("initial-exec"))); ++ ++/* Structure to store the addresses of one set of TLS objects in one ++ thread, as seen by one module in the program. */ ++struct obj_addrs ++{ ++ uintptr_t addr_tdata1, addr_tdata2, addr_tdata3; ++ uintptr_t addr_tbss1, addr_tbss2, addr_tbss3; ++}; ++ ++/* Structure to store the values of one set of TLS objects in one ++ thread. */ ++struct obj_values ++{ ++ uintptr_t val_tdata1, val_tdata2, val_tdata3; ++ uintptr_t val_tbss1, val_tbss2, val_tbss3; ++}; ++ ++/* Structure to store all the data about TLS objects in one ++ thread. */ ++struct one_thread_data ++{ ++ struct obj_addrs exe_self, exe_from_mod1, exe_from_mod2; ++ struct obj_addrs mod1_self, mod1_from_exe; ++ struct obj_addrs mod2_self, mod2_from_exe, mod2_from_mod1; ++ struct obj_values exe_before, mod1_before, mod2_before; ++ struct obj_values exe_after, mod1_after, mod2_after; ++}; ++ ++/* Store the addresses of variables prefixed by PFX in the structure ++ pointed to by DST. */ ++#define STORE_ADDRS(DST, PFX) \ ++ do \ ++ { \ ++ (DST)->addr_tdata1 = (uintptr_t) &PFX ## _tdata1; \ ++ (DST)->addr_tdata2 = (uintptr_t) &PFX ## _tdata2; \ ++ (DST)->addr_tdata3 = (uintptr_t) &PFX ## _tdata3; \ ++ (DST)->addr_tbss1 = (uintptr_t) &PFX ## _tbss1; \ ++ (DST)->addr_tbss2 = (uintptr_t) &PFX ## _tbss2; \ ++ (DST)->addr_tbss3 = (uintptr_t) &PFX ## _tbss3; \ ++ } \ ++ while (0) ++ ++/* Store the values of variables prefixed by PFX in the structure ++ pointed to by DST. */ ++#define STORE_VALUES(DST, PFX) \ ++ do \ ++ { \ ++ (DST)->val_tdata1 = PFX ## _tdata1; \ ++ (DST)->val_tdata2 = PFX ## _tdata2; \ ++ (DST)->val_tdata3 = PFX ## _tdata3; \ ++ (DST)->val_tbss1 = PFX ## _tbss1; \ ++ (DST)->val_tbss2 = PFX ## _tbss2; \ ++ (DST)->val_tbss3 = PFX ## _tbss3; \ ++ } \ ++ while (0) ++ ++/* Overwrite the values of variables prefixed by PFX with values ++ starting with VAL. */ ++#define OVERWRITE_VALUES(PFX, VAL) \ ++ do \ ++ { \ ++ PFX ## _tdata1 = (VAL); \ ++ PFX ## _tdata2 = (VAL) + 1; \ ++ PFX ## _tdata3 = (VAL) + 2; \ ++ PFX ## _tbss1 = (VAL) + 3; \ ++ PFX ## _tbss2 = (VAL) + 4; \ ++ PFX ## _tbss3 = (VAL) + 5; \ ++ } \ ++ while (0) ++ ++void test_mod1 (struct one_thread_data *data, int base_val); ++void test_mod2 (struct one_thread_data *data, int base_val); ++ ++#endif /* TST_TLS22_H */ diff --git a/SOURCES/glibc-RHEL-59494-1.patch b/SOURCES/glibc-RHEL-59494-1.patch new file mode 100644 index 0000000..5551aae --- /dev/null +++ b/SOURCES/glibc-RHEL-59494-1.patch @@ -0,0 +1,65 @@ +commit 3bea50ccbc925d4fc5f85ec402b6154cbe770b71 +Author: Yu Chien Peter Lin +Date: Fri Sep 30 20:19:50 2022 +0800 + + support: Add xpthread_cond_signal wrapper + + Signed-off-by: Yu Chien Peter Lin + Reviewed-by: Adhemerval Zanella + +diff --git a/support/Makefile b/support/Makefile +index 154e3a4ff03cebda..bfd8d59285524f4d 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -160,6 +160,7 @@ libsupport-routines = \ + xpthread_cancel \ + xpthread_check_return \ + xpthread_cond_wait \ ++ xpthread_cond_signal \ + xpthread_create \ + xpthread_detach \ + xpthread_join \ +diff --git a/support/xpthread_cond_signal.c b/support/xpthread_cond_signal.c +new file mode 100644 +index 0000000000000000..ed0be1a8abf8559b +--- /dev/null ++++ b/support/xpthread_cond_signal.c +@@ -0,0 +1,26 @@ ++/* pthread_cond_signal with error checking. ++ Copyright (C) 2022 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++void ++xpthread_cond_signal (pthread_cond_t *cond) ++{ ++ xpthread_check_return ++ ("pthread_cond_signal", pthread_cond_signal (cond)); ++} +diff --git a/support/xthread.h b/support/xthread.h +index a4a4ec5b1ef16fd3..1a39b1c0ddda9725 100644 +--- a/support/xthread.h ++++ b/support/xthread.h +@@ -58,6 +58,7 @@ void xpthread_mutex_consistent (pthread_mutex_t *); + void xpthread_spin_lock (pthread_spinlock_t *lock); + void xpthread_spin_unlock (pthread_spinlock_t *lock); + void xpthread_cond_wait (pthread_cond_t * cond, pthread_mutex_t * mutex); ++void xpthread_cond_signal (pthread_cond_t *cond); + pthread_t xpthread_create (pthread_attr_t *attr, + void *(*thread_func) (void *), void *closure); + void xpthread_detach (pthread_t thr); diff --git a/SOURCES/glibc-RHEL-59494-2.patch b/SOURCES/glibc-RHEL-59494-2.patch new file mode 100644 index 0000000..35e60c7 --- /dev/null +++ b/SOURCES/glibc-RHEL-59494-2.patch @@ -0,0 +1,107 @@ +commit 365b3af67ecaf176b2e2678afe903bebce598fd7 +Author: Yu Chien Peter Lin +Date: Fri Sep 30 20:19:51 2022 +0800 + + nptl: Convert tst-setuid2 to test-driver + + Use and replace pthread calls to its xpthread + equivalents. + + Signed-off-by: Yu Chien Peter Lin + Reviewed-by: Adhemerval Zanella + +diff --git a/nptl/tst-setuid2.c b/nptl/tst-setuid2.c +index a9e3a6c4c0a48352..2abe6e20d108ccf9 100644 +--- a/nptl/tst-setuid2.c ++++ b/nptl/tst-setuid2.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -36,30 +37,21 @@ static pthread_cond_t cond_recv; + static void * + thread_func (void *ctx __attribute__ ((unused))) + { +- int ret = pthread_mutex_lock (&mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_lock (thread): %d", ret); +- ++ xpthread_mutex_lock (&mutex); + while (true) + { + if (func_sent != NULL) + { + void (*func) (void) = func_sent; +- ret = pthread_mutex_unlock (&mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_unlock (thread): %d", ret); ++ xpthread_mutex_unlock (&mutex); ++ + func (); +- ret = pthread_mutex_lock (&mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_lock (thread): %d", ret); ++ ++ xpthread_mutex_lock (&mutex); + func_sent = NULL; +- ret = pthread_cond_signal (&cond_recv); +- if (ret != 0) +- FAIL ("pthread_cond_signal (recv): %d", ret); ++ xpthread_cond_signal (&cond_recv); + } +- ret = pthread_cond_wait (&cond_send, &mutex); +- if (ret != 0) +- FAIL ("pthread_cond_wait (send): %d", ret); ++ xpthread_cond_wait (&cond_send, &mutex); + } + return NULL; + } +@@ -67,31 +59,18 @@ thread_func (void *ctx __attribute__ ((unused))) + static void + run_on_thread (void (*func) (void)) + { +- int ret = pthread_mutex_lock (&mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_lock (%s): %d", __func__, ret); ++ xpthread_mutex_lock (&mutex); + func_sent = func; +- ret = pthread_mutex_unlock (&mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret); ++ xpthread_mutex_unlock (&mutex); + +- ret = pthread_cond_signal (&cond_send); +- if (ret != 0) +- FAIL ("pthread_mutex_lock (%s): %d", __func__, ret); +- +- ret = pthread_mutex_lock (&mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_lock (%s): %d", __func__, ret); ++ xpthread_cond_signal (&cond_send); + ++ xpthread_mutex_lock (&mutex); + while (func_sent != NULL) + { +- ret = pthread_cond_wait (&cond_recv, &mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_wait (%s): %d", __func__, ret); ++ xpthread_cond_wait (&cond_recv, &mutex); + } +- ret = pthread_mutex_unlock (&mutex); +- if (ret != 0) +- FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret); ++ xpthread_mutex_unlock (&mutex); + } + + static void +@@ -141,5 +120,4 @@ do_test (void) + return 0; + } + +-#define TEST_FUNCTION do_test () +-#include "../test-skeleton.c" ++#include diff --git a/SOURCES/glibc-RHEL-59494-3.patch b/SOURCES/glibc-RHEL-59494-3.patch new file mode 100644 index 0000000..d0fa23c --- /dev/null +++ b/SOURCES/glibc-RHEL-59494-3.patch @@ -0,0 +1,79 @@ +commit d5a3ca4061f7adc59196fa58e34eacebbebcbcfe +Author: Florian Weimer +Date: Thu Sep 19 15:40:05 2024 +0200 + + Implement run-built-tests=no for make xcheck, always build xtests + + Previously, the second occurrence of the xtests target + expected all xtests to run (as the result of specifying + $(xtests)), but these tests have not been run due to + the the first xtests target is set up for run-built-tests=no: + it only runs tests in $(xtests-special). Consequently, + xtests are reported as UNSUPPORTED with “make xcheck + run-built-tests=no”. The xtests were not built, either. + + After this change always, xtests are built regardless + of the $(run-built-tests) variable (except for xtests listed + in $(tests-unsupported)). To fix the UNSUPPORTED issue, + introduce xtests-expected and use that manage test + expectations in the second xtests target. + + Reviewed-by: Carlos O'Donell + +Conflicts: + Rules + (Missing malloc hugetlb support downstream) + +diff --git a/Rules b/Rules +index b1137afe71fbfe59..0516f4762c69bbe0 100644 +--- a/Rules ++++ b/Rules +@@ -146,37 +146,42 @@ endif + others: $(py-const) + + ifeq ($(run-built-tests),no) ++# The $(xtests) dependency ensures that xtests are always built. + tests: $(addprefix $(objpfx),$(filter-out $(tests-unsupported), \ +- $(tests) $(tests-internal) \ ++ $(tests) $(tests-internal) $(xtests) \ + $(tests-container)) \ + $(test-srcs)) $(tests-special) \ + $(tests-printers-programs) + xtests: tests $(xtests-special) +-else ++else # $(run-built-tests) != no ++# The $(xtests) dependency ensures that xtests are always built. + tests: $(tests:%=$(objpfx)%.out) $(tests-internal:%=$(objpfx)%.out) \ ++ $(addprefix $(objpfx),$(filter-out $(tests-unsupported), $(xtests))) \ + $(tests-container:%=$(objpfx)%.out) \ + $(tests-mcheck:%=$(objpfx)%-mcheck.out) \ + $(tests-malloc-check:%=$(objpfx)%-malloc-check.out) \ + $(tests-special) $(tests-printers-out) + xtests: tests $(xtests:%=$(objpfx)%.out) $(xtests-special) +-endif ++endif # $(run-built-tests) != no + + tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special)) + xtests-special-notdir = $(patsubst $(objpfx)%, %, $(xtests-special)) + ifeq ($(run-built-tests),no) + tests-expected = +-else ++xtests-expected = ++else # $(run-built-tests) != no + tests-expected = $(tests) $(tests-internal) $(tests-printers) \ + $(tests-container) $(tests-malloc-check:%=%-malloc-check) \ + $(tests-mcheck:%=%-mcheck) +-endif ++xtests-expected = $(xtests) ++endif # $(run-built-tests) != no + tests: + $(..)scripts/merge-test-results.sh -s $(objpfx) $(subdir) \ + $(sort $(tests-expected) $(tests-special-notdir:.out=)) \ + > $(objpfx)subdir-tests.sum + xtests: + $(..)scripts/merge-test-results.sh -s $(objpfx) $(subdir) \ +- $(sort $(xtests) $(xtests-special-notdir:.out=)) \ ++ $(sort $(xtests-expected) $(xtests-special-notdir:.out=)) \ + > $(objpfx)subdir-xtests.sum + + ifeq ($(build-programs),yes) diff --git a/SOURCES/glibc-RHEL-49489-3.patch b/SOURCES/glibc-RHEL-60466-1.patch similarity index 100% rename from SOURCES/glibc-RHEL-49489-3.patch rename to SOURCES/glibc-RHEL-60466-1.patch diff --git a/SOURCES/glibc-RHEL-49489-4.patch b/SOURCES/glibc-RHEL-60466-2.patch similarity index 100% rename from SOURCES/glibc-RHEL-49489-4.patch rename to SOURCES/glibc-RHEL-60466-2.patch diff --git a/SOURCES/glibc-RHEL-61559-1.patch b/SOURCES/glibc-RHEL-61559-1.patch new file mode 100644 index 0000000..71eff05 --- /dev/null +++ b/SOURCES/glibc-RHEL-61559-1.patch @@ -0,0 +1,394 @@ +commit b600f47758332d78f04daa970b02a4044a37ebd9 +Author: Carlos O'Donell +Date: Wed May 17 08:27:59 2023 -0400 + + nptl: Reformat Makefile. + + Reflow all long lines adding comment terminators. + Rename files that cause inconsistent ordering. + Sort all reflowed text using scripts/sort-makefile-lines.py. + + No code generation changes observed in binary artifacts. + No regressions on x86_64 and i686. + +Conflicts: + nptl/Makefile + (different list of tests) + +diff --git a/nptl/Makefile b/nptl/Makefile +index f89bb07747cf5522..eec8563f95a42554 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -202,6 +202,7 @@ routines = \ + tpp \ + unwind \ + vars \ ++ # routines + + static-only-routines = pthread_atfork + libpthread-routines = libpthread-compat +@@ -265,70 +266,133 @@ LDLIBS-tst-thread-exit-clobber = -lstdc++ + CFLAGS-tst-minstack-throw.o = -std=gnu++11 + LDLIBS-tst-minstack-throw = -lstdc++ + +-tests = tst-attr2 tst-attr3 tst-default-attr \ +- tst-mutex5a tst-mutex7a \ +- tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 \ +- tst-mutexpi5 tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \ +- tst-mutexpi9 tst-mutexpi10 \ +- tst-cond22 tst-cond26 \ +- tst-robustpi1 tst-robustpi2 tst-robustpi3 tst-robustpi4 tst-robustpi5 \ +- tst-robustpi6 tst-robustpi7 tst-robustpi9 \ +- tst-rwlock2 tst-rwlock2a tst-rwlock2b tst-rwlock3 \ +- tst-rwlock6 tst-rwlock7 tst-rwlock8 \ +- tst-rwlock9 tst-rwlock10 tst-rwlock11 \ +- tst-rwlock15 tst-rwlock17 tst-rwlock18 \ +- tst-once5 \ +- tst-sem17 \ +- tst-tsd3 tst-tsd4 \ +- tst-cancel4_1 tst-cancel4_2 \ +- tst-cancel7 tst-cancel17 tst-cancel24 \ +- tst-signal3 \ +- tst-exec4 tst-exec5 \ +- tst-stack2 tst-stack3 tst-stack4 \ +- tst-pthread-attr-affinity \ +- tst-pthread-attr-affinity-fail \ +- tst-dlsym1 \ +- tst-context1 \ +- tst-sched1 \ +- tst-initializers1 $(addprefix tst-initializers1-,\ +- c89 gnu89 c99 gnu99 c11 gnu11) \ +- tst-thread_local1 \ +- tst-robust-fork \ +- tst-thread-exit-clobber tst-minstack-cancel tst-minstack-exit \ +- tst-minstack-throw \ +- tst-rwlock-pwn \ +- tst-thread-affinity-pthread \ +- tst-thread-affinity-pthread2 \ +- tst-thread-affinity-sched \ +- tst-pthread-defaultattr-free \ +- tst-pthread-attr-sigmask \ +- tst-pthread-timedlock-lockloop \ +- tst-pthread-gdb-attach tst-pthread-gdb-attach-static \ +- tst-pthread_exit-nothreads \ +- tst-pthread_exit-nothreads-static \ +- tst-thread-setspecific \ ++tests = \ ++ tst-attr2 \ ++ tst-attr3 \ ++ tst-cancel4_1 \ ++ tst-cancel4_2 \ ++ tst-cancel7 \ ++ tst-cancel17 \ ++ tst-cancel24 \ ++ tst-cond22 \ ++ tst-cond26 \ ++ tst-context1 \ ++ tst-default-attr \ ++ tst-dlsym1 \ ++ tst-exec4 \ ++ tst-exec5 \ ++ tst-initializers1 \ ++ tst-initializers1-c11 \ ++ tst-initializers1-c89 \ ++ tst-initializers1-c99 \ ++ tst-initializers1-gnu11 \ ++ tst-initializers1-gnu89 \ ++ tst-initializers1-gnu99 \ ++ tst-minstack-cancel \ ++ tst-minstack-exit \ ++ tst-minstack-throw \ ++ tst-mutex5a \ ++ tst-mutex7a \ ++ tst-mutexpi1 \ ++ tst-mutexpi2 \ ++ tst-mutexpi3 \ ++ tst-mutexpi4 \ ++ tst-mutexpi5 \ ++ tst-mutexpi6 \ ++ tst-mutexpi7 \ ++ tst-mutexpi9 \ ++ tst-mutexpi10 \ ++ tst-mutexpi11 \ ++ tst-mutexpi12 \ ++ tst-once5 \ ++ tst-pthread-attr-affinity \ ++ tst-pthread-attr-affinity-fail \ ++ tst-pthread-attr-sigmask \ ++ tst-pthread-defaultattr-free \ ++ tst-pthread-gdb-attach \ ++ tst-pthread-gdb-attach-static \ + tst-pthread-getcpuclockid-invalid \ ++ tst-pthread-timedlock-lockloop \ ++ tst-pthread_exit-nothreads \ ++ tst-pthread_exit-nothreads-static \ ++ tst-robust-fork \ ++ tst-robustpi1 \ ++ tst-robustpi2 \ ++ tst-robustpi3 \ ++ tst-robustpi4 \ ++ tst-robustpi5 \ ++ tst-robustpi6 \ ++ tst-robustpi7 \ ++ tst-robustpi9 \ ++ tst-rwlock-pwn \ ++ tst-rwlock2 \ ++ tst-rwlock3 \ ++ tst-rwlock6 \ ++ tst-rwlock7 \ ++ tst-rwlock8 \ ++ tst-rwlock9 \ ++ tst-rwlock10 \ ++ tst-rwlock11 \ ++ tst-rwlock15 \ ++ tst-rwlock17 \ ++ tst-rwlock18 \ ++ tst-rwlock21 \ ++ tst-rwlock22 \ ++ tst-sched1 \ ++ tst-sem17 \ ++ tst-signal3 \ ++ tst-stack2 \ ++ tst-stack3 \ ++ tst-stack4 \ ++ tst-thread-affinity-pthread \ ++ tst-thread-affinity-pthread2 \ ++ tst-thread-affinity-sched \ ++ tst-thread-exit-clobber \ ++ tst-thread-setspecific \ ++ tst-thread_local1 \ ++ tst-tsd3 \ ++ tst-tsd4 \ ++ # tests + + tests-nolibpthread = \ + tst-pthread_exit-nothreads \ + tst-pthread_exit-nothreads-static \ ++ # tests-nolibpthread + + tests-container = tst-pthread-getattr + +-tests-internal := tst-robustpi8 tst-rwlock19 tst-rwlock20 \ +- tst-sem11 tst-sem12 tst-sem13 \ +- tst-barrier5 tst-signal7 tst-mutex8 tst-mutex8-static \ +- tst-mutexpi8 tst-mutexpi8-static \ +- tst-setgetname \ +- tst-nptl-padding \ +- # tests-internal +- +-xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \ +- tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 tst-setgroups \ +- tst-mutexpp5 tst-mutexpp9 ++tests-internal := \ ++ tst-barrier5 \ ++ tst-mutex8 \ ++ tst-mutex8-static \ ++ tst-mutexpi8 \ ++ tst-mutexpi8-static \ ++ tst-nptl-padding \ ++ tst-robustpi8 \ ++ tst-rwlock19 \ ++ tst-rwlock20 \ ++ tst-sem11 \ ++ tst-sem12 \ ++ tst-sem13 \ ++ tst-setgetname \ ++ tst-signal7 \ ++ # tests-internal ++ ++xtests = \ ++ tst-mutexpp1 \ ++ tst-mutexpp5 \ ++ tst-mutexpp6 \ ++ tst-mutexpp9 \ ++ tst-mutexpp10 \ ++ tst-setgroups \ ++ tst-setuid1 \ ++ tst-setuid1-static \ ++ tst-setuid2 \ ++ # xtests + + tests-time64 := \ + tst-cancel4_2-time64 ++ # tests-time64 + + # This test can run into task limits because of a linux kernel bug + # and then cause the make process to fail too, see bug 24537. +@@ -341,9 +405,14 @@ gen-as-const-headers = unwindbuf.sym \ + + gen-py-const-headers := nptl_lock_constants.pysym + pretty-printers := nptl-printers.py +-tests-printers := test-mutexattr-printers test-mutex-printers \ +- test-condattr-printers test-cond-printers \ +- test-rwlockattr-printers test-rwlock-printers ++tests-printers := \ ++ test-cond-printers \ ++ test-condattr-printers \ ++ test-mutex-printers \ ++ test-mutexattr-printers \ ++ test-rwlock-printers \ ++ test-rwlockattr-printers \ ++ # tests-printers + + # We must specify both CFLAGS and CPPFLAGS to override any + # compiler options the user might have provided that conflict +@@ -378,25 +447,51 @@ CPPFLAGS-tst-pthread-gdb-attach-static.c := \ + # were launched with an explicit ld.so invocation. + tst-pthread-gdb-attach-no-pie = yes + +-tests += tst-cancelx7 tst-cancelx17 ++tests += \ ++ tst-cancelx7 \ ++ tst-cancelx17 \ ++ # tests + + ifeq ($(build-shared),yes) +-tests += tst-compat-forwarder tst-audit-threads +-tests-internal += tst-tls3 tst-tls3-malloc tst-tls5 tst-stackguard1 ++tests += \ ++ tst-audit-threads \ ++ tst-compat-forwarder \ ++ # tests ++tests-internal += \ ++ tst-stackguard1 \ ++ tst-tls3 \ ++ tst-tls3-malloc \ ++ tst-tls5 \ ++ # tests-internal + ifeq ($(have-z-execstack),yes) + tests += tst-execstack + endif + endif + +-modules-names = tst-tls3mod \ +- tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \ +- tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \ +- tst-execstack-mod \ +- tst-compat-forwarder-mod tst-audit-threads-mod1 \ +- tst-audit-threads-mod2 +-extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) \ +- tst-cleanup4aux.o tst-cleanupx4aux.o +-test-extras += tst-cleanup4aux tst-cleanupx4aux ++modules-names = \ ++ tst-audit-threads-mod1 \ ++ tst-audit-threads-mod2 \ ++ tst-compat-forwarder-mod \ ++ tst-execstack-mod \ ++ tst-stack4mod \ ++ tst-tls3mod \ ++ tst-tls5mod \ ++ tst-tls5moda \ ++ tst-tls5modb \ ++ tst-tls5modc \ ++ tst-tls5modd \ ++ tst-tls5mode \ ++ tst-tls5modf \ ++ # modules-names ++extra-test-objs += \ ++ $(addsuffix .os,$(strip $(modules-names))) \ ++ tst-cleanup4aux.o \ ++ tst-cleanupx4aux.o \ ++ # extra-test-objs ++test-extras += \ ++ tst-cleanup4aux \ ++ tst-cleanupx4aux \ ++ # test-extras + + # This test exercises compat symbols removed in glibc 2.34. + ifdef have-GLIBC_2.33 +@@ -434,20 +529,31 @@ CFLAGS-funlockfile.c += $(libio-mtsafe) + link-libc-static := $(common-objpfx)libc.a $(static-gnulib) \ + $(common-objpfx)libc.a + +-tests-static += tst-stackguard1-static \ +- tst-cancel24-static \ +- tst-mutex8-static tst-mutexpi8-static tst-sem11-static \ +- tst-sem12-static tst-cond11-static \ +- tst-pthread-gdb-attach-static \ +- tst-pthread_exit-nothreads-static ++tests-static += \ ++ tst-cancel24-static \ ++ tst-mutex8-static \ ++ tst-mutexpi8-static \ ++ tst-pthread-gdb-attach-static \ ++ tst-pthread_exit-nothreads-static \ ++ tst-sem11-static \ ++ tst-sem12-static tst-cond11-static \ ++ tst-stackguard1-static \ ++ # tests-static + + tests += tst-cancel24-static + +-tests-internal += tst-sem11-static tst-sem12-static tst-stackguard1-static ++tests-internal += \ ++ tst-sem11-static \ ++ tst-sem12-static \ ++ tst-stackguard1-static \ ++ # tests-internal + xtests-static += tst-setuid1-static + + ifeq ($(run-built-tests),yes) +-tests-special += $(objpfx)tst-stack3-mem.out $(objpfx)tst-oddstacklimit.out ++tests-special += \ ++ $(objpfx)tst-oddstacklimit.out \ ++ $(objpfx)tst-stack3-mem.out \ ++ # tests-special + ifeq ($(build-shared),yes) + tests-special += $(objpfx)tst-tls6.out + endif +@@ -455,8 +561,13 @@ endif + + ifeq (,$(CXX)) + # These tests require a C++ compiler and runtime. +-tests-unsupported += tst-cancel24 tst-cancel24-static tst-once5 \ +- tst-thread-exit-clobber tst-minstack-throw ++tests-unsupported += \ ++ tst-cancel24 \ ++ tst-cancel24-static \ ++ tst-minstack-throw \ ++ tst-once5 \ ++ tst-thread-exit-clobber \ ++ # tests-unsupported + endif + # These tests require a C++ compiler and runtime with thread_local support. + ifneq ($(have-cxx-thread_local),yes) +@@ -502,7 +613,10 @@ tst-stack3-ENV = MALLOC_TRACE=$(objpfx)tst-stack3.mtrace \ + $(objpfx)tst-stack3-mem.out: $(objpfx)tst-stack3.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-stack3.mtrace > $@; \ + $(evaluate-test) +-generated += tst-stack3-mem.out tst-stack3.mtrace ++generated += \ ++ tst-stack3-mem.out \ ++ tst-stack3.mtrace \ ++ # generated + + tst-stack4mod.sos=$(shell for i in 0 1 2 3 4 5 6 7 8 9 10 \ + 11 12 13 14 15 16 17 18 19; do \ +@@ -544,7 +658,10 @@ LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24) + + ifeq ($(build-shared),yes) + +-generated += multidir.mk tst-tls6.out ++generated += \ ++ multidir.mk \ ++ tst-tls6.out \ ++ # generated + endif + + tst-exec4-ARGS = $(host-test-program-cmd) +diff --git a/nptl/tst-mutexpi5a.c b/nptl/tst-mutexpi11.c +similarity index 100% +rename from nptl/tst-mutexpi5a.c +rename to nptl/tst-mutexpi11.c +diff --git a/nptl/tst-mutexpi7a.c b/nptl/tst-mutexpi12.c +similarity index 100% +rename from nptl/tst-mutexpi7a.c +rename to nptl/tst-mutexpi12.c +diff --git a/nptl/tst-rwlock2a.c b/nptl/tst-rwlock21.c +similarity index 100% +rename from nptl/tst-rwlock2a.c +rename to nptl/tst-rwlock21.c +diff --git a/nptl/tst-rwlock2b.c b/nptl/tst-rwlock22.c +similarity index 100% +rename from nptl/tst-rwlock2b.c +rename to nptl/tst-rwlock22.c diff --git a/SOURCES/glibc-RHEL-61559-2.patch b/SOURCES/glibc-RHEL-61559-2.patch new file mode 100644 index 0000000..619d976 --- /dev/null +++ b/SOURCES/glibc-RHEL-61559-2.patch @@ -0,0 +1,353 @@ +commit e41aabcc93edd6c9a6acb15212b2783d8a7ec5a3 +Author: Siddhesh Poyarekar +Date: Mon Dec 16 08:14:09 2024 -0500 + + tests: Verify inheritance of cpu affinity + + Add a couple of tests to verify that CPU affinity set using + sched_setaffinity and pthread_setaffinity_np are inherited by a child + process and child thread. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + (test list has not been reformatted downstream) + +diff --git a/nptl/Makefile b/nptl/Makefile +index eec8563f95a42554..455703bbd763d516 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -305,6 +305,7 @@ tests = \ + tst-mutexpi11 \ + tst-mutexpi12 \ + tst-once5 \ ++ tst-pthread-affinity-inheritance \ + tst-pthread-attr-affinity \ + tst-pthread-attr-affinity-fail \ + tst-pthread-attr-sigmask \ +diff --git a/nptl/tst-pthread-affinity-inheritance.c b/nptl/tst-pthread-affinity-inheritance.c +new file mode 100644 +index 0000000000000000..c020530dd916dea1 +--- /dev/null ++++ b/nptl/tst-pthread-affinity-inheritance.c +@@ -0,0 +1,71 @@ ++/* CPU Affinity inheritance test - pthread_{gs}etaffinity_np. ++ Copyright The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* See top level comment in nptl/tst-skeleton-affinity-inheritance.c for a ++ description of this test. */ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++set_my_affinity (size_t size, const cpu_set_t *set) ++{ ++ int ret = pthread_setaffinity_np (pthread_self (), size, set); ++ ++ if (ret != 0) ++ FAIL ("pthread_setaffinity_np returned %d (%s)", ret, strerror (ret)); ++} ++ ++static void ++verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++{ ++ cpu_set_t *set = CPU_ALLOC (nproc); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ ++ if (set == NULL || xor_set== NULL) ++ FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); ++ ++ int ret = pthread_getaffinity_np (pthread_self (), size, set); ++ if (ret != 0) ++ FAIL ("pthread_getaffinity_np returned %d (%s)", ret, strerror (ret)); ++ ++ CPU_XOR_S (size, xor_set, expected_set, set); ++ ++ int cpucount = CPU_COUNT_S (size, xor_set); ++ ++ if (cpucount > 0) ++ { ++ FAIL ("Affinity mask not inherited, " ++ "following %d CPUs mismatched in the expected and actual sets: ", ++ cpucount); ++ for (int cur = 0; cur < nproc && cpucount >= 0; cur++) ++ if (CPU_ISSET_S (size, cur, xor_set)) ++ { ++ printf ("%d ", cur); ++ cpucount--; ++ } ++ printf ("\n"); ++ } ++ ++ CPU_FREE (set); ++ CPU_FREE (xor_set); ++} ++ ++#include "tst-skeleton-affinity-inheritance.c" +diff --git a/nptl/tst-skeleton-affinity-inheritance.c b/nptl/tst-skeleton-affinity-inheritance.c +new file mode 100644 +index 0000000000000000..6de6d9c9428a0c9d +--- /dev/null ++++ b/nptl/tst-skeleton-affinity-inheritance.c +@@ -0,0 +1,152 @@ ++/* CPU Affinity inheritance test - common infrastructure. ++ Copyright The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The general idea of this test is to verify that the set of CPUs assigned to ++ a task gets inherited by a child (thread or process) of that task. This is ++ a framework that is included by specific APIs for the test, e.g. ++ sched_getaffinity/sched_setaffinity and ++ pthread_setaffinity_np/pthread_getaffinity_np. This is a framework, actual ++ tests entry points are in nptl/tst-pthread-affinity-inheritance.c and ++ sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c. ++ ++ There are two levels to the test with two different CPU masks. The first ++ level verifies that the affinity set on the main process is inherited by its ++ children subprocess or thread. The second level verifies that a subprocess ++ or subthread passes on its affinity to their respective subprocess or ++ subthread. We set a slightly different mask in both levels to ensure that ++ they're both inherited. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct test_param ++{ ++ int nproc; ++ cpu_set_t *set; ++ size_t size; ++ bool entry; ++}; ++ ++void __attribute__((noinline)) ++set_cpu_mask (struct test_param *param, bool entry) ++{ ++ int cpus = param->nproc; ++ ++ /* Less CPUS for the first level, if that's possible. */ ++ if (entry && cpus > 1) ++ cpus--; ++ ++ CPU_ZERO_S (param->size, param->set); ++ while (cpus > 0) ++ CPU_SET_S (--cpus, param->size, param->set); ++ ++ if (CPU_COUNT_S (param->size, param->set) == 0) ++ FAIL_EXIT1 ("Failed to add any CPUs to the affinity set\n"); ++} ++ ++static void * ++child_test (void *arg) ++{ ++ struct test_param *param = arg; ++ ++ printf ("%d:%d child\n", getpid (), gettid ()); ++ verify_my_affinity (param->nproc, param->size, param->set); ++ return NULL; ++} ++ ++void * ++do_one_test (void *arg) ++{ ++ void *(*child) (void *) = NULL; ++ struct test_param *param = arg; ++ bool entry = param->entry; ++ ++ if (entry) ++ { ++ printf ("%d:%d Start test run\n", getpid (), gettid ()); ++ /* First level: Reenter as a subprocess and then as a subthread. */ ++ child = do_one_test; ++ set_cpu_mask (param, true); ++ set_my_affinity (param->size, param->set); ++ param->entry = false; ++ } ++ else ++ { ++ /* Verification for the first level. */ ++ verify_my_affinity (param->nproc, param->size, param->set); ++ ++ /* Launch the second level test, launching CHILD_TEST as a subprocess and ++ then as a subthread. Use a different mask to see if it gets ++ inherited. */ ++ child = child_test; ++ set_cpu_mask (param, false); ++ set_my_affinity (param->size, param->set); ++ } ++ ++ /* Verify that a child of a thread/process inherits the affinity mask. */ ++ printf ("%d:%d%sdo_one_test: fork\n", getpid (), gettid (), ++ entry ? " " : " "); ++ int pid = xfork (); ++ ++ if (pid == 0) ++ { ++ child (param); ++ return NULL; ++ } ++ ++ xwaitpid (pid, NULL, 0); ++ ++ /* Verify that a subthread of a thread/process inherits the affinity ++ mask. */ ++ printf ("%d:%d%sdo_one_test: thread\n", getpid (), gettid (), ++ entry ? " " : " "); ++ pthread_t t = xpthread_create (NULL, child, param); ++ xpthread_join (t); ++ ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ int num_cpus = get_nprocs (); ++ ++ struct test_param param = ++ { ++ .nproc = num_cpus, ++ .set = CPU_ALLOC (num_cpus), ++ .size = CPU_ALLOC_SIZE (num_cpus), ++ .entry = true, ++ }; ++ ++ if (param.set == NULL) ++ FAIL_EXIT1 ("error: CPU_ALLOC (%d) failed\n", num_cpus); ++ ++ do_one_test (¶m); ++ ++ CPU_FREE (param.set); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 8632bfe6eac31ff2..08b4e7765c07f6a3 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -127,6 +127,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-getauxval \ + tst-fdopendir-o_path \ + tst-linux-mremap1 \ ++ tst-sched-affinity-inheritance \ + # tests + + # Test for the symbol version of fcntl that was replaced in glibc 2.28. +diff --git a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +new file mode 100644 +index 0000000000000000..fe0297f743d55e2f +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +@@ -0,0 +1,71 @@ ++/* CPU Affinity inheritance test - sched_{gs}etaffinity. ++ Copyright The GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* See top level comment in nptl/tst-skeleton-affinity-inheritance.c for a ++ description of this test. */ ++ ++#include ++#include ++#include ++#include ++ ++static void ++set_my_affinity (size_t size, const cpu_set_t *set) ++{ ++ int ret = sched_setaffinity (0, size, set); ++ ++ if (ret != 0) ++ FAIL ("sched_setaffinity returned %d (%s)", ret, strerror (ret)); ++} ++ ++static void ++verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++{ ++ cpu_set_t *set = CPU_ALLOC (nproc); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ ++ if (set == NULL || xor_set== NULL) ++ FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); ++ ++ int ret = sched_getaffinity (0, size, set); ++ if (ret != 0) ++ FAIL ("sched_getaffinity returned %d (%s)", ret, strerror (ret)); ++ ++ CPU_XOR_S (size, xor_set, expected_set, set); ++ ++ int cpucount = CPU_COUNT_S (size, xor_set); ++ ++ if (cpucount > 0) ++ { ++ FAIL ("Affinity mask not inherited, " ++ "following %d CPUs mismatched in the expected and actual sets:\n", ++ cpucount); ++ for (int cur = 0; cur < nproc && cpucount >= 0; cur++) ++ if (CPU_ISSET_S (size, cur, xor_set)) ++ { ++ printf ("%d ", cur); ++ cpucount--; ++ } ++ printf ("\n"); ++ } ++ ++ CPU_FREE (set); ++ CPU_FREE (xor_set); ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-61559-3.patch b/SOURCES/glibc-RHEL-61559-3.patch new file mode 100644 index 0000000..be715f9 --- /dev/null +++ b/SOURCES/glibc-RHEL-61559-3.patch @@ -0,0 +1,103 @@ +commit 09ea1afec75ed0d41cb0da27a9df1b8c3dd56ddc +Author: Stefan Liebler +Date: Fri Jan 10 12:55:50 2025 -0500 + + affinity-inheritance: Overallocate CPU sets + + Some kernels on S390 appear to return a CPU affinity mask based on + configured processors rather than the ones online. Overallocate the CPU + set to match that, but operate only on the ones online. + + Signed-off-by: Siddhesh Poyarekar + Co-authored-by: Siddhesh Poyarekar + +diff --git a/nptl/tst-pthread-affinity-inheritance.c b/nptl/tst-pthread-affinity-inheritance.c +index c020530dd916dea1..153fc904dfe14c9d 100644 +--- a/nptl/tst-pthread-affinity-inheritance.c ++++ b/nptl/tst-pthread-affinity-inheritance.c +@@ -34,10 +34,11 @@ set_my_affinity (size_t size, const cpu_set_t *set) + } + + static void +-verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++verify_my_affinity (int nproc, int nproc_configured, size_t size, ++ const cpu_set_t *expected_set) + { +- cpu_set_t *set = CPU_ALLOC (nproc); +- cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ cpu_set_t *set = CPU_ALLOC (nproc_configured); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc_configured); + + if (set == NULL || xor_set== NULL) + FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); +diff --git a/nptl/tst-skeleton-affinity-inheritance.c b/nptl/tst-skeleton-affinity-inheritance.c +index 6de6d9c9428a0c9d..926f49622990e9e4 100644 +--- a/nptl/tst-skeleton-affinity-inheritance.c ++++ b/nptl/tst-skeleton-affinity-inheritance.c +@@ -42,6 +42,7 @@ + struct test_param + { + int nproc; ++ int nproc_configured; + cpu_set_t *set; + size_t size; + bool entry; +@@ -70,7 +71,8 @@ child_test (void *arg) + struct test_param *param = arg; + + printf ("%d:%d child\n", getpid (), gettid ()); +- verify_my_affinity (param->nproc, param->size, param->set); ++ verify_my_affinity (param->nproc, param->nproc_configured, param->size, ++ param->set); + return NULL; + } + +@@ -93,7 +95,8 @@ do_one_test (void *arg) + else + { + /* Verification for the first level. */ +- verify_my_affinity (param->nproc, param->size, param->set); ++ verify_my_affinity (param->nproc, param->nproc_configured, param->size, ++ param->set); + + /* Launch the second level test, launching CHILD_TEST as a subprocess and + then as a subthread. Use a different mask to see if it gets +@@ -129,13 +132,17 @@ do_one_test (void *arg) + static int + do_test (void) + { ++ /* Large enough in case the kernel decides to return the larger mask. This ++ seems to happen on some kernels for S390x. */ ++ int num_configured_cpus = get_nprocs_conf (); + int num_cpus = get_nprocs (); + + struct test_param param = + { + .nproc = num_cpus, +- .set = CPU_ALLOC (num_cpus), +- .size = CPU_ALLOC_SIZE (num_cpus), ++ .nproc_configured = num_configured_cpus, ++ .set = CPU_ALLOC (num_configured_cpus), ++ .size = CPU_ALLOC_SIZE (num_configured_cpus), + .entry = true, + }; + +diff --git a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +index fe0297f743d55e2f..8a42d275fce35e84 100644 +--- a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c ++++ b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +@@ -34,10 +34,11 @@ set_my_affinity (size_t size, const cpu_set_t *set) + } + + static void +-verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++verify_my_affinity (int nproc, int nproc_configured, size_t size, ++ const cpu_set_t *expected_set) + { +- cpu_set_t *set = CPU_ALLOC (nproc); +- cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ cpu_set_t *set = CPU_ALLOC (nproc_configured); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc_configured); + + if (set == NULL || xor_set== NULL) + FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); diff --git a/SOURCES/glibc-RHEL-61559-4.patch b/SOURCES/glibc-RHEL-61559-4.patch new file mode 100644 index 0000000..d97c4c0 --- /dev/null +++ b/SOURCES/glibc-RHEL-61559-4.patch @@ -0,0 +1,20 @@ +commit 71b49e299dbe22853095119da5064303e1d6b9ff +Author: Florian Weimer +Date: Tue Jan 21 10:36:58 2025 +0100 + + nptl: Include in tst-skeleton-affinity-inheritance.c + + The file uses the identifiers bool, false, true. + +diff --git a/nptl/tst-skeleton-affinity-inheritance.c b/nptl/tst-skeleton-affinity-inheritance.c +index 926f49622990e9e4..e1f328ae265b2bfb 100644 +--- a/nptl/tst-skeleton-affinity-inheritance.c ++++ b/nptl/tst-skeleton-affinity-inheritance.c +@@ -32,6 +32,7 @@ + they're both inherited. */ + + #include ++#include + #include + #include + #include diff --git a/SOURCES/glibc-RHEL-61568.patch b/SOURCES/glibc-RHEL-61568.patch new file mode 100644 index 0000000..b28221c --- /dev/null +++ b/SOURCES/glibc-RHEL-61568.patch @@ -0,0 +1,114 @@ +commit bde47662b74b883149c3001e2c052dea5d3cd92f +Author: Sergey Kolosov +Date: Wed Nov 6 15:24:06 2024 +0100 + + nptl: Add new test for pthread_spin_trylock + + Add a threaded test for pthread_spin_trylock attempting to lock already + acquired spin lock and checking for correct return code. + + Reviewed-by: Florian Weimer + +Conflicts: + sysdeps/pthread/Makefile (add new test) + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index d99c161c827ef4b8..6355e94171fbcdc3 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -127,6 +127,7 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ + tst-pthread_kill-exited \ + tst-pthread_kill-exiting \ + tst-cancel30 \ ++ tst-spin5 \ + # tests + + tests-time64 := \ +diff --git a/sysdeps/pthread/tst-spin5.c b/sysdeps/pthread/tst-spin5.c +new file mode 100644 +index 0000000000000000..5c23bd48ef27b3ce +--- /dev/null ++++ b/sysdeps/pthread/tst-spin5.c +@@ -0,0 +1,82 @@ ++/* Threaded test the pthread_spin_trylock function. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++pthread_spinlock_t lock; ++ ++void * ++thread (void *arg) ++{ ++ int ret; ++ int thr_id = *(int *) arg; ++ ++ ret = pthread_spin_trylock (&lock); ++ if (thr_id == 1) ++ /* thread with already acquired lock. */ ++ { ++ if (ret != EBUSY) ++ { ++ FAIL_EXIT1 ("pthread_spin_trylock should fail with EBUSY"); ++ } ++ } ++ else if (thr_id == 2) ++ /* thread with released spin lock. */ ++ { ++ if (ret != 0) ++ { ++ FAIL_EXIT1 ("pthread_spin_trylock should be able to acquire lock"); ++ } ++ } ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ pthread_t thr1, thr2; ++ int ret; ++ int thr1_id = 1, thr2_id = 2; ++ ++ pthread_spin_init (&lock, PTHREAD_PROCESS_PRIVATE); ++ /* lock spin in main thread. */ ++ ret = pthread_spin_trylock (&lock); ++ if (ret != 0) ++ { ++ FAIL_EXIT1 ("Main thread should be able to acquire spin lock"); ++ } ++ ++ /* create first thread to try locking already acquired spin lock. */ ++ thr1 = xpthread_create (NULL, thread, &thr1_id); ++ xpthread_join (thr1); ++ ++ /* release spin lock and create thread to acquire released spin lock. */ ++ pthread_spin_unlock (&lock); ++ thr2 = xpthread_create (NULL, thread, &thr2_id); ++ xpthread_join (thr2); ++ ++ pthread_spin_destroy (&lock); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-61569-1.patch b/SOURCES/glibc-RHEL-61569-1.patch new file mode 100644 index 0000000..8da3909 --- /dev/null +++ b/SOURCES/glibc-RHEL-61569-1.patch @@ -0,0 +1,111 @@ +commit fa53723cdb6f0338558e57a2a0a6459c00a1bc5f +Author: Frédéric Bérat +Date: Fri Nov 29 14:48:43 2024 +0100 + + support: Add support_next_to_fault_before support function + + Refactor the support_next_to_fault and add the + support_next_to_fault_before method returns a buffer with a protected + page before it, to be able to test buffer underflow accesses. + + Reviewed-by: Tulio Magno Quites Machado Filho + +# Conflicts: +# support/next_to_fault.c (copyright update) + +diff --git a/support/next_to_fault.c b/support/next_to_fault.c +index 6d9bcc8ea74c4a5f..b60d5a574484f8e7 100644 +--- a/support/next_to_fault.c ++++ b/support/next_to_fault.c +@@ -1,5 +1,5 @@ +-/* Memory allocation next to an unmapped page. +- Copyright (C) 2017-2021 Free Software Foundation, Inc. ++/* Memory allocation either before or after an unmapped page. ++ Copyright (C) 2017-2025 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -16,34 +16,58 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #include + #include + #include + #include + +-struct support_next_to_fault +-support_next_to_fault_allocate (size_t size) ++static struct support_next_to_fault ++support_next_to_fault_allocate_any (size_t size, bool fault_after_alloc) + { + long page_size = sysconf (_SC_PAGE_SIZE); ++ long protect_offset = 0; ++ long buffer_offset = page_size; ++ + TEST_VERIFY_EXIT (page_size > 0); + struct support_next_to_fault result; + result.region_size = roundup (size, page_size) + page_size; + if (size + page_size <= size || result.region_size <= size) +- FAIL_EXIT1 ("support_next_to_fault_allocate (%zu): overflow", size); ++ FAIL_EXIT1 ("%s (%zu): overflow", __func__, size); + result.region_start + = xmmap (NULL, result.region_size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1); +- /* Unmap the page after the allocation. */ +- xmprotect (result.region_start + (result.region_size - page_size), +- page_size, PROT_NONE); +- /* Align the allocation within the region so that it ends just +- before the PROT_NONE page. */ +- result.buffer = result.region_start + result.region_size - page_size - size; ++ ++ if (fault_after_alloc) ++ { ++ protect_offset = result.region_size - page_size; ++ buffer_offset = protect_offset - size; ++ } ++ ++ /* Unmap the page before or after the allocation. */ ++ xmprotect (result.region_start + protect_offset, page_size, PROT_NONE); ++ /* Align the allocation within the region so that it starts after or ends ++ just before the PROT_NONE page. */ ++ result.buffer = result.region_start + buffer_offset; + result.length = size; + return result; + } + ++/* Unmapped a page after the buffer */ ++struct support_next_to_fault ++support_next_to_fault_allocate (size_t size) ++{ ++ return support_next_to_fault_allocate_any (size, true); ++} ++ ++/* Unmapped a page before the buffer */ ++struct support_next_to_fault ++support_next_to_fault_allocate_before (size_t size) ++{ ++ return support_next_to_fault_allocate_any (size, false); ++} ++ + void + support_next_to_fault_free (struct support_next_to_fault *ntf) + { +diff --git a/support/next_to_fault.h b/support/next_to_fault.h +index bd2a0cffedbdc5dc..eb8ff24412f8ae94 100644 +--- a/support/next_to_fault.h ++++ b/support/next_to_fault.h +@@ -41,6 +41,11 @@ struct support_next_to_fault + fault). */ + struct support_next_to_fault support_next_to_fault_allocate (size_t size); + ++/* Allocate a buffer of SIZE bytes just *after* a page which is mapped ++ with PROT_NONE (so that under-running the buffer will cause a ++ fault). */ ++struct support_next_to_fault support_next_to_fault_allocate_before (size_t size); ++ + /* Deallocate the memory region allocated by + next_to_fault_allocate. */ + void support_next_to_fault_free (struct support_next_to_fault *); diff --git a/SOURCES/glibc-RHEL-61569-2.patch b/SOURCES/glibc-RHEL-61569-2.patch new file mode 100644 index 0000000..ece747c --- /dev/null +++ b/SOURCES/glibc-RHEL-61569-2.patch @@ -0,0 +1,395 @@ +commit 8a46bf41e5a61248f626a8213520de499f388122 +Author: Frédéric Bérat +Date: Fri Nov 29 14:50:27 2024 +0100 + + posix: Rewrite cpuset tests + + Rewriting the cpuset macros test to cover more use cases and port the + tests to the new test infrastructure. + + The use cases include bad actor access attempts, before and after the + CPU set structure. + + Reviewed-by: Tulio Magno Quites Machado Filho + +# Conflicts: +# posix/Makefile (new test added) + +diff --git a/posix/Makefile b/posix/Makefile +index 61fcdf015b4ec83b..4c32a088a73723c7 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -96,7 +96,7 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-execvp3 tst-execvp4 \ + tst-execvpe1 tst-execvpe2 tst-execvpe3 tst-execvpe4 \ + tst-execvpe5 tst-execvpe6 \ +- tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ ++ tst-getaddrinfo3 tst-fnmatch2 tst-cpucount \ + bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ + bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \ + tst-pathconf tst-rxspencer-no-utf8 \ +@@ -108,7 +108,10 @@ tests := test-errno tstgetopt testfnm runtests runptests \ + tst-glob-tilde test-ssize-max tst-spawn4 bug-regex37 \ + bug-regex38 tst-regcomp-truncated tst-spawn-chdir \ + tst-wordexp-nocmd tst-execveat tst-spawn5 \ +- tst-sched_getaffinity ++ tst-sched_getaffinity \ ++ tst-cpuset-dynamic \ ++ tst-cpuset-static \ ++ + + # Test for the glob symbol version that was replaced in glibc 2.27. + ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes) +diff --git a/posix/tst-cpuset-dynamic.c b/posix/tst-cpuset-dynamic.c +new file mode 100644 +index 0000000000000000..6e0f06dfd810a724 +--- /dev/null ++++ b/posix/tst-cpuset-dynamic.c +@@ -0,0 +1,63 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define LOCAL_NUM_CPUS 2048 ++#define LOCAL_CPU_SETSIZE LOCAL_NUM_CPUS / 8 ++ ++#define PREPARE_CPU_SET(X) \ ++ X = CPU_ALLOC (LOCAL_NUM_CPUS); ++ ++/* Create a mapping so that access to the page before the cpuset generates a ++ fault. The aim is to check the behavior for negative values since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT_BEFORE(X) \ ++ size_t local_sz_##X = CPU_ALLOC_SIZE(LOCAL_NUM_CPUS); \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate_before(local_sz_##X); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++/* Create a mapping so that access to the page after the cpuset generates a ++ fault. The aim is to check the behavior for values above CPU count since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT(X) \ ++ size_t local_sz_##X = CPU_ALLOC_SIZE(LOCAL_NUM_CPUS); \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate(local_sz_##X); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++#define GET_SIZE() (size_t) CPU_ALLOC_SIZE(LOCAL_NUM_CPUS) ++ ++#define LOCAL_CPU_ZERO(sz, cpusetp) CPU_ZERO_S(sz, cpusetp) ++#define LOCAL_CPU_SET(cpu, sz, cpusetp) CPU_SET_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_CLR(cpu, sz, cpusetp) CPU_CLR_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_ISSET(cpu, sz, cpusetp) CPU_ISSET_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_COUNT(sz, cpusetp) CPU_COUNT_S(sz, cpusetp) ++#define LOCAL_CPU_AND(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_AND_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_OR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_OR_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_XOR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_XOR_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_EQUAL(sz, setp1, setp2) CPU_EQUAL_S(sz, setp1, setp2) ++ ++#define CLEAN_CPU_SET(cpusetp) CPU_FREE(cpusetp) ++#define CLEAN_CPU_SET_TO_FAULT_BEFORE(X) support_next_to_fault_free(&local_##X) ++#define CLEAN_CPU_SET_TO_FAULT(X) support_next_to_fault_free(&local_##X) ++ ++#include "tst-cpuset-skeleton.c" +diff --git a/posix/tst-cpuset-skeleton.c b/posix/tst-cpuset-skeleton.c +new file mode 100644 +index 0000000000000000..2c04989c0da502be +--- /dev/null ++++ b/posix/tst-cpuset-skeleton.c +@@ -0,0 +1,123 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ cpu_set_t *cpusetp_A = NULL; ++ cpu_set_t *cpusetp_B = NULL; ++ cpu_set_t *cpusetp_C = NULL; ++ ++ size_t setsz __attribute__ ((unused)) = GET_SIZE(); ++ ++ TEST_VERIFY (CPU_ALLOC_SIZE (-1) == 0); ++ TEST_VERIFY (CPU_ALLOC_SIZE (0) == 0); ++ TEST_VERIFY (CPU_ALLOC_SIZE (1) == sizeof (__cpu_mask)); ++ TEST_VERIFY (CPU_ALLOC_SIZE (INT_MAX) > 0); ++ ++ PREPARE_CPU_SET_TO_FAULT_BEFORE(cpusetp_A); ++ PREPARE_CPU_SET_TO_FAULT(cpusetp_B); ++ PREPARE_CPU_SET(cpusetp_C); ++ ++ /* Bad actor access, negative CPU number */ ++ LOCAL_CPU_SET (-1, setsz, cpusetp_A); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (-1, setsz, cpusetp_A)); ++ ++ /* Bad actor access, above CPU number */ ++ LOCAL_CPU_SET (LOCAL_NUM_CPUS, setsz, cpusetp_B); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (LOCAL_NUM_CPUS, setsz, cpusetp_B)); ++ ++ LOCAL_CPU_ZERO (setsz, cpusetp_A); ++ LOCAL_CPU_ZERO (setsz, cpusetp_B); ++ LOCAL_CPU_ZERO (setsz, cpusetp_C); ++ ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* Set A = 0x55..55 */ ++ LOCAL_CPU_SET (cpu, setsz, cpusetp_A); ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_A)); ++ } ++ for (int cpu = 1; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* Set B = 0xAA..AA */ ++ LOCAL_CPU_SET (cpu, setsz, cpusetp_B); ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_B)); ++ } ++ ++ /* Ensure CPU_COUNT matches expected count */ ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_A) == LOCAL_CPU_COUNT (setsz, cpusetp_B)); ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_A) == LOCAL_NUM_CPUS / 2); ++ ++ LOCAL_CPU_AND (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A setsz, B == 0 */ ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ LOCAL_CPU_OR (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A | B == 0xFF..FF */ ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ /* Check that CPU_ZERO actually does something */ ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_C) == LOCAL_NUM_CPUS); ++ LOCAL_CPU_ZERO (setsz, cpusetp_C); ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_C) == 0); ++ ++ LOCAL_CPU_XOR (setsz, cpusetp_C, cpusetp_A, cpusetp_A); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A ^ A == 0 */ ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ LOCAL_CPU_XOR (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* C = A ^ B == 0xFF..FF */ ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ for (int cpu = 1; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* C = 0x55..55 */ ++ LOCAL_CPU_CLR (cpu, setsz, cpusetp_C); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ TEST_VERIFY (LOCAL_CPU_EQUAL (setsz, cpusetp_A, cpusetp_C)); ++ ++ CLEAN_CPU_SET(cpusetp_C); ++ CLEAN_CPU_SET_TO_FAULT(cpusetp_B); ++ CLEAN_CPU_SET_TO_FAULT_BEFORE(cpusetp_A); ++ ++ return 0; ++} ++ ++#include +diff --git a/posix/tst-cpuset-static.c b/posix/tst-cpuset-static.c +new file mode 100644 +index 0000000000000000..ad4c40e422c50ab8 +--- /dev/null ++++ b/posix/tst-cpuset-static.c +@@ -0,0 +1,61 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define LOCAL_NUM_CPUS CPU_SETSIZE ++ ++/* Create a mapping so that access to the page before the cpuset generates a ++ fault. The aim is to check the behavior for negative values since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT_BEFORE(X) \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate_before(sizeof(*X)); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++/* Create a mapping so that access to the page after the cpuset generates a ++ fault. The aim is to check the behavior for values above CPU count since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT(X) \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate(sizeof(*X)); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++#define PREPARE_CPU_SET(X) \ ++ cpu_set_t local_##X = {}; \ ++ X = &local_##X; ++ ++#define GET_SIZE() (size_t) sizeof (cpu_set_t) ++ ++#define LOCAL_CPU_ZERO(sz, cpusetp) CPU_ZERO(cpusetp) ++#define LOCAL_CPU_SET(cpu, sz, cpusetp) CPU_SET(cpu, cpusetp) ++#define LOCAL_CPU_CLR(cpu, sz, cpusetp) CPU_CLR(cpu, cpusetp) ++#define LOCAL_CPU_ISSET(cpu, sz, cpusetp) CPU_ISSET(cpu, cpusetp) ++#define LOCAL_CPU_COUNT(sz, cpusetp) CPU_COUNT(cpusetp) ++#define LOCAL_CPU_AND(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_AND(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_OR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_OR(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_XOR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_XOR(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_EQUAL(sz, setp1, setp2) CPU_EQUAL(setp1, setp2) ++ ++#define CLEAN_CPU_SET(X) ++#define CLEAN_CPU_SET_TO_FAULT_BEFORE(X) support_next_to_fault_free(&local_##X) ++#define CLEAN_CPU_SET_TO_FAULT(X) support_next_to_fault_free(&local_##X) ++ ++#include "tst-cpuset-skeleton.c" +diff --git a/posix/tst-cpuset.c b/posix/tst-cpuset.c +deleted file mode 100644 +index d736793222af5ec6..0000000000000000 +--- a/posix/tst-cpuset.c ++++ /dev/null +@@ -1,82 +0,0 @@ +-#include +-#include +- +-static int +-do_test (void) +-{ +- int result = 0; +- +- cpu_set_t s1; +- cpu_set_t s2; +- cpu_set_t s3; +- +- CPU_ZERO (&s1); +- CPU_SET (0, &s1); +- +- CPU_ZERO (&s2); +- CPU_SET (0, &s2); +- CPU_SET (1, &s2); +- +- CPU_AND (&s3, &s1, &s2); +- if (! CPU_EQUAL (&s3, &s1)) +- { +- puts ("result of CPU_AND wrong"); +- result = 1; +- } +- +- CPU_OR (&s3, &s1, &s2); +- if (! CPU_EQUAL (&s3, &s2)) +- { +- puts ("result of CPU_OR wrong"); +- result = 1; +- } +- +- CPU_XOR (&s3, &s1, &s2); +- if (CPU_COUNT (&s3) != 1) +- { +- puts ("result of CPU_XOR wrong"); +- result = 1; +- } +- +- cpu_set_t *vs1 = CPU_ALLOC (2048); +- cpu_set_t *vs2 = CPU_ALLOC (2048); +- cpu_set_t *vs3 = CPU_ALLOC (2048); +- size_t vssize = CPU_ALLOC_SIZE (2048); +- +- CPU_ZERO_S (vssize, vs1); +- CPU_SET_S (0, vssize, vs1); +- +- CPU_ZERO_S (vssize, vs2); +- CPU_SET_S (0, vssize, vs2); +- CPU_SET_S (2047, vssize, vs2); +- +- CPU_AND_S (vssize, vs3, vs1, vs2); +- if (! CPU_EQUAL_S (vssize, vs3, vs1)) +- { +- puts ("result of CPU_AND_S wrong"); +- result = 1; +- } +- +- CPU_OR_S (vssize, vs3, vs1, vs2); +- if (! CPU_EQUAL_S (vssize, vs3, vs2)) +- { +- puts ("result of CPU_OR_S wrong"); +- result = 1; +- } +- +- CPU_XOR_S (vssize, vs3, vs1, vs2); +- if (CPU_COUNT_S (vssize, vs3) != 1) +- { +- puts ("result of CPU_XOR_S wrong"); +- result = 1; +- } +- +- CPU_FREE (vs1); +- CPU_FREE (vs2); +- CPU_FREE (vs3); +- +- return result; +-} +- +-#define TEST_FUNCTION do_test () +-#include "../test-skeleton.c" diff --git a/SOURCES/glibc-RHEL-62716-1.patch b/SOURCES/glibc-RHEL-62716-1.patch new file mode 100644 index 0000000..e7d0757 --- /dev/null +++ b/SOURCES/glibc-RHEL-62716-1.patch @@ -0,0 +1,214 @@ +commit 8022fc7d5119a22e9e0ac72798f649385b0e167a +Author: Frédéric Bérat +Date: Wed Jun 14 10:52:07 2023 +0200 + + tests: replace system by xsystem + + With fortification enabled, system calls return result needs to be checked, + has it gets the __wur macro enabled. + Reviewed-by: Siddhesh Poyarekar + +Conflicts: + nptl/tst-cancel7.c (change not relevant for this version) + +diff --git a/elf/tst-stackguard1.c b/elf/tst-stackguard1.c +index 6584740d6aa26f5f..9c4a5ccde0c659a9 100644 +--- a/elf/tst-stackguard1.c ++++ b/elf/tst-stackguard1.c +@@ -27,6 +27,8 @@ + #include + #include + ++#include ++ + static const char *command; + static bool child; + static uintptr_t stack_chk_guard_copy; +@@ -109,7 +111,8 @@ do_test (void) + dup2 (fds[1], 2); + close (fds[1]); + +- system (command); ++ xsystem (command); ++ + exit (0); + } + +diff --git a/libio/bug-mmap-fflush.c b/libio/bug-mmap-fflush.c +index d8aa58985aa0790c..3f99222eefa7d4c3 100644 +--- a/libio/bug-mmap-fflush.c ++++ b/libio/bug-mmap-fflush.c +@@ -4,6 +4,7 @@ + #include + #include + ++#include + + static char *fname; + +@@ -35,14 +36,16 @@ do_test (void) + char buffer[1024]; + + snprintf (buffer, sizeof (buffer), "echo 'From foo@bar.com' > %s", fname); +- system (buffer); ++ xsystem (buffer); ++ + f = fopen (fname, "r"); + fseek (f, 0, SEEK_END); + o = ftello (f); + fseek (f, 0, SEEK_SET); + fflush (f); + snprintf (buffer, sizeof (buffer), "echo 'From bar@baz.edu' >> %s", fname); +- system (buffer); ++ xsystem (buffer); ++ + fseek (f, o, SEEK_SET); + if (fgets (buffer, 1024, f) == NULL) + exit (1); +diff --git a/nptl/tst-cancel7.c b/nptl/tst-cancel7.c +index 7a1870ac74b23faa..338cecc8293638b0 100644 +--- a/nptl/tst-cancel7.c ++++ b/nptl/tst-cancel7.c +@@ -41,6 +41,7 @@ tf (void *arg) + + strcpy (stpcpy (stpcpy (cmd, command), args), pidfilename); + system (cmd); ++ + /* This call should never return. */ + return NULL; + } +diff --git a/nptl/tst-stackguard1.c b/nptl/tst-stackguard1.c +index cac492ec34808617..5b9d57a73327b3c8 100644 +--- a/nptl/tst-stackguard1.c ++++ b/nptl/tst-stackguard1.c +@@ -29,6 +29,7 @@ + #include + + #include ++#include + + static const char *command; + static bool child; +@@ -141,7 +142,8 @@ do_test (void) + dup2 (fds[1], 2); + close (fds[1]); + +- system (command); ++ xsystem (command); ++ + exit (0); + } + +diff --git a/nss/tst-nss-db-endpwent.c b/nss/tst-nss-db-endpwent.c +index 5932a9800f33b717..d25033afabc01c30 100644 +--- a/nss/tst-nss-db-endpwent.c ++++ b/nss/tst-nss-db-endpwent.c +@@ -23,6 +23,7 @@ + + #include + #include ++#include + + /* It is entirely allowed to start with a getpwent call without + resetting the state of the service via a call to setpwent. +@@ -55,7 +56,7 @@ do_test (void) + + cmd = xasprintf ("%s/makedb -o /var/db/passwd.db /var/db/passwd.in", + support_bindir_prefix); +- system (cmd); ++ xsystem (cmd); + free (cmd); + + try_it (); +diff --git a/support/Makefile b/support/Makefile +index 3b8509c88db4662a..47d5db4629b029d3 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -221,6 +221,7 @@ libsupport-routines = \ + xstrndup \ + xsymlink \ + xsysconf \ ++ xsystem \ + xunlink \ + xuselocale \ + xwaitpid \ +diff --git a/support/xstdlib.h b/support/xstdlib.h +new file mode 100644 +index 0000000000000000..db5a5b9d4fd1fa71 +--- /dev/null ++++ b/support/xstdlib.h +@@ -0,0 +1,31 @@ ++/* Error-checking wrappers for stdlib functions. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef SUPPORT_XSTDLIB_H ++#define SUPPORT_XSTDLIB_H ++ ++#include ++#include ++ ++__BEGIN_DECLS ++ ++void xsystem (const char *cmd); ++ ++__END_DECLS ++ ++#endif /* SUPPORT_XSTDLIB_H */ +diff --git a/support/xsystem.c b/support/xsystem.c +new file mode 100644 +index 0000000000000000..1f558953bca8f5b2 +--- /dev/null ++++ b/support/xsystem.c +@@ -0,0 +1,37 @@ ++/* Error-checking replacement for "system". ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++void ++xsystem (const char *cmd) ++{ ++ int ret = system (cmd); ++ ++ if (ret == 0 && cmd == NULL) ++ FAIL_EXIT1 ("Unable to spawn a shell for NULL command"); ++ ++ if (ret == 127) ++ FAIL_EXIT1 ("Child terminated with status 127"); ++ ++ if (ret < 0) ++ FAIL_EXIT1 ("system (\"%s\")", cmd); ++} diff --git a/SOURCES/glibc-RHEL-62716-2.patch b/SOURCES/glibc-RHEL-62716-2.patch new file mode 100644 index 0000000..311f478 --- /dev/null +++ b/SOURCES/glibc-RHEL-62716-2.patch @@ -0,0 +1,291 @@ +commit ff0320bec2810192d453c579623482fab87bfa01 +Author: H.J. Lu +Date: Wed Jul 24 14:05:15 2024 -0700 + + Add mremap tests + + Add tests for MREMAP_MAYMOVE and MREMAP_FIXED. On Linux, also test + MREMAP_DONTUNMAP. + + Signed-off-by: H.J. Lu + Reviewed-by: Adhemerval Zanella + +Conflicts: + misc/Makefile (new test added) + sysdeps/unix/sysv/linux/Makefile (new test added) + +diff --git a/misc/Makefile b/misc/Makefile +index ae244a72689ffb0a..5d6fc0f6824a734f 100644 +--- a/misc/Makefile ++++ b/misc/Makefile +@@ -89,7 +89,9 @@ tests := tst-dirname tst-tsearch tst-fdset tst-mntent tst-hsearch \ + tst-preadvwritev2 tst-preadvwritev64v2 tst-warn-wide \ + tst-ldbl-warn tst-ldbl-error tst-dbl-efgcvt tst-ldbl-efgcvt \ + tst-mntent-autofs tst-syscalls tst-mntent-escape tst-select \ +- tst-ioctl ++ tst-ioctl \ ++ tst-mremap1 \ ++ tst-mremap2 \ + + tests-time64 := \ + tst-select-time64 \ +diff --git a/misc/tst-mremap1.c b/misc/tst-mremap1.c +new file mode 100644 +index 0000000000000000..0469991a6c1438b6 +--- /dev/null ++++ b/misc/tst-mremap1.c +@@ -0,0 +1,46 @@ ++/* Test mremap with MREMAP_MAYMOVE. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ size_t old_size = getpagesize (); ++ char *old_addr = xmmap (NULL, old_size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1); ++ old_addr[0] = 1; ++ old_addr[old_size - 1] = 2; ++ ++ /* Test MREMAP_MAYMOVE. */ ++ size_t new_size = old_size + old_size; ++ char *new_addr = mremap (old_addr, old_size, new_size, MREMAP_MAYMOVE); ++ TEST_VERIFY_EXIT (new_addr != MAP_FAILED); ++ new_addr[0] = 1; ++ new_addr[new_size - 1] = 2; ++ xmunmap (new_addr, new_size); ++ ++ return 0; ++} ++ ++#include +diff --git a/misc/tst-mremap2.c b/misc/tst-mremap2.c +new file mode 100644 +index 0000000000000000..45be7f0369c2571e +--- /dev/null ++++ b/misc/tst-mremap2.c +@@ -0,0 +1,54 @@ ++/* Test mremap with MREMAP_FIXED. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ size_t old_size = getpagesize (); ++ size_t new_size = old_size + old_size; ++ char *old_addr = xmmap (NULL, old_size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1); ++ old_addr[0] = 1; ++ old_addr[old_size - 1] = 2; ++ ++ char *fixed_addr = xmmap (NULL, new_size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1); ++ fixed_addr[0] = 1; ++ fixed_addr[new_size - 1] = 2; ++ ++ /* Test MREMAP_FIXED. */ ++ char *new_addr = mremap (old_addr, old_size, new_size, ++ MREMAP_FIXED | MREMAP_MAYMOVE, ++ fixed_addr); ++ if (new_addr == MAP_FAILED) ++ return mremap_failure_exit (errno); ++ new_addr[0] = 1; ++ new_addr[new_size - 1] = 2; ++ xmunmap (new_addr, new_size); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/generic/mremap-failure.h b/sysdeps/generic/mremap-failure.h +new file mode 100644 +index 0000000000000000..bc0d476368050c2c +--- /dev/null ++++ b/sysdeps/generic/mremap-failure.h +@@ -0,0 +1,25 @@ ++/* mremap failure handling. Generic version. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* Return exit value on mremap failure with errno ERR. */ ++ ++static int ++mremap_failure_exit (int err) ++{ ++ return EXIT_FAILURE; ++} +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 74656e56038844aa..8632bfe6eac31ff2 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -126,6 +126,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-scm_rights \ + tst-getauxval \ + tst-fdopendir-o_path \ ++ tst-linux-mremap1 \ + # tests + + # Test for the symbol version of fcntl that was replaced in glibc 2.28. +diff --git a/sysdeps/unix/sysv/linux/mremap-failure.h b/sysdeps/unix/sysv/linux/mremap-failure.h +new file mode 100644 +index 0000000000000000..c99ab30ca9ea796f +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/mremap-failure.h +@@ -0,0 +1,30 @@ ++/* mremap failure handling. Linux version. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Return exit value on mremap failure with errno ERR. */ ++ ++static int ++mremap_failure_exit (int err) ++{ ++ if (err != EINVAL) ++ return EXIT_FAILURE; ++ ++ return EXIT_UNSUPPORTED; ++} +diff --git a/sysdeps/unix/sysv/linux/tst-linux-mremap1.c b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c +new file mode 100644 +index 0000000000000000..408e8af2abe59033 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c +@@ -0,0 +1,63 @@ ++/* Test mremap with MREMAP_DONTUNMAP. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ size_t old_size = getpagesize (); ++ size_t new_size = old_size; ++ char *old_addr = xmmap (NULL, old_size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1); ++ old_addr[0] = 1; ++ old_addr[old_size - 1] = 2; ++ ++ /* Create an available 64-page mmap region. */ ++ size_t fixed_size = old_size * 64; ++ char *fixed_addr = xmmap (NULL, fixed_size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1); ++ xmunmap (fixed_addr, fixed_size); ++ ++ /* Add 3 * pagesize. */ ++ fixed_size += 3 * old_size; ++ ++ /* Test MREMAP_DONTUNMAP. It should return FIXED_ADDR created above. */ ++ char *new_addr = mremap (old_addr, old_size, new_size, ++ MREMAP_DONTUNMAP | MREMAP_MAYMOVE, ++ fixed_addr); ++ if (new_addr == MAP_FAILED) ++ return mremap_failure_exit (errno); ++ TEST_VERIFY_EXIT (fixed_addr == new_addr); ++ old_addr[0] = 3; ++ old_addr[old_size - 1] = 4; ++ new_addr[0] = 1; ++ new_addr[new_size - 1] = 2; ++ xmunmap (new_addr, new_size); ++ xmunmap (old_addr, old_size); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-65354.patch b/SOURCES/glibc-RHEL-65354.patch new file mode 100644 index 0000000..5f93e8a --- /dev/null +++ b/SOURCES/glibc-RHEL-65354.patch @@ -0,0 +1,109 @@ +commit 3c2b9dc41cd05da055fae6f793a355063156bdf3 +Author: Joseph Myers +Date: Fri Nov 29 20:25:04 2024 +0000 + + Add threaded test of sem_trywait + + All the existing glibc tests of sem_trywait are single-threaded. Add + one that calls sem_trywait and sem_post in separate threads. + + Tested for x86_64. + +Conflicts: + sysdeps/pthread/Makefile (add new test) + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 6355e94171fbcdc3..5a1b26fa3c0e6061 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -128,6 +128,7 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ + tst-pthread_kill-exiting \ + tst-cancel30 \ + tst-spin5 \ ++ tst-sem19 \ + # tests + + tests-time64 := \ +diff --git a/sysdeps/pthread/tst-sem19.c b/sysdeps/pthread/tst-sem19.c +new file mode 100644 +index 0000000000000000..9ef461e008ab9eab +--- /dev/null ++++ b/sysdeps/pthread/tst-sem19.c +@@ -0,0 +1,77 @@ ++/* Test sem_trywait with threads. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* The test uses two threads, the main thread and a newly created ++ thread to test the operation of sem_trywait in a threaded scenario. ++ The intent is to test sem_trywait when it would return EAGAIN, and ++ then again after the critical section in the new thread has posted ++ to the semaphore and the main thread succeeds in calling ++ sem_trywait. It is possible this test fails with a timeout if the ++ second thread takes longer than the test timeout to acquire the ++ lock, and post. */ ++ ++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; ++static sem_t sem; ++ ++static void * ++tf (void *arg) ++{ ++ xpthread_mutex_lock (&lock); ++ sem_post (&sem); ++ xpthread_mutex_unlock (&lock); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ int ret; ++ ++ ret = sem_init (&sem, 0, 0); ++ TEST_VERIFY_EXIT (ret == 0); ++ xpthread_mutex_lock (&lock); ++ pthread_t th = xpthread_create (NULL, tf, NULL); ++ errno = 0; ++ /* The other thread is waiting on the lock before it calls sem_post, ++ so sem_trywait should fail. */ ++ ret = sem_trywait (&sem); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EAGAIN); ++ xpthread_mutex_unlock (&lock); ++ /* The other thread now takes the lock, calls sem_post and releases ++ the lock. */ ++ for (;;) ++ { ++ errno = 0; ++ ret = sem_trywait (&sem); ++ if (ret == 0) ++ break; ++ TEST_COMPARE (errno, EAGAIN); ++ } ++ xpthread_join (th); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-65356-1.patch b/SOURCES/glibc-RHEL-65356-1.patch new file mode 100644 index 0000000..8b40111 --- /dev/null +++ b/SOURCES/glibc-RHEL-65356-1.patch @@ -0,0 +1,93 @@ +commit 2f679937b35b7f9a8d448ab2ee03bc1fb3ace263 +Author: Florian Weimer +Date: Mon May 8 13:14:22 2023 +0200 + + manual: Remove unsupported line breaks in waiting-with-clock section + + The argument to @deftypefun must be on a single line. + Also add the missing @safety for sem_clockwait. + + Reported-by: Nilgün Belma Bugüner + +diff --git a/manual/threads.texi b/manual/threads.texi +index 48fd562923800b34..a721c7f464e3588e 100644 +--- a/manual/threads.texi ++++ b/manual/threads.texi +@@ -754,8 +754,8 @@ freed. + + @comment semaphore.h + @comment POSIX-proposed +-@deftypefun int sem_clockwait (sem_t *@var{sem}, clockid_t @var{clockid}, +- const struct timespec *@var{abstime}) ++@deftypefun int sem_clockwait (sem_t *@var{sem}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) ++@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + Behaves like @code{sem_timedwait} except the time @var{abstime} is measured + against the clock specified by @var{clockid} rather than + @code{CLOCK_REALTIME}. Currently, @var{clockid} must be either +@@ -764,8 +764,7 @@ against the clock specified by @var{clockid} rather than + + @comment pthread.h + @comment POSIX-proposed +-@deftypefun int pthread_cond_clockwait (pthread_cond_t *@var{cond}, pthread_mutex_t *@var{mutex}, +- clockid_t @var{clockid}, const struct timespec *@var{abstime}) ++@deftypefun int pthread_cond_clockwait (pthread_cond_t *@var{cond}, pthread_mutex_t *@var{mutex}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + @c If exactly the same function with arguments is called from a signal + @c handler that interrupts between the mutex unlock and sleep then it +@@ -784,10 +783,7 @@ specified or defaulted when @code{pthread_cond_init} was called. Currently, + + @comment pthread.h + @comment POSIX-proposed +-@deftypefun int pthread_rwlock_clockrdlock (pthread_rwlock_t *@var{rwlock}, +- clockid_t @var{clockid}, +- const struct timespec *@var{abstime}) +- ++@deftypefun int pthread_rwlock_clockrdlock (pthread_rwlock_t *@var{rwlock}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + Behaves like @code{pthread_rwlock_timedrdlock} except the time + @var{abstime} is measured against the clock specified by @var{clockid} +@@ -798,10 +794,7 @@ returned. + + @comment pthread.h + @comment POSIX-proposed +-@deftypefun int pthread_rwlock_clockwrlock (pthread_rwlock_t *@var{rwlock}, +- clockid_t @var{clockid}, +- const struct timespec *@var{abstime}) +- ++@deftypefun int pthread_rwlock_clockwrlock (pthread_rwlock_t *@var{rwlock}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + Behaves like @code{pthread_rwlock_timedwrlock} except the time + @var{abstime} is measured against the clock specified by @var{clockid} +@@ -812,8 +805,7 @@ returned. + + @comment pthread.h + @comment GNU extension +-@deftypefun int pthread_tryjoin_np (pthread_t *@var{thread}, +- void **@var{thread_return}) ++@deftypefun int pthread_tryjoin_np (pthread_t *@var{thread}, void **@var{thread_return}) + @standards{GNU, pthread.h} + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + Behaves like @code{pthread_join} except that it will return @code{EBUSY} +@@ -822,9 +814,7 @@ immediately if the thread specified by @var{thread} has not yet terminated. + + @comment pthread.h + @comment GNU extension +-@deftypefun int pthread_timedjoin_np (pthread_t *@var{thread}, +- void **@var{thread_return}, +- const struct timespec *@var{abstime}) ++@deftypefun int pthread_timedjoin_np (pthread_t *@var{thread}, void **@var{thread_return}, const struct timespec *@var{abstime}) + @standards{GNU, pthread.h} + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + Behaves like @code{pthread_tryjoin_np} except that it will block until the +@@ -836,10 +826,7 @@ will wait forever in the same way as @code{pthread_join}. + + @comment pthread.h + @comment GNU extension +-@deftypefun int pthread_clockjoin_np (pthread_t *@var{thread}, +- void **@var{thread_return}, +- clockid_t @var{clockid}, +- const struct timespec *@var{abstime}) ++@deftypefun int pthread_clockjoin_np (pthread_t *@var{thread}, void **@var{thread_return}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) + @standards{GNU, pthread.h} + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + Behaves like @code{pthread_timedjoin_np} except that the absolute time in diff --git a/SOURCES/glibc-RHEL-65356-2.patch b/SOURCES/glibc-RHEL-65356-2.patch new file mode 100644 index 0000000..7a24269 --- /dev/null +++ b/SOURCES/glibc-RHEL-65356-2.patch @@ -0,0 +1,332 @@ +commit 83a1cc3bc3d28c97d1af6c0957b11fe39fd786d8 +Author: Carlos O'Donell +Date: Wed Oct 9 18:32:26 2024 -0400 + + manual: Fix and test @deftypef* function formatting + + The manual contained several instances of incorrect formatting + that were correct texinfo but produced incorrectly rendered manuals + or incorrect behaviour from the tooling. + + The most important was incorrect quoting of function returns + by failing to use {} to quote the return. The impact of this + mistake means that 'info libc func' does not jump to the function + in question but instead to the introductory page under the assumption + that func doesn't exist. The function returns are now correctly + quoted. + + The second issue was the use of a category specifier with + @deftypefun which doesn't accept a category specifier. If a category + specifier is required then @deftypefn needs to be used. This is + corrected by changing the command to @deftypefn for such functions + that used {Deprecated function} as a category. + + The last issue is a missing space between the function name and the + arguments which results in odd function names like "epoll_wait(int" + instead of "epoll_wait". This also impacts the use of 'info libc' + and is corrected. + + We additionally remove ';' from the end of function arguments and + add an 'int' return type for dprintf. + + Lastly we add a new test check-deftype.sh which verifies the expected + formatting of @deftypefun, @deftypefunx, @deftypefn, and + @deftypefnx. The new test is also run as the summary file is + generated to ensure we don't generate incorrect results. + + The existing check-safety.sh is also run directly as a test to increase + coverage since the existing tests only ran on manual install. + + The new tests now run as part of the standard "make check" that + pre-commit CI runs and developers should run. + + No regressions on x86_64. + + HTML and PDF rendering reviewed and looks correct for all changes. + + Reviewed-by: H.J. Lu + +Conflicts: + manual/time.texi (irrelevant changes) + +diff --git a/manual/Makefile b/manual/Makefile +index 6301e4a16f9daf58..66ea73384d9d85aa 100644 +--- a/manual/Makefile ++++ b/manual/Makefile +@@ -69,6 +69,11 @@ chapters.% top-menu.%: libc-texinfo.sh $(texis-path) Makefile + '$(chapters)' \ + '$(appendices) $(licenses)' + ++# Verify validity of texinfo sources against project rules. ++tests-special += \ ++ $(objpfx)check-deftype.out \ ++ $(objpfx)check-safety.out \ ++ # tests-special + + $(objpfx)libc.dvi $(objpfx)libc.pdf $(objpfx)libc.info: \ + $(addprefix $(objpfx),$(libc-texi-generated)) +@@ -83,10 +88,19 @@ $(objpfx)summary.texi: $(objpfx)stamp-summary ; + $(objpfx)stamp-summary: summary.pl $(filter-out $(objpfx)summary.texi, \ + $(texis-path)) + $(SHELL) ./check-safety.sh $(filter-out $(objpfx)%, $(texis-path)) ++ $(SHELL) ./check-deftype.sh $(filter-out $(objpfx)%, $(texis-path)) + LC_ALL=C $(PERL) $^ > $(objpfx)summary-tmp + $(move-if-change) $(objpfx)summary-tmp $(objpfx)summary.texi + touch $@ + ++$(objpfx)check-safety.out: check-safety.sh ++ $(SHELL) $< > $@ ; \ ++ $(evaluate-test) ++ ++$(objpfx)check-deftype.out: check-deftype.sh ++ $(SHELL) $< > $@ ; \ ++ $(evaluate-test) ++ + # Generate a file which can be added to the `dir' content to provide direct + # access to the documentation of the function, variables, and other + # definitions. +@@ -152,10 +166,19 @@ $(objpfx)%.pdf: %.texinfo + + + # Distribution. +-minimal-dist = summary.pl texis.awk tsort.awk libc-texinfo.sh libc.texinfo \ +- libm-err.texi stamp-libm-err check-safety.sh \ +- $(filter-out summary.texi, $(nonexamples)) \ +- $(patsubst %.c.texi,examples/%.c, $(examples)) ++minimal-dist = \ ++ $(filter-out summary.texi, $(nonexamples)) \ ++ $(patsubst %.c.texi,examples/%.c, $(examples)) \ ++ check-deftype.sh \ ++ check-safety.sh \ ++ libc-texinfo.sh \ ++ libc.texinfo \ ++ libm-err.texi \ ++ stamp-libm-err \ ++ summary.pl \ ++ texis.awk \ ++ tsort.awk \ ++ # minimal-dist + + indices = cp fn pg tp vr ky + generated-dirs += libc +diff --git a/manual/check-deftype.sh b/manual/check-deftype.sh +new file mode 100644 +index 0000000000000000..395c99af6afe1fdd +--- /dev/null ++++ b/manual/check-deftype.sh +@@ -0,0 +1,50 @@ ++#!/bin/sh ++ ++# Copyright 2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++# Check that the @deftypefun command is called with the expected ++# arguments and includes checking for common mistakes including ++# failure to include a space after the function name, or incorrect ++# quoting. ++ ++success=: ++ ++# If no arguments are given, take all *.texi files in the current directory. ++test $# != 0 || set *.texi ++ ++# We search for all @deftypefun and @deftypefunx command uses. ++# Then we remove all of those that match our expectations. ++# A @deftypefun or @deftypefunx command takes 3 arguments: ++# - return type ++# - name ++# - arguments ++# This is different from @deftypefn which includes an additional ++# category which is implicit here. ++grep -n -r '^@deftypefun' "$@" | ++grep -v '^.*@deftypefunx\?'\ ++' \({\?[a-zA-Z0-9_ *]*}\?\) \([a-zA-Z0-9_]*\) (.*)$' && ++success=false ++ ++# We search for all @deftypefn and @deftypefnx command uses. ++# We have 4 arguments in the command including the category. ++grep -n -r '^@deftypefn' "$@" | ++grep -v '^.*@deftypefnx\?'\ ++' {\?[a-zA-Z ]*}\? \({\?[a-zA-Z0-9@{}_ *]*}\?\) \([a-zA-Z0-9_]*\) (.*)$' && ++success=false ++ ++$success +diff --git a/manual/ipc.texi b/manual/ipc.texi +index 081b98fe29e0b3b5..73189960c46c908a 100644 +--- a/manual/ipc.texi ++++ b/manual/ipc.texi +@@ -20,7 +20,7 @@ by @theglibc{}. + @c Need descriptions for all of these functions. + + @subsection System V Semaphores +-@deftypefun int semctl (int @var{semid}, int @var{semnum}, int @var{cmd}); ++@deftypefun int semctl (int @var{semid}, int @var{semnum}, int @var{cmd}) + @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{/linux}}} + @c syscall(ipc) ok + @c +@@ -30,35 +30,35 @@ by @theglibc{}. + @c semid_ds. + @end deftypefun + +-@deftypefun int semget (key_t @var{key}, int @var{nsems}, int @var{semflg}); ++@deftypefun int semget (key_t @var{key}, int @var{nsems}, int @var{semflg}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c syscall(ipc) ok + @end deftypefun + +-@deftypefun int semop (int @var{semid}, struct sembuf *@var{sops}, size_t @var{nsops}); ++@deftypefun int semop (int @var{semid}, struct sembuf *@var{sops}, size_t @var{nsops}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c syscall(ipc) ok + @end deftypefun + +-@deftypefun int semtimedop (int @var{semid}, struct sembuf *@var{sops}, size_t @var{nsops}, const struct timespec *@var{timeout}); ++@deftypefun int semtimedop (int @var{semid}, struct sembuf *@var{sops}, size_t @var{nsops}, const struct timespec *@var{timeout}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c syscall(ipc) ok + @end deftypefun + + @subsection POSIX Semaphores + +-@deftypefun int sem_init (sem_t *@var{sem}, int @var{pshared}, unsigned int @var{value}); ++@deftypefun int sem_init (sem_t *@var{sem}, int @var{pshared}, unsigned int @var{value}) + @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} + @c Does not atomically update sem_t therefore AC-unsafe + @c because it can leave sem_t partially initialized. + @end deftypefun + +-@deftypefun int sem_destroy (sem_t *@var{sem}); ++@deftypefun int sem_destroy (sem_t *@var{sem}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c Function does nothing and is therefore always safe. + @end deftypefun + +-@deftypefun sem_t *sem_open (const char *@var{name}, int @var{oflag}, ...); ++@deftypefun {sem_t *} sem_open (const char *@var{name}, int @var{oflag}, ...) + @safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acuinit{}}} + @c pthread_once asuinit + @c +@@ -67,7 +67,7 @@ by @theglibc{}. + @c shmfs on Linux. + @end deftypefun + +-@deftypefun int sem_close (sem_t *@var{sem}); ++@deftypefun int sem_close (sem_t *@var{sem}) + @safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{}}} + @c lll_lock asulock aculock + @c twalk mtsrace{:root} +@@ -77,13 +77,13 @@ by @theglibc{}. + @c are not updated atomically. + @end deftypefun + +-@deftypefun int sem_unlink (const char *@var{name}); ++@deftypefun int sem_unlink (const char *@var{name}) + @safety{@prelim{}@mtsafe{}@asunsafe{@asuinit{}}@acunsafe{@acucorrupt{}}} + @c pthread_once asuinit acucorrupt aculock + @c mempcpy acucorrupt + @end deftypefun + +-@deftypefun int sem_wait (sem_t *@var{sem}); ++@deftypefun int sem_wait (sem_t *@var{sem}) + @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} + @c atomic_increment (nwaiters) acucorrupt + @c +@@ -95,22 +95,22 @@ by @theglibc{}. + @c waiters count. + @end deftypefun + +-@deftypefun int sem_timedwait (sem_t *@var{sem}, const struct timespec *@var{abstime}); ++@deftypefun int sem_timedwait (sem_t *@var{sem}, const struct timespec *@var{abstime}) + @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} + @c Same safety issues as sem_wait. + @end deftypefun + +-@deftypefun int sem_trywait (sem_t *@var{sem}); ++@deftypefun int sem_trywait (sem_t *@var{sem}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c All atomic operations are safe in all contexts. + @end deftypefun + +-@deftypefun int sem_post (sem_t *@var{sem}); ++@deftypefun int sem_post (sem_t *@var{sem}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c Same safety as sem_trywait. + @end deftypefun + +-@deftypefun int sem_getvalue (sem_t *@var{sem}, int *@var{sval}); ++@deftypefun int sem_getvalue (sem_t *@var{sem}, int *@var{sval}) + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c Atomic write of a value is safe in all contexts. + @end deftypefun +diff --git a/manual/llio.texi b/manual/llio.texi +index 0f84a593ee92b31f..161ec3cb6de4b61e 100644 +--- a/manual/llio.texi ++++ b/manual/llio.texi +@@ -4820,12 +4820,12 @@ of an IOCTL, see @ref{Out-of-Band Data}. + @manpagefunctionstub{poll,2} + @end deftypefun + +-@deftypefun int epoll_create(int @var{size}) ++@deftypefun int epoll_create (int @var{size}) + + @manpagefunctionstub{epoll_create,2} + @end deftypefun + +-@deftypefun int epoll_wait(int @var{epfd}, struct epoll_event *@var{events}, int @var{maxevents}, int @var{timeout}) ++@deftypefun int epoll_wait (int @var{epfd}, struct epoll_event *@var{events}, int @var{maxevents}, int @var{timeout}) + + @manpagefunctionstub{epoll_wait,2} + @end deftypefun +diff --git a/manual/memory.texi b/manual/memory.texi +index ee709b0cac57dded..4fb605b3faae1d36 100644 +--- a/manual/memory.texi ++++ b/manual/memory.texi +@@ -2929,7 +2929,7 @@ exceed the process' data storage limit. + @end deftypefun + + +-@deftypefun void *sbrk (ptrdiff_t @var{delta}) ++@deftypefun {void *} sbrk (ptrdiff_t @var{delta}) + @standards{BSD, unistd.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + +diff --git a/manual/stdio.texi b/manual/stdio.texi +index a2d9292a787b9fa3..98da13de32f49c7c 100644 +--- a/manual/stdio.texi ++++ b/manual/stdio.texi +@@ -2489,7 +2489,7 @@ store the result in which case @code{-1} is returned. This was + changed in order to comply with the @w{ISO C99} standard. + @end deftypefun + +-@deftypefun dprintf (int @var{fd}, @var{template}, ...) ++@deftypefun int dprintf (int @var{fd}, @var{template}, ...) + @standards{POSIX, stdio.h} + @safety{@mtsafe{@mtslocale{}}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{}}} + This function formats its arguments according to @var{template} and +diff --git a/manual/threads.texi b/manual/threads.texi +index a721c7f464e3588e..3fd307e69a8029fa 100644 +--- a/manual/threads.texi ++++ b/manual/threads.texi +@@ -592,7 +592,7 @@ destructor for the thread-specific data is not called during destruction, nor + is it called during thread exit. + @end deftypefun + +-@deftypefun void *pthread_getspecific (pthread_key_t @var{key}) ++@deftypefun {void *} pthread_getspecific (pthread_key_t @var{key}) + @standards{POSIX, pthread.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + @c pthread_getspecific ok diff --git a/SOURCES/glibc-RHEL-65358-1.patch b/SOURCES/glibc-RHEL-65358-1.patch new file mode 100644 index 0000000..d6d924c --- /dev/null +++ b/SOURCES/glibc-RHEL-65358-1.patch @@ -0,0 +1,106 @@ +commit 047703fbb88eb38fbe973f3abedb279382f181d0 +Author: Florian Weimer +Date: Tue Jun 6 11:37:30 2023 +0200 + + support: Add delayed__exit (with two underscores) + + It calls _exit instead of exit once the timeout expires. + +Conflicts: + support/delayed_exit.c (fixup context) + support/xthread.h (fixup context) + +diff --git a/support/delayed_exit.c b/support/delayed_exit.c +index 450860c5953257be..9242d4a1236e94ee 100644 +--- a/support/delayed_exit.c ++++ b/support/delayed_exit.c +@@ -23,33 +23,58 @@ + #include + #include + #include ++#include + #include ++#include ++ ++struct delayed_exit_request ++{ ++ void (*exitfunc) (int); ++ int seconds; ++}; + + static void * +-delayed_exit_thread (void *seconds_as_ptr) ++delayed_exit_thread (void *closure) + { +- int seconds = (uintptr_t) seconds_as_ptr; +- struct timespec delay = { seconds, 0 }; ++ struct delayed_exit_request *request = closure; ++ void (*exitfunc) (int) = request->exitfunc; ++ struct timespec delay = { request->seconds, 0 }; + struct timespec remaining = { 0 }; ++ free (request); ++ + if (nanosleep (&delay, &remaining) != 0) + FAIL_EXIT1 ("nanosleep: %m"); +- /* Exit the process sucessfully. */ +- exit (0); ++ /* Exit the process successfully. */ ++ exitfunc (0); + return NULL; + } + +-void +-delayed_exit (int seconds) ++static void ++delayed_exit_1 (int seconds, void (*exitfunc) (int)) + { + /* Create the new thread with all signals blocked. */ + sigset_t all_blocked; + sigfillset (&all_blocked); + sigset_t old_set; + xpthread_sigmask (SIG_SETMASK, &all_blocked, &old_set); ++ struct delayed_exit_request *request = xmalloc (sizeof (*request)); ++ request->seconds = seconds; ++ request->exitfunc = exitfunc; + /* Create a detached thread. */ +- pthread_t thr = xpthread_create +- (NULL, delayed_exit_thread, (void *) (uintptr_t) seconds); ++ pthread_t thr = xpthread_create (NULL, delayed_exit_thread, request); + xpthread_detach (thr); + /* Restore the original signal mask. */ + xpthread_sigmask (SIG_SETMASK, &old_set, NULL); + } ++ ++void ++delayed_exit (int seconds) ++{ ++ delayed_exit_1 (seconds, exit); ++} ++ ++void ++delayed__exit (int seconds) ++{ ++ delayed_exit_1 (seconds, _exit); ++} +diff --git a/support/xthread.h b/support/xthread.h +index 1a39b1c0ddda9725..5c6b57e8829a4ee9 100644 +--- a/support/xthread.h ++++ b/support/xthread.h +@@ -24,11 +24,14 @@ + + __BEGIN_DECLS + +-/* Terminate the process (with exit status 0) after SECONDS have +- elapsed, from a helper thread. The process is terminated with the +- exit function, so atexit handlers are executed. */ ++/* Terminate the process (with exit (0)) after SECONDS have elapsed, ++ from a helper thread. The process is terminated with the exit ++ function, so atexit handlers are executed. */ + void delayed_exit (int seconds); + ++/* Like delayed_exit, but use _exit (0). */ ++void delayed__exit (int seconds); ++ + /* Terminate the process (with exit status 1) if VALUE is not zero. + In that case, print a failure message to standard output mentioning + FUNCTION. The process is terminated with the exit function, so diff --git a/SOURCES/glibc-RHEL-65358-2.patch b/SOURCES/glibc-RHEL-65358-2.patch new file mode 100644 index 0000000..7884d35 --- /dev/null +++ b/SOURCES/glibc-RHEL-65358-2.patch @@ -0,0 +1,23 @@ +commit 7d421209287a07db5e926552ae5fbe9d8abb50dc +Author: Florian Weimer +Date: Tue Jun 6 11:39:06 2023 +0200 + + pthreads: Use _exit to terminate the tst-stdio1 test + + Previously, the exit function was used, but this causes the test to + block (until the timeout) once exit is changed to lock stdio streams + during flush. + +diff --git a/sysdeps/pthread/tst-stdio1.c b/sysdeps/pthread/tst-stdio1.c +index 80fb59c4e42ca550..a2cc71d67f0761f6 100644 +--- a/sysdeps/pthread/tst-stdio1.c ++++ b/sysdeps/pthread/tst-stdio1.c +@@ -47,7 +47,7 @@ do_test (void) + _exit (1); + } + +- delayed_exit (1); ++ delayed__exit (1); + xpthread_join (th); + + puts ("join returned"); diff --git a/SOURCES/glibc-RHEL-65358-3.patch b/SOURCES/glibc-RHEL-65358-3.patch new file mode 100644 index 0000000..3b0a167 --- /dev/null +++ b/SOURCES/glibc-RHEL-65358-3.patch @@ -0,0 +1,131 @@ +commit af130d27099651e0d27b2cf2cfb44dafd6fe8a26 +Author: Andreas Schwab +Date: Tue Jan 30 10:16:00 2018 +0100 + + Always do locking when accessing streams (bug 15142, bug 14697) + + Now that abort no longer calls fflush there is no reason to avoid locking + the stdio streams anywhere. This fixes a conformance issue and potential + heap corruption during exit. + +diff --git a/libio/genops.c b/libio/genops.c +index b964c50657d7fbe9..a82c1b96767e14e0 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -683,7 +683,7 @@ _IO_adjust_column (unsigned start, const char *line, int count) + libc_hidden_def (_IO_adjust_column) + + int +-_IO_flush_all_lockp (int do_lock) ++_IO_flush_all (void) + { + int result = 0; + FILE *fp; +@@ -696,8 +696,7 @@ _IO_flush_all_lockp (int do_lock) + for (fp = (FILE *) _IO_list_all; fp != NULL; fp = fp->_chain) + { + run_fp = fp; +- if (do_lock) +- _IO_flockfile (fp); ++ _IO_flockfile (fp); + + if (((fp->_mode <= 0 && fp->_IO_write_ptr > fp->_IO_write_base) + || (_IO_vtable_offset (fp) == 0 +@@ -707,8 +706,7 @@ _IO_flush_all_lockp (int do_lock) + && _IO_OVERFLOW (fp, EOF) == EOF) + result = EOF; + +- if (do_lock) +- _IO_funlockfile (fp); ++ _IO_funlockfile (fp); + run_fp = NULL; + } + +@@ -719,14 +717,6 @@ _IO_flush_all_lockp (int do_lock) + + return result; + } +- +- +-int +-_IO_flush_all (void) +-{ +- /* We want locking. */ +- return _IO_flush_all_lockp (1); +-} + libc_hidden_def (_IO_flush_all) + + void +@@ -792,6 +782,9 @@ _IO_unbuffer_all (void) + { + int legacy = 0; + ++ run_fp = fp; ++ _IO_flockfile (fp); ++ + #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) + if (__glibc_unlikely (_IO_vtable_offset (fp) != 0)) + legacy = 1; +@@ -807,18 +800,6 @@ _IO_unbuffer_all (void) + /* Iff stream is un-orientated, it wasn't used. */ + && (legacy || fp->_mode != 0)) + { +-#ifdef _IO_MTSAFE_IO +- int cnt; +-#define MAXTRIES 2 +- for (cnt = 0; cnt < MAXTRIES; ++cnt) +- if (fp->_lock == NULL || _IO_lock_trylock (*fp->_lock) == 0) +- break; +- else +- /* Give the other thread time to finish up its use of the +- stream. */ +- __sched_yield (); +-#endif +- + if (! legacy && ! dealloc_buffers && !(fp->_flags & _IO_USER_BUF)) + { + fp->_flags |= _IO_USER_BUF; +@@ -832,17 +813,15 @@ _IO_unbuffer_all (void) + + if (! legacy && fp->_mode > 0) + _IO_wsetb (fp, NULL, NULL, 0); +- +-#ifdef _IO_MTSAFE_IO +- if (cnt < MAXTRIES && fp->_lock != NULL) +- _IO_lock_unlock (*fp->_lock); +-#endif + } + + /* Make sure that never again the wide char functions can be + used. */ + if (! legacy) + fp->_mode = -1; ++ ++ _IO_funlockfile (fp); ++ run_fp = NULL; + } + + #ifdef _IO_MTSAFE_IO +@@ -868,9 +847,7 @@ libc_freeres_fn (buffer_free) + int + _IO_cleanup (void) + { +- /* We do *not* want locking. Some threads might use streams but +- that is their problem, we flush them underneath them. */ +- int result = _IO_flush_all_lockp (0); ++ int result = _IO_flush_all (); + + /* We currently don't have a reliable mechanism for making sure that + C++ static destructors are executed in the correct order. +diff --git a/libio/libioP.h b/libio/libioP.h +index 811e9c919bbc2ce1..fbe58fc10fb694d0 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -488,7 +488,6 @@ extern int _IO_new_do_write (FILE *, const char *, size_t); + extern int _IO_old_do_write (FILE *, const char *, size_t); + extern int _IO_wdo_write (FILE *, const wchar_t *, size_t); + libc_hidden_proto (_IO_wdo_write) +-extern int _IO_flush_all_lockp (int); + extern int _IO_flush_all (void); + libc_hidden_proto (_IO_flush_all) + extern int _IO_cleanup (void); diff --git a/SOURCES/glibc-RHEL-65358-4.patch b/SOURCES/glibc-RHEL-65358-4.patch new file mode 100644 index 0000000..bdd262c --- /dev/null +++ b/SOURCES/glibc-RHEL-65358-4.patch @@ -0,0 +1,230 @@ +commit f6ba993e0cda0ca5554fd47b00e6a87be5fdf05e +Author: Adhemerval Zanella +Date: Thu Jul 25 15:41:44 2024 -0300 + + stdlib: Allow concurrent exit (BZ 31997) + + Even if C/POSIX standard states that exit is not formally thread-unsafe, + calling it more than once is UB. The glibc already supports + it for the single-thread, and both elf/nodelete2.c and tst-rseq-disable.c + call exit from a DSO destructor (which is called by _dl_fini, registered + at program startup with __cxa_atexit). + + However, there are still race issues when it is called more than once + concurrently by multiple threads. A recent Rust PR triggered this + issue [1], which resulted in an Austin Group ask for clarification [2]. + Besides it, there is a discussion to make concurrent calling not UB [3], + wtih a defined semantic where any remaining callers block until the first + call to exit has finished (reentrant calls, leaving through longjmp, and + exceptions are still undefined). + + For glibc, at least reentrant calls are required to be supported to avoid + changing the current behaviour. This requires locking using a recursive + lock, where any exit called by atexit() handlers resumes at the point of + the current handler (thus avoiding calling the current handle multiple + times). + + Checked on x86_64-linux-gnu and aarch64-linux-gnu. + + [1] https://github.com/rust-lang/rust/issues/126600 + [2] https://austingroupbugs.net/view.php?id=1845 + [3] https://www.openwall.com/lists/libc-coord/2024/07/24/4 + Reviewed-by: Carlos O'Donell + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 603a330b1e8f1ba2..865d804ef2642cb5 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -93,6 +93,7 @@ tests := \ + tst-bsearch \ + tst-bz20544 \ + tst-canon-bz26341 \ ++ tst-concurrent-exit \ + tst-cxa_atexit \ + tst-environ \ + tst-getenv-signal \ +diff --git a/stdlib/exit.c b/stdlib/exit.c +index 546343f7d4b74773..7d536098623d47ff 100644 +--- a/stdlib/exit.c ++++ b/stdlib/exit.c +@@ -140,9 +140,17 @@ __run_exit_handlers (int status, struct exit_function_list **listp, + } + + ++/* The lock handles concurrent exit(), even though the C/POSIX standard states ++ that calling exit() more than once is UB. The recursive lock allows ++ atexit() handlers or destructors to call exit() itself. In this case, the ++ handler list execution will resume at the point of the current handler. */ ++__libc_lock_define_initialized_recursive (static, __exit_lock) ++ + void + exit (int status) + { ++ /* The exit should never return, so there is no need to unlock it. */ ++ __libc_lock_lock_recursive (__exit_lock); + __run_exit_handlers (status, &__exit_funcs, true, true); + } + libc_hidden_def (exit) +diff --git a/stdlib/tst-concurrent-exit.c b/stdlib/tst-concurrent-exit.c +new file mode 100644 +index 0000000000000000..1141130f87fde20f +--- /dev/null ++++ b/stdlib/tst-concurrent-exit.c +@@ -0,0 +1,157 @@ ++/* Check if exit can be called concurrently by multiple threads. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define MAX_atexit 32 ++ ++static pthread_barrier_t barrier; ++ ++static void * ++tf (void *closure) ++{ ++ xpthread_barrier_wait (&barrier); ++ exit (0); ++ ++ return NULL; ++} ++ ++static const char expected[] = "00000000000000000000000003021121130211"; ++static char crumbs[sizeof (expected)]; ++static int next_slot = 0; ++ ++static void ++exit_with_flush (int code) ++{ ++ fflush (stdout); ++ /* glibc allows recursive exit, the atexit handlers execution will be ++ resumed from the where the previous exit was interrupted. */ ++ exit (code); ++} ++ ++/* Take some time, so another thread potentially issue exit. */ ++#define SETUP_NANOSLEEP \ ++ if (nanosleep (&(struct timespec) { .tv_sec = 0, .tv_nsec = 1000L }, \ ++ NULL) != 0) \ ++ FAIL_EXIT1 ("nanosleep: %m") ++ ++static void ++fn0 (void) ++{ ++ crumbs[next_slot++] = '0'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn1 (void) ++{ ++ crumbs[next_slot++] = '1'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn2 (void) ++{ ++ crumbs[next_slot++] = '2'; ++ atexit (fn1); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn3 (void) ++{ ++ crumbs[next_slot++] = '3'; ++ atexit (fn2); ++ atexit (fn0); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn_final (void) ++{ ++ TEST_COMPARE_STRING (crumbs, expected); ++ exit_with_flush (0); ++} ++ ++_Noreturn static void ++child (void) ++{ ++ enum { nthreads = 8 }; ++ ++ xpthread_barrier_init (&barrier, NULL, nthreads + 1); ++ ++ pthread_t thr[nthreads]; ++ for (int i = 0; i < nthreads; i++) ++ thr[i] = xpthread_create (NULL, tf, NULL); ++ ++ xpthread_barrier_wait (&barrier); ++ ++ for (int i = 0; i < nthreads; i++) ++ { ++ pthread_join (thr[i], NULL); ++ /* It should not be reached, it means that thread did not exit for ++ some reason. */ ++ support_record_failure (); ++ } ++ ++ exit (2); ++} ++ ++static int ++do_test (void) ++{ ++ /* Register a large number of handler that will trigger a heap allocation ++ for the handle state. On exit, each block will be freed after the ++ handle is processed. */ ++ int slots_remaining = MAX_atexit; ++ ++ /* Register this first so it can verify expected order of the rest. */ ++ atexit (fn_final); --slots_remaining; ++ ++ TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn2) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; ++ ++ while (slots_remaining > 0) ++ { ++ TEST_VERIFY_EXIT (atexit (fn0) == 0); --slots_remaining; ++ } ++ ++ pid_t pid = xfork (); ++ if (pid != 0) ++ { ++ int status; ++ xwaitpid (pid, &status, 0); ++ TEST_VERIFY (WIFEXITED (status)); ++ } ++ else ++ child (); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-65358-5.patch b/SOURCES/glibc-RHEL-65358-5.patch new file mode 100644 index 0000000..fdab7a4 --- /dev/null +++ b/SOURCES/glibc-RHEL-65358-5.patch @@ -0,0 +1,427 @@ +commit c6af8a9a3ce137a9704825d173be22a2b2d9cb49 +Author: Adhemerval Zanella +Date: Mon Aug 5 11:27:35 2024 -0300 + + stdlib: Allow concurrent quick_exit (BZ 31997) + + As for exit, also allows concurrent quick_exit to avoid race + conditions when it is called concurrently. Since it uses the same + internal function as exit, the __exit_lock lock is moved to + __run_exit_handlers. It also solved a potential concurrent when + calling exit and quick_exit concurrently. + + The test case 'expected' is expanded to a value larger than the + minimum required by C/POSIX (32 entries) so at_quick_exit() will + require libc to allocate a new block. This makes the test mre likely to + trigger concurrent issues (through free() at __run_exit_handlers) + if quick_exit() interacts with the at_quick_exit list concurrently. + + This is also the latest interpretation of the Austin Ticket [1]. + + Checked on x86_64-linux-gnu. + + [1] https://austingroupbugs.net/view.php?id=1845 + Reviewed-by: Carlos O'Donell + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 865d804ef2642cb5..4cbf47d215353681 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -94,6 +94,7 @@ tests := \ + tst-bz20544 \ + tst-canon-bz26341 \ + tst-concurrent-exit \ ++ tst-concurrent-quick_exit \ + tst-cxa_atexit \ + tst-environ \ + tst-getenv-signal \ +diff --git a/stdlib/exit.c b/stdlib/exit.c +index 7d536098623d47ff..1719f88c7aca5397 100644 +--- a/stdlib/exit.c ++++ b/stdlib/exit.c +@@ -30,6 +30,13 @@ DEFINE_HOOK (__libc_atexit, (void)) + __exit_funcs_lock is declared. */ + bool __exit_funcs_done = false; + ++/* The lock handles concurrent exit() and quick_exit(), even though the ++ C/POSIX standard states that calling exit() more than once is UB. The ++ recursive lock allows atexit() handlers or destructors to call exit() ++ itself. In this case, the handler list execution will resume at the ++ point of the current handler. */ ++__libc_lock_define_initialized_recursive (static, __exit_lock) ++ + /* Call all functions registered with `atexit' and `on_exit', + in the reverse of the order in which they were registered + perform stdio cleanup, and terminate program execution with STATUS. */ +@@ -38,6 +45,9 @@ attribute_hidden + __run_exit_handlers (int status, struct exit_function_list **listp, + bool run_list_atexit, bool run_dtors) + { ++ /* The exit should never return, so there is no need to unlock it. */ ++ __libc_lock_lock_recursive (__exit_lock); ++ + /* First, call the TLS destructors. */ + #ifndef SHARED + if (&__call_tls_dtors != NULL) +@@ -140,17 +150,9 @@ __run_exit_handlers (int status, struct exit_function_list **listp, + } + + +-/* The lock handles concurrent exit(), even though the C/POSIX standard states +- that calling exit() more than once is UB. The recursive lock allows +- atexit() handlers or destructors to call exit() itself. In this case, the +- handler list execution will resume at the point of the current handler. */ +-__libc_lock_define_initialized_recursive (static, __exit_lock) +- + void + exit (int status) + { +- /* The exit should never return, so there is no need to unlock it. */ +- __libc_lock_lock_recursive (__exit_lock); + __run_exit_handlers (status, &__exit_funcs, true, true); + } + libc_hidden_def (exit) +diff --git a/stdlib/tst-concurrent-exit-skeleton.c b/stdlib/tst-concurrent-exit-skeleton.c +new file mode 100644 +index 0000000000000000..cfd5140466e1a730 +--- /dev/null ++++ b/stdlib/tst-concurrent-exit-skeleton.c +@@ -0,0 +1,160 @@ ++/* Check if exit/quick_exit can be called concurrently by multiple threads. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* A value larger than the minimum required by C/POSIX (32), to trigger a ++ new block memory allocation. */ ++#define MAX_atexit 64 ++ ++static pthread_barrier_t barrier; ++ ++static void * ++tf (void *closure) ++{ ++ xpthread_barrier_wait (&barrier); ++ EXIT (0); ++ ++ return NULL; ++} ++ ++static const char expected[] = "00000000000000000000000000000000000" ++ "00000000000000000000003021121130211"; ++static char crumbs[sizeof (expected)]; ++static int next_slot = 0; ++ ++static void ++exit_with_flush (int code) ++{ ++ fflush (stdout); ++ /* glibc allows recursive EXIT, the ATEXIT handlers execution will be ++ resumed from the where the previous EXIT was interrupted. */ ++ EXIT (code); ++} ++ ++/* Take some time, so another thread potentially issue EXIT. */ ++#define SETUP_NANOSLEEP \ ++ if (nanosleep (&(struct timespec) { .tv_sec = 0, .tv_nsec = 1000L }, \ ++ NULL) != 0) \ ++ FAIL_EXIT1 ("nanosleep: %m") ++ ++static void ++fn0 (void) ++{ ++ crumbs[next_slot++] = '0'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn1 (void) ++{ ++ crumbs[next_slot++] = '1'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn2 (void) ++{ ++ crumbs[next_slot++] = '2'; ++ ATEXIT (fn1); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn3 (void) ++{ ++ crumbs[next_slot++] = '3'; ++ ATEXIT (fn2); ++ ATEXIT (fn0); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn_final (void) ++{ ++ TEST_COMPARE_STRING (crumbs, expected); ++ exit_with_flush (0); ++} ++ ++_Noreturn static void ++child (void) ++{ ++ enum { nthreads = 8 }; ++ ++ xpthread_barrier_init (&barrier, NULL, nthreads + 1); ++ ++ pthread_t thr[nthreads]; ++ for (int i = 0; i < nthreads; i++) ++ thr[i] = xpthread_create (NULL, tf, NULL); ++ ++ xpthread_barrier_wait (&barrier); ++ ++ for (int i = 0; i < nthreads; i++) ++ { ++ pthread_join (thr[i], NULL); ++ /* It should not be reached, it means that thread did not exit for ++ some reason. */ ++ support_record_failure (); ++ } ++ ++ EXIT (2); ++} ++ ++static int ++do_test (void) ++{ ++ /* Register a large number of handler that will trigger a heap allocation ++ for the handle state. On EXIT, each block will be freed after the ++ handle is processed. */ ++ int slots_remaining = MAX_atexit; ++ ++ /* Register this first so it can verify expected order of the rest. */ ++ ATEXIT (fn_final); --slots_remaining; ++ ++ TEST_VERIFY_EXIT (ATEXIT (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn3) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn2) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn3) == 0); --slots_remaining; ++ ++ while (slots_remaining > 0) ++ { ++ TEST_VERIFY_EXIT (ATEXIT (fn0) == 0); --slots_remaining; ++ } ++ ++ pid_t pid = xfork (); ++ if (pid != 0) ++ { ++ int status; ++ xwaitpid (pid, &status, 0); ++ TEST_VERIFY (WIFEXITED (status)); ++ } ++ else ++ child (); ++ ++ return 0; ++} ++ ++#include +diff --git a/stdlib/tst-concurrent-exit.c b/stdlib/tst-concurrent-exit.c +index 1141130f87fde20f..421c39d63126246d 100644 +--- a/stdlib/tst-concurrent-exit.c ++++ b/stdlib/tst-concurrent-exit.c +@@ -16,142 +16,7 @@ + License along with the GNU C Library; if not, see + . */ + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#define EXIT(__r) exit (__r) ++#define ATEXIT(__f) atexit (__f) + +-#define MAX_atexit 32 +- +-static pthread_barrier_t barrier; +- +-static void * +-tf (void *closure) +-{ +- xpthread_barrier_wait (&barrier); +- exit (0); +- +- return NULL; +-} +- +-static const char expected[] = "00000000000000000000000003021121130211"; +-static char crumbs[sizeof (expected)]; +-static int next_slot = 0; +- +-static void +-exit_with_flush (int code) +-{ +- fflush (stdout); +- /* glibc allows recursive exit, the atexit handlers execution will be +- resumed from the where the previous exit was interrupted. */ +- exit (code); +-} +- +-/* Take some time, so another thread potentially issue exit. */ +-#define SETUP_NANOSLEEP \ +- if (nanosleep (&(struct timespec) { .tv_sec = 0, .tv_nsec = 1000L }, \ +- NULL) != 0) \ +- FAIL_EXIT1 ("nanosleep: %m") +- +-static void +-fn0 (void) +-{ +- crumbs[next_slot++] = '0'; +- SETUP_NANOSLEEP; +-} +- +-static void +-fn1 (void) +-{ +- crumbs[next_slot++] = '1'; +- SETUP_NANOSLEEP; +-} +- +-static void +-fn2 (void) +-{ +- crumbs[next_slot++] = '2'; +- atexit (fn1); +- SETUP_NANOSLEEP; +-} +- +-static void +-fn3 (void) +-{ +- crumbs[next_slot++] = '3'; +- atexit (fn2); +- atexit (fn0); +- SETUP_NANOSLEEP; +-} +- +-static void +-fn_final (void) +-{ +- TEST_COMPARE_STRING (crumbs, expected); +- exit_with_flush (0); +-} +- +-_Noreturn static void +-child (void) +-{ +- enum { nthreads = 8 }; +- +- xpthread_barrier_init (&barrier, NULL, nthreads + 1); +- +- pthread_t thr[nthreads]; +- for (int i = 0; i < nthreads; i++) +- thr[i] = xpthread_create (NULL, tf, NULL); +- +- xpthread_barrier_wait (&barrier); +- +- for (int i = 0; i < nthreads; i++) +- { +- pthread_join (thr[i], NULL); +- /* It should not be reached, it means that thread did not exit for +- some reason. */ +- support_record_failure (); +- } +- +- exit (2); +-} +- +-static int +-do_test (void) +-{ +- /* Register a large number of handler that will trigger a heap allocation +- for the handle state. On exit, each block will be freed after the +- handle is processed. */ +- int slots_remaining = MAX_atexit; +- +- /* Register this first so it can verify expected order of the rest. */ +- atexit (fn_final); --slots_remaining; +- +- TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn2) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; +- +- while (slots_remaining > 0) +- { +- TEST_VERIFY_EXIT (atexit (fn0) == 0); --slots_remaining; +- } +- +- pid_t pid = xfork (); +- if (pid != 0) +- { +- int status; +- xwaitpid (pid, &status, 0); +- TEST_VERIFY (WIFEXITED (status)); +- } +- else +- child (); +- +- return 0; +-} +- +-#include ++#include "tst-concurrent-exit-skeleton.c" +diff --git a/stdlib/tst-concurrent-quick_exit.c b/stdlib/tst-concurrent-quick_exit.c +new file mode 100644 +index 0000000000000000..3f321668d6b8d536 +--- /dev/null ++++ b/stdlib/tst-concurrent-quick_exit.c +@@ -0,0 +1,22 @@ ++/* Check if quick_exit can be called concurrently by multiple threads. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define EXIT(__r) quick_exit (__r) ++#define ATEXIT(__f) at_quick_exit (__f) ++ ++#include "tst-concurrent-exit-skeleton.c" diff --git a/SOURCES/glibc-RHEL-83294-2.patch b/SOURCES/glibc-RHEL-65359-1.patch similarity index 100% rename from SOURCES/glibc-RHEL-83294-2.patch rename to SOURCES/glibc-RHEL-65359-1.patch diff --git a/SOURCES/glibc-RHEL-65359-2.patch b/SOURCES/glibc-RHEL-65359-2.patch new file mode 100644 index 0000000..9a962ec --- /dev/null +++ b/SOURCES/glibc-RHEL-65359-2.patch @@ -0,0 +1,255 @@ +commit e79e5c4899e82eff1032b1f8e530234c8fcbd8b9 +Author: DJ Delorie +Date: Thu Nov 14 15:12:57 2024 -0500 + + assert: ensure posix compliance, add tests for such + + Fix assert.c so that even the fallback + case conforms to POSIX, although not exactly the same as + the default case so a test can tell the difference. + + Add a test that verifies that abort is called, and that the + message printed to stderr has all the info that POSIX requires. + Verify this even when malloc isn't usable. + + Reviewed-by: Paul Eggert + +Conflicts: + assert/assert.c + (no downstream) + +diff --git a/assert/Makefile b/assert/Makefile +index 24a9bdb96306ca08..85358fad51367b49 100644 +--- a/assert/Makefile ++++ b/assert/Makefile +@@ -38,6 +38,7 @@ tests := \ + test-assert-perr \ + tst-assert-c++ \ + tst-assert-g++ \ ++ test-assert-2 \ + # tests + + ifeq ($(have-cxx-thread_local),yes) +diff --git a/assert/assert.c b/assert/assert.c +index 989126c7e5b6b265..6002cc953cdb2d39 100644 +--- a/assert/assert.c ++++ b/assert/assert.c +@@ -24,6 +24,8 @@ + #include + #include + #include ++#include ++#include + + + extern const char *__progname; +@@ -85,8 +87,35 @@ __assert_fail_base (const char *fmt, const char *assertion, const char *file, + else + { + /* At least print a minimal message. */ +- static const char errstr[] = "Unexpected error.\n"; +- __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1); ++ char linebuf[INT_STRLEN_BOUND (int) + sizeof ":: "]; ++ struct iovec v[9]; ++ int i = 0; ++ ++#define WS(s) (v[i].iov_len = strlen (v[i].iov_base = (void *) (s)), i++) ++ ++ if (__progname) ++ { ++ WS (__progname); ++ WS (": "); ++ } ++ ++ WS (file); ++ v[i++] = (struct iovec) {.iov_base = linebuf, ++ .iov_len = sprintf (linebuf, ":%d: ", line)}; ++ ++ if (function) ++ { ++ WS (function); ++ WS (": "); ++ } ++ ++ WS ("Assertion `"); ++ WS (assertion); ++ /* We omit the '.' here so that the assert tests can tell when ++ this code path is taken. */ ++ WS ("' failed\n"); ++ ++ (void) writev (STDERR_FILENO, v, i); + } + + abort (); +diff --git a/assert/test-assert-2.c b/assert/test-assert-2.c +new file mode 100644 +index 0000000000000000..99f8f683e87a0c64 +--- /dev/null ++++ b/assert/test-assert-2.c +@@ -0,0 +1,166 @@ ++/* Test assert's compliance with POSIX requirements. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test verifies that a failed assertion acts in accordance with ++ the POSIX requirements, despite any internal failures. We do so by ++ calling test routines via fork() and monitoring their exit codes ++ and stderr, while possibly forcing internal functions (malloc) to ++ fail. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#undef NDEBUG ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* We need to be able to make malloc() "fail" so that __asprintf ++ fails. */ ++ ++void * (*next_malloc)(size_t sz) = 0; ++static volatile bool fail_malloc = 0; ++ ++void * ++malloc (size_t sz) ++{ ++ if (fail_malloc) ++ return NULL; ++ if (next_malloc == 0) ++ next_malloc = dlsym (RTLD_NEXT, "malloc"); ++ if (next_malloc == 0) ++ return NULL; ++ return next_malloc (sz); ++} ++ ++/* We can tell if abort() is called by looking for the custom return ++ value. */ ++ ++void ++abort_handler(int s) ++{ ++ _exit(5); ++} ++ ++static int do_lineno; ++static const char *do_funcname; ++ ++/* Hack to get the line of the assert. */ ++#define GET_INFO_1(l) \ ++ if (closure != NULL) \ ++ { \ ++ do_lineno = l; \ ++ do_funcname = __func__; \ ++ return; \ ++ } ++#define GET_INFO() GET_INFO_1(__LINE__+1) ++ ++/* These are the two test cases. */ ++ ++static void ++test_assert_normal (void *closure) ++{ ++ if (closure == NULL) ++ signal (SIGABRT, abort_handler); ++ ++ GET_INFO (); ++ assert (1 == 2); ++} ++ ++ ++static void ++test_assert_nomalloc (void *closure) ++{ ++ if (closure == NULL) ++ { ++ signal (SIGABRT, abort_handler); ++ fail_malloc = 1; ++ } ++ ++ GET_INFO (); ++ assert (1 == 2); ++} ++ ++static void ++check_posix (const char *buf, int rv, int line, ++ const char *funcname, const char *testarg) ++{ ++ /* POSIX requires that a failed assertion write a diagnostic to ++ stderr and call abort. The diagnostic must include the filename, ++ line number, and function where the assertion failed, along with ++ the text of the assert() argument. ++ */ ++ char linestr[100]; ++ ++ sprintf (linestr, "%d", line); ++ ++ /* If abort is called, our handler will return 5. */ ++ TEST_VERIFY (rv == 5); ++ ++ TEST_VERIFY (strstr (buf, __FILE__) != NULL); ++ TEST_VERIFY (strstr (buf, linestr) != NULL); ++ TEST_VERIFY (strstr (buf, funcname) != NULL); ++ TEST_VERIFY (strstr (buf, testarg) != NULL); ++ ++} ++ ++static void ++one_test (void (*func)(void *), int which_path) ++{ ++ struct support_capture_subprocess sp; ++ int rv; ++ ++ func (&do_lineno); ++ printf("running test for %s, line %d\n", do_funcname, do_lineno); ++ ++ sp = support_capture_subprocess (func, NULL); ++ rv = WEXITSTATUS (sp.status); ++ ++ check_posix (sp.err.buffer, rv, do_lineno, do_funcname, "1 == 2"); ++ ++ /* Look for intentional subtle differences in messages to verify ++ that the intended code path was taken. */ ++ switch (which_path) ++ { ++ case 0: ++ TEST_VERIFY (strstr (sp.err.buffer, "failed.\n") != NULL); ++ break; ++ case 1: ++ TEST_VERIFY (strstr (sp.err.buffer, "failed\n") != NULL); ++ break; ++ } ++ ++ support_capture_subprocess_free (&sp); ++} ++ ++static int ++do_test(void) ++{ ++ one_test (test_assert_normal, 0); ++ one_test (test_assert_nomalloc, 1); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-65359-3.patch b/SOURCES/glibc-RHEL-65359-3.patch new file mode 100644 index 0000000..757b8e1 --- /dev/null +++ b/SOURCES/glibc-RHEL-65359-3.patch @@ -0,0 +1,23 @@ +commit 3fb895ac88e99201573352b1abc18db4340ecede +Author: DJ Delorie +Date: Sat Dec 21 23:12:41 2024 -0500 + + assert: Use __writev in assert.c [BZ #32492] + + Replace writev with __writev in assert/assert.c. This fixes [BZ #32492]. + + Reviewed-by: H.J. Lu + +diff --git a/assert/assert.c b/assert/assert.c +index 6002cc953cdb2d39..1e9683cf0707b0d3 100644 +--- a/assert/assert.c ++++ b/assert/assert.c +@@ -115,7 +115,7 @@ __assert_fail_base (const char *fmt, const char *assertion, const char *file, + this code path is taken. */ + WS ("' failed\n"); + +- (void) writev (STDERR_FILENO, v, i); ++ (void) __writev (STDERR_FILENO, v, i); + } + + abort (); diff --git a/SOURCES/glibc-RHEL-65359-4.patch b/SOURCES/glibc-RHEL-65359-4.patch new file mode 100644 index 0000000..c1c5f9b --- /dev/null +++ b/SOURCES/glibc-RHEL-65359-4.patch @@ -0,0 +1,20 @@ +commit fd30525eadff6a4b2ac9478bdd6490d0c9c116d9 +Author: Samuel Thibault +Date: Sun Dec 22 23:33:27 2024 +0100 + + assert/test-assert-2.c: Include + + For _exit declaration. + +diff --git a/assert/test-assert-2.c b/assert/test-assert-2.c +index 99f8f683e87a0c64..3288609ab28701ed 100644 +--- a/assert/test-assert-2.c ++++ b/assert/test-assert-2.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #undef NDEBUG + #include diff --git a/SOURCES/glibc-RHEL-65910.patch b/SOURCES/glibc-RHEL-65910.patch new file mode 100644 index 0000000..faf0780 --- /dev/null +++ b/SOURCES/glibc-RHEL-65910.patch @@ -0,0 +1,417 @@ +commit e5ea9aef5468404eecc8c990e6852315b7d1a0e3 +Author: Joseph Myers +Date: Wed Oct 30 16:48:38 2024 +0000 + + Add tests of time, gettimeofday, clock_gettime + + There are no tests specifically focused on the functions time, + gettimeofday and clock_gettime, although there are some incidental + uses in tests of other functions. Add tests specifically for these + three functions. + + Tested for x86_64 and x86. + +Conflicts: + time/Makefile (new tests added) + +diff --git a/time/Makefile b/time/Makefile +index ef3bb767b825f76a..b31ae723642e33bd 100644 +--- a/time/Makefile ++++ b/time/Makefile +@@ -50,22 +50,28 @@ tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ + tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1 \ + tst-adjtime tst-ctime tst-difftime tst-mktime4 tst-clock_settime \ + tst-settimeofday tst-itimer tst-gmtime tst-timegm \ +- tst-timespec_get tst-timespec_getres tst-strftime4 ++ tst-timespec_get tst-timespec_getres tst-strftime4 \ ++ tst-clock_gettime \ ++ tst-gettimeofday \ ++ tst-time \ + + tests-time64 := \ + tst-adjtime-time64 \ + tst-clock-time64 \ + tst-clock2-time64 \ ++ tst-clock_gettime-time64 \ + tst-clock_nanosleep-time64 \ + tst-clock_settime-time64 \ + tst-cpuclock1-time64 \ + tst-ctime-time64 \ + tst-difftime-time64 \ ++ tst-gettimeofday-time64 \ + tst-gmtime-time64 \ + tst-itimer-time64 \ + tst-mktime4-time64 \ + tst-settimeofday-time64 \ + tst-strftime4-time64 \ ++ tst-time-time64 \ + tst-timegm-time64 \ + tst-timespec_get-time64 \ + tst-timespec_getres-time64 \ +diff --git a/time/tst-clock_gettime-time64.c b/time/tst-clock_gettime-time64.c +new file mode 100644 +index 0000000000000000..5b215d11f8a0a424 +--- /dev/null ++++ b/time/tst-clock_gettime-time64.c +@@ -0,0 +1 @@ ++#include "tst-clock_gettime.c" +diff --git a/time/tst-clock_gettime.c b/time/tst-clock_gettime.c +new file mode 100644 +index 0000000000000000..51f24c0be2084a91 +--- /dev/null ++++ b/time/tst-clock_gettime.c +@@ -0,0 +1,184 @@ ++/* Test clock_gettime function. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* Compare two struct timespec values, returning a value -1, 0 or 1. */ ++ ++int ++compare_timespec (const struct timespec *tv1, const struct timespec *tv2) ++{ ++ if (tv1->tv_sec < tv2->tv_sec) ++ return -1; ++ if (tv1->tv_sec > tv2->tv_sec) ++ return 1; ++ if (tv1->tv_nsec < tv2->tv_nsec) ++ return -1; ++ if (tv1->tv_nsec > tv2->tv_nsec) ++ return 1; ++ return 0; ++} ++ ++struct test_clockid ++{ ++ clockid_t clockid; ++ const char *name; ++ bool is_cputime; ++ bool fail_ok; ++}; ++ ++#define CLOCK(clockid) { clockid, # clockid, false, false } ++#define CLOCK_CPU(clockid) { clockid, # clockid, true, false } ++#define CLOCK_FAIL_OK(clockid) { clockid, # clockid, false, true } ++ ++static const struct test_clockid clocks[] = ++ { ++ CLOCK (CLOCK_REALTIME), ++#ifdef CLOCK_MONOTONIC ++ CLOCK (CLOCK_MONOTONIC), ++#endif ++#ifdef CLOCK_PROCESS_CPUTIME_ID ++ CLOCK_CPU (CLOCK_PROCESS_CPUTIME_ID), ++#endif ++#ifdef CLOCK_THREAD_CPUTIME_ID ++ CLOCK_CPU (CLOCK_THREAD_CPUTIME_ID), ++#endif ++#ifdef CLOCK_MONOTONIC_RAW ++ CLOCK (CLOCK_MONOTONIC_RAW), ++#endif ++#ifdef CLOCK_REALTIME_COARSE ++ CLOCK (CLOCK_REALTIME_COARSE), ++#endif ++#ifdef CLOCK_MONOTONIC_COARSE ++ CLOCK (CLOCK_MONOTONIC_COARSE), ++#endif ++#ifdef CLOCK_BOOTTIME ++ CLOCK (CLOCK_BOOTTIME), ++#endif ++#ifdef CLOCK_REALTIME_ALARM ++ CLOCK_FAIL_OK (CLOCK_REALTIME_ALARM), ++#endif ++#ifdef CLOCK_BOOTTIME_ALARM ++ CLOCK_FAIL_OK (CLOCK_BOOTTIME_ALARM), ++#endif ++#ifdef CLOCK_TAI ++ CLOCK (CLOCK_TAI), ++#endif ++ }; ++ ++ ++volatile int sigalrm_received; ++ ++void ++handle_sigalrm (int sig) ++{ ++ sigalrm_received = 1; ++} ++ ++int ++do_test (void) ++{ ++ /* Verify that the calls to clock_gettime succeed, that the time does ++ not decrease, and that time returns a truncated (not rounded) ++ version of the time. */ ++ for (size_t i = 0; i < sizeof clocks / sizeof clocks[0]; i++) ++ { ++ printf ("testing %s\n", clocks[i].name); ++ struct timespec ts1, ts2, ts3; ++ int ret; ++ time_t t1; ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = clock_gettime (clocks[i].clockid, &ts1); ++ if (clocks[i].fail_ok && ret == -1) ++ { ++ printf ("failed (OK for this clock): %m\n"); ++ continue; ++ } ++ TEST_VERIFY_EXIT (ret == 0); ++ if (clocks[i].clockid == CLOCK_REALTIME) ++ TEST_VERIFY (t1 <= ts1.tv_sec); ++ TEST_VERIFY (ts1.tv_nsec >= 0); ++ TEST_VERIFY (ts1.tv_nsec < 1000000000); ++ ret = clock_gettime (clocks[i].clockid, &ts2); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timespec (&ts1, &ts2) <= 0); ++ TEST_VERIFY (ts2.tv_nsec >= 0); ++ TEST_VERIFY (ts2.tv_nsec < 1000000000); ++ /* Also verify that after sleeping, the time returned has ++ increased. Repeat several times to verify that each time, ++ the time from the time function is truncated not rounded. ++ For CPU time clocks, the time spent spinning on the CPU, and ++ so whether we end in the later half of a second, is not ++ predictable; thus, only test once for those clocks. */ ++ const struct timespec duration = { .tv_nsec = 100000000 }; ++ for (int j = 0; j < 5; j++) ++ { ++ if (clocks[i].is_cputime) ++ { ++ timer_t timer; ++ ret = timer_create (CLOCK_PROCESS_CPUTIME_ID, NULL, &timer); ++ TEST_VERIFY_EXIT (ret == 0); ++ sigalrm_received = 0; ++ xsignal (SIGALRM, handle_sigalrm); ++ struct itimerspec t = ++ { .it_value = ++ { ++ .tv_sec = 0, ++ .tv_nsec = 200000000 ++ } ++ }; ++ ret = timer_settime (timer, 0, &t, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ while (sigalrm_received == 0) ++ ; ++ xsignal (SIGALRM, SIG_DFL); ++ ret = timer_delete (timer); ++ TEST_VERIFY_EXIT (ret == 0); ++ } ++ else ++ { ++ ret = nanosleep (&duration, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ } ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = clock_gettime (clocks[i].clockid, &ts3); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timespec (&ts2, &ts3) < 0); ++ if (clocks[i].clockid == CLOCK_REALTIME) ++ TEST_VERIFY (t1 <= ts3.tv_sec); ++ TEST_VERIFY (ts3.tv_nsec >= 0); ++ TEST_VERIFY (ts3.tv_nsec < 1000000000); ++ ts2 = ts3; ++ if (clocks[i].is_cputime) ++ break; ++ } ++ } ++ return 0; ++} ++ ++#define TIMEOUT 60 ++ ++#include +diff --git a/time/tst-gettimeofday-time64.c b/time/tst-gettimeofday-time64.c +new file mode 100644 +index 0000000000000000..6c08761ef995ce7c +--- /dev/null ++++ b/time/tst-gettimeofday-time64.c +@@ -0,0 +1 @@ ++#include "tst-gettimeofday.c" +diff --git a/time/tst-gettimeofday.c b/time/tst-gettimeofday.c +new file mode 100644 +index 0000000000000000..978ae28587d486f2 +--- /dev/null ++++ b/time/tst-gettimeofday.c +@@ -0,0 +1,93 @@ ++/* Test gettimeofday function. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++ ++/* Compare two struct timeval values, returning a value -1, 0 or 1. */ ++ ++int ++compare_timeval (const struct timeval *tv1, const struct timeval *tv2) ++{ ++ if (tv1->tv_sec < tv2->tv_sec) ++ return -1; ++ if (tv1->tv_sec > tv2->tv_sec) ++ return 1; ++ if (tv1->tv_usec < tv2->tv_usec) ++ return -1; ++ if (tv1->tv_usec > tv2->tv_usec) ++ return 1; ++ return 0; ++} ++ ++int ++do_test (void) ++{ ++ struct timeval tv1, tv2, tv3; ++ int ret; ++ time_t t1; ++ /* Verify that the calls to gettimeofday succeed, that the time does ++ not decrease, and that time returns a truncated (not rounded) ++ version of the time. */ ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = gettimeofday (&tv1, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (t1 <= tv1.tv_sec); ++ TEST_VERIFY (tv1.tv_usec >= 0); ++ TEST_VERIFY (tv1.tv_usec < 1000000); ++ ret = gettimeofday (&tv2, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timeval (&tv1, &tv2) <= 0); ++ TEST_VERIFY (tv2.tv_usec >= 0); ++ TEST_VERIFY (tv2.tv_usec < 1000000); ++ /* Also verify that after sleeping, the time returned has increased. ++ Repeat several times to verify that each time, the time from the ++ time function is truncated not rounded. */ ++ const struct timespec duration = { .tv_nsec = 100000000 }; ++ for (int i = 0; i < 10; i++) ++ { ++ ret = nanosleep (&duration, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = gettimeofday (&tv3, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timeval (&tv2, &tv3) < 0); ++ TEST_VERIFY (t1 <= tv3.tv_sec); ++ TEST_VERIFY (tv3.tv_usec >= 0); ++ TEST_VERIFY (tv3.tv_usec < 1000000); ++ tv2 = tv3; ++ } ++ /* Also test with the obsolete tz argument not being NULL. */ ++ struct timezone tz = { 0 }; ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = gettimeofday (&tv3, &tz); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (t1 <= tv3.tv_sec); ++ TEST_VERIFY (compare_timeval (&tv2, &tv3) <= 0); ++ TEST_VERIFY (tv3.tv_usec >= 0); ++ TEST_VERIFY (tv3.tv_usec < 1000000); ++ return 0; ++} ++ ++#include +diff --git a/time/tst-time-time64.c b/time/tst-time-time64.c +new file mode 100644 +index 0000000000000000..30e8d3c86ef973cc +--- /dev/null ++++ b/time/tst-time-time64.c +@@ -0,0 +1 @@ ++#include "tst-time.c" +diff --git a/time/tst-time.c b/time/tst-time.c +new file mode 100644 +index 0000000000000000..7f24bed3530e1c1e +--- /dev/null ++++ b/time/tst-time.c +@@ -0,0 +1,51 @@ ++/* Test time function. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++ ++int ++do_test (void) ++{ ++ time_t t1, t2, t3, t4, t5, t6; ++ /* Verify that the calls to time succeed, that the value returned ++ directly equals that returned through the pointer passed, and ++ that the time does not decrease. */ ++ t1 = time (&t2); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ TEST_VERIFY (t1 == t2); ++ t3 = time (NULL); ++ TEST_VERIFY_EXIT (t3 != (time_t) -1); ++ TEST_VERIFY (t3 >= t1); ++ /* Also verify that after sleeping, the time returned has ++ increased. */ ++ sleep (2); ++ t4 = time (&t5); ++ TEST_VERIFY_EXIT (t4 != (time_t) -1); ++ TEST_VERIFY (t4 == t5); ++ TEST_VERIFY (t4 > t3); ++ t6 = time (NULL); ++ TEST_VERIFY_EXIT (t6 != (time_t) -1); ++ TEST_VERIFY (t6 >= t4); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-66253-1.patch b/SOURCES/glibc-RHEL-66253-1.patch new file mode 100644 index 0000000..37b2506 --- /dev/null +++ b/SOURCES/glibc-RHEL-66253-1.patch @@ -0,0 +1,140 @@ +commit ddf71c550a5940deca74cc676f1cae134a891717 +Author: H.J. Lu +Date: Tue Apr 30 09:21:16 2024 -0700 + + libio: Sort test variables in Makefile + + Sort test variables in libio/Makefile using scripts/sort-makefile-lines.py. + Reviewed-by: Sunil K Pandey + +Conflicts: + libio/Makefile + (missing tst-bz28828 downstream) + +diff --git a/libio/Makefile b/libio/Makefile +index 10c2ed140a855877..31e27b022c73669a 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -51,22 +51,75 @@ routines := \ + \ + libc_fatal fmemopen oldfmemopen vtables + +-tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ +- tst_wprintf2 tst-widetext test-fmemopen tst-ext tst-ext2 \ +- tst-fgetws tst-ungetwc1 tst-ungetwc2 tst-swscanf tst-sscanf \ +- tst-mmap-setvbuf bug-ungetwc1 bug-ungetwc2 tst-atime tst-eof \ +- tst-freopen bug-rewind bug-rewind2 bug-ungetc bug-fseek \ +- tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \ +- tst-mmap2-eofsync tst-mmap-offend bug-fopena+ bug-wfflush \ +- bug-ungetc2 bug-ftell bug-ungetc3 bug-ungetc4 tst-fopenloc2 \ +- tst-memstream1 tst-memstream2 tst-memstream3 tst-memstream4 \ +- tst-wmemstream1 tst-wmemstream2 tst-wmemstream3 tst-wmemstream4 \ +- tst-wmemstream5 bug-memstream1 bug-wmemstream1 \ +- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \ +- tst-fwrite-error tst-ftell-partial-wide tst-ftell-active-handler \ +- tst-ftell-append tst-fputws tst-bz22415 tst-fgetc-after-eof \ +- tst-sprintf-ub tst-sprintf-chk-ub tst-bz24051 tst-bz24153 \ +- tst-wfile-sync tst-getdelim ++tests = \ ++ bug-fopena+ \ ++ bug-fseek \ ++ bug-ftell \ ++ bug-memstream1 \ ++ bug-mmap-fflush \ ++ bug-rewind \ ++ bug-rewind2 \ ++ bug-ungetc \ ++ bug-ungetc2 \ ++ bug-ungetc3 \ ++ bug-ungetc4 \ ++ bug-ungetwc1 \ ++ bug-ungetwc2 \ ++ bug-wfflush \ ++ bug-wmemstream1 \ ++ bug-wsetpos \ ++ test-fmemopen \ ++ tst-atime \ ++ tst-bz22415 \ ++ tst-bz24051 \ ++ tst-bz24153 \ ++ tst-eof \ ++ tst-ext \ ++ tst-ext2 \ ++ tst-fgetc-after-eof \ ++ tst-fgetwc \ ++ tst-fgetws \ ++ tst-fopenloc2 \ ++ tst-fputws \ ++ tst-freopen \ ++ tst-fseek \ ++ tst-ftell-active-handler \ ++ tst-ftell-append \ ++ tst-ftell-partial-wide \ ++ tst-fwrite-error \ ++ tst-getdelim \ ++ tst-memstream1 \ ++ tst-memstream2 \ ++ tst-memstream3 \ ++ tst-memstream4 \ ++ tst-mmap-eofsync \ ++ tst-mmap-fflushsync \ ++ tst-mmap-offend \ ++ tst-mmap-setvbuf \ ++ tst-mmap2-eofsync \ ++ tst-popen1 \ ++ tst-setvbuf1 \ ++ tst-sprintf-chk-ub \ ++ tst-sprintf-ub \ ++ tst-sscanf \ ++ tst-swscanf \ ++ tst-ungetwc1 \ ++ tst-ungetwc2 \ ++ tst-wfile-sync \ ++ tst-widetext \ ++ tst-wmemstream1 \ ++ tst-wmemstream2 \ ++ tst-wmemstream3 \ ++ tst-wmemstream4 \ ++ tst-wmemstream5 \ ++ tst_getwc \ ++ tst_putwc \ ++ tst_swprintf \ ++ tst_swscanf \ ++ tst_wprintf \ ++ tst_wprintf2 \ ++ tst_wscanf \ ++ # tests + + tests-internal = tst-vtables tst-vtables-interposed + +@@ -200,16 +253,26 @@ tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out \ + $(objpfx)tst-bz24228-mem.out + endif + +-tests += tst-cleanup-default tst-cleanup-default-static ++tests += \ ++ tst-cleanup-default \ ++ tst-cleanup-default-static \ ++ # tests + tests-static += tst-cleanup-default-static + tests-special += $(objpfx)tst-cleanup-default-cmp.out $(objpfx)tst-cleanup-default-static-cmp.out + LDFLAGS-tst-cleanup-default = -Wl,--gc-sections + LDFLAGS-tst-cleanup-default-static = -Wl,--gc-sections + + ifeq ($(have-gnu-retain)$(have-z-start-stop-gc),yesyes) +-tests += tst-cleanup-start-stop-gc tst-cleanup-start-stop-gc-static \ +- tst-cleanup-nostart-stop-gc tst-cleanup-nostart-stop-gc-static +-tests-static += tst-cleanup-start-stop-gc-static tst-cleanup-nostart-stop-gc-static ++tests += \ ++ tst-cleanup-nostart-stop-gc \ ++ tst-cleanup-nostart-stop-gc-static \ ++ tst-cleanup-start-stop-gc \ ++ tst-cleanup-start-stop-gc-static \ ++ # tests ++tests-static += \ ++ tst-cleanup-nostart-stop-gc-static \ ++ tst-cleanup-start-stop-gc-static \ ++ # tests-static + tests-special += $(objpfx)tst-cleanup-start-stop-gc-cmp.out \ + $(objpfx)tst-cleanup-start-stop-gc-static-cmp.out \ + $(objpfx)tst-cleanup-nostart-stop-gc-cmp.out \ diff --git a/SOURCES/glibc-RHEL-66253-2.patch b/SOURCES/glibc-RHEL-66253-2.patch new file mode 100644 index 0000000..3e89f22 --- /dev/null +++ b/SOURCES/glibc-RHEL-66253-2.patch @@ -0,0 +1,28 @@ +commit b2c3ee3724900975deaf5eae57640bb0c2d7315e +Author: Andreas Schwab +Date: Tue Jun 4 11:01:11 2024 +0200 + + Remove memory leak in fdopen (bug 31840) + + Deallocate the memory for the FILE structure when seeking to the end fails + in append mode. + + Fixes: ea33158c96 ("Fix offset caching for streams and use it for ftell (BZ #16680)") + +diff --git a/libio/iofdopen.c b/libio/iofdopen.c +index 498791b2872f4b93..e3596fa4c91644b7 100644 +--- a/libio/iofdopen.c ++++ b/libio/iofdopen.c +@@ -156,7 +156,11 @@ _IO_new_fdopen (int fd, const char *mode) + { + off64_t new_pos = _IO_SYSSEEK (&new_f->fp.file, 0, _IO_seek_end); + if (new_pos == _IO_pos_BAD && errno != ESPIPE) +- return NULL; ++ { ++ _IO_un_link (&new_f->fp); ++ free (new_f); ++ return NULL; ++ } + } + return &new_f->fp.file; + } diff --git a/SOURCES/glibc-RHEL-66253-3.patch b/SOURCES/glibc-RHEL-66253-3.patch new file mode 100644 index 0000000..7f57aba --- /dev/null +++ b/SOURCES/glibc-RHEL-66253-3.patch @@ -0,0 +1,120 @@ +commit d0106b6ae26c8cc046269358a77188105c99d5e3 +Author: Florian Weimer +Date: Tue Jun 4 14:37:35 2024 +0200 + + libio: Test for fdopen memory leak without SEEK_END support (bug 31840) + + The bug report used /dev/mem, but /proc/self/mem works as well + (if available). + +diff --git a/libio/Makefile b/libio/Makefile +index 31e27b022c73669a..418102c4c0d8c25a 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -76,6 +76,7 @@ tests = \ + tst-eof \ + tst-ext \ + tst-ext2 \ ++ tst-fdopen-seek-failure \ + tst-fgetc-after-eof \ + tst-fgetwc \ + tst-fgetws \ +@@ -220,6 +221,9 @@ tst_wprintf2-ARGS = "Some Text" + + test-fmemopen-ENV = MALLOC_TRACE=$(objpfx)test-fmemopen.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so ++tst-fdopen-seek-failure-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-fdopen-seek-failure.mtrace \ ++ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + tst-fopenloc-ENV = MALLOC_TRACE=$(objpfx)tst-fopenloc.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + tst-bz22415-ENV = MALLOC_TRACE=$(objpfx)tst-bz22415.mtrace \ +@@ -228,6 +232,7 @@ tst-bz24228-ENV = MALLOC_TRACE=$(objpfx)tst-bz24228.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + + generated += test-fmemopen.mtrace test-fmemopen.check ++generated += tst-fdopen-seek-failure.mtrace tst-fdopen-seek-failure.check + generated += tst-fopenloc.mtrace tst-fopenloc.check + generated += tst-bz22415.mtrace tst-bz22415.check + +@@ -244,8 +249,12 @@ shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \ + oldiofsetpos64 + + ifeq ($(run-built-tests),yes) +-tests-special += $(objpfx)test-freopen.out $(objpfx)test-fmemopen-mem.out \ +- $(objpfx)tst-bz22415-mem.out ++tests-special += \ ++ $(objpfx)test-fmemopen-mem.out \ ++ $(objpfx)test-freopen.out \ ++ $(objpfx)tst-bz22415-mem.out \ ++ $(objpfx)tst-fdopen-seek-failure-mem.out \ ++ # tests-special + ifeq (yes,$(build-shared)) + # Run tst-fopenloc-cmp.out and tst-openloc-mem.out only if shared + # library is enabled since they depend on tst-fopenloc.out. +@@ -333,6 +342,11 @@ $(objpfx)test-fmemopen-mem.out: $(objpfx)test-fmemopen.out + $(common-objpfx)malloc/mtrace $(objpfx)test-fmemopen.mtrace > $@; \ + $(evaluate-test) + ++$(objpfx)tst-fdopen-seek-failure-mem.out: $(objpfx)tst-fdopen-seek-failure.out ++ $(common-objpfx)malloc/mtrace \ ++ $(objpfx)tst-fdopen-seek-failure.mtrace > $@; \ ++ $(evaluate-test) ++ + $(objpfx)tst-fopenloc-mem.out: $(objpfx)tst-fopenloc.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-fopenloc.mtrace > $@; \ + $(evaluate-test) +diff --git a/libio/tst-fdopen-seek-failure.c b/libio/tst-fdopen-seek-failure.c +new file mode 100644 +index 0000000000000000..5c4d40ab34158571 +--- /dev/null ++++ b/libio/tst-fdopen-seek-failure.c +@@ -0,0 +1,48 @@ ++/* Test for fdopen memory leak without SEEK_END support (bug 31840). ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ mtrace (); ++ ++ /* This file is special because it is seekable, but only ++ with SEEK_SET, not SEEK_END. */ ++ int fd = open ("/proc/self/mem", O_RDWR); ++ if (fd < 0) ++ FAIL_UNSUPPORTED ("/proc/self/mem not found: %m"); ++ FILE *fp = fdopen (fd, "a"); ++ /* The fdopen call should have failed because it tried to use ++ SEEK_END. */ ++ TEST_VERIFY (fp == NULL); ++ TEST_COMPARE (errno, EINVAL); ++ xclose (fd); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-67592-1.patch b/SOURCES/glibc-RHEL-67592-1.patch new file mode 100644 index 0000000..31e6cb5 --- /dev/null +++ b/SOURCES/glibc-RHEL-67592-1.patch @@ -0,0 +1,27 @@ +From ca7334d34b7811fc261c84c498fd4a19acd70530 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Mon, 28 Feb 2022 11:50:41 +0100 +Subject: [PATCH] manual: SA_ONSTACK is ignored without alternate stack +Content-type: text/plain; charset=UTF-8 + +The current stack is used. No SIGILL is generated. +--- + manual/signal.texi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/manual/signal.texi b/manual/signal.texi +index 8a12baf044..5c2ba7dae6 100644 +--- a/manual/signal.texi ++++ b/manual/signal.texi +@@ -1329,7 +1329,7 @@ Setting this flag for a signal other than @code{SIGCHLD} has no effect. + If this flag is set for a particular signal number, the system uses the + signal stack when delivering that kind of signal. @xref{Signal Stack}. + If a signal with this flag arrives and you have not set a signal stack, +-the system terminates the program with @code{SIGILL}. ++the normal user stack is used instead, as if the flag had not been set. + @end deftypevr + + @deftypevr Macro int SA_RESTART +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-67592-2.patch b/SOURCES/glibc-RHEL-67592-2.patch new file mode 100644 index 0000000..7c34b4b --- /dev/null +++ b/SOURCES/glibc-RHEL-67592-2.patch @@ -0,0 +1,89 @@ +From 87cd94bba4091d22e24116298ade33b712ada235 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Tue, 10 Dec 2024 17:07:21 -0500 +Subject: [PATCH] manual: Document more sigaction flags +Content-type: text/plain; charset=UTF-8 + +Adds documentation for three-argument handler + +Adds remainder of the SA_* flags + +Reviewed-by: Florian Weimer +--- + manual/signal.texi | 39 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 39 insertions(+) + +diff --git a/manual/signal.texi b/manual/signal.texi +index 5c2ba7dae6..2012980efe 100644 +--- a/manual/signal.texi ++++ b/manual/signal.texi +@@ -1141,6 +1141,15 @@ This is used in the same way as the @var{action} argument to the + @code{signal} function. The value can be @code{SIG_DFL}, + @code{SIG_IGN}, or a function pointer. @xref{Basic Signal Handling}. + ++@item void (*sa_sigaction) (int @var{signum}, siginfo_t *@var{info}, void *@var{ucontext}) ++This is an alternate to @code{sa_handler} that is used when the ++@code{sa_flags} includes the @code{flag SA_SIGINFO}. Note that this ++and @code{sa_handler} overlap; only ever set one at a time. ++ ++The contents of the @var{info} and @var{ucontext} structures are ++kernel and architecture dependent. Please see ++@manpageurl{sigaction,2} for details. ++ + @item sigset_t sa_mask + This specifies a set of signals to be blocked while the handler runs. + Blocking is explained in @ref{Blocking for Handler}. Note that the +@@ -1324,6 +1333,24 @@ delivered for both terminated children and stopped children. + Setting this flag for a signal other than @code{SIGCHLD} has no effect. + @end deftypevr + ++@deftypevr Macro int SA_NOCLDWAIT ++This flag is meaningful only for the @code{SIGCHLD} signal. When the ++flag is set, the terminated child will not wait for the parent to reap ++it, or become a zombie if not reaped. The child will instead be ++reaped by the kernel immediately on termination, similar to setting ++SIGCHLD to SIG_IGN. ++ ++Setting this flag for a signal other than @code{SIGCHLD} has no effect. ++@end deftypevr ++ ++@deftypevr Macro int SA_NODEFER ++Normally a signal is added to the signal mask while running its own ++handler; this negates that, so that the same signal can be received ++while it's handler is running. Note that if the signal is included in ++@code{sa_mask}, it is masked regardless of this flag. Only useful when ++assigning a function as a signal handler. ++@end deftypevr ++ + @deftypevr Macro int SA_ONSTACK + @standards{BSD, signal.h} + If this flag is set for a particular signal number, the system uses the +@@ -1332,6 +1359,12 @@ If a signal with this flag arrives and you have not set a signal stack, + the normal user stack is used instead, as if the flag had not been set. + @end deftypevr + ++@deftypevr Macro int SA_RESETHAND ++Resets the handler for a signal to SIG_DFL, at the moment specified ++handler function begins. I.e. the handler is called once, then the ++action resets. ++@end deftypevr ++ + @deftypevr Macro int SA_RESTART + @standards{BSD, signal.h} + This flag controls what happens when a signal is delivered during +@@ -1347,6 +1380,12 @@ clear, returning from a handler makes the function fail. + @xref{Interrupted Primitives}. + @end deftypevr + ++@deftypevr Macro int SA_SIGINFO ++Indicates that the @code{sa_sigaction} three-argument form of the ++handler should be used in setting up a handler instead of the ++one-argument @code{sa_handler} form. ++@end deftypevr ++ + @node Initial Signal Actions + @subsection Initial Signal Actions + @cindex initial signal actions +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-67592-3.patch b/SOURCES/glibc-RHEL-67592-3.patch new file mode 100644 index 0000000..c496c9c --- /dev/null +++ b/SOURCES/glibc-RHEL-67592-3.patch @@ -0,0 +1,38 @@ +From 298bc488fdc047da37482f4003023cb9adef78f8 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +Date: Wed, 11 Sep 2024 10:05:08 +0200 +Subject: [PATCH] manual: Extract the @manpageurl{func,sec} macro +Content-type: text/plain; charset=UTF-8 + +From the existing @manpagefunctionstub{func,sec} macro, +so that URLs can be included in the manual without the +stub text. + +Reviewed-by: Carlos O'Donell +--- + manual/macros.texi | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/manual/macros.texi b/manual/macros.texi +index 579da3fb81..f48dd4ec22 100644 +--- a/manual/macros.texi ++++ b/manual/macros.texi +@@ -282,10 +282,13 @@ cwd\comments\ + @macro standardsx {element, standard, header} + @end macro + ++@macro manpageurl {func, sec} ++@url{https://man7.org/linux/man-pages/man\sec\/\func\.\sec\.html} ++@end macro ++ + @macro manpagefunctionstub {func,sec} + This documentation is a stub. For additional information on this +-function, consult the manual page +-@url{https://man7.org/linux/man-pages/man\sec\/\func\.\sec\.html}. ++function, consult the manual page @manpageurl{\func\,\sec\}. + @xref{Linux Kernel}. + @end macro + +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-67592-4.patch b/SOURCES/glibc-RHEL-67592-4.patch new file mode 100644 index 0000000..034186c --- /dev/null +++ b/SOURCES/glibc-RHEL-67592-4.patch @@ -0,0 +1,85 @@ +From 37a0933e1bf97346b45463bde0c4631be8abaa07 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Tue, 10 Dec 2024 16:57:21 -0500 +Subject: [PATCH] manual: make @manpageurl more specific to each output +Content-type: text/plain; charset=UTF-8 + +Tweak the @manpageurl macro to customize the output for +each of html, info, and pdf output. HTML and PDF (at +least, these days) support clicking on the link title, +whereas info does not. Add text to the intro section +explaining which man pages are normative and which +aren't. + +Conflicts + manual/resource.texi + Removed; unneeded +--- + manual/intro.texi | 14 +++++++++++++- + manual/macros.texi | 12 ++++++++++-- + manual/resource.texi | 3 +-- + 3 files changed, 24 insertions(+), 5 deletions(-) + +diff --git a/manual/intro.texi b/manual/intro.texi +index 879c1b38d9..d95648468d 100644 +--- a/manual/intro.texi ++++ b/manual/intro.texi +@@ -966,13 +966,25 @@ functionality is available on commercial systems. + + @Theglibc{} includes by reference the Linux man-pages + @value{man_pages_version} documentation to document the listed +-syscalls for the Linux kernel. For reference purposes only the latest ++syscalls for the Linux kernel. For reference purposes only, the latest + @uref{https://www.kernel.org/doc/man-pages/,Linux man-pages Project} + documentation can be accessed from the + @uref{https://www.kernel.org,Linux kernel} website. Where the syscall + has more specific documentation in this manual that more specific + documentation is considered authoritative. + ++Throughout this manual, when we refer to a man page, for example: ++@quotation ++@manpageurl{sendmsg,2} ++@end quotation ++@noindent ++we are referring primarily to the specific version noted above (the ++``normative'' version), typically accessed by running (for example) ++@code{man 2 sendmsg} on a system with that version installed. For ++convenience, we will also link to the online latest copy of the man ++pages, but keep in mind that version will almost always be newer than, ++and thus different than, the normative version noted above. ++ + Additional details on the Linux system call interface can be found in + @xref{System Calls}. + +diff --git a/manual/macros.texi b/manual/macros.texi +index f48dd4ec22..2003ce2678 100644 +--- a/manual/macros.texi ++++ b/manual/macros.texi +@@ -282,14 +282,22 @@ cwd\comments\ + @macro standardsx {element, standard, header} + @end macro + ++@ifhtml + @macro manpageurl {func, sec} +-@url{https://man7.org/linux/man-pages/man\sec\/\func\.\sec\.html} ++@url{https://man7.org/linux/man-pages/man\sec\/\func\.\sec\.html,,\func\(\sec\)} ++@xref{Linux Kernel} + @end macro ++@end ifhtml ++@ifnothtml ++@macro manpageurl {func, sec} ++\func\(\sec\) (Latest, online: @url{https://man7.org/linux/man-pages/man\sec\/\func\.\sec\.html}) ++@xref{Linux Kernel} ++@end macro ++@end ifnothtml + + @macro manpagefunctionstub {func,sec} + This documentation is a stub. For additional information on this + function, consult the manual page @manpageurl{\func\,\sec\}. +-@xref{Linux Kernel}. + @end macro + + @end ifclear +-- +2.43.5 + diff --git a/SOURCES/glibc-RHEL-70707-1.patch b/SOURCES/glibc-RHEL-67692-1.patch similarity index 95% rename from SOURCES/glibc-RHEL-70707-1.patch rename to SOURCES/glibc-RHEL-67692-1.patch index 6e647d1..bc94037 100644 --- a/SOURCES/glibc-RHEL-70707-1.patch +++ b/SOURCES/glibc-RHEL-67692-1.patch @@ -7,7 +7,7 @@ Date: Tue Jan 25 17:39:36 2022 -0700 Reviewed-by: Carlos O'Donell diff --git a/stdlib/setenv.c b/stdlib/setenv.c -index c3d2cee7b6..2176cbac31 100644 +index 893f081af6b5a21b..14fff422a2193864 100644 --- a/stdlib/setenv.c +++ b/stdlib/setenv.c @@ -150,7 +150,9 @@ __add_to_environ (const char *name, const char *value, const char *combined, diff --git a/SOURCES/glibc-RHEL-70707-2.patch b/SOURCES/glibc-RHEL-67692-2.patch similarity index 98% rename from SOURCES/glibc-RHEL-70707-2.patch rename to SOURCES/glibc-RHEL-67692-2.patch index b98de8f..23e12cc 100644 --- a/SOURCES/glibc-RHEL-70707-2.patch +++ b/SOURCES/glibc-RHEL-67692-2.patch @@ -11,7 +11,7 @@ Date: Thu Feb 9 10:36:57 2023 -0300 Reviewed-by: Wilco Dijkstra diff --git a/stdlib/getenv.c b/stdlib/getenv.c -index e3157ce2f3..8408e641a6 100644 +index e359cc925f5a7dcf..0cfaf1412a65cca5 100644 --- a/stdlib/getenv.c +++ b/stdlib/getenv.c @@ -15,76 +15,22 @@ diff --git a/SOURCES/glibc-RHEL-70707-3.patch b/SOURCES/glibc-RHEL-67692-3.patch similarity index 97% rename from SOURCES/glibc-RHEL-70707-3.patch rename to SOURCES/glibc-RHEL-67692-3.patch index 7ecd7de..be1e8fb 100644 --- a/SOURCES/glibc-RHEL-70707-3.patch +++ b/SOURCES/glibc-RHEL-67692-3.patch @@ -9,7 +9,7 @@ Date: Fri Jun 30 14:31:45 2023 +0000 Reviewed-by: Adhemerval Zanella diff --git a/stdlib/setenv.c b/stdlib/setenv.c -index ba5257d3bf..cc71287fcc 100644 +index 14fff422a2193864..a55a661eaea13af2 100644 --- a/stdlib/setenv.c +++ b/stdlib/setenv.c @@ -182,18 +182,11 @@ __add_to_environ (const char *name, const char *value, const char *combined, diff --git a/SOURCES/glibc-RHEL-70707-4.patch b/SOURCES/glibc-RHEL-67692-4.patch similarity index 94% rename from SOURCES/glibc-RHEL-70707-4.patch rename to SOURCES/glibc-RHEL-67692-4.patch index db4fe2a..88637d8 100644 --- a/SOURCES/glibc-RHEL-70707-4.patch +++ b/SOURCES/glibc-RHEL-67692-4.patch @@ -3,28 +3,28 @@ Author: Florian Weimer Date: Thu Nov 21 21:10:52 2024 +0100 stdlib: Make getenv thread-safe in more cases - + Async-signal-safety is preserved, too. In fact, getenv is fully reentrant and can be called from the malloc call in setenv (if a replacement malloc uses getenv during its initialization). - + This is relatively easy to implement because even before this change, setenv, unsetenv, clearenv, putenv do not deallocate the environment strings themselves as they are removed from the environment. - + The main changes are: - + * Use release stores for environment array updates, following the usual pattern for safely publishing immutable data (in this case, the environment strings). - + * Do not deallocate the environment array. Instead, keep older versions around and adopt an exponential resizing policy. This results in an amortized constant space leak per active environment variable, but there already is such a leak for the variable itself (and that is even length-dependent, and includes no-longer used values). - + * Add a seqlock-like mechanism to retry getenv if a concurrent unsetenv is observed. Without that, it is possible that getenv returns NULL for a variable that is never unset. This @@ -34,18 +34,23 @@ Date: Thu Nov 21 21:10:52 2024 +0100 unsetenv. This avoids the need for a second copy of the environ array that getenv can read from a signal handler that happens to interrupt an unsetenv call. - + No manual updates are included with this patch because environ usage with execve, posix_spawn, system is still not thread-safe relative unsetenv. The new process may end up with an environment that misses entries that were never unset. This is the same issue described above for getenv. - + Reviewed-by: Adhemerval Zanella -diff -Nrup a/stdlib/Makefile b/stdlib/Makefile ---- a/stdlib/Makefile 2025-02-26 21:42:43.588147025 -0500 -+++ b/stdlib/Makefile 2025-02-26 21:51:09.401674391 -0500 +Conflicts: + stdlib/Makefile + (missing tests downstream) + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 3375da0a934c17cb..603a330b1e8f1ba2 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile @@ -95,6 +95,9 @@ tests := \ tst-canon-bz26341 \ tst-cxa_atexit \ @@ -56,7 +61,7 @@ diff -Nrup a/stdlib/Makefile b/stdlib/Makefile tst-getrandom \ tst-limits \ tst-makecontext \ -@@ -302,3 +305,7 @@ $(objpfx)tst-setcontext3.out: tst-setcon +@@ -302,3 +305,7 @@ $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3 '$(run-program-env)' '$(test-program-prefix-after-env)' \ $(common-objpfx)stdlib/; \ $(evaluate-test) @@ -64,9 +69,10 @@ diff -Nrup a/stdlib/Makefile b/stdlib/Makefile +$(objpfx)tst-getenv-signal: $(shared-thread-library) +$(objpfx)tst-getenv-thread: $(shared-thread-library) +$(objpfx)tst-getenv-unsetenv: $(shared-thread-library) -diff -Nrup a/stdlib/getenv.c b/stdlib/getenv.c ---- a/stdlib/getenv.c 2025-02-26 21:42:43.962148893 -0500 -+++ b/stdlib/getenv.c 2025-02-26 19:53:57.392341787 -0500 +diff --git a/stdlib/getenv.c b/stdlib/getenv.c +index 0cfaf1412a65cca5..07e20cc7f6943224 100644 +--- a/stdlib/getenv.c ++++ b/stdlib/getenv.c @@ -15,24 +15,144 @@ License along with the GNU C Library; if not, see . */ @@ -223,9 +229,10 @@ diff -Nrup a/stdlib/getenv.c b/stdlib/getenv.c + } } libc_hidden_def (getenv) -diff -Nrup a/stdlib/setenv.c b/stdlib/setenv.c ---- a/stdlib/setenv.c 2025-02-26 21:42:43.964148903 -0500 -+++ b/stdlib/setenv.c 2025-02-26 19:53:57.392341787 -0500 +diff --git a/stdlib/setenv.c b/stdlib/setenv.c +index a55a661eaea13af2..e3833bc514870bf4 100644 +--- a/stdlib/setenv.c ++++ b/stdlib/setenv.c @@ -19,6 +19,9 @@ # include #endif @@ -301,7 +308,7 @@ diff -Nrup a/stdlib/setenv.c b/stdlib/setenv.c /* Compute lengths before locking, so that the critical section is less of a performance bottleneck. VALLEN is needed only if COMBINED is null (unfortunately GCC is not smart enough to deduce -@@ -133,45 +162,85 @@ __add_to_environ (const char *name, cons +@@ -133,45 +162,85 @@ __add_to_environ (const char *name, const char *value, const char *combined, LOCK; /* We have to get the pointer now that we have the lock and not earlier @@ -310,11 +317,11 @@ diff -Nrup a/stdlib/setenv.c b/stdlib/setenv.c + since another thread might have created a new environment. */ + char **start_environ = atomic_load_relaxed (&__environ); + char **ep = start_environ; -+ -+ /* This gets written to __environ in the end. */ -+ char **result_environ = start_environ; - size = 0; ++ /* This gets written to __environ in the end. */ ++ char **result_environ = start_environ; ++ + /* Size of the environment if *ep == NULL. */ if (ep != NULL) - { @@ -375,21 +382,20 @@ diff -Nrup a/stdlib/setenv.c b/stdlib/setenv.c + return -1; + } + } - -- if ((uintptr_t)__environ != ip_last_environ) -- memcpy ((char *) new_environ, (char *) __environ, -- size * sizeof (char *)); -- -- new_environ[size] = NULL; -- new_environ[size + 1] = NULL; -- ep = new_environ + size; ++ + /* Copy over the __environ array contents. This forward + copy slides backwards part of the array if __environ + points into target_array->array. This happens if an + application makes an assignment like: -+ + +- if ((uintptr_t)__environ != ip_last_environ) +- memcpy ((char *) new_environ, (char *) __environ, +- size * sizeof (char *)); + environ = &environ[1]; -+ + +- new_environ[size] = NULL; +- new_environ[size + 1] = NULL; +- ep = new_environ + size; + The forward copy avoids clobbering values that still + needing copying. This code handles the case + start_environ == ep == NULL, too. */ @@ -399,15 +405,15 @@ diff -Nrup a/stdlib/setenv.c b/stdlib/setenv.c + manipulation of the environment, target_array is still + a private copy. */ + target_array->array[i] = atomic_load_relaxed (start_environ + i); -+ + +- last_environ = __environ = new_environ; + /* This is the new place where we should add the element. */ + ep = target_array->array + i; + + /* Add the null terminator in case there was a pointer there + previously. */ + ep[1] = NULL; - -- last_environ = __environ = new_environ; ++ + /* And __environ should be repointed to our array. */ + result_environ = &target_array->array[0]; + } @@ -418,7 +424,7 @@ diff -Nrup a/stdlib/setenv.c b/stdlib/setenv.c { char *np; -@@ -213,7 +282,12 @@ __add_to_environ (const char *name, cons +@@ -213,7 +282,12 @@ __add_to_environ (const char *name, const char *value, const char *combined, #endif } @@ -523,9 +529,11 @@ diff -Nrup a/stdlib/setenv.c b/stdlib/setenv.c /* Now remove the search tree. */ __tdestroy (known_values, free); known_values = NULL; -diff -Nrup a/stdlib/setenv.h b/stdlib/setenv.h ---- a/stdlib/setenv.h 1969-12-31 19:00:00.000000000 -0500 -+++ b/stdlib/setenv.h 2025-02-26 19:53:57.392341787 -0500 +diff --git a/stdlib/setenv.h b/stdlib/setenv.h +new file mode 100644 +index 0000000000000000..036f4274aa29b722 +--- /dev/null ++++ b/stdlib/setenv.h @@ -0,0 +1,73 @@ +/* Common declarations for the setenv/getenv family of functions. + Copyright (C) 2024 Free Software Foundation, Inc. @@ -600,9 +608,10 @@ diff -Nrup a/stdlib/setenv.h b/stdlib/setenv.h + const char *combines, int replace) attribute_hidden; + +#endif /* _SETENV_H */ -diff -Nrup a/stdlib/tst-environ.c b/stdlib/tst-environ.c ---- a/stdlib/tst-environ.c 2021-08-01 21:33:43.000000000 -0400 -+++ b/stdlib/tst-environ.c 2025-02-26 19:53:57.393341792 -0500 +diff --git a/stdlib/tst-environ.c b/stdlib/tst-environ.c +index 223e8de9a227ff90..b5f0ca24202d462d 100644 +--- a/stdlib/tst-environ.c ++++ b/stdlib/tst-environ.c @@ -20,6 +20,7 @@ #include #include @@ -637,9 +646,11 @@ diff -Nrup a/stdlib/tst-environ.c b/stdlib/tst-environ.c /* Now replace the value using putenv. */ if (putenv (putenv_val) != 0) -diff -Nrup a/stdlib/tst-getenv-signal.c b/stdlib/tst-getenv-signal.c ---- a/stdlib/tst-getenv-signal.c 1969-12-31 19:00:00.000000000 -0500 -+++ b/stdlib/tst-getenv-signal.c 2025-02-26 19:53:57.393341792 -0500 +diff --git a/stdlib/tst-getenv-signal.c b/stdlib/tst-getenv-signal.c +new file mode 100644 +index 0000000000000000..86bb03ff2dbbac08 +--- /dev/null ++++ b/stdlib/tst-getenv-signal.c @@ -0,0 +1,94 @@ +/* Test getenv from a signal handler interrupting environment updates. + Copyright (C) 2024 Free Software Foundation, Inc. @@ -735,9 +746,11 @@ diff -Nrup a/stdlib/tst-getenv-signal.c b/stdlib/tst-getenv-signal.c +} + +#include -diff -Nrup a/stdlib/tst-getenv-thread.c b/stdlib/tst-getenv-thread.c ---- a/stdlib/tst-getenv-thread.c 1969-12-31 19:00:00.000000000 -0500 -+++ b/stdlib/tst-getenv-thread.c 2025-02-26 19:53:57.393341792 -0500 +diff --git a/stdlib/tst-getenv-thread.c b/stdlib/tst-getenv-thread.c +new file mode 100644 +index 0000000000000000..2668ae1d9f23ef6f +--- /dev/null ++++ b/stdlib/tst-getenv-thread.c @@ -0,0 +1,62 @@ +/* Test getenv with concurrent setenv. + Copyright (C) 2024 Free Software Foundation, Inc. @@ -801,9 +814,11 @@ diff -Nrup a/stdlib/tst-getenv-thread.c b/stdlib/tst-getenv-thread.c +} + +#include -diff -Nrup a/stdlib/tst-getenv-unsetenv.c b/stdlib/tst-getenv-unsetenv.c ---- a/stdlib/tst-getenv-unsetenv.c 1969-12-31 19:00:00.000000000 -0500 -+++ b/stdlib/tst-getenv-unsetenv.c 2025-02-26 19:53:57.393341792 -0500 +diff --git a/stdlib/tst-getenv-unsetenv.c b/stdlib/tst-getenv-unsetenv.c +new file mode 100644 +index 0000000000000000..4d42b5fd698b81c6 +--- /dev/null ++++ b/stdlib/tst-getenv-unsetenv.c @@ -0,0 +1,75 @@ +/* Test getenv with concurrent unsetenv. + Copyright (C) 2024 Free Software Foundation, Inc. diff --git a/SOURCES/glibc-RHEL-68850-1.patch b/SOURCES/glibc-RHEL-68850-1.patch new file mode 100644 index 0000000..adcdece --- /dev/null +++ b/SOURCES/glibc-RHEL-68850-1.patch @@ -0,0 +1,76 @@ +commit 4b7cfcc3fbfab55a1bbb32a2da69c048060739d6 +Author: Florian Weimer +Date: Mon Nov 25 17:32:54 2024 +0100 + + debug: Wire up tst-longjmp_chk3 + + The test was added in commit ac8cc9e300a002228eb7e660df3e7b333d9a7414 + without all the required Makefile scaffolding. Tweak the test + so that it actually builds (including with dynamic SIGSTKSZ). + + Reviewed-by: Adhemerval Zanella + +Conflicts: + debug/Makefile (fixup context) + +diff --git a/debug/Makefile b/debug/Makefile +index 9fbc40dc69b477ca..ddae3817aef9afad 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -192,13 +192,14 @@ tests = backtrace-tst \ + test-strcpy_chk \ + test-stpcpy_chk \ + tst-longjmp_chk2 \ ++ tst-longjmp_chk3 \ + tst-backtrace2 \ + tst-backtrace3 \ + tst-backtrace4 \ + tst-backtrace5 \ + tst-backtrace6 \ + tst-realpath-chk \ +- $(tests-all-chk) ++ $(tests-all-chk) \ + + ifeq ($(have-ssp),yes) + tests += tst-ssp-1 +diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c +index 4434937c597dbe10..dfdecca9ef8a1cf6 100644 +--- a/debug/tst-longjmp_chk3.c ++++ b/debug/tst-longjmp_chk3.c +@@ -18,9 +18,12 @@ + + #include + #include ++#include + #include + +-static char buf[SIGSTKSZ * 4]; ++#include ++ ++static char *buf; + static jmp_buf jb; + + static void +@@ -49,8 +52,10 @@ do_test (void) + set_fortify_handler (handler); + + /* Create a valid signal stack and enable it. */ ++ size_t bufsize = SIGSTKSZ * 4; ++ buf = xmalloc (bufsize); + ss.ss_sp = buf; +- ss.ss_size = sizeof (buf); ++ ss.ss_size = bufsize; + ss.ss_flags = 0; + if (sigaltstack (&ss, NULL) < 0) + { +@@ -65,8 +70,8 @@ do_test (void) + + /* Shrink the signal stack so the jmpbuf is now invalid. + We adjust the start & end to handle stacks that grow up & down. */ +- ss.ss_sp = buf + sizeof (buf) / 2; +- ss.ss_size = sizeof (buf) / 4; ++ ss.ss_sp = buf + bufsize / 2; ++ ss.ss_size = bufsize / 4; + if (sigaltstack (&ss, NULL) < 0) + { + printf ("second sigaltstack failed: %m\n"); diff --git a/SOURCES/glibc-RHEL-68850-2.patch b/SOURCES/glibc-RHEL-68850-2.patch new file mode 100644 index 0000000..f6e4789 --- /dev/null +++ b/SOURCES/glibc-RHEL-68850-2.patch @@ -0,0 +1,20 @@ +commit 4836a9af89f1b4d482e6c72ff67e36226d36434c +Author: Florian Weimer +Date: Tue Nov 26 19:26:13 2024 +0100 + + debug: Fix tst-longjmp_chk3 build failure on Hurd + + Explicitly include for _exit and getpid. + +diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c +index dfdecca9ef8a1cf6..254cd671902ca9a0 100644 +--- a/debug/tst-longjmp_chk3.c ++++ b/debug/tst-longjmp_chk3.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + #include + diff --git a/SOURCES/glibc-RHEL-68857.patch b/SOURCES/glibc-RHEL-68857.patch new file mode 100644 index 0000000..c453aa4 --- /dev/null +++ b/SOURCES/glibc-RHEL-68857.patch @@ -0,0 +1,164 @@ +commit b371ed272695919a332d30bd2754a82e5e683178 +Author: Joseph Myers +Date: Mon Oct 21 20:56:48 2024 +0000 + + Check time arguments to pthread_timedjoin_np and pthread_clockjoin_np + + The pthread_timedjoin_np and pthread_clockjoin_np functions do not + check that a valid time has been specified. The documentation for + these functions in the glibc manual isn't sufficiently detailed to say + if they should, but consistency with POSIX functions such as + pthread_mutex_timedlock and pthread_cond_timedwait strongly indicates + that an EINVAL error is appropriate (even if there might be some + ambiguity about exactly where such a check should go in relation to + other checks for whether the thread exists, whether it's immediately + joinable, etc.). Copy the logic for such a check used in + pthread_rwlock_common.c. + + pthread_join_common had some logic calling valid_nanoseconds before + commit 9e92278ffad441daf588ff1ff5bd8094aa33fbfd, "nptl: Remove + clockwait_tid"; I haven't checked exactly what cases that detected. + + Tested for x86_64 and x86. + + +Conflicts: + sysdeps/pthread/Makefile (renamed test) + +diff --git a/nptl/pthread_join_common.c b/nptl/pthread_join_common.c +index 617056ef10671607..d71b5ee2d7c7cda0 100644 +--- a/nptl/pthread_join_common.c ++++ b/nptl/pthread_join_common.c +@@ -49,6 +49,12 @@ __pthread_clockjoin_ex (pthread_t threadid, void **thread_return, + /* We cannot wait for the thread. */ + return EINVAL; + ++ /* Make sure the clock and time specified are valid. */ ++ if (abstime ++ && __glibc_unlikely (!futex_abstimed_supported_clockid (clockid) ++ || ! valid_nanoseconds (abstime->tv_nsec))) ++ return EINVAL; ++ + struct pthread *self = THREAD_SELF; + int result = 0; + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 5a1b26fa3c0e6061..2d4cb1ac62d15f4c 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -129,6 +129,7 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ + tst-cancel30 \ + tst-spin5 \ + tst-sem19 \ ++ tst-join16 \ + # tests + + tests-time64 := \ +@@ -136,6 +137,7 @@ tests-time64 := \ + tst-cnd-timedwait-time64 \ + tst-cond11-time64 \ + tst-join14-time64 \ ++ tst-join16-time64 \ + tst-mtx-timedlock-time64 \ + tst-rwlock14-time64 \ + tst-sem5-time64 \ +diff --git a/sysdeps/pthread/tst-join16-time64.c b/sysdeps/pthread/tst-join16-time64.c +new file mode 100644 +index 0000000000000000..730cc5656308c30c +--- /dev/null ++++ b/sysdeps/pthread/tst-join16-time64.c +@@ -0,0 +1 @@ ++#include "tst-join16.c" +diff --git a/sysdeps/pthread/tst-join16.c b/sysdeps/pthread/tst-join16.c +new file mode 100644 +index 0000000000000000..8bf37b5e42fc46f6 +--- /dev/null ++++ b/sysdeps/pthread/tst-join16.c +@@ -0,0 +1,87 @@ ++/* Test pthread_timedjoin_np and pthread_clockjoin_np with an invalid timeout. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++#define CLOCK_USE_TIMEDJOIN (-1) ++ ++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; ++ ++static void * ++tf (void *arg) ++{ ++ xpthread_mutex_lock (&lock); ++ xpthread_mutex_unlock (&lock); ++ return (void *) 42l; ++} ++ ++static int ++do_test_clock (clockid_t clockid) ++{ ++ const clockid_t clockid_for_get = ++ (clockid == CLOCK_USE_TIMEDJOIN) ? CLOCK_REALTIME : clockid; ++ ++ xpthread_mutex_lock (&lock); ++ pthread_t th = xpthread_create (NULL, tf, NULL); ++ ++ void *status; ++ int ret; ++ struct timespec timeout = xclock_now (clockid_for_get); ++ timeout.tv_sec += 2; ++ timeout.tv_nsec = -1; ++ if (clockid == CLOCK_USE_TIMEDJOIN) ++ ret = pthread_timedjoin_np (th, &status, &timeout); ++ else ++ ret = pthread_clockjoin_np (th, &status, clockid, &timeout); ++ TEST_COMPARE (ret, EINVAL); ++ timeout.tv_nsec = 1000000000; ++ if (clockid == CLOCK_USE_TIMEDJOIN) ++ ret = pthread_timedjoin_np (th, &status, &timeout); ++ else ++ ret = pthread_clockjoin_np (th, &status, clockid, &timeout); ++ TEST_COMPARE (ret, EINVAL); ++ xpthread_mutex_unlock (&lock); ++ timeout.tv_nsec = 0; ++ ret = pthread_join (th, &status); ++ TEST_COMPARE (ret, 0); ++ if (status != (void *) 42l) ++ FAIL_EXIT1 ("return value %p, expected %p\n", status, (void *) 42l); ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ puts ("testing pthread_timedjoin_np"); ++ do_test_clock (CLOCK_USE_TIMEDJOIN); ++ puts ("testing CLOCK_REALTIME"); ++ do_test_clock (CLOCK_REALTIME); ++ puts ("testing CLOCK_MONOTONIC"); ++ do_test_clock (CLOCK_MONOTONIC); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-69028.patch b/SOURCES/glibc-RHEL-69028.patch new file mode 100644 index 0000000..802b4f9 --- /dev/null +++ b/SOURCES/glibc-RHEL-69028.patch @@ -0,0 +1,223 @@ +commit 99671e72bb27a3cb98860bdc4c0e25961ce96b3e +Author: Joseph Myers +Date: Fri Nov 22 16:58:51 2024 +0000 + + Add multithreaded test of sem_getvalue + + Test coverage of sem_getvalue is fairly limited. Add a test that runs + it on threads on each CPU. For this purpose I adapted + tst-skeleton-thread-affinity.c; it didn't seem very suitable to use + as-is or include directly in a different test doing things per-CPU, + but did seem a suitable starting point (thus sharing + tst-skeleton-affinity.c) for such testing. + + Tested for x86_64. + +Conflicts: + sysdeps/unix/sysv/linux/Makefile (new test added) + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 9b7e214219943531..617f7718b2a5779d 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -382,7 +382,8 @@ CFLAGS-gai.c += -DNEED_NETLINK + endif + + ifeq ($(subdir),nptl) +-tests += tst-align-clone tst-getpid1 ++tests += tst-align-clone tst-getpid1 \ ++ tst-sem_getvalue-affinity \ + + # tst-rseq-nptl is an internal test because it requires a definition of + # __NR_rseq from the internal system call list. +diff --git a/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c +new file mode 100644 +index 0000000000000000..4176f67533357909 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c +@@ -0,0 +1,185 @@ ++/* Test sem_getvalue across CPUs. Based on tst-skeleton-thread-affinity.c. ++ Copyright (C) 2015-2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct conf; ++static bool early_test (struct conf *); ++ ++static int ++setaffinity (size_t size, const cpu_set_t *set) ++{ ++ int ret = pthread_setaffinity_np (pthread_self (), size, set); ++ if (ret != 0) ++ { ++ errno = ret; ++ return -1; ++ } ++ return 0; ++} ++ ++static int ++getaffinity (size_t size, cpu_set_t *set) ++{ ++ int ret = pthread_getaffinity_np (pthread_self (), size, set); ++ if (ret != 0) ++ { ++ errno = ret; ++ return -1; ++ } ++ return 0; ++} ++ ++#include "tst-skeleton-affinity.c" ++ ++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; ++static sem_t sem; ++ ++static void * ++tf (void *arg) ++{ ++ void *ret = NULL; ++ xpthread_mutex_lock (&lock); ++ int semval; ++ if (sem_getvalue (&sem, &semval) != 0) ++ { ++ printf ("sem_getvalue failed: %m\n"); ++ ret = (void *) 1; ++ } ++ else if (semval != 12345) ++ { ++ printf ("sem_getvalue returned %d not 12345\n", semval); ++ ret = (void *) 1; ++ } ++ xpthread_mutex_unlock (&lock); ++ return ret; ++} ++ ++static int ++stop_and_join_threads (struct conf *conf, cpu_set_t *set, ++ pthread_t *pinned_first, pthread_t *pinned_last) ++{ ++ int failed = 0; ++ for (pthread_t *p = pinned_first; p < pinned_last; ++p) ++ { ++ int cpu = p - pinned_first; ++ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), set)) ++ continue; ++ ++ void *retval = (void *) 1; ++ int ret = pthread_join (*p, &retval); ++ if (ret != 0) ++ { ++ printf ("error: Failed to join thread %d: %s\n", cpu, strerror (ret)); ++ fflush (stdout); ++ /* Cannot shut down cleanly with threads still running. */ ++ abort (); ++ } ++ if (retval != NULL) ++ failed = 1; ++ } ++ return failed; ++} ++ ++static bool ++early_test (struct conf *conf) ++{ ++ int ret; ++ ret = sem_init (&sem, 0, 12345); ++ if (ret != 0) ++ { ++ printf ("error: sem_init failed: %m\n"); ++ return false; ++ } ++ xpthread_mutex_lock (&lock); ++ pthread_t *pinned_threads ++ = calloc (conf->last_cpu + 1, sizeof (*pinned_threads)); ++ cpu_set_t *initial_set = CPU_ALLOC (conf->set_size); ++ cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size); ++ ++ if (pinned_threads == NULL || initial_set == NULL || scratch_set == NULL) ++ { ++ puts ("error: Memory allocation failure"); ++ return false; ++ } ++ if (getaffinity (CPU_ALLOC_SIZE (conf->set_size), initial_set) < 0) ++ { ++ printf ("error: pthread_getaffinity_np failed: %m\n"); ++ return false; ++ } ++ ++ pthread_attr_t attr; ++ ret = pthread_attr_init (&attr); ++ if (ret != 0) ++ { ++ printf ("error: pthread_attr_init failed: %s\n", strerror (ret)); ++ return false; ++ } ++ support_set_small_thread_stack_size (&attr); ++ ++ /* Spawn a thread pinned to each available CPU. */ ++ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu) ++ { ++ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set)) ++ continue; ++ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set); ++ CPU_SET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), scratch_set); ++ ret = pthread_attr_setaffinity_np ++ (&attr, CPU_ALLOC_SIZE (conf->set_size), scratch_set); ++ if (ret != 0) ++ { ++ printf ("error: pthread_attr_setaffinity_np for CPU %d failed: %s\n", ++ cpu, strerror (ret)); ++ stop_and_join_threads (conf, initial_set, ++ pinned_threads, pinned_threads + cpu); ++ return false; ++ } ++ ret = pthread_create (pinned_threads + cpu, &attr, ++ tf, (void *) (uintptr_t) cpu); ++ if (ret != 0) ++ { ++ printf ("error: pthread_create for CPU %d failed: %s\n", ++ cpu, strerror (ret)); ++ stop_and_join_threads (conf, initial_set, ++ pinned_threads, pinned_threads + cpu); ++ return false; ++ } ++ } ++ ++ /* Main thread. */ ++ xpthread_mutex_unlock (&lock); ++ int failed = stop_and_join_threads (conf, initial_set, ++ pinned_threads, ++ pinned_threads + conf->last_cpu + 1); ++ ++ printf ("info: Main thread ran on %d CPU(s) of %d available CPU(s)\n", ++ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set), ++ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), initial_set)); ++ ++ pthread_attr_destroy (&attr); ++ CPU_FREE (scratch_set); ++ CPU_FREE (initial_set); ++ free (pinned_threads); ++ return failed == 0; ++} diff --git a/SOURCES/glibc-RHEL-69633-1.patch b/SOURCES/glibc-RHEL-69633-1.patch new file mode 100644 index 0000000..bfe625f --- /dev/null +++ b/SOURCES/glibc-RHEL-69633-1.patch @@ -0,0 +1,87 @@ +commit f745d78e2628cd5b13ca119ae0c0e21d08ad1906 +Author: Joseph Myers +Date: Fri Nov 8 01:53:48 2024 +0000 + + Avoid uninitialized result in sem_open when file does not exist + + A static analyzer apparently reported an uninitialized use of the + variable result in sem_open in the case where the file is required to + exist but does not exist. + + The report appears to be correct; set result to SEM_FAILED in that + case, and add a test for it. + + Note: the test passes for me even without the sem_open fix, I guess + because result happens to get value SEM_FAILED (i.e. 0) when + uninitialized. + + Tested for x86_64. + +Conflicts: + sysdeps/pthread/Makefile (new test added) + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 2d4cb1ac62d15f4c..de8b66bc3b6bf6ad 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -128,6 +128,7 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ + tst-pthread_kill-exiting \ + tst-cancel30 \ + tst-spin5 \ ++ tst-sem17 \ + tst-sem19 \ + tst-join16 \ + # tests +diff --git a/sysdeps/pthread/sem_open.c b/sysdeps/pthread/sem_open.c +index 770ab17cdbb47b83..124d95dce4186ae7 100644 +--- a/sysdeps/pthread/sem_open.c ++++ b/sysdeps/pthread/sem_open.c +@@ -75,6 +75,7 @@ __sem_open (const char *name, int oflag, ...) + goto try_create; + + /* Return. errno is already set. */ ++ result = SEM_FAILED; + } + else + /* Check whether we already have this semaphore mapped and +diff --git a/sysdeps/pthread/tst-sem17.c b/sysdeps/pthread/tst-sem17.c +new file mode 100644 +index 0000000000000000..c3f05d196f4ef17a +--- /dev/null ++++ b/sysdeps/pthread/tst-sem17.c +@@ -0,0 +1,35 @@ ++/* Test sem_open with missing file. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++#include ++ ++int ++do_test (void) ++{ ++ sem_unlink ("/glibc-tst-sem17"); ++ errno = 0; ++ sem_t *s = sem_open ("/glibc-tst-sem17", 0); ++ TEST_VERIFY (s == SEM_FAILED); ++ TEST_COMPARE (errno, ENOENT); ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-69633-2.patch b/SOURCES/glibc-RHEL-69633-2.patch new file mode 100644 index 0000000..9bc9060 --- /dev/null +++ b/SOURCES/glibc-RHEL-69633-2.patch @@ -0,0 +1,45 @@ +commit c7dcf594f4c52fa7e2cc76918c8aa9abb98e9625 +Author: Joseph Myers +Date: Fri Nov 8 17:08:09 2024 +0000 + + Rename new tst-sem17 test to tst-sem18 + + As noted by Adhemerval, we already have a tst-sem17 in nptl. + + Tested for x86_64. + +Conflicts: + sysdeps/pthread/Makefile (renamed test) + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index de8b66bc3b6bf6ad..43fcdf1182e735e1 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -128,7 +128,7 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \ + tst-pthread_kill-exiting \ + tst-cancel30 \ + tst-spin5 \ +- tst-sem17 \ ++ tst-sem18 \ + tst-sem19 \ + tst-join16 \ + # tests +diff --git a/sysdeps/pthread/tst-sem17.c b/sysdeps/pthread/tst-sem18.c +similarity index 92% +rename from sysdeps/pthread/tst-sem17.c +rename to sysdeps/pthread/tst-sem18.c +index c3f05d196f4ef17a..1be207bcbeeb56f1 100644 +--- a/sysdeps/pthread/tst-sem17.c ++++ b/sysdeps/pthread/tst-sem18.c +@@ -24,9 +24,9 @@ + int + do_test (void) + { +- sem_unlink ("/glibc-tst-sem17"); ++ sem_unlink ("/glibc-tst-sem18"); + errno = 0; +- sem_t *s = sem_open ("/glibc-tst-sem17", 0); ++ sem_t *s = sem_open ("/glibc-tst-sem18", 0); + TEST_VERIFY (s == SEM_FAILED); + TEST_COMPARE (errno, ENOENT); + return 0; diff --git a/SOURCES/glibc-RHEL-70395-1.patch b/SOURCES/glibc-RHEL-70395-1.patch new file mode 100644 index 0000000..27c145a --- /dev/null +++ b/SOURCES/glibc-RHEL-70395-1.patch @@ -0,0 +1,85 @@ +commit 03b8d764109be48a53b18abd4b5050e8cdc2c6da +Author: Siddhesh Poyarekar +Date: Thu Nov 21 17:13:33 2024 -0500 + + nptl: Add smoke test for pthread_getcpuclockid failure + + Exercise the case where an exited thread will cause + pthread_getcpuclockid to fail. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Florian Weimer + +Conflicts: + nptl/Makefile (new test added) + +diff --git a/nptl/Makefile b/nptl/Makefile +index 9a56d34313d06444..f89bb07747cf5522 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -306,7 +306,8 @@ tests = tst-attr2 tst-attr3 tst-default-attr \ + tst-pthread-gdb-attach tst-pthread-gdb-attach-static \ + tst-pthread_exit-nothreads \ + tst-pthread_exit-nothreads-static \ +- tst-thread-setspecific ++ tst-thread-setspecific \ ++ tst-pthread-getcpuclockid-invalid \ + + tests-nolibpthread = \ + tst-pthread_exit-nothreads \ +diff --git a/nptl/tst-pthread-getcpuclockid-invalid.c b/nptl/tst-pthread-getcpuclockid-invalid.c +new file mode 100644 +index 0000000000000000..e88a56342767a83e +--- /dev/null ++++ b/nptl/tst-pthread-getcpuclockid-invalid.c +@@ -0,0 +1,50 @@ ++/* Smoke test to verify that pthread_getcpuclockid fails with ESRCH when the ++ thread in question has exited. ++ Copyright the GNU Toolchain Authors. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++void * ++thr (void *in) ++{ ++ return in; ++} ++ ++int ++do_test (void) ++{ ++ clockid_t c; ++ pthread_t t = xpthread_create (NULL, thr, NULL); ++ ++ int ret = 0; ++ while ((ret = pthread_getcpuclockid (t, &c)) == 0) ++ sched_yield (); ++ ++ TEST_COMPARE (ret, ESRCH); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-70395-2.patch b/SOURCES/glibc-RHEL-70395-2.patch new file mode 100644 index 0000000..49bee5c --- /dev/null +++ b/SOURCES/glibc-RHEL-70395-2.patch @@ -0,0 +1,51 @@ +commit 19a198f05802fcc05441c364ed75311ef3f6d663 +Author: Siddhesh Poyarekar +Date: Thu Nov 28 06:30:40 2024 -0500 + + pthread_getcpuclockid: Add descriptive comment to smoke test + + Add a descriptive comment to the tst-pthread-cpuclockid-invalid test and + also drop pthread_getcpuclockid from the TODO-testing list since it now + has full coverage. + + Signed-off-by: Siddhesh Poyarekar + +diff --git a/nptl/TODO-testing b/nptl/TODO-testing +index e076e5624f1cfbaa..f50d2ceb51b247c3 100644 +--- a/nptl/TODO-testing ++++ b/nptl/TODO-testing +@@ -10,10 +10,6 @@ pthread_attr_[sg]etstack + + some more tests needed + +-pthread_getcpuclockid +- +- check that value is reset -> rt subdir +- + pthread_getschedparam + pthread_setschedparam + +diff --git a/nptl/tst-pthread-getcpuclockid-invalid.c b/nptl/tst-pthread-getcpuclockid-invalid.c +index e88a56342767a83e..7ac46acad8fe0fd7 100644 +--- a/nptl/tst-pthread-getcpuclockid-invalid.c ++++ b/nptl/tst-pthread-getcpuclockid-invalid.c +@@ -1,5 +1,4 @@ +-/* Smoke test to verify that pthread_getcpuclockid fails with ESRCH when the +- thread in question has exited. ++/* pthread_getcpuclockid should fail with ESRCH when the thread exits. + Copyright the GNU Toolchain Authors. + This file is part of the GNU C Library. + +@@ -17,6 +16,12 @@ + License along with the GNU C Library; if not, see + . */ + ++/* The input thread descriptor to pthread_getcpuclockid needs to be valid when ++ the function is called. For the purposes of this test, this means that the ++ thread should not be detached, have exited, but not joined. This should be ++ good enough to complete coverage for pthread_getcpuclockid alongside ++ tst-clock2. */ ++ + #include + #include + #include diff --git a/SOURCES/glibc-RHEL-71547.patch b/SOURCES/glibc-RHEL-71547.patch new file mode 100644 index 0000000..a279913 --- /dev/null +++ b/SOURCES/glibc-RHEL-71547.patch @@ -0,0 +1,108 @@ +commit 9a4b0eaf726f5404c6683d5c7c5e86f61c3f3fbc +Author: Aurelien Jarno +Date: Sat Dec 14 11:44:11 2024 +0100 + + iconv: do not report error exit with transliteration [BZ #32448] + + Commit 6cbf845fcdc7 ("iconv: Preserve iconv -c error exit on invalid + inputs (bug 32046)") changed the error exit code to report an error when + an input character has been transliterated. This looks like a bug as the + moto in the iconv program is to report an error code in the same + condition as the iconv() function. + + This happens because the STANDARD_TO_LOOP_ERR_HANDLER macro sets a + default value for result and later updates it if the transliteration + succeed. With the changes, setting the default value also marks the + input as illegal. + + Fix that by setting up the default value of result only when the + transliteration is not used. This works because __gconv_transliterate() + calls __gconv_mark_illegal_input() to return an error. At the same time + also fix the typo outself -> ourselves. + + Fixes: 6cbf845fcdc7 + Resolves: BZ #32448 + Signed-off-by: Aurelien Jarno + +diff --git a/iconv/loop.c b/iconv/loop.c +index 4df48342105d9ddc..7193e8f20104bf84 100644 +--- a/iconv/loop.c ++++ b/iconv/loop.c +@@ -212,12 +212,13 @@ + points. */ + #define STANDARD_TO_LOOP_ERR_HANDLER(Incr) \ + { \ +- result = __gconv_mark_illegal_input (step_data); \ +- \ + if (irreversible == NULL) \ +- /* This means we are in call from __gconv_transliterate. In this \ +- case we are not doing any error recovery outself. */ \ +- break; \ ++ { \ ++ /* This means we are in call from __gconv_transliterate. In this \ ++ case we are not doing any error recovery ourselves. */ \ ++ result = __gconv_mark_illegal_input (step_data); \ ++ break; \ ++ } \ + \ + /* If needed, flush any conversion state, so that __gconv_transliterate \ + starts with current shift state. */ \ +@@ -228,6 +229,8 @@ + result = __gconv_transliterate \ + (step, step_data, *inptrp, \ + &inptr, inend, &outptr, irreversible); \ ++ else \ ++ result = __gconv_mark_illegal_input (step_data); \ + \ + REINIT_PARAMS; \ + \ +diff --git a/iconv/tst-iconv_prog.sh b/iconv/tst-iconv_prog.sh +index 14b7c08c9152be1b..932f4a3e204a0e23 100644 +--- a/iconv/tst-iconv_prog.sh ++++ b/iconv/tst-iconv_prog.sh +@@ -209,12 +209,13 @@ hangarray=( + "\x00\x81;-c;WIN-SAMI-2;UTF-8//TRANSLIT//IGNORE" + ) + +-# List of option combinations that *should* lead to an error +-errorarray=( ++# List of option combinations with their expected return code ++testarray=( + # Converting from/to invalid character sets should cause error +-"\x00\x00;;INVALID;INVALID" +-"\x00\x00;;INVALID;UTF-8" +-"\x00\x00;;UTF-8;INVALID" ++"\x00\x00;;INVALID;INVALID;1" ++"\x00\x00;;INVALID;UTF-8;1" ++"\x00\x00;;UTF-8;INVALID;1" ++"\xc3\xa9;;UTF-8;ASCII//TRANSLIT;0" + ) + + # Requires $twobyte input, $c flag, $from, and $to to be set; sets $ret +@@ -261,7 +262,7 @@ done + + check_errtest_result () + { +- if [ "$ret" -eq "1" ]; then # we errored out as expected ++ if [ "$ret" -eq "$eret" ]; then # we got the expected return code + result="PASS" + else + result="FAIL" +@@ -274,11 +275,12 @@ check_errtest_result () + fi + } + +-for errorcommand in "${errorarray[@]}"; do +- twobyte="$(echo "$errorcommand" | cut -d";" -f 1)" +- c="$(echo "$errorcommand" | cut -d";" -f 2)" +- from="$(echo "$errorcommand" | cut -d";" -f 3)" +- to="$(echo "$errorcommand" | cut -d";" -f 4)" ++for testcommand in "${testarray[@]}"; do ++ twobyte="$(echo "$testcommand" | cut -d";" -f 1)" ++ c="$(echo "$testcommand" | cut -d";" -f 2)" ++ from="$(echo "$testcommand" | cut -d";" -f 3)" ++ to="$(echo "$testcommand" | cut -d";" -f 4)" ++ eret="$(echo "$testcommand" | cut -d";" -f 5)" + execute_test + check_errtest_result + done diff --git a/SOURCES/glibc-RHEL-75810-2.patch b/SOURCES/glibc-RHEL-75810-2.patch new file mode 100644 index 0000000..00ab284 --- /dev/null +++ b/SOURCES/glibc-RHEL-75810-2.patch @@ -0,0 +1,236 @@ +commit 36fcdfbbc5463e55581fec67141df3493fb81f7e +Author: Florian Weimer +Date: Fri Jan 24 08:04:23 2025 +0100 + + Revert "stdlib: Support malloc-managed environ arrays for compatibility" + + This reverts commit b62759db04b8ed7f829c06f1d7c3b8fb70616493. + + Reason for revert: Incompatible with “env -i” and coreutils (bug 32588). + + Reviewed-by: H.J. Lu + +Conflicts: + stdlib/Makefile + (different test list) + +diff --git a/csu/init-first.c b/csu/init-first.c +index b1ee92332f478429..316fed22706b1870 100644 +--- a/csu/init-first.c ++++ b/csu/init-first.c +@@ -61,7 +61,6 @@ _init_first (int argc, char **argv, char **envp) + __libc_argc = argc; + __libc_argv = argv; + __environ = envp; +- __environ_startup = envp; + + #ifndef SHARED + /* First the initialization which normally would be done by the +diff --git a/csu/libc-start.c b/csu/libc-start.c +index 4f1801c4af35a012..a2fc2f6f9665a48f 100644 +--- a/csu/libc-start.c ++++ b/csu/libc-start.c +@@ -244,7 +244,6 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), + char **ev = &argv[argc + 1]; + + __environ = ev; +- __environ_startup = ev; + + /* Store the lowest stack address. This is done in ld.so if this is + the code for the DSO. */ +diff --git a/include/unistd.h b/include/unistd.h +index 781dbabde0aad494..5824485629793ccb 100644 +--- a/include/unistd.h ++++ b/include/unistd.h +@@ -182,9 +182,6 @@ libc_hidden_proto (__sbrk) + extern int __libc_enable_secure attribute_relro; + rtld_hidden_proto (__libc_enable_secure) + +-/* Original value of __environ. Initialized by _init_first (dynamic) +- or __libc_start_main (static). */ +-extern char **__environ_startup attribute_hidden; + + /* Various internal function. */ + extern void __libc_check_standard_fds (void) attribute_hidden; +diff --git a/posix/environ.c b/posix/environ.c +index 2430b47d8eee148c..a0ed0d80eab207f8 100644 +--- a/posix/environ.c ++++ b/posix/environ.c +@@ -10,5 +10,3 @@ weak_alias (__environ, environ) + /* The SVR4 ABI says `_environ' will be the name to use + in case the user overrides the weak alias `environ'. */ + weak_alias (__environ, _environ) +- +-char **__environ_startup; +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 3f98e55763c75758..4cbf47d215353681 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -126,7 +126,6 @@ tests := \ + tst-setcontext7 \ + tst-setcontext8 \ + tst-setcontext9 \ +- tst-setenv-malloc \ + tst-strfmon_l \ + tst-strfrom \ + tst-strfrom-locale \ +diff --git a/stdlib/setenv.c b/stdlib/setenv.c +index e02114103fc5957c..e3833bc514870bf4 100644 +--- a/stdlib/setenv.c ++++ b/stdlib/setenv.c +@@ -191,52 +191,52 @@ __add_to_environ (const char *name, const char *value, const char *combined, + ep[1] = NULL; + else + { +- /* We cannot use __environ as is and need a larger allocation. */ +- +- if (start_environ == __environ_startup +- || __environ_is_from_array_list (start_environ)) +- { +- /* Allocate a new array, managed in the list. */ +- struct environ_array *target_array +- = __environ_new_array (required_size); +- if (target_array == NULL) +- { +- UNLOCK; +- return -1; +- } +- result_environ = &target_array->array[0]; +- +- /* Copy over the __environ array contents. This code +- handles the case start_environ == ep == NULL, too. */ +- size_t i; +- for (i = 0; start_environ + i < ep; ++i) +- /* Regular store because unless there has been direct +- manipulation of the environment, target_array is still +- a private copy. */ +- result_environ[i] = atomic_load_relaxed (start_environ + i); +- } ++ /* We cannot use __environ as is and need to copy over the ++ __environ contents into an array managed via ++ __environ_array_list. */ ++ ++ struct environ_array *target_array; ++ if (__environ_array_list != NULL ++ && required_size <= __environ_array_list->allocated) ++ /* Existing array has enough room. Contents is copied below. */ ++ target_array = __environ_array_list; + else + { +- /* Otherwise the application installed its own pointer. +- Historically, this pointer was managed using realloc. +- Continue doing so. This disables multi-threading +- support. */ +- result_environ = __libc_reallocarray (start_environ, +- required_size, +- sizeof (*result_environ)); +- if (result_environ == NULL) ++ /* Allocate a new array. */ ++ target_array = __environ_new_array (required_size); ++ if (target_array == NULL) + { + UNLOCK; + return -1; + } + } + ++ /* Copy over the __environ array contents. This forward ++ copy slides backwards part of the array if __environ ++ points into target_array->array. This happens if an ++ application makes an assignment like: ++ ++ environ = &environ[1]; ++ ++ The forward copy avoids clobbering values that still ++ needing copying. This code handles the case ++ start_environ == ep == NULL, too. */ ++ size_t i; ++ for (i = 0; start_environ + i < ep; ++i) ++ /* Regular store because unless there has been direct ++ manipulation of the environment, target_array is still ++ a private copy. */ ++ target_array->array[i] = atomic_load_relaxed (start_environ + i); ++ + /* This is the new place where we should add the element. */ +- ep = result_environ + (required_size - 2); ++ ep = target_array->array + i; + + /* Add the null terminator in case there was a pointer there + previously. */ + ep[1] = NULL; ++ ++ /* And __environ should be repointed to our array. */ ++ result_environ = &target_array->array[0]; + } + } + +diff --git a/stdlib/tst-setenv-malloc.c b/stdlib/tst-setenv-malloc.c +deleted file mode 100644 +index 18a9d36842e67aa5..0000000000000000 +--- a/stdlib/tst-setenv-malloc.c ++++ /dev/null +@@ -1,64 +0,0 @@ +-/* Test using setenv with a malloc-allocated environ variable. +- Copyright (C) 2025 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-/* This test is not in the scope for POSIX or any other standard, but +- some applications assume that environ is a heap-allocated pointer +- after a call to setenv on an empty environment. */ +- +-#include +-#include +-#include +-#include +- +-static const char *original_path; +-static char **save_environ; +- +-static void +-rewrite_environ (void) +-{ +- save_environ = environ; +- environ = xmalloc (sizeof (*environ)); +- *environ = NULL; +- TEST_COMPARE (setenv ("A", "1", 1), 0); +- TEST_COMPARE (setenv ("B", "2", 1), 0); +- TEST_VERIFY (environ != save_environ); +- TEST_COMPARE_STRING (environ[0], "A=1"); +- TEST_COMPARE_STRING (environ[1], "B=2"); +- TEST_COMPARE_STRING (environ[2], NULL); +- TEST_COMPARE_STRING (getenv ("PATH"), NULL); +- free (environ); +- environ = save_environ; +- TEST_COMPARE_STRING (getenv ("PATH"), original_path); +-} +- +-static int +-do_test (void) +-{ +- original_path = getenv ("PATH"); +- rewrite_environ (); +- +- /* Test again after reallocated the environment due to an initial +- setenv call. */ +- TEST_COMPARE (setenv ("TST_SETENV_MALLOC", "1", 1), 0); +- TEST_VERIFY (environ != save_environ); +- rewrite_environ (); +- +- return 0; +-} +- +-#include diff --git a/SOURCES/glibc-RHEL-75810-3.patch b/SOURCES/glibc-RHEL-75810-3.patch new file mode 100644 index 0000000..3fa2f84 --- /dev/null +++ b/SOURCES/glibc-RHEL-75810-3.patch @@ -0,0 +1,299 @@ +commit 12b4a1fc6ecfc278a87159164bdf1d682deb18e2 +Author: Florian Weimer +Date: Fri Jan 24 10:40:28 2025 +0100 + + stdlib: Re-implement free (environ) compatibility kludge for setenv + + For the originally failing application (userhelper from usermode), + it is not actually necessary to call realloc on the environ + pointer. Yes, there will be a memory leak because the application + assigns a heap-allocated pointer to environ that it never frees, + but this leak was always there: the old realloc-based setenv had + a hidden internal variable, last_environ, that was used in a similar + way to __environ_array_list. The application is not impacted by + the leak anyway because the relevant operations do not happen in + a loop. + + The change here just uses a separte heap allocation and points + environ to that. This means that if an application calls + free (environ) and restores the environ pointer to the value + at process start, and does not modify the environment further, + nothing bad happens. + + This change should not invalidate any previous testing that went into + the original getenv thread safety change, commit 7a61e7f557a97ab597d6 + ("stdlib: Make getenv thread-safe in more cases"). + + The new test cases are modeled in part on the env -i use case from + bug 32588 (with !DO_MALLOC && !DO_EARLY_SETENV), and the previous + stdlib/tst-setenv-malloc test. The DO_MALLOC && !DO_EARLY_SETENV + case in the new test should approximate what userhelper from the + usermode package does. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 4cbf47d215353681..4f5de988cee07932 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -97,6 +97,10 @@ tests := \ + tst-concurrent-quick_exit \ + tst-cxa_atexit \ + tst-environ \ ++ tst-environ-change-1 \ ++ tst-environ-change-2 \ ++ tst-environ-change-3 \ ++ tst-environ-change-4 \ + tst-getenv-signal \ + tst-getenv-thread \ + tst-getenv-unsetenv \ +diff --git a/stdlib/setenv.c b/stdlib/setenv.c +index e3833bc514870bf4..035a2a6ce8a95ce6 100644 +--- a/stdlib/setenv.c ++++ b/stdlib/setenv.c +@@ -118,24 +118,21 @@ __environ_new_array (size_t required_size) + else + new_size = __environ_array_list->allocated * 2; + +- size_t new_size_in_bytes; +- if (__builtin_mul_overflow (new_size, sizeof (char *), +- &new_size_in_bytes) +- || __builtin_add_overflow (new_size_in_bytes, +- offsetof (struct environ_array, +- array), +- &new_size_in_bytes)) ++ /* Zero-initialize everything, so that getenv can only ++ observe valid or null pointers. */ ++ char **new_array = calloc (new_size, sizeof (*new_array)); ++ if (new_array == NULL) ++ return NULL; ++ ++ struct environ_array *target_array = malloc (sizeof (*target_array)); ++ if (target_array == NULL) + { +- __set_errno (ENOMEM); ++ free (new_array); + return NULL; + } + +- /* Zero-initialize everything, so that getenv can only +- observe valid or null pointers. */ +- struct environ_array *target_array = calloc (1, new_size_in_bytes); +- if (target_array == NULL) +- return NULL; + target_array->allocated = new_size; ++ target_array->array = new_array; + assert (new_size >= target_array->allocated); + + /* Put it onto the list. */ +@@ -236,7 +233,7 @@ __add_to_environ (const char *name, const char *value, const char *combined, + ep[1] = NULL; + + /* And __environ should be repointed to our array. */ +- result_environ = &target_array->array[0]; ++ result_environ = target_array->array; + } + } + +@@ -402,6 +399,7 @@ libc_freeres_fn (free_mem) + /* Clear all backing arrays. */ + while (__environ_array_list != NULL) + { ++ free (__environ_array_list->array); + void *ptr = __environ_array_list; + __environ_array_list = __environ_array_list->next; + free (ptr); +diff --git a/stdlib/setenv.h b/stdlib/setenv.h +index 036f4274aa29b722..42b86fff1008bc81 100644 +--- a/stdlib/setenv.h ++++ b/stdlib/setenv.h +@@ -29,9 +29,18 @@ + of environment values used before. */ + struct environ_array + { +- struct environ_array *next; /* Previously used environment array. */ ++ /* The actual environment array. Use a separate allocation (and not ++ a flexible array member) so that calls like free (environ) that ++ have been encountered in some applications do not crash ++ immediately. With such a call, if the application restores the ++ original environ pointer at process start and does not modify the ++ environment again, a use-after-free situation only occurs during ++ __libc_freeres, which is only called during memory debugging. ++ With subsequent setenv calls, there is still heap corruption, but ++ that happened with the old realloc-based implementation, too. */ ++ char **array; + size_t allocated; /* Number of allocated array elments. */ +- char *array[]; /* The actual environment array. */ ++ struct environ_array *next; /* Previously used environment array. */ + }; + + /* After initialization, and until the user resets environ (perhaps by +@@ -44,7 +53,7 @@ static inline bool + __environ_is_from_array_list (char **ep) + { + struct environ_array *eal = atomic_load_relaxed (&__environ_array_list); +- return eal != NULL && &eal->array[0] == ep; ++ return eal != NULL && eal->array == ep; + } + + /* Counter for detecting concurrent modification in unsetenv. +diff --git a/stdlib/tst-environ-change-1.c b/stdlib/tst-environ-change-1.c +new file mode 100644 +index 0000000000000000..4241ad4c63ea2e33 +--- /dev/null ++++ b/stdlib/tst-environ-change-1.c +@@ -0,0 +1,3 @@ ++#define DO_EARLY_SETENV 0 ++#define DO_MALLOC 0 ++#include "tst-environ-change-skeleton.c" +diff --git a/stdlib/tst-environ-change-2.c b/stdlib/tst-environ-change-2.c +new file mode 100644 +index 0000000000000000..b20be124902125e8 +--- /dev/null ++++ b/stdlib/tst-environ-change-2.c +@@ -0,0 +1,3 @@ ++#define DO_EARLY_SETENV 0 ++#define DO_MALLOC 1 ++#include "tst-environ-change-skeleton.c" +diff --git a/stdlib/tst-environ-change-3.c b/stdlib/tst-environ-change-3.c +new file mode 100644 +index 0000000000000000..e77996a6cb0ac601 +--- /dev/null ++++ b/stdlib/tst-environ-change-3.c +@@ -0,0 +1,3 @@ ++#define DO_EARLY_SETENV 1 ++#define DO_MALLOC 0 ++#include "tst-environ-change-skeleton.c" +diff --git a/stdlib/tst-environ-change-4.c b/stdlib/tst-environ-change-4.c +new file mode 100644 +index 0000000000000000..633ef7bda84eb2a8 +--- /dev/null ++++ b/stdlib/tst-environ-change-4.c +@@ -0,0 +1,3 @@ ++#define DO_EARLY_SETENV 1 ++#define DO_MALLOC 1 ++#include "tst-environ-change-skeleton.c" +diff --git a/stdlib/tst-environ-change-skeleton.c b/stdlib/tst-environ-change-skeleton.c +new file mode 100644 +index 0000000000000000..c9b02844369207d9 +--- /dev/null ++++ b/stdlib/tst-environ-change-skeleton.c +@@ -0,0 +1,118 @@ ++/* Test deallocation of the environ pointer. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test is not in the scope for POSIX or any other standard, but ++ some applications assume that environ is a heap-allocated pointer ++ after a call to setenv on an empty environment. They also try to ++ save and restore environ in an attempt to undo a temporary ++ modification of the environment array, but this does not work if ++ setenv was called before. ++ ++ Before including this file, these macros need to be defined ++ to 0 or 1: ++ ++ DO_EARLY_SETENV If 1, perform a setenv call before changing environ. ++ DO_MALLOC If 1, use a heap pointer for the empty environment. ++ ++ Note that this test will produce errors under valgrind and other ++ memory tracers that call __libc_freeres because free (environ) ++ deallocates a pointer still used internally. */ ++ ++#include ++#include ++#include ++#include ++ ++static void ++check_rewritten (void) ++{ ++ TEST_COMPARE_STRING (environ[0], "tst_environ_change_a=1"); ++ TEST_COMPARE_STRING (environ[1], "tst_environ_change_b=2"); ++ TEST_COMPARE_STRING (environ[2], NULL); ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_a"), "1"); ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_b"), "2"); ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_early"), NULL); ++ TEST_COMPARE_STRING (getenv ("PATH"), NULL); ++} ++ ++static int ++do_test (void) ++{ ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_a"), NULL); ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_b"), NULL); ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_early_setenv"), NULL); ++#if DO_EARLY_SETENV ++ TEST_COMPARE (setenv ("tst_environ_change_early_setenv", "1", 1), 0); ++#else ++ /* Must come back after environ reset. */ ++ char *original_path = xstrdup (getenv ("PATH")); ++#endif ++ ++ char **save_environ = environ; ++#if DO_MALLOC ++ environ = xmalloc (sizeof (*environ)); ++#else ++ char *environ_array[1]; ++ environ = environ_array; ++#endif ++ *environ = NULL; ++ TEST_COMPARE (setenv ("tst_environ_change_a", "1", 1), 0); ++ TEST_COMPARE (setenv ("tst_environ_change_b", "2", 1), 0); ++#if !DO_EARLY_SETENV ++ /* Early setenv results in reuse of the heap-allocated environ array ++ that does not change as more pointers are added to it. */ ++ TEST_VERIFY (environ != save_environ); ++#endif ++ check_rewritten (); ++ ++ bool check_environ = true; ++#if DO_MALLOC ++ /* Disable further checks if the free call clobbers the environ ++ contents. Whether that is the case depends on the internal ++ setenv allocation policy and the heap layout. */ ++ check_environ = environ != save_environ; ++ /* Invalid: Causes internal use-after-free condition. Yet this has ++ to be supported for compatibility with some applications. */ ++ free (environ); ++#endif ++ ++ environ = save_environ; ++ ++#if DO_EARLY_SETENV ++ /* With an early setenv, the internal environ array was overwritten. ++ Historically, this triggered a use-after-free problem because of ++ the use of realloc internally in setenv, but it may appear as if ++ the original environment had been restored. In the current code, ++ we can only support this if the free (environ) above call did not ++ clobber the array, otherwise getenv will see invalid pointers. ++ Due to the use-after-free, invalid pointers could be seen with ++ the old implementation as well, but the triggering conditions ++ were different. */ ++ if (check_environ) ++ check_rewritten (); ++#else ++ TEST_VERIFY (check_environ); ++ TEST_COMPARE_STRING (getenv ("PATH"), original_path); ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_a"), NULL); ++ TEST_COMPARE_STRING (getenv ("tst_environ_change_b"), NULL); ++#endif ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-75810.patch b/SOURCES/glibc-RHEL-75810.patch new file mode 100644 index 0000000..361e0a2 --- /dev/null +++ b/SOURCES/glibc-RHEL-75810.patch @@ -0,0 +1,249 @@ +commit b62759db04b8ed7f829c06f1d7c3b8fb70616493 +Author: Florian Weimer +Date: Wed Jan 22 13:48:56 2025 +0100 + + stdlib: Support malloc-managed environ arrays for compatibility + + Some applications set environ to a heap-allocated pointer, call + setenv (expecting it to call realloc), free environ, and then + restore the original environ pointer. This breaks after + commit 7a61e7f557a97ab597d6fca5e2d1f13f65685c61 ("stdlib: Make + getenv thread-safe in more cases") because after the setenv call, + the environ pointer does not point to the start of a heap allocation. + Instead, setenv creates a separate allocation and changes environ + to point into that. This means that the free call in the application + results in heap corruption. + + The interim approach was more compatible with other libcs because + it does not assume that the incoming environ pointer is allocated + as if by malloc (if it was written by the application). However, + it seems to be more important to stay compatible with previous + glibc version: assume the incoming pointer is heap allocated, + and preserve this property after setenv calls. + + Reviewed-by: Carlos O'Donell + +Conflicts: + stdlib/Makefile + (test list difference) + +diff --git a/csu/init-first.c b/csu/init-first.c +index 316fed22706b1870..b1ee92332f478429 100644 +--- a/csu/init-first.c ++++ b/csu/init-first.c +@@ -61,6 +61,7 @@ _init_first (int argc, char **argv, char **envp) + __libc_argc = argc; + __libc_argv = argv; + __environ = envp; ++ __environ_startup = envp; + + #ifndef SHARED + /* First the initialization which normally would be done by the +diff --git a/csu/libc-start.c b/csu/libc-start.c +index a2fc2f6f9665a48f..4f1801c4af35a012 100644 +--- a/csu/libc-start.c ++++ b/csu/libc-start.c +@@ -244,6 +244,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), + char **ev = &argv[argc + 1]; + + __environ = ev; ++ __environ_startup = ev; + + /* Store the lowest stack address. This is done in ld.so if this is + the code for the DSO. */ +diff --git a/include/unistd.h b/include/unistd.h +index 5824485629793ccb..781dbabde0aad494 100644 +--- a/include/unistd.h ++++ b/include/unistd.h +@@ -182,6 +182,9 @@ libc_hidden_proto (__sbrk) + extern int __libc_enable_secure attribute_relro; + rtld_hidden_proto (__libc_enable_secure) + ++/* Original value of __environ. Initialized by _init_first (dynamic) ++ or __libc_start_main (static). */ ++extern char **__environ_startup attribute_hidden; + + /* Various internal function. */ + extern void __libc_check_standard_fds (void) attribute_hidden; +diff --git a/posix/environ.c b/posix/environ.c +index a0ed0d80eab207f8..2430b47d8eee148c 100644 +--- a/posix/environ.c ++++ b/posix/environ.c +@@ -10,3 +10,5 @@ weak_alias (__environ, environ) + /* The SVR4 ABI says `_environ' will be the name to use + in case the user overrides the weak alias `environ'. */ + weak_alias (__environ, _environ) ++ ++char **__environ_startup; +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 4cbf47d215353681..3f98e55763c75758 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -126,6 +126,7 @@ tests := \ + tst-setcontext7 \ + tst-setcontext8 \ + tst-setcontext9 \ ++ tst-setenv-malloc \ + tst-strfmon_l \ + tst-strfrom \ + tst-strfrom-locale \ +diff --git a/stdlib/setenv.c b/stdlib/setenv.c +index e3833bc514870bf4..e02114103fc5957c 100644 +--- a/stdlib/setenv.c ++++ b/stdlib/setenv.c +@@ -191,52 +191,52 @@ __add_to_environ (const char *name, const char *value, const char *combined, + ep[1] = NULL; + else + { +- /* We cannot use __environ as is and need to copy over the +- __environ contents into an array managed via +- __environ_array_list. */ +- +- struct environ_array *target_array; +- if (__environ_array_list != NULL +- && required_size <= __environ_array_list->allocated) +- /* Existing array has enough room. Contents is copied below. */ +- target_array = __environ_array_list; +- else ++ /* We cannot use __environ as is and need a larger allocation. */ ++ ++ if (start_environ == __environ_startup ++ || __environ_is_from_array_list (start_environ)) + { +- /* Allocate a new array. */ +- target_array = __environ_new_array (required_size); ++ /* Allocate a new array, managed in the list. */ ++ struct environ_array *target_array ++ = __environ_new_array (required_size); + if (target_array == NULL) + { + UNLOCK; + return -1; + } ++ result_environ = &target_array->array[0]; ++ ++ /* Copy over the __environ array contents. This code ++ handles the case start_environ == ep == NULL, too. */ ++ size_t i; ++ for (i = 0; start_environ + i < ep; ++i) ++ /* Regular store because unless there has been direct ++ manipulation of the environment, target_array is still ++ a private copy. */ ++ result_environ[i] = atomic_load_relaxed (start_environ + i); ++ } ++ else ++ { ++ /* Otherwise the application installed its own pointer. ++ Historically, this pointer was managed using realloc. ++ Continue doing so. This disables multi-threading ++ support. */ ++ result_environ = __libc_reallocarray (start_environ, ++ required_size, ++ sizeof (*result_environ)); ++ if (result_environ == NULL) ++ { ++ UNLOCK; ++ return -1; ++ } + } +- +- /* Copy over the __environ array contents. This forward +- copy slides backwards part of the array if __environ +- points into target_array->array. This happens if an +- application makes an assignment like: +- +- environ = &environ[1]; +- +- The forward copy avoids clobbering values that still +- needing copying. This code handles the case +- start_environ == ep == NULL, too. */ +- size_t i; +- for (i = 0; start_environ + i < ep; ++i) +- /* Regular store because unless there has been direct +- manipulation of the environment, target_array is still +- a private copy. */ +- target_array->array[i] = atomic_load_relaxed (start_environ + i); + + /* This is the new place where we should add the element. */ +- ep = target_array->array + i; ++ ep = result_environ + (required_size - 2); + + /* Add the null terminator in case there was a pointer there + previously. */ + ep[1] = NULL; +- +- /* And __environ should be repointed to our array. */ +- result_environ = &target_array->array[0]; + } + } + +diff --git a/stdlib/tst-setenv-malloc.c b/stdlib/tst-setenv-malloc.c +new file mode 100644 +index 0000000000000000..18a9d36842e67aa5 +--- /dev/null ++++ b/stdlib/tst-setenv-malloc.c +@@ -0,0 +1,64 @@ ++/* Test using setenv with a malloc-allocated environ variable. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This test is not in the scope for POSIX or any other standard, but ++ some applications assume that environ is a heap-allocated pointer ++ after a call to setenv on an empty environment. */ ++ ++#include ++#include ++#include ++#include ++ ++static const char *original_path; ++static char **save_environ; ++ ++static void ++rewrite_environ (void) ++{ ++ save_environ = environ; ++ environ = xmalloc (sizeof (*environ)); ++ *environ = NULL; ++ TEST_COMPARE (setenv ("A", "1", 1), 0); ++ TEST_COMPARE (setenv ("B", "2", 1), 0); ++ TEST_VERIFY (environ != save_environ); ++ TEST_COMPARE_STRING (environ[0], "A=1"); ++ TEST_COMPARE_STRING (environ[1], "B=2"); ++ TEST_COMPARE_STRING (environ[2], NULL); ++ TEST_COMPARE_STRING (getenv ("PATH"), NULL); ++ free (environ); ++ environ = save_environ; ++ TEST_COMPARE_STRING (getenv ("PATH"), original_path); ++} ++ ++static int ++do_test (void) ++{ ++ original_path = getenv ("PATH"); ++ rewrite_environ (); ++ ++ /* Test again after reallocated the environment due to an initial ++ setenv call. */ ++ TEST_COMPARE (setenv ("TST_SETENV_MALLOC", "1", 1), 0); ++ TEST_VERIFY (environ != save_environ); ++ rewrite_environ (); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-83294-1.patch b/SOURCES/glibc-RHEL-75938.patch similarity index 79% rename from SOURCES/glibc-RHEL-83294-1.patch rename to SOURCES/glibc-RHEL-75938.patch index c769d38..a1827ea 100644 --- a/SOURCES/glibc-RHEL-83294-1.patch +++ b/SOURCES/glibc-RHEL-75938.patch @@ -10,10 +10,9 @@ Date: Tue Jan 21 16:11:06 2025 -0500 Signed-off-by: Siddhesh Poyarekar Reviewed: Adhemerval Zanella -diff --git a/assert/assert.c b/assert/assert.c -index 989126c7e5b6b265..d14bb76b1fb43f57 100644 ---- a/assert/assert.c -+++ b/assert/assert.c +diff -Nrup a/assert/assert.c b/assert/assert.c +--- a/assert/assert.c 2025-01-29 14:45:37.480532858 -0500 ++++ b/assert/assert.c 2025-01-29 14:54:03.824306418 -0500 @@ -18,6 +18,7 @@ #include #include @@ -22,7 +21,7 @@ index 989126c7e5b6b265..d14bb76b1fb43f57 100644 #include #include #include -@@ -64,7 +65,8 @@ __assert_fail_base (const char *fmt, const char *assertion, const char *file, +@@ -66,7 +67,8 @@ __assert_fail_base (const char *fmt, con (void) __fxprintf (NULL, "%s", str); (void) fflush (stderr); @@ -32,10 +31,9 @@ index 989126c7e5b6b265..d14bb76b1fb43f57 100644 struct abort_msg_s *buf = __mmap (NULL, total, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); if (__glibc_likely (buf != MAP_FAILED)) -diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c -index 1feacfbeba765035..7929f1601d4a89c9 100644 ---- a/sysdeps/posix/libc_fatal.c -+++ b/sysdeps/posix/libc_fatal.c +diff -Nrup a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c +--- a/sysdeps/posix/libc_fatal.c 2025-01-29 14:45:36.603528055 -0500 ++++ b/sysdeps/posix/libc_fatal.c 2025-01-29 15:57:20.910535347 -0500 @@ -20,6 +20,7 @@ #include #include diff --git a/SOURCES/glibc-RHEL-65285-1.patch b/SOURCES/glibc-RHEL-80088-1.patch similarity index 100% rename from SOURCES/glibc-RHEL-65285-1.patch rename to SOURCES/glibc-RHEL-80088-1.patch diff --git a/SOURCES/glibc-RHEL-65285-2.patch b/SOURCES/glibc-RHEL-80088-2.patch similarity index 99% rename from SOURCES/glibc-RHEL-65285-2.patch rename to SOURCES/glibc-RHEL-80088-2.patch index ad91f7a..4172c7d 100644 --- a/SOURCES/glibc-RHEL-65285-2.patch +++ b/SOURCES/glibc-RHEL-80088-2.patch @@ -30,7 +30,7 @@ Date: Wed Jul 3 12:35:34 2024 -0400 Reviewed-by: Florian Weimer diff --git a/elf/Makefile b/elf/Makefile -index ffadf1c61f66bef8..5043684babf50a06 100644 +index e0a86a305c4dc2ed..ec0d67b1549823ad 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -69,6 +69,7 @@ dl-routines = \ diff --git a/SOURCES/glibc-RHEL-65285-3.patch b/SOURCES/glibc-RHEL-80088-3.patch similarity index 97% rename from SOURCES/glibc-RHEL-65285-3.patch rename to SOURCES/glibc-RHEL-80088-3.patch index 56cc81f..4e969df 100644 --- a/SOURCES/glibc-RHEL-65285-3.patch +++ b/SOURCES/glibc-RHEL-80088-3.patch @@ -14,10 +14,10 @@ Date: Mon Jul 8 21:14:00 2024 +0200 Reviewed-by: Mathieu Desnoyers diff --git a/manual/threads.texi b/manual/threads.texi -index 48fd562923800b34..fcf9e2bba5abd02e 100644 +index 3fd307e69a8029fa..42e824fcdbec60f6 100644 --- a/manual/threads.texi +++ b/manual/threads.texi -@@ -1020,8 +1020,12 @@ This variable is either zero (if restartable sequence registration +@@ -1007,8 +1007,12 @@ This variable is either zero (if restartable sequence registration failed or has been disabled) or the size of the restartable sequence registration. This can be different from the size of @code{struct rseq} if the kernel has extended the size of the registration. If diff --git a/SOURCES/glibc-RHEL-65285-4.patch b/SOURCES/glibc-RHEL-80088-4.patch similarity index 100% rename from SOURCES/glibc-RHEL-65285-4.patch rename to SOURCES/glibc-RHEL-80088-4.patch diff --git a/SOURCES/glibc-RHEL-65285-5.patch b/SOURCES/glibc-RHEL-80088-5.patch similarity index 100% rename from SOURCES/glibc-RHEL-65285-5.patch rename to SOURCES/glibc-RHEL-80088-5.patch diff --git a/SOURCES/glibc-RHEL-83524.patch b/SOURCES/glibc-RHEL-83525.patch similarity index 97% rename from SOURCES/glibc-RHEL-83524.patch rename to SOURCES/glibc-RHEL-83525.patch index ea21088..360d487 100644 --- a/SOURCES/glibc-RHEL-83524.patch +++ b/SOURCES/glibc-RHEL-83525.patch @@ -22,7 +22,7 @@ Date: Fri Mar 15 19:08:24 2024 +0100 Reviewed-by: Arjun Shankar diff --git a/sysdeps/unix/sysv/linux/sched_getcpu.c b/sysdeps/unix/sysv/linux/sched_getcpu.c -index 6f78edaea1495342..a33e30a1cb8e161b 100644 +index dfb884568d..72a3360550 100644 --- a/sysdeps/unix/sysv/linux/sched_getcpu.c +++ b/sysdeps/unix/sysv/linux/sched_getcpu.c @@ -33,17 +33,9 @@ vsyscall_sched_getcpu (void) diff --git a/SOURCES/glibc-RHEL-83528-1.patch b/SOURCES/glibc-RHEL-83528-1.patch new file mode 100644 index 0000000..93983a5 --- /dev/null +++ b/SOURCES/glibc-RHEL-83528-1.patch @@ -0,0 +1,24 @@ +commit 265e13d33c470446043a3d2033984a1197151e09 +Author: H.J. Lu +Date: Sun Dec 22 05:55:39 2024 +0800 + + assert: Sort tests in Makefile + + Signed-off-by: H.J. Lu + +diff --git a/assert/Makefile b/assert/Makefile +index 85358fad51367b49..9fa016c472eb67b1 100644 +--- a/assert/Makefile ++++ b/assert/Makefile +@@ -35,10 +35,10 @@ routines := \ + + tests := \ + test-assert \ ++ test-assert-2 \ + test-assert-perr \ + tst-assert-c++ \ + tst-assert-g++ \ +- test-assert-2 \ + # tests + + ifeq ($(have-cxx-thread_local),yes) diff --git a/SOURCES/glibc-RHEL-83294-3.patch b/SOURCES/glibc-RHEL-83528-2.patch similarity index 98% rename from SOURCES/glibc-RHEL-83294-3.patch rename to SOURCES/glibc-RHEL-83528-2.patch index 72fa417..535b4ac 100644 --- a/SOURCES/glibc-RHEL-83294-3.patch +++ b/SOURCES/glibc-RHEL-83528-2.patch @@ -13,10 +13,10 @@ Date: Fri Jan 31 12:16:30 2025 -0500 Reviewed-by: Adhemerval Zanella diff --git a/assert/Makefile b/assert/Makefile -index 24a9bdb96306ca08..a2048993025ec4dc 100644 +index 9fa016c472eb67b1..80f5fad9f52378db 100644 --- a/assert/Makefile +++ b/assert/Makefile -@@ -38,6 +38,7 @@ tests := \ +@@ -39,6 +39,7 @@ tests := \ test-assert-perr \ tst-assert-c++ \ tst-assert-g++ \ diff --git a/SOURCES/glibc-RHEL-83581.patch b/SOURCES/glibc-RHEL-83581.patch new file mode 100644 index 0000000..5045cac --- /dev/null +++ b/SOURCES/glibc-RHEL-83581.patch @@ -0,0 +1,62 @@ +commit 10af00f7a135c85796a9c4c75228358b8898da5c +Author: Siddhesh Poyarekar +Date: Fri Mar 14 10:18:21 2025 -0400 + + tst-fopen-threaded: Only check EOF for failing read + + The fread race checker looks for EOF in every thread, which is incorrect + since threads calling fread successfully could lag behind and read the + EOF condition, resulting in multiple threads thinking that they + encountered an EOF. + + Only look for EOF condition if fread fails to read a char. Also drop + the clearerr() since it could mask the failure of another reader, thus + hiding a test failure. + + Finally, also check for error in the stream for completeness. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Florian Weimer + +diff --git a/sysdeps/pthread/tst-fopen-threaded.c b/sysdeps/pthread/tst-fopen-threaded.c +index 5c792c93e3..ade58ad19e 100644 +--- a/sysdeps/pthread/tst-fopen-threaded.c ++++ b/sysdeps/pthread/tst-fopen-threaded.c +@@ -64,19 +64,27 @@ threadReadRoutine (void *argv) + /* Wait for all threads to be ready to read. */ + xpthread_barrier_wait (&barrier); + +- ret = +- fread (&read_buffer, sizeof (char), sizeof (read_buffer), my_data->fd); +- if (feof (my_data->fd) != 0) ++ ret = fread (&read_buffer, 1, sizeof (read_buffer), my_data->fd); ++ /* If no data is returned (we read only 1 byte, so there's no short read ++ situation here), look for EOF flag and record it in MY_DATA. The EOF flag ++ is not cleared because that could result in a test failure being masked ++ when two threads fail to read and one of them clears error/EOF flags ++ before the second one has the chance to observe it. ++ ++ Successful readers could still see the EOF if they fall behind the failing ++ read when calling feof(), which could result in a false test failure. To ++ avoid this race, we only make the failing reader check for EOF or ++ error. */ ++ if (ret == 0) + { +- clearerr (my_data->fd); +- my_data->eof = true; ++ if (feof (my_data->fd) != 0) ++ my_data->eof = true; ++ else ++ FAIL_EXIT1 ("fread failed (ferror: %d): %m", ferror (my_data->fd)); + } + else +- { +- TEST_COMPARE (ret, 1); +- /* Save the read value. */ +- my_data->value = read_buffer; +- } ++ /* Save the read value. */ ++ my_data->value = read_buffer; + TEST_COMPARE (ferror (my_data->fd), 0); + return NULL; + } diff --git a/SOURCES/glibc-RHEL-83968.patch b/SOURCES/glibc-RHEL-83968.patch new file mode 100644 index 0000000..8a3ff40 --- /dev/null +++ b/SOURCES/glibc-RHEL-83968.patch @@ -0,0 +1,151 @@ +commit a9017caff3b77032d04e2e439f7c04a63241e63e +Author: Sergey Kolosov +Date: Tue Jan 28 23:56:26 2025 +0100 + + nptl: extend test coverage for sched_yield + + We add sched_yield() API testing to the existing thread affinity + test case because it allows us to test sched_yield() operation + in the following scenarios: + + * On a main thread. + * On multiple threads simultaneously. + * On every CPU the system reports simultaneously. + + The ensures we exercise sched_yield() in as many scenarios as + we would exercise calls to the affinity functions. + + Additionally, the test is improved by adding a semaphore to coordinate + all the threads running, so that an early starter thread won't consume + cpu resources that could be used to start the other threads. + + Co-authored-by: DJ Delorie + Reviewed-by: Carlos O'Donell + +diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c +index afc8c1b96fa2f408..55ddcda2ce24e186 100644 +--- a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c ++++ b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + /* CPU set configuration determined. Can be used from early_test. */ + struct conf +@@ -253,12 +254,12 @@ do_test (void) + if (getaffinity (sizeof (set), &set) < 0 && errno == ENOSYS) + { + puts ("warning: getaffinity not supported, test cannot run"); +- return 0; ++ return EXIT_UNSUPPORTED; + } + if (sched_getcpu () < 0 && errno == ENOSYS) + { + puts ("warning: sched_getcpu not supported, test cannot run"); +- return 0; ++ return EXIT_UNSUPPORTED; + } + } + +diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c +index 1445ea2d19430ce8..545a6c77c6fdd091 100644 +--- a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c ++++ b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c +@@ -45,10 +45,14 @@ static int still_running; + /* 0 if no scheduling failures, 1 if failures are encountered. */ + static int failed; + ++/* Used to synchronize the threads. */ ++static pthread_barrier_t barrier; ++ + static void * + thread_burn_one_cpu (void *closure) + { + int cpu = (uintptr_t) closure; ++ xpthread_barrier_wait (&barrier); + while (__atomic_load_n (&still_running, __ATOMIC_RELAXED) == 0) + { + int current = sched_getcpu (); +@@ -61,6 +65,11 @@ thread_burn_one_cpu (void *closure) + __atomic_store_n (&still_running, 1, __ATOMIC_RELAXED); + } + } ++ if (sched_yield () != 0) ++ { ++ printf ("error: sched_yield() failed for cpu %d\n", cpu); ++ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED); ++ } + return NULL; + } + +@@ -78,6 +87,7 @@ thread_burn_any_cpu (void *closure) + { + struct burn_thread *param = closure; + ++ xpthread_barrier_wait (&barrier); + /* Schedule this thread around a bit to see if it lands on another + CPU. Run this for 2 seconds, once with sched_yield, once + without. */ +@@ -99,7 +109,11 @@ thread_burn_any_cpu (void *closure) + CPU_SET_S (cpu, CPU_ALLOC_SIZE (param->conf->set_size), + param->seen_set); + if (pass == 1) +- sched_yield (); ++ if (sched_yield () != 0) ++ { ++ printf ("error: sched_yield() failed for cpu %d\n", cpu); ++ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED); ++ } + } + } + return NULL; +@@ -156,6 +170,7 @@ early_test (struct conf *conf) + = calloc (conf->last_cpu + 1, sizeof (*other_threads)); + cpu_set_t *initial_set = CPU_ALLOC (conf->set_size); + cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size); ++ int num_available_cpus = 0; + + if (pinned_threads == NULL || other_threads == NULL + || initial_set == NULL || scratch_set == NULL) +@@ -172,6 +187,7 @@ early_test (struct conf *conf) + { + if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set)) + continue; ++ num_available_cpus ++; + other_threads[cpu].conf = conf; + other_threads[cpu].initial_set = initial_set; + other_threads[cpu].thread = cpu; +@@ -194,6 +210,15 @@ early_test (struct conf *conf) + } + support_set_small_thread_stack_size (&attr); + ++ /* This count assumes that all the threads below are created ++ successfully, and call pthread_barrier_wait(). If any threads ++ fail to be created, this function will return FALSE (failure) and ++ the waiting threads will eventually time out the whole test. ++ This is acceptable because we're not testing thread creation and ++ assume all threads will be created, and failure here implies a ++ failure outside the test's scope. */ ++ xpthread_barrier_init (&barrier, NULL, num_available_cpus * 2 + 1); ++ + /* Spawn a thread pinned to each available CPU. */ + for (int cpu = 0; cpu <= conf->last_cpu; ++cpu) + { +@@ -245,6 +270,15 @@ early_test (struct conf *conf) + } + } + ++ /* Test that sched_yield() works correctly in the main thread. This ++ also gives the kernel an opportunity to run the other threads, ++ randomizing thread startup a bit. */ ++ if (sched_yield () != 0) ++ { ++ printf ("error: sched_yield() failed for main thread\n"); ++ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED); ++ } ++ + /* Main thread. */ + struct burn_thread main_thread; + main_thread.conf = conf; diff --git a/SOURCES/glibc-RHEL-83970-1.patch b/SOURCES/glibc-RHEL-83970-1.patch new file mode 100644 index 0000000..a82a047 --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-1.patch @@ -0,0 +1,451 @@ +Partial backport (without ABI changes, using libc_nonshared.a instead) +of: + +commit 21571ca0d70302909cf72707b2a7736cf12190a0 +Author: Florian Weimer +Date: Wed Sep 11 10:05:08 2024 +0200 + + Linux: Add the sched_setattr and sched_getattr functions + + And struct sched_attr. + + In sysdeps/unix/sysv/linux/bits/sched.h, the hack that defines + sched_param around the inclusion of is quite + ugly, but the definition of struct sched_param has already been + dropped by the kernel, so there is nothing else we can do and maintain + compatibility of with a wide range of kernel header + versions. (An alternative would involve introducing a separate header + for this functionality, but this seems unnecessary.) + + The existing sched_* functions that change scheduler parameters + are already incompatible with PTHREAD_PRIO_PROTECT mutexes, so + there is no harm in adding more functionality in this area. + + The documentation mostly defers to the Linux manual pages. + + Reviewed-by: Carlos O'Donell + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + (variables not sorted downstream, libc_nonshared.a + integration downstream) + sysdeps/unix/sysv/linux/Versions + (not backported) + sysdeps/unix/sysv/linux/*/libc.abilist + (not backported) + +The implementation uses the syscall function, not , +to avoid implicit TCB layout dependencies. Such dependencies +could happen if the system call macros use information in the +TCB to select the way the kernel is entered. + + +diff --git a/manual/resource.texi b/manual/resource.texi +index 37462abc9e467690..bddff67d3d1e414e 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -478,6 +478,7 @@ POSIX syntax had in mind. + * Absolute Priority:: The first tier of priority. Posix + * Realtime Scheduling:: Scheduling among the process nobility + * Basic Scheduling Functions:: Get/set scheduling policy, priority ++* Extensible Scheduling:: Parameterized scheduling policies. + * Traditional Scheduling:: Scheduling among the vulgar masses + * CPU Affinity:: Limiting execution to certain CPUs + @end menu +@@ -952,6 +953,120 @@ function, so there are no specific @code{errno} values. + + @end deftypefun + ++@node Extensible Scheduling ++@subsection Extensible Scheduling ++@cindex scheduling, extensible ++ ++The type @code{struct sched_attr} and the functions @code{sched_setattr} ++and @code{sched_getattr} are used to implement scheduling policies with ++multiple parameters (not just priority and niceness). ++ ++It is expected that these interfaces will be compatible with all future ++scheduling policies. ++ ++For additional information about scheduling policies, consult consult ++the manual pages @manpageurl{sched,7} and @manpageurl{sched_setattr,2}. ++@xref{Linux Kernel}. ++ ++@strong{Note:} Calling the @code{sched_setattr} function is incompatible ++with support for @code{PTHREAD_PRIO_PROTECT} mutexes. ++ ++@deftp {Data Type} {struct sched_attr} ++@standards{Linux, sched.h} ++The @code{sched_attr} structure describes a parameterized scheduling policy. ++ ++@strong{Portability note:} In the future, additional fields can be added ++to @code{struct sched_attr} at the end, so that the size of this data ++type changes. Do not use it in places where this matters, such as ++structure fields in installed header files, where such a change could ++impact the application binary interface (ABI). ++ ++The following generic fields are available. ++ ++@table @code ++@item size ++The actually used size of the data structure. See the description of ++the functions @code{sched_setattr} and @code{sched_getattr} below how this ++field is used to support extension of @code{struct sched_attr} with ++more fields. ++ ++@item sched_policy ++The scheduling policy. This field determines which fields in the ++structure are used, and how the @code{sched_flags} field is interpreted. ++ ++@item sched_flags ++Scheduling flags associated with the scheduling policy. ++@end table ++ ++In addition to the generic fields, policy-specific fields are available. ++For additional information, consult the manual page ++@manpageurl{sched_setattr,2}. @xref{Linux Kernel}. ++@end deftp ++ ++@deftypefun int sched_setaddr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int flags) ++@standards{Linux, sched.h} ++@safety{@mtsafe{}@assafe{}@acsafe{}} ++This functions applies the scheduling policy described by ++@code{*@var{attr}} to the thread @var{tid} (the value zero denotes the ++current thread). ++ ++It is recommended to initialize unused fields to zero, either using ++@code{memset}, or using a structure initializer. The ++@code{@var{attr->size}} field should be set to @code{sizeof (struct ++sched_attr)}, to inform the kernel of the structure version in use. ++ ++The @var{flags} argument must be zero. Other values may become ++available in the future. ++ ++On failure, @code{sched_setattr} returns @math{-1} and sets ++@code{errno}. The following errors are related the way ++extensibility is handled. ++@table @code ++@item E2BIG ++A field in @code{*@var{attr}} has a non-zero value, but is unknown to ++the kernel. The application could try to apply a modified policy, where ++more fields are zero. ++ ++@item EINVAL ++The policy in @code{@var{attr}->sched_policy} is unknown to the kernel, ++or flags are set in @code{@var{attr}->sched_flags} that the kernel does ++not know how to interpret. The application could try with fewer flags ++set, or a different scheduling policy. ++ ++This error also occurs if @var{attr} is @code{NULL} or @var{flags} is ++not zero. ++ ++@item EPERM ++The current thread is not sufficiently privileged to assign the policy, ++either because access to the policy is restricted in general, or because ++the current thread does not have the rights to change the scheduling ++policy of the thread @var{tid}. ++@end table ++ ++Other error codes depend on the scheduling policy. ++@end deftypefun ++ ++@deftypefun int sched_getaddr (pid_t @var{tid}, struct sched_attr *@var{attr}, unsigned int size, unsigned int flags) ++@standards{Linux, sched.h} ++@safety{@mtsafe{}@assafe{}@acsafe{}} ++This function obtains the scheduling policy of the thread @var{tid} ++(zero denotes the current thread) and store it in @code{*@var{attr}}, ++which must have space for at least @var{size} bytes. ++ ++The @var{flags} argument must be zero. Other values may become ++available in the future. ++ ++Upon success, @code{@var{attr}->size} contains the size of the structure ++version used by the kernel. Fields with offsets greater or equal to ++@code{@var{attr}->size} are not updated by the kernel. To obtain ++predictable values for unknown fields, use @code{memset} to set ++all @var{size} bytes to zero prior to calling @code{sched_getattr}. ++ ++On failure, @code{sched_getattr} returns @math{-1} and sets @code{errno}. ++If @code{errno} is @code{E2BIG}, this means that the buffer is not large ++large enough, and the application could retry with a larger buffer. ++@end deftypefun ++ + @node Traditional Scheduling + @subsection Traditional Scheduling + @cindex scheduling, traditional +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index 08b4e7765c07f6a3..d6381fe846c905d6 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -66,7 +66,16 @@ sysdep_routines += adjtimex clone umount umount2 readahead sysctl \ + fxstatat fxstatat64 \ + xmknod xmknodat convert_scm_timestamps \ + closefrom_fallback \ +- clone3 clone-internal ++ clone3 clone-internal \ ++ sched_getattr \ ++ sched_setattr \ ++ # sysdep_routines ++ ++# The implementations go into libc_nonshared.a, to preserve ABI. ++static-only-routines += \ ++ sched_getattr \ ++ sched_setattr \ ++ # static-only-routines + + CFLAGS-gethostid.c = -fexceptions + CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables +@@ -128,6 +137,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-fdopendir-o_path \ + tst-linux-mremap1 \ + tst-sched-affinity-inheritance \ ++ tst-sched_setattr \ + # tests + + # Test for the symbol version of fcntl that was replaced in glibc 2.28. +diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h +index cd450fdfe510f397..5e0f70a69181bc26 100644 +--- a/sysdeps/unix/sysv/linux/bits/sched.h ++++ b/sysdeps/unix/sysv/linux/bits/sched.h +@@ -34,10 +34,39 @@ + # define SCHED_IDLE 5 + # define SCHED_DEADLINE 6 + ++/* Flags that can be used in policy values. */ + # define SCHED_RESET_ON_FORK 0x40000000 +-#endif + +-#ifdef __USE_GNU ++/* Use "" to work around incorrect macro expansion of the ++ __has_include argument (GCC PR 80005). */ ++# ifdef __has_include ++# if __has_include ("linux/sched/types.h") ++/* Some older Linux versions defined sched_param in . */ ++# define sched_param __glibc_mask_sched_param ++# include ++# undef sched_param ++# endif ++# endif ++# ifndef SCHED_ATTR_SIZE_VER0 ++# include ++# define SCHED_ATTR_SIZE_VER0 48 ++# define SCHED_ATTR_SIZE_VER1 56 ++struct sched_attr ++{ ++ __u32 size; ++ __u32 sched_policy; ++ __u64 sched_flags; ++ __s32 sched_nice; ++ __u32 sched_priority; ++ __u64 sched_runtime; ++ __u64 sched_deadline; ++ __u64 sched_period; ++ __u32 sched_util_min; ++ __u32 sched_util_max; ++ /* Additional fields may be added at the end. */ ++}; ++# endif /* !SCHED_ATTR_SIZE_VER0 */ ++ + /* Cloning flags. */ + # define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */ + # define CLONE_VM 0x00000100 /* Set if VM shared between processes. */ +@@ -93,6 +122,17 @@ extern int getcpu (unsigned int *, unsigned int *) __THROW; + + /* Switch process to namespace of type NSTYPE indicated by FD. */ + extern int setns (int __fd, int __nstype) __THROW; ++ ++/* Apply the scheduling attributes from *ATTR to the process or thread TID. */ ++int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags) ++ __THROW __nonnull ((2)); ++ ++/* Obtain the scheduling attributes of the process or thread TID and ++ store it in *ATTR. */ ++int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size, ++ unsigned int flags) ++ __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); ++ + #endif + + __END_DECLS +diff --git a/sysdeps/unix/sysv/linux/sched_getattr.c b/sysdeps/unix/sysv/linux/sched_getattr.c +new file mode 100644 +index 0000000000000000..64f0b70514f2b143 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/sched_getattr.c +@@ -0,0 +1,30 @@ ++/* Reading scheduling policy and attributes. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++int ++attribute_hidden ++sched_getattr (pid_t pid, struct sched_attr *attr, unsigned int size, ++ unsigned int flags) ++{ ++ /* Use the syscall function for compatibility with libc_nonshared.a. */ ++ return syscall (__NR_sched_getattr, pid, attr, size, flags); ++} +diff --git a/sysdeps/unix/sysv/linux/sched_setattr.c b/sysdeps/unix/sysv/linux/sched_setattr.c +new file mode 100644 +index 0000000000000000..2a24a734e8d5125b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/sched_setattr.c +@@ -0,0 +1,29 @@ ++/* Setting scheduling policy and attributes. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++int ++attribute_hidden ++sched_setattr (pid_t pid, struct sched_attr *attr, unsigned int flags) ++{ ++ /* Use the syscall function for compatibility with libc_nonshared.a. */ ++ return syscall (__NR_sched_setattr, pid, attr, flags); ++} +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +new file mode 100644 +index 0000000000000000..a6288a1a7cc2d01b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +@@ -0,0 +1,105 @@ ++/* Tests for sched_setattr and sched_getattr. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Padding struct to detect unexpected writes. */ ++union ++{ ++ struct sched_attr attr; ++ /* Hopefully the kernel will never need as much. */ ++ unsigned char padding[4096]; ++} u; ++ ++static void ++check_unused (void) ++{ ++ TEST_VERIFY (u.attr.size < sizeof (u)); ++ for (unsigned int i = u.attr.size; i < sizeof (u); ++i) ++ TEST_COMPARE (u.padding[i], 0xcc); ++} ++ ++static int ++do_test (void) ++{ ++ TEST_VERIFY (sizeof (struct sched_attr) < sizeof (u)); ++ ++ /* Check that reading and re-applying the current policy works. */ ++ memset (&u, 0xcc, sizeof (u)); ++ /* Compiler barrier to bypass write access attribute. */ ++ volatile unsigned int size = sizeof (u); ++ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); ++ check_unused (); ++ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); /* Apply unchanged. */ ++ ++ /* Try to switch to the SCHED_OTHER policy. */ ++ memset (&u, 0, sizeof (u)); ++ u.attr.size = sizeof (u); /* With padding, kernel should accept zeroes. */ ++ u.attr.sched_policy = SCHED_OTHER; /* Should be the default. */ ++ { ++ errno = 0; ++ int prio = getpriority (PRIO_PROCESS, 0); ++ if (errno != 0) ++ prio = 0; ++ u.attr.sched_nice = prio; ++ } ++ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); ++ ++ /* Non-zero values not known to the kernel result in an E2BIG error. */ ++ memset (&u, 0, sizeof (u)); ++ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); ++ u.padding[u.attr.size] = 0xcc; ++ u.attr.size = sizeof (u); ++ errno = 0; ++ TEST_COMPARE (sched_setattr (0, &u.attr, 0), -1); ++ TEST_COMPARE (errno, E2BIG); ++ ++ memset (&u, 0xcc, sizeof (u)); ++ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); ++ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); ++ check_unused (); ++ ++ /* Raise the niceless level to 19 and observe its effect. */ ++ TEST_COMPARE (nice (19), 19); ++ TEST_COMPARE (sched_getattr (0, &u.attr, sizeof (u.attr), 0), 0); ++ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); ++ TEST_COMPARE (u.attr.sched_nice, 19); ++ check_unused (); ++ ++ /* Invalid buffer arguments result in EINVAL (not EFAULT). */ ++ { ++ errno = 0; ++ void *volatile null_pointer = NULL; /* compiler barrier. */ ++ TEST_COMPARE (sched_setattr (0, null_pointer, 0), -1); ++ TEST_COMPARE (errno, EINVAL); ++ errno = 0; ++ TEST_COMPARE (sched_getattr (0, null_pointer, size, 0), -1); ++ TEST_COMPARE (errno, EINVAL); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-83970-2.patch b/SOURCES/glibc-RHEL-83970-2.patch new file mode 100644 index 0000000..8015b59 --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-2.patch @@ -0,0 +1,143 @@ +commit c444cc1d8335243c5c4e636d6a26c472df85522c +Author: Florian Weimer +Date: Wed Sep 11 10:05:08 2024 +0200 + + Linux: Add missing scheduler constants to + + And add a test, misc/tst-sched-consts, that checks + consistency with . + + Reviewed-by: Carlos O'Donell + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + (missing tests downstream) + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index d6381fe846c905d6..a7004f57a3f40fb1 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -247,6 +247,16 @@ $(objpfx)tst-mman-consts.out: ../sysdeps/unix/sysv/linux/tst-mman-consts.py + < /dev/null > $@ 2>&1; $(evaluate-test) + $(objpfx)tst-mman-consts.out: $(sysdeps-linux-python-deps) + ++tests-special += \ ++ $(objpfx)tst-sched-consts.out \ ++ # tests-special ++$(objpfx)tst-sched-consts.out: ../sysdeps/unix/sysv/linux/tst-sched-consts.py ++ $(sysdeps-linux-python) \ ++ ../sysdeps/unix/sysv/linux/tst-sched-consts.py \ ++ $(sysdeps-linux-python-cc) \ ++ < /dev/null > $@ 2>&1; $(evaluate-test) ++$(objpfx)tst-sched-consts.out: $(sysdeps-linux-python-deps) ++ + tst-rseq-disable-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0 + + endif # $(subdir) == misc +diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h +index 5e0f70a69181bc26..d4ac158d99e4c350 100644 +--- a/sysdeps/unix/sysv/linux/bits/sched.h ++++ b/sysdeps/unix/sysv/linux/bits/sched.h +@@ -29,6 +29,7 @@ + #define SCHED_FIFO 1 + #define SCHED_RR 2 + #ifdef __USE_GNU ++# define SCHED_NORMAL SCHED_OTHER + # define SCHED_BATCH 3 + # define SCHED_ISO 4 + # define SCHED_IDLE 5 +@@ -37,6 +38,19 @@ + /* Flags that can be used in policy values. */ + # define SCHED_RESET_ON_FORK 0x40000000 + ++/* Flags for the sched_flags field in struct sched_attr. */ ++#define SCHED_FLAG_RESET_ON_FORK 0x01 ++#define SCHED_FLAG_RECLAIM 0x02 ++#define SCHED_FLAG_DL_OVERRUN 0x04 ++#define SCHED_FLAG_KEEP_POLICY 0x08 ++#define SCHED_FLAG_KEEP_PARAMS 0x10 ++#define SCHED_FLAG_UTIL_CLAMP_MIN 0x20 ++#define SCHED_FLAG_UTIL_CLAMP_MAX 0x40 ++ ++/* Combinations of sched_flags fields. */ ++#define SCHED_FLAG_KEEP_ALL 0x18 ++#define SCHED_FLAG_UTIL_CLAMP 0x60 ++ + /* Use "" to work around incorrect macro expansion of the + __has_include argument (GCC PR 80005). */ + # ifdef __has_include +diff --git a/sysdeps/unix/sysv/linux/tst-sched-consts.py b/sysdeps/unix/sysv/linux/tst-sched-consts.py +new file mode 100644 +index 0000000000000000..70071dcd974fe064 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched-consts.py +@@ -0,0 +1,56 @@ ++#!/usr/bin/python3 ++# Test that glibc's sched.h constants match the kernel's. ++# Copyright (C) 2018-2024 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++# ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++# ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++import argparse ++import sys ++ ++import glibcextract ++import glibcsyscalls ++ ++ ++def main(): ++ """The main entry point.""" ++ parser = argparse.ArgumentParser( ++ description="Test that glibc's sched.h constants " ++ "match the kernel's.") ++ parser.add_argument('--cc', metavar='CC', ++ help='C compiler (including options) to use') ++ args = parser.parse_args() ++ linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc) ++ linux_version_glibc = (6, 10) ++ sys.exit(glibcextract.compare_macro_consts( ++ '#define _GNU_SOURCE 1\n' ++ '#include \n', ++ '#define _GNU_SOURCE 1\n' ++ '#include \n' ++ '#include \n', ++ args.cc, ++ 'SCHED_.*', ++ # SCHED_ISO is reserved, but not implemented in the kernel. ++ # SCHED_OTHER is the standard name for SCHED_NORMAL. ++ # SCHED_FLAG_ALL will receive more and more flags, so ++ # exposing it to userspace does not seem useful. ++ 'SCHED_ISO' ++ '|SCHED_OTHER' ++ '|SCHED_FLAG_ALL', ++ linux_version_glibc > linux_version_headers, ++ linux_version_headers > linux_version_glibc)) ++ ++if __name__ == '__main__': ++ main() +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +index a6288a1a7cc2d01b..fbb73c31a72de311 100644 +--- a/sysdeps/unix/sysv/linux/tst-sched_setattr.c ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +@@ -44,6 +44,8 @@ check_unused (void) + static int + do_test (void) + { ++ _Static_assert (SCHED_OTHER == SCHED_NORMAL, ++ "SCHED_OTHER, SCHED_NORMAL values"); + TEST_VERIFY (sizeof (struct sched_attr) < sizeof (u)); + + /* Check that reading and re-applying the current policy works. */ diff --git a/SOURCES/glibc-RHEL-83970-3.patch b/SOURCES/glibc-RHEL-83970-3.patch new file mode 100644 index 0000000..70be7a5 --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-3.patch @@ -0,0 +1,73 @@ +commit b3a6bd625ce96bcec0e5d41b9835b1367d97e548 +Author: Florian Weimer +Date: Mon Jan 20 09:57:09 2025 +0100 + + Linux: Do not check unused bytes after sched_getattr in tst-sched_setattr + + Linux 6.13 was released with a change that overwrites those bytes. + This means that the check_unused subtest fails. + + Update the manual accordingly. + + Tested-by: Xi Ruoyao + Reviewed-by: Adhemerval Zanella + +diff --git a/manual/resource.texi b/manual/resource.texi +index bddff67d3d1e414e..f9fba2ad9cd84c14 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -1058,9 +1058,9 @@ available in the future. + + Upon success, @code{@var{attr}->size} contains the size of the structure + version used by the kernel. Fields with offsets greater or equal to +-@code{@var{attr}->size} are not updated by the kernel. To obtain +-predictable values for unknown fields, use @code{memset} to set +-all @var{size} bytes to zero prior to calling @code{sched_getattr}. ++@code{@var{attr}->size} may not be overwritten by the kernel. To obtain ++predictable values for unknown fields, use @code{memset} to set all ++@var{size} bytes to zero prior to calling @code{sched_getattr}. + + On failure, @code{sched_getattr} returns @math{-1} and sets @code{errno}. + If @code{errno} is @code{E2BIG}, this means that the buffer is not large +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +index fbb73c31a72de311..6b0913aebae96abe 100644 +--- a/sysdeps/unix/sysv/linux/tst-sched_setattr.c ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c +@@ -33,14 +33,6 @@ union + unsigned char padding[4096]; + } u; + +-static void +-check_unused (void) +-{ +- TEST_VERIFY (u.attr.size < sizeof (u)); +- for (unsigned int i = u.attr.size; i < sizeof (u); ++i) +- TEST_COMPARE (u.padding[i], 0xcc); +-} +- + static int + do_test (void) + { +@@ -53,7 +45,6 @@ do_test (void) + /* Compiler barrier to bypass write access attribute. */ + volatile unsigned int size = sizeof (u); + TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); +- check_unused (); + TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); /* Apply unchanged. */ + + /* Try to switch to the SCHED_OTHER policy. */ +@@ -81,14 +72,12 @@ do_test (void) + memset (&u, 0xcc, sizeof (u)); + TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0); + TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); +- check_unused (); + + /* Raise the niceless level to 19 and observe its effect. */ + TEST_COMPARE (nice (19), 19); + TEST_COMPARE (sched_getattr (0, &u.attr, sizeof (u.attr), 0), 0); + TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER); + TEST_COMPARE (u.attr.sched_nice, 19); +- check_unused (); + + /* Invalid buffer arguments result in EINVAL (not EFAULT). */ + { diff --git a/SOURCES/glibc-RHEL-83970-4.patch b/SOURCES/glibc-RHEL-83970-4.patch new file mode 100644 index 0000000..e8bb32a --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-4.patch @@ -0,0 +1,47 @@ +commit 517846c85dfc48aa231e28e95e8f90a6d8a8efde +Author: Florian Weimer +Date: Wed Mar 12 11:29:10 2025 +0100 + + Makefile: Clean up pthread_atfork integration + + Do not add the pthread_atfork routine again in nptl/Makefile, + instead rely on sysdeps/pthread/Makefile for the integration + (as this is the directory that contains the source file). + + In sysdeps/pthread/Makefile, add to static-only-routines. + + Reviewed-by: Joseph Myers + +diff --git a/nptl/Makefile b/nptl/Makefile +index 455703bbd763d516..d03846c2e04afa2f 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -58,7 +58,6 @@ routines = \ + old_pthread_cond_signal \ + old_pthread_cond_timedwait \ + old_pthread_cond_wait \ +- pthread_atfork \ + pthread_attr_copy \ + pthread_attr_destroy \ + pthread_attr_extension \ +@@ -204,7 +203,6 @@ routines = \ + vars \ + # routines + +-static-only-routines = pthread_atfork + libpthread-routines = libpthread-compat + libpthread-shared-only-routines = libpthread-compat + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 58c33a8e49d517ad..fa70a33e25f23230 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -145,7 +145,7 @@ tests-time64 := \ + tst-sem5-time64 \ + tst-thrd-sleep-time64 \ + +-static-only-routines = pthread_atfork ++static-only-routines += pthread_atfork + + # Files which must not be linked with libpthread. + tests-nolibpthread += tst-unload diff --git a/SOURCES/glibc-RHEL-83970-5.patch b/SOURCES/glibc-RHEL-83970-5.patch new file mode 100644 index 0000000..6375614 --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-5.patch @@ -0,0 +1,223 @@ +Partial backport (without ABI changes, using libc_nonshared.a instead) +of: + +commit 74d463c50bb1096efef47022405c7db33f83fb5a +Author: Florian Weimer +Date: Wed Mar 12 10:16:31 2025 +0100 + + Linux: Add the pthread_gettid_np function (bug 27880) + + Current Bionic has this function, with enhanced error checking + (the undefined case terminates the process). + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/unix/sysv/linux/*/libc.abilist + (not backported) + nptl/Versions + (not backported) + +The alternate libc_nonshared.a implementation relies on the UAPI +encoding of pthread_getcpuclockid, and avoids a TCB layout +dependency. + +diff --git a/manual/process.texi b/manual/process.texi +index 9307379194c6f666..8535363546520d62 100644 +--- a/manual/process.texi ++++ b/manual/process.texi +@@ -238,6 +238,24 @@ especially regarding reuse of the IDs of threads which have exited. + This function is specific to Linux. + @end deftypefun + ++@deftypefun pid_t pthread_gettid_np (pthread_t @var{thread}) ++@standards{Linux, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++This function returns the same value that @code{gettid} would return if ++executed on the running thread @var{thread}. ++ ++If @var{thread} is no longer running but it is joinable, it is ++unspecified whether this function returns @minus{}1, or if it returns ++the thread ID of the thread while it was running. If @var{thread} is ++not running and is not joinable, the behavior is undefined. ++ ++@strong{Portability Note:} Linux thread IDs can be reused rather quickly, ++so this function differs from the @code{pthread_getunique_np} function ++found on other systems. ++ ++This function is specific to Linux. ++@end deftypefun ++ + @node Creating a Process + @section Creating a Process + +diff --git a/nptl/Makefile b/nptl/Makefile +index d03846c2e04afa2f..cac75eb8f5b68320 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -118,6 +118,7 @@ routines = \ + pthread_getname \ + pthread_getschedparam \ + pthread_getspecific \ ++ pthread_gettid_np \ + pthread_join \ + pthread_join_common \ + pthread_key_create \ +@@ -203,6 +204,10 @@ routines = \ + vars \ + # routines + ++static-only-routines += \ ++ pthread_gettid_np \ ++ # static-only-routines ++ + libpthread-routines = libpthread-compat + libpthread-shared-only-routines = libpthread-compat + +@@ -314,6 +319,7 @@ tests = \ + tst-pthread-timedlock-lockloop \ + tst-pthread_exit-nothreads \ + tst-pthread_exit-nothreads-static \ ++ tst-pthread_gettid_np \ + tst-robust-fork \ + tst-robustpi1 \ + tst-robustpi2 \ +diff --git a/nptl/pthread_gettid_np.c b/nptl/pthread_gettid_np.c +new file mode 100644 +index 0000000000000000..b602eb7a30bf42a5 +--- /dev/null ++++ b/nptl/pthread_gettid_np.c +@@ -0,0 +1,32 @@ ++/* Get the Linux TID from a pthread_t handle. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++#include ++#include ++ ++pid_t ++attribute_hidden ++pthread_gettid_np (pthread_t threadid) ++{ ++ clockid_t clock; ++ if (pthread_getcpuclockid (threadid, &clock) != 0) ++ return -1; ++ /* Reverse the clock ID encoding to obtain the TID. This is part of ++ the kernel/userspace interface, so it is stable ABI. */ ++ return ~(clock >> 3); ++} +diff --git a/nptl/tst-pthread_gettid_np.c b/nptl/tst-pthread_gettid_np.c +new file mode 100644 +index 0000000000000000..6a98d864e222b9f5 +--- /dev/null ++++ b/nptl/tst-pthread_gettid_np.c +@@ -0,0 +1,79 @@ ++/* Test for pthread_gettid_np. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If ++ not, see . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static pthread_barrier_t barrier; ++ ++static pid_t thread_tid; ++ ++static void * ++thread_func (void *ignored) ++{ ++ thread_tid = gettid (); ++ TEST_VERIFY (thread_tid != getpid ()); ++ TEST_COMPARE (thread_tid, pthread_gettid_np (pthread_self ())); ++ xpthread_barrier_wait (&barrier); ++ /* The main thread calls pthread_gettid_np here. */ ++ xpthread_barrier_wait (&barrier); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ TEST_COMPARE (pthread_gettid_np (pthread_self ()), getpid ()); ++ TEST_COMPARE (pthread_gettid_np (pthread_self ()), gettid ()); ++ ++ xpthread_barrier_init (&barrier, NULL, 2); ++ ++ pthread_t thr = xpthread_create (NULL, thread_func, NULL); ++ xpthread_barrier_wait (&barrier); ++ TEST_COMPARE (thread_tid, pthread_gettid_np (thr)); ++ xpthread_barrier_wait (&barrier); ++ ++ while (true) ++ { ++ /* Check if the kernel thread is still running. */ ++ if (tgkill (getpid (), thread_tid, 0)) ++ { ++ TEST_COMPARE (errno, ESRCH); ++ break; ++ } ++ ++ pid_t tid = pthread_gettid_np (thr); ++ if (tid != thread_tid) ++ { ++ TEST_COMPARE (tid, -1); ++ break; ++ } ++ TEST_COMPARE (sched_yield (), 0); ++ } ++ ++ TEST_VERIFY (xpthread_join (thr) == NULL); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h +index 43146e91c9d9579b..b8bd9213da5c9bc0 100644 +--- a/sysdeps/nptl/pthread.h ++++ b/sysdeps/nptl/pthread.h +@@ -1317,6 +1317,11 @@ extern int pthread_getcpuclockid (pthread_t __thread_id, + __THROW __nonnull ((2)); + #endif + ++#ifdef __USE_GNU ++/* Return the Linux TID for THREAD_ID. Returns -1 on failure. */ ++extern pid_t pthread_gettid_np (pthread_t __thread_id); ++#endif ++ + + /* Install handlers to be called when a new process is created with FORK. + The PREPARE handler is called in the parent process just before performing diff --git a/SOURCES/glibc-RHEL-83970-6.patch b/SOURCES/glibc-RHEL-83970-6.patch new file mode 100644 index 0000000..7fe51f5 --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-6.patch @@ -0,0 +1,20 @@ +commit 6e30efe570f1ba135747c6d8f4004e78cd24c49c +Author: Florian Weimer +Date: Wed Mar 12 11:10:14 2025 +0100 + + nptl: Include in tst-pthread_gettid_np.c + + The test uses the while (true) construct. + +diff --git a/nptl/tst-pthread_gettid_np.c b/nptl/tst-pthread_gettid_np.c +index 6a98d864e222b9f5..ced42915106f5390 100644 +--- a/nptl/tst-pthread_gettid_np.c ++++ b/nptl/tst-pthread_gettid_np.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/SOURCES/glibc-RHEL-83970-7.patch b/SOURCES/glibc-RHEL-83970-7.patch new file mode 100644 index 0000000..2ba59e0 --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-7.patch @@ -0,0 +1,21 @@ +commit 74c68fa61b5ebf4c64605a3cc5e47154a66671ce +Author: Florian Weimer +Date: Wed Mar 12 10:23:47 2025 +0100 + + Linux: Remove attribute access from sched_getattr (bug 32781) + + The GCC attribute expects an element count, not bytes. + +diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h +index d4ac158d99e4c350..3bdd258bb987d49b 100644 +--- a/sysdeps/unix/sysv/linux/bits/sched.h ++++ b/sysdeps/unix/sysv/linux/bits/sched.h +@@ -145,7 +145,7 @@ int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags) + store it in *ATTR. */ + int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size, + unsigned int flags) +- __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); ++ __THROW __nonnull ((2)); + + #endif + diff --git a/SOURCES/glibc-RHEL-83970-8.patch b/SOURCES/glibc-RHEL-83970-8.patch new file mode 100644 index 0000000..b6f14f6 --- /dev/null +++ b/SOURCES/glibc-RHEL-83970-8.patch @@ -0,0 +1,149 @@ +commit 1ec411f7aec1bb7fb0992c8e23a42cea306305aa +Author: Florian Weimer +Date: Wed Mar 12 10:23:47 2025 +0100 + + Linux: Add new test misc/tst-sched_setattr-thread + + The straightforward sched_getattr call serves as a test for + bug 32781, too. + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/unix/sysv/linux/Makefile + (Makefile not reformatted downstream) + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index a7004f57a3f40fb1..460ba54a8afcc515 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -138,6 +138,7 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ + tst-linux-mremap1 \ + tst-sched-affinity-inheritance \ + tst-sched_setattr \ ++ tst-sched_setattr-thread \ + # tests + + # Test for the symbol version of fcntl that was replaced in glibc 2.28. +diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c +new file mode 100644 +index 0000000000000000..4600be92fd0a4c28 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c +@@ -0,0 +1,116 @@ ++/* Test for sched_setattr, sched_getattr involving multiple threads. ++ Copyright (C) 2024-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++enum { initial_nice_value = 15 }; ++ ++/* Check that thread TID has nice value EXPECTED. */ ++static void ++check_nice_value (int tid, int expected) ++{ ++ struct sched_attr attr; ++ if (sched_getattr (tid, &attr, sizeof (attr), 0) != 0) ++ FAIL_EXIT1 ("sched_getattr (%d) failed: %m", tid); ++ TEST_COMPARE (attr.sched_policy, SCHED_OTHER); ++ int nice_value = attr.sched_nice; ++ if (attr.sched_nice != expected) ++ FAIL_EXIT1 ("thread %d: expected nice value %d, got %d" ++ " (called from thread %d)", ++ tid, expected, nice_value, (int) gettid ()); ++ printf ("info: thread %d: nice value %d (called from thread %d)\n", ++ tid, nice_value, (int) gettid ()); ++} ++ ++/* Set the nice value for TID to VALUE. */ ++static void ++set_nice_value (int tid, int value) ++{ ++ struct sched_attr attr = ++ { ++ .size = sizeof (attr), ++ .sched_policy = SCHED_OTHER, ++ .sched_nice = value, ++ }; ++ if (sched_setattr (tid, &attr, 0) != 0) ++ FAIL_EXIT1 ("sched_setattr (%d) failed: %m", tid); ++} ++ ++static pthread_barrier_t barrier; ++ ++static void * ++thread_routine (void *nice_value_ptr) ++{ ++ int nice_value = *(int *) nice_value_ptr; ++ /* Check that the nice value was inherited. */ ++ check_nice_value (gettid (), initial_nice_value); ++ xpthread_barrier_wait (&barrier); ++ /* Main thread sets nice value. */ ++ xpthread_barrier_wait (&barrier); ++ check_nice_value (gettid (), nice_value); ++ set_nice_value (gettid (), nice_value + 2); ++ xpthread_barrier_wait (&barrier); ++ /* Main thread sets checks value. */ ++ xpthread_barrier_wait (&barrier); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ if (nice (initial_nice_value) != initial_nice_value) ++ FAIL_UNSUPPORTED ("cannot set nice value to initial_nice_value: %m"); ++ ++ xpthread_barrier_init (&barrier, NULL, 3); ++ ++ check_nice_value (0, initial_nice_value); ++ check_nice_value (gettid (), initial_nice_value); ++ ++ int nice0 = initial_nice_value + 1; ++ pthread_t thr0 = xpthread_create (NULL, thread_routine, &nice0); ++ int nice1 = initial_nice_value + 2; ++ pthread_t thr1 = xpthread_create (NULL, thread_routine, &nice1); ++ check_nice_value (pthread_gettid_np (thr0), initial_nice_value); ++ check_nice_value (pthread_gettid_np (thr1), initial_nice_value); ++ xpthread_barrier_wait (&barrier); ++ set_nice_value (pthread_gettid_np (thr0), nice0); ++ check_nice_value (pthread_gettid_np (thr0), nice0); ++ check_nice_value (pthread_gettid_np (thr1), initial_nice_value); ++ set_nice_value (pthread_gettid_np (thr1), nice1); ++ check_nice_value (pthread_gettid_np (thr0), nice0); ++ check_nice_value (pthread_gettid_np (thr1), nice1); ++ xpthread_barrier_wait (&barrier); ++ /* Threads set nice value. */ ++ xpthread_barrier_wait (&barrier); ++ check_nice_value (pthread_gettid_np (thr0), nice0 + 2); ++ check_nice_value (pthread_gettid_np (thr1), nice1 + 2); ++ xpthread_barrier_wait (&barrier); ++ ++ TEST_VERIFY (xpthread_join (thr1) == NULL); ++ TEST_VERIFY (xpthread_join (thr0) == NULL); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-83980-1.patch b/SOURCES/glibc-RHEL-83980-1.patch new file mode 100644 index 0000000..8cfcfc6 --- /dev/null +++ b/SOURCES/glibc-RHEL-83980-1.patch @@ -0,0 +1,35 @@ +commit 7bb8045ec0595a031e68383849c3fbd9af134312 +Author: Volker Weißmann +Date: Tue Oct 3 19:18:44 2023 +0200 + + Fix FORTIFY_SOURCE false positive + + When -D_FORTIFY_SOURCE=2 was given during compilation, + sprintf and similar functions will check if their + first argument is in read-only memory and exit with + *** %n in writable segment detected *** + otherwise. To check if the memory is read-only, glibc + reads frpm the file "/proc/self/maps". If opening this + file fails due to too many open files (EMFILE), glibc + will now ignore this error. + + Fixes [BZ #30932] + + Signed-off-by: Volker Weißmann + Reviewed-by: Siddhesh Poyarekar + +diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area.c +index fa407d2f05e6b9aa..1f0d2e2749b159c9 100644 +--- a/sysdeps/unix/sysv/linux/readonly-area.c ++++ b/sysdeps/unix/sysv/linux/readonly-area.c +@@ -42,7 +42,9 @@ __readonly_area (const char *ptr, size_t size) + to the /proc filesystem if it is set[ug]id. There has + been no willingness to change this in the kernel so + far. */ +- || errno == EACCES) ++ || errno == EACCES ++ /* Process has reached the maximum number of open files. */ ++ || errno == EMFILE) + return 1; + return -1; + } diff --git a/SOURCES/glibc-RHEL-83980-2.patch b/SOURCES/glibc-RHEL-83980-2.patch new file mode 100644 index 0000000..ff2c372 --- /dev/null +++ b/SOURCES/glibc-RHEL-83980-2.patch @@ -0,0 +1,121 @@ +commit be7a5468d4f694ee8d052b537141f51af43ca7f2 +Author: Adhemerval Zanella +Date: Tue Oct 3 15:09:36 2023 -0300 + + debug: Add regression tests for BZ 30932 + + Checked on x86_64-linux-gnu. + Reviewed-by: Siddhesh Poyarekar + +Conflicts: + debug/Makefile: Usual test differences; removed use of + missing configure variable no-fortify-source. + +diff --git a/debug/Makefile b/debug/Makefile +index 563e6249121e8bc9..cb93ed80da57f2cc 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -110,6 +110,7 @@ CPPFLAGS-tst-longjmp_chk2.c += -D_FORTIFY_SOURCE=1 + CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly.c += -D_FORTIFY_SOURCE=2 + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -203,6 +204,7 @@ tests = backtrace-tst \ + tst-backtrace5 \ + tst-backtrace6 \ + tst-realpath-chk \ ++ tst-sprintf-fortify-rdonly \ + tst-sprintf-fortify-unchecked \ + $(tests-all-chk) \ + +diff --git a/debug/tst-sprintf-fortify-rdonly.c b/debug/tst-sprintf-fortify-rdonly.c +new file mode 100644 +index 0000000000000000..78dece9102d7dfd3 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly.c +@@ -0,0 +1,82 @@ ++/* Testcase for BZ 30932. ++ Copyright (C) 2023 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++jmp_buf chk_fail_buf; ++bool chk_fail_ok; ++ ++const char *str2 = "F"; ++char buf2[10] = "%s"; ++ ++static int ++do_test (void) ++{ ++ struct rlimit rl; ++ int max_fd = 24; ++ ++ if (getrlimit (RLIMIT_NOFILE, &rl) == -1) ++ FAIL_EXIT1 ("getrlimit (RLIMIT_NOFILE): %m"); ++ ++ max_fd = (rl.rlim_cur < max_fd ? rl.rlim_cur : max_fd); ++ rl.rlim_cur = max_fd; ++ ++ if (setrlimit (RLIMIT_NOFILE, &rl) == 1) ++ FAIL_EXIT1 ("setrlimit (RLIMIT_NOFILE): %m"); ++ ++ /* Exhaust the file descriptor limit with temporary files. */ ++ int nfiles = 0; ++ for (; nfiles < max_fd; nfiles++) ++ { ++ int fd = create_temp_file ("tst-sprintf-fortify-rdonly-.", NULL); ++ if (fd == -1) ++ { ++ if (errno != EMFILE) ++ FAIL_EXIT1 ("create_temp_file: %m"); ++ break; ++ } ++ } ++ TEST_VERIFY_EXIT (nfiles != 0); ++ ++ /* When the format string is writable and contains %n, ++ with -D_FORTIFY_SOURCE=2 it causes __chk_fail. However, if libc can not ++ open procfs to check if the input format string in within a writable ++ memory segment, the fortify version can not perform the check. */ ++ char buf[128]; ++ int n1; ++ int n2; ++ ++ strcpy (buf2 + 2, "%n%s%n"); ++ if (sprintf (buf, buf2, str2, &n1, str2, &n2) != 2 ++ || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-83980-3.patch b/SOURCES/glibc-RHEL-83980-3.patch new file mode 100644 index 0000000..26d8e7c --- /dev/null +++ b/SOURCES/glibc-RHEL-83980-3.patch @@ -0,0 +1,722 @@ +commit ed6a68bac7cd056abda9008019c71b167f0362dc +Author: Adhemerval Zanella +Date: Fri Mar 14 16:09:57 2025 -0300 + + debug: Improve '%n' fortify detection (BZ 30932) + + The 7bb8045ec0 path made the '%n' fortify check ignore EMFILE errors + while trying to open /proc/self/maps, and this added a security + issue where EMFILE can be attacker-controlled thus making it + ineffective for some cases. + + The EMFILE failure is reinstated but with a different error + message. Also, to improve the false positive of the hardening for + the cases where no new files can be opened, the + _dl_readonly_area now uses _dl_find_object to check if the + memory area is within a writable ELF segment. The procfs method is + still used as fallback. + + Checked on x86_64-linux-gnu and i686-linux-gnu. + Reviewed-by: Arjun Shankar + +Changes: + elf/dl-readonly-area.c: Adjust for missing _dl_find_object; use + _dl_find_dso_for_object instead. + +Conflicts: + + Makeconfig: rpath-dirs list difference. + + debug/Makefile: Usual test difference, missing no-fortify-source + + elf/Makefile: Usual test difference. + + elf/rtld.c: rtld_global_ro struct field difference. + + stdio-common/vfprintf-internal.c: Adjust for missing changes: + 1. e88b9f0e5cc50cab57a299dc7efe1a4eb385161d: + "stdio-common: Convert vfprintf and related functions to buffers" + 2. 5442ea7ffe79dfef3b89e21f46211cc42d347210: + "vfprintf: Move argument processing into vfprintf-process-arg.c" + + stdio-common/vfprintf-process-arg.c: Missing file. Changes folded + into stdio-common/vfprintf-internal.c. + +diff --git a/Makeconfig b/Makeconfig +index 89a2881b1ef605e4..ee79d7be396d1c08 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -609,7 +609,7 @@ link-libc-printers-tests = $(link-libc-rpath) \ + $(link-libc-tests-after-rpath-link) + + # This is how to find at build-time things that will be installed there. +-rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support ++rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support debug + rpath-link = \ + $(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%))) + else # build-static +diff --git a/debug/Makefile b/debug/Makefile +index cb93ed80da57f2cc..63395fc626610a53 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -51,6 +51,7 @@ routines = backtrace backtracesyms backtracesymsfd noophooks \ + fdelt_chk poll_chk ppoll_chk \ + explicit_bzero_chk \ + stack_chk_fail fortify_fail \ ++ readonly-area-fallback \ + $(static-only-routines) + static-only-routines := stack_chk_fail_local + +@@ -111,6 +112,12 @@ CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables + CPPFLAGS-tst-longjmp_chk3.c += -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += -D_FORTIFY_SOURCE=2 + CFLAGS-tst-sprintf-fortify-rdonly.c += -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly-mod.c += -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly-dlopen.c += -D_FORTIFY_SOURCE=2 ++ ++$(objpfx)tst-sprintf-fortify-rdonly: \ ++ $(objpfx)tst-sprintf-fortify-rdonly-mod.so \ ++ $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -208,6 +215,11 @@ tests = backtrace-tst \ + tst-sprintf-fortify-unchecked \ + $(tests-all-chk) \ + ++modules-names += \ ++ tst-sprintf-fortify-rdonly-dlopen \ ++ tst-sprintf-fortify-rdonly-mod \ ++ # modules-names ++ + ifeq ($(have-ssp),yes) + tests += tst-ssp-1 + endif +diff --git a/debug/readonly-area.c b/debug/readonly-area.c +index 06302212b15e5262..0648121846cdd5d1 100644 +--- a/debug/readonly-area.c ++++ b/debug/readonly-area.c +@@ -16,18 +16,19 @@ + . */ + + #include ++#include + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int ++enum readonly_error_type + __readonly_area (const void *ptr, size_t size) + { +- /* We cannot determine in general whether memory is writable or not. +- This must be handled in a system-dependent manner. to not +- unconditionally break code we need to return here a positive +- answer. This disables this security measure but that is the +- price people have to pay for using systems without a real +- implementation of this interface. */ +- return 1; ++ switch (GLRO(dl_readonly_area (ptr, size))) ++ { ++ case dl_readonly_area_rdonly: ++ return readonly_noerror; ++ case dl_readonly_area_writable: ++ return readonly_area_writable; ++ default: ++ break; ++ } ++ return __readonly_area_fallback (ptr, size); + } +diff --git a/debug/tst-sprintf-fortify-rdonly-dlopen.c b/debug/tst-sprintf-fortify-rdonly-dlopen.c +new file mode 100644 +index 0000000000000000..7da3f51f16421f79 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly-dlopen.c +@@ -0,0 +1 @@ ++#include "tst-sprintf-fortify-rdonly-mod.c" +diff --git a/debug/tst-sprintf-fortify-rdonly-mod.c b/debug/tst-sprintf-fortify-rdonly-mod.c +new file mode 100644 +index 0000000000000000..3655f27b321eb381 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly-mod.c +@@ -0,0 +1,56 @@ ++/* Testcase for BZ 30932. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++static const char *str2 = "F"; ++static char writeable_format[10] = "%s"; ++static char relro_format[10] __attribute__ ((section (".data.rel.ro"))) = ++ "%s%n%s%n"; ++ ++void ++init_writable (void) ++{ ++ strcpy (writeable_format + 2, "%n%s%n"); ++} ++ ++int ++sprintf_writable (int *n1, int *n2) ++{ ++ char buf[128]; ++ return sprintf (buf, writeable_format, str2, n1, str2, n2); ++} ++ ++int ++sprintf_relro (int *n1, int *n2) ++{ ++ char buf[128]; ++ return sprintf (buf, relro_format, str2, n1, str2, n2); ++} ++ ++int ++sprintf_writable_malloc (int *n1, int *n2) ++{ ++ char buf[128]; ++ char *buf2_malloc = strdup (writeable_format); ++ if (buf2_malloc == NULL) ++ abort (); ++ return sprintf (buf, buf2_malloc, str2, n1, str2, n2); ++} +diff --git a/debug/tst-sprintf-fortify-rdonly.c b/debug/tst-sprintf-fortify-rdonly.c +index 78dece9102d7dfd3..d47a0b1600a35e84 100644 +--- a/debug/tst-sprintf-fortify-rdonly.c ++++ b/debug/tst-sprintf-fortify-rdonly.c +@@ -27,16 +27,64 @@ + #include + #include + #include ++#include + +-jmp_buf chk_fail_buf; +-bool chk_fail_ok; ++static sigjmp_buf chk_fail_buf; ++static volatile int ret; ++static bool chk_fail_ok; + +-const char *str2 = "F"; +-char buf2[10] = "%s"; ++static void ++handler (int sig) ++{ ++ if (chk_fail_ok) ++ { ++ chk_fail_ok = false; ++ longjmp (chk_fail_buf, 1); ++ } ++ else ++ _exit (127); ++} ++ ++#define FORTIFY_FAIL \ ++ do { printf ("Failure on line %d\n", __LINE__); ret = 1; } while (0) ++#define CHK_FAIL_START \ ++ chk_fail_ok = true; \ ++ if (! sigsetjmp (chk_fail_buf, 1)) \ ++ { ++#define CHK_FAIL_END \ ++ chk_fail_ok = false; \ ++ FORTIFY_FAIL; \ ++ } ++ ++static const char *str2 = "F"; ++static char writeable_format[10] = "%s"; ++static char relro_format[10] __attribute__ ((section (".data.rel.ro"))) = ++ "%s%n%s%n"; ++ ++extern void init_writable (void); ++extern int sprintf_writable (int *, int *); ++extern int sprintf_relro (int *, int *); ++extern int sprintf_writable_malloc (int *, int *); ++ ++#define str(__x) # __x ++void (*init_writable_dlopen)(void); ++int (*sprintf_writable_dlopen)(int *, int *); ++int (*sprintf_rdonly_dlopen)(int *, int *); ++int (*sprintf_writable_malloc_dlopen)(int *, int *); + + static int + do_test (void) + { ++ set_fortify_handler (handler); ++ ++ { ++ void *h = xdlopen ("tst-sprintf-fortify-rdonly-dlopen.so", RTLD_NOW); ++ init_writable_dlopen = xdlsym (h, str(init_writable)); ++ sprintf_writable_dlopen = xdlsym (h, str(sprintf_writable)); ++ sprintf_rdonly_dlopen = xdlsym (h, str(sprintf_relro)); ++ sprintf_writable_malloc_dlopen = xdlsym (h, str(sprintf_writable_malloc)); ++ } ++ + struct rlimit rl; + int max_fd = 24; + +@@ -63,20 +111,94 @@ do_test (void) + } + TEST_VERIFY_EXIT (nfiles != 0); + +- /* When the format string is writable and contains %n, +- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. However, if libc can not +- open procfs to check if the input format string in within a writable +- memory segment, the fortify version can not perform the check. */ +- char buf[128]; +- int n1; +- int n2; +- +- strcpy (buf2 + 2, "%n%s%n"); +- if (sprintf (buf, buf2, str2, &n1, str2, &n2) != 2 +- || n1 != 1 || n2 != 2) +- FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); +- +- return 0; ++ strcpy (writeable_format + 2, "%n%s%n"); ++ init_writable (); ++ init_writable_dlopen (); ++ ++ /* writeable_format is at a writable part of .bss segment, so libc should be ++ able to check it without resorting to procfs. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf (buf, writeable_format, str2, &n1, str2, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_dlopen (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* relro_format is at a readonly part of .bss segment, so '%n' in format input ++ should not trigger a fortify failure. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ if (sprintf (buf, relro_format, str2, &n1, str2, &n2) != 2 ++ || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ if (sprintf_relro (&n1, &n2) != 2 || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %d %d", n1, n2); ++ } ++ ++ { ++ int n1; ++ int n2; ++ if (sprintf_rdonly_dlopen (&n1, &n2) != 2 || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %d %d", n1, n2); ++ } ++ ++ /* However if the format string is placed on a writable memory not covered ++ by ELF segments, libc needs to resort to procfs. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ char *buf2_malloc = xstrdup (writeable_format); ++ CHK_FAIL_START ++ sprintf (buf, buf2_malloc, str2, &n1, str2, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_malloc (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_malloc_dlopen (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ return ret; + } + + #include +diff --git a/elf/Makefile b/elf/Makefile +index ec0d67b1549823ad..46a800a4559e0e46 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -68,6 +68,7 @@ dl-routines = \ + dl-origin \ + dl-printf \ + dl-profile \ ++ dl-readonly-area \ + dl-reloc \ + dl-rseq-symbols \ + dl-runtime \ +diff --git a/elf/dl-readonly-area.c b/elf/dl-readonly-area.c +new file mode 100644 +index 0000000000000000..570b99b11527db13 +--- /dev/null ++++ b/elf/dl-readonly-area.c +@@ -0,0 +1,91 @@ ++/* Check if range is within a read-only from a loaded ELF object. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++static bool ++check_relro (const struct link_map *l, uintptr_t start, uintptr_t end) ++{ ++ if (l->l_relro_addr != 0) ++ { ++ uintptr_t relro_start = ALIGN_DOWN (l->l_addr + l->l_relro_addr, ++ GLRO(dl_pagesize)); ++ uintptr_t relro_end = ALIGN_DOWN (l->l_addr + l->l_relro_addr ++ + l->l_relro_size, ++ GLRO(dl_pagesize)); ++ /* RELRO is caved out from a RW segment, so the next range is either ++ RW or nonexistent. */ ++ return relro_start <= start && end <= relro_end ++ ? dl_readonly_area_rdonly : dl_readonly_area_writable; ++ ++ } ++ return dl_readonly_area_writable; ++} ++ ++enum dl_readonly_area_error_type ++_dl_readonly_area (const void *ptr, size_t size) ++{ ++ /* Protect against concurrent loads and unloads. */ ++ __rtld_lock_lock_recursive (GL(dl_load_lock)); ++ ++ const struct link_map *l = _dl_find_dso_for_object ((ElfW(Addr)) ptr); ++ ++ __rtld_lock_unlock_recursive (GL(dl_load_lock)); ++ ++ if (l == NULL) ++ return dl_readonly_area_not_found; ++ ++ uintptr_t ptr_start = (uintptr_t) ptr; ++ uintptr_t ptr_end = ptr_start + size; ++ ++ for (const ElfW(Phdr) *ph = l->l_phdr; ph < &l->l_phdr[l->l_phnum]; ++ph) ++ if (ph->p_type == PT_LOAD) ++ { ++ /* For segments with alignment larger than the page size, ++ _dl_map_segment allocates additional space that is mark as ++ PROT_NONE (so we can ignore). */ ++ uintptr_t from = l->l_addr ++ + ALIGN_DOWN (ph->p_vaddr, GLRO(dl_pagesize)); ++ uintptr_t to = l->l_addr ++ + ALIGN_UP (ph->p_vaddr + ph->p_filesz, GLRO(dl_pagesize)); ++ ++ /* Found an entry that at least partially covers the area. */ ++ if (from < ptr_end && to > ptr_start) ++ { ++ if (ph->p_flags & PF_W) ++ return check_relro (l, ptr_start, ptr_end); ++ ++ if ((ph->p_flags & PF_R) == 0) ++ return dl_readonly_area_writable; ++ ++ if (from <= ptr_start && to >= ptr_end) ++ return dl_readonly_area_rdonly; ++ else if (from <= ptr_start) ++ size -= to - ptr_start; ++ else if (to >= ptr_end) ++ size -= ptr_end - from; ++ else ++ size -= to - from; ++ ++ if (size == 0) ++ break; ++ } ++ } ++ ++ return size == 0 ? dl_readonly_area_rdonly : dl_readonly_area_not_found; ++} +diff --git a/elf/rtld.c b/elf/rtld.c +index d02ecc834c9a4d43..d421750734e113e6 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -381,8 +381,9 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, + #ifdef HAVE_DL_DISCOVER_OSVERSION +- ._dl_discover_osversion = _dl_discover_osversion ++ ._dl_discover_osversion = _dl_discover_osversion, + #endif ++ ._dl_readonly_area = _dl_readonly_area, + }; + /* If we would use strong_alias here the compiler would see a + non-hidden definition. This would undo the effect of the previous +diff --git a/include/stdlib.h b/include/stdlib.h +index 1c6f70b0820ced97..22c9fb65c3074765 100644 +--- a/include/stdlib.h ++++ b/include/stdlib.h +@@ -314,6 +314,21 @@ struct abort_msg_s + extern struct abort_msg_s *__abort_msg; + libc_hidden_proto (__abort_msg) + ++enum readonly_error_type ++{ ++ readonly_noerror, ++ readonly_area_writable, ++ readonly_procfs_inaccessible, ++ readonly_procfs_open_fail, ++}; ++ ++extern enum readonly_error_type __readonly_area (const void *ptr, ++ size_t size) ++ attribute_hidden; ++extern enum readonly_error_type __readonly_area_fallback (const void *ptr, ++ size_t size) ++ attribute_hidden; ++ + # if IS_IN (rtld) + extern __typeof (unsetenv) unsetenv attribute_hidden; + extern __typeof (__strtoul_internal) __strtoul_internal attribute_hidden; +diff --git a/stdio-common/vfprintf-internal.c b/stdio-common/vfprintf-internal.c +index 53d93b2f07ecb261..bb1b800a126fd47b 100644 +--- a/stdio-common/vfprintf-internal.c ++++ b/stdio-common/vfprintf-internal.c +@@ -1048,16 +1048,25 @@ static const uint8_t jump_table[] = + LABEL (form_number): \ + if ((mode_flags & PRINTF_FORTIFY) != 0) \ + { \ +- if (! readonly_format) \ +- { \ +- extern int __readonly_area (const void *, size_t) \ +- attribute_hidden; \ +- readonly_format \ +- = __readonly_area (format, ((STR_LEN (format) + 1) \ +- * sizeof (CHAR_T))); \ +- } \ +- if (readonly_format < 0) \ +- __libc_fatal ("*** %n in writable segment detected ***\n"); \ ++ if (readonly_format == readonly_noerror) \ ++ readonly_format = __readonly_area (format, ((STR_LEN (format) + 1)\ ++ * sizeof (CHAR_T))); \ ++ switch (readonly_format) \ ++ { \ ++ case readonly_area_writable: \ ++ __libc_fatal ("*** %n in writable segments detected ***\n"); \ ++ /* The format is not within ELF segments and opening /proc/self/maps\ ++ failed because there are too many files. */ \ ++ case readonly_procfs_open_fail: \ ++ __libc_fatal ("*** procfs could not open ***\n"); \ ++ /* The /proc/self/maps can not be opened either because it is not \ ++ available or the process does not have the right permission. \ ++ Since it should not be attacker-controlled we can avoid \ ++ failure. */ \ ++ case readonly_procfs_inaccessible: \ ++ case readonly_noerror: \ ++ break; \ ++ } \ + } \ + /* Answer the count of characters written. */ \ + if (fspec == NULL) \ +@@ -1299,7 +1308,8 @@ static int buffered_vfprintf (FILE *stream, const CHAR_T *fmt, va_list, + + /* Handle positional format specifiers. */ + static int printf_positional (FILE *s, +- const CHAR_T *format, int readonly_format, ++ const CHAR_T *format, ++ enum readonly_error_type readonly_format, + va_list ap, va_list *ap_savep, int done, + int nspecs_done, const UCHAR_T *lead_str_end, + CHAR_T *work_buffer, int save_errno, +@@ -1350,9 +1360,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap, unsigned int mode_flags) + /* For the %m format we may need the current `errno' value. */ + int save_errno = errno; + +- /* 1 if format is in read-only memory, -1 if it is in writable memory, +- 0 if unknown. */ +- int readonly_format = 0; ++ enum readonly_error_type readonly_format = readonly_noerror; + + /* Orient the stream. */ + #ifdef ORIENT +@@ -1693,7 +1701,8 @@ do_positional: + } + + static int +-printf_positional (FILE *s, const CHAR_T *format, int readonly_format, ++printf_positional (FILE *s, const CHAR_T *format, ++ enum readonly_error_type readonly_format, + va_list ap, va_list *ap_savep, int done, int nspecs_done, + const UCHAR_T *lead_str_end, + CHAR_T *work_buffer, int save_errno, +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 1c9ce3e57d59da9a..15c21491a291d1ae 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -283,6 +283,12 @@ struct audit_ifaces + struct audit_ifaces *next; + }; + ++enum dl_readonly_area_error_type ++{ ++ dl_readonly_area_rdonly, ++ dl_readonly_area_writable, ++ dl_readonly_area_not_found, ++}; + + /* Test whether given NAME matches any of the names of the given object. */ + extern int _dl_name_match_p (const char *__name, const struct link_map *__map) +@@ -711,6 +717,10 @@ struct rtld_global_ro + int (*_dl_discover_osversion) (void); + #endif + ++ /* Implementation of _dl_readonly_area, used in fortify routines to check ++ if memory area is within a read-only ELF segment. */ ++ enum dl_readonly_area_error_type (*_dl_readonly_area) (const void *, size_t); ++ + /* Dynamic linker operations used after static dlopen. */ + const struct dlfcn_hook *_dl_dlfcn_hook; + +@@ -1327,6 +1337,10 @@ extern void _dl_show_scope (struct link_map *new, int from) + extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr); + rtld_hidden_proto (_dl_find_dso_for_object) + ++extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr, ++ size_t size) ++ attribute_hidden; ++ + /* Initialization which is normally done by the dynamic linker. */ + extern void _dl_non_dynamic_init (void) + attribute_hidden; +diff --git a/sysdeps/mach/readonly-area.c b/sysdeps/mach/readonly-area-fallback.c +similarity index 90% +rename from sysdeps/mach/readonly-area.c +rename to sysdeps/mach/readonly-area-fallback.c +index 537af6de8ecc217e..14fedc0e1ac078d4 100644 +--- a/sysdeps/mach/readonly-area.c ++++ b/sysdeps/mach/readonly-area-fallback.c +@@ -20,11 +20,8 @@ + #include + #include + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int +-__readonly_area (const char *ptr, size_t size) ++enum readonly_error_type ++__readonly_area_fallback (const void *ptr, size_t size) + { + vm_address_t region_address = (uintptr_t) ptr; + vm_size_t region_length = size; +@@ -46,11 +43,11 @@ __readonly_area (const char *ptr, size_t size) + continue; + + if (protection & VM_PROT_WRITE) +- return -1; ++ return readonly_area_writable; + + if (region_address - (uintptr_t) ptr >= size) + break; + } + +- return 1; ++ return readonly_noerror; + } +diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area-fallback.c +similarity index 84% +rename from sysdeps/unix/sysv/linux/readonly-area.c +rename to sysdeps/unix/sysv/linux/readonly-area-fallback.c +index 1f0d2e2749b159c9..b1d207106b3e16b8 100644 +--- a/sysdeps/unix/sysv/linux/readonly-area.c ++++ b/sysdeps/unix/sysv/linux/readonly-area-fallback.c +@@ -23,11 +23,8 @@ + #include + #include "libio/libioP.h" + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int +-__readonly_area (const char *ptr, size_t size) ++enum readonly_error_type ++__readonly_area_fallback (const void *ptr, size_t size) + { + const void *ptr_end = ptr + size; + +@@ -42,11 +39,11 @@ __readonly_area (const char *ptr, size_t size) + to the /proc filesystem if it is set[ug]id. There has + been no willingness to change this in the kernel so + far. */ +- || errno == EACCES +- /* Process has reached the maximum number of open files. */ +- || errno == EMFILE) +- return 1; +- return -1; ++ || errno == EACCES) ++ return readonly_procfs_inaccessible; ++ /* Process has reached the maximum number of open files or another ++ unusual error. */ ++ return readonly_procfs_open_fail; + } + + /* We need no locking. */ +@@ -98,7 +95,5 @@ __readonly_area (const char *ptr, size_t size) + fclose (fp); + free (line); + +- /* If the whole area between ptr and ptr_end is covered by read-only +- VMAs, return 1. Otherwise return -1. */ +- return size == 0 ? 1 : -1; ++ return size == 0 ? readonly_noerror : readonly_area_writable; + } diff --git a/SOURCES/glibc-RHEL-83980-4.patch b/SOURCES/glibc-RHEL-83980-4.patch new file mode 100644 index 0000000..91d107e --- /dev/null +++ b/SOURCES/glibc-RHEL-83980-4.patch @@ -0,0 +1,70 @@ +Downstream-only patch to restore internal GLIBC_PRIVATE ABI change due +to glibc-RHEL-80538-3.patch. Adding an entry to rtld_global_ro struct +changes offsets. This patch corrects that. + +diff --git a/debug/readonly-area.c b/debug/readonly-area.c +index 0648121846cdd5d1..86e3e9b9c3b03958 100644 +--- a/debug/readonly-area.c ++++ b/debug/readonly-area.c +@@ -21,7 +21,7 @@ + enum readonly_error_type + __readonly_area (const void *ptr, size_t size) + { +- switch (GLRO(dl_readonly_area (ptr, size))) ++ switch (_dl_readonly_area (ptr, size)) + { + case dl_readonly_area_rdonly: + return readonly_noerror; +diff --git a/elf/Versions b/elf/Versions +index 4b8b155d8e2bef70..17834c7d1c371e1d 100644 +--- a/elf/Versions ++++ b/elf/Versions +@@ -70,5 +70,8 @@ ld { + + # Set value of a tunable. + __tunable_get_val; ++ ++ # Check if an address range within a loaded ELF object is read-only. ++ _dl_readonly_area; + } + } +diff --git a/elf/rtld.c b/elf/rtld.c +index d421750734e113e6..d02ecc834c9a4d43 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -381,9 +381,8 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, + #ifdef HAVE_DL_DISCOVER_OSVERSION +- ._dl_discover_osversion = _dl_discover_osversion, ++ ._dl_discover_osversion = _dl_discover_osversion + #endif +- ._dl_readonly_area = _dl_readonly_area, + }; + /* If we would use strong_alias here the compiler would see a + non-hidden definition. This would undo the effect of the previous +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 15c21491a291d1ae..537d1293c7b5543b 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -717,10 +717,6 @@ struct rtld_global_ro + int (*_dl_discover_osversion) (void); + #endif + +- /* Implementation of _dl_readonly_area, used in fortify routines to check +- if memory area is within a read-only ELF segment. */ +- enum dl_readonly_area_error_type (*_dl_readonly_area) (const void *, size_t); +- + /* Dynamic linker operations used after static dlopen. */ + const struct dlfcn_hook *_dl_dlfcn_hook; + +@@ -1338,8 +1334,7 @@ extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr); + rtld_hidden_proto (_dl_find_dso_for_object) + + extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr, +- size_t size) +- attribute_hidden; ++ size_t size); + + /* Initialization which is normally done by the dynamic linker. */ + extern void _dl_non_dynamic_init (void) diff --git a/SOURCES/glibc-RHEL-83982-1.patch b/SOURCES/glibc-RHEL-83982-1.patch new file mode 100644 index 0000000..8281a0e --- /dev/null +++ b/SOURCES/glibc-RHEL-83982-1.patch @@ -0,0 +1,124 @@ +From 81e74c8676479811601b5894d72bb3d7e05f68dd Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Fri, 14 Mar 2025 16:08:12 -0400 +Subject: add ptmx support to test-container + +Conflicts: + support/Makefile (context, line numbers) + support/test-container.c (line numbers) + +diff --git a/support/Makefile b/support/Makefile +index dfe8e547f6..d41278eeab 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -324,6 +324,7 @@ tests = \ + tst-support_format_dns_packet \ + tst-support_fuse \ + tst-support-open-dev-null-range \ ++ tst-support-openpty \ + tst-support-process_state \ + tst-support_quote_blob \ + tst-support_quote_blob_wide \ +@@ -340,6 +341,10 @@ tests = \ + tst-xsigstack \ + # tests + ++tests-container = \ ++ tst-support-openpty-c \ ++ # tests-container ++ + ifeq ($(run-built-tests),yes) + tests-special = \ + $(objpfx)tst-support_record_failure-2.out +diff --git a/support/test-container.c b/support/test-container.c +index 79d3189e2f..a641250079 100644 +--- a/support/test-container.c ++++ b/support/test-container.c +@@ -1149,6 +1149,9 @@ main (int argc, char **argv) + devmount (new_root_path, "null"); + devmount (new_root_path, "zero"); + devmount (new_root_path, "urandom"); ++#ifdef __linux__ ++ devmount (new_root_path, "ptmx"); ++#endif + + /* We're done with the "old" root, switch to the new one. */ + if (chroot (new_root_path) < 0) +@@ -1214,6 +1217,14 @@ main (int argc, char **argv) + + maybe_xmkdir ("/tmp", 0755); + ++#ifdef __linux__ ++ maybe_xmkdir ("/dev/pts", 0777); ++ if (mount ("/dev/pts", "/dev/pts", "devpts", 0, "newinstance,ptmxmode=0666,mode=0666") < 0) ++ FAIL_EXIT1 ("can't mount /dev/pts: %m\n"); ++ if (mount ("/dev/pts/ptmx", "/dev/ptmx", "", MS_BIND | MS_REC, NULL) < 0) ++ FAIL_EXIT1 ("can't mount /dev/ptmx\n"); ++#endif ++ + if (require_pidns) + { + /* Now that we're pid 1 (effectively "root") we can mount /proc */ +diff --git a/support/tst-support-openpty-c.c b/support/tst-support-openpty-c.c +new file mode 100644 +index 0000000000..0a6a428fc3 +--- /dev/null ++++ b/support/tst-support-openpty-c.c +@@ -0,0 +1,2 @@ ++/* Same test, but in a test-container. */ ++#include "tst-support-openpty.c" +diff --git a/support/tst-support-openpty.c b/support/tst-support-openpty.c +new file mode 100644 +index 0000000000..1222d7018f +--- /dev/null ++++ b/support/tst-support-openpty.c +@@ -0,0 +1,49 @@ ++/* Basic test for support_openpty support in test-container. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* Note: the purpose of this test isn't to test if ptys function ++ correctly, but only to verify that test-container's support for ++ them is correct. The many checks in support_openpty.c are ++ sufficient for this. */ ++ ++int ++do_test (void) ++{ ++ int outer, inner; ++ char *name; ++ struct termios term; ++ struct winsize win; ++ ++ cfmakeraw (&term); ++ win.ws_row = 24; ++ win.ws_col = 80; ++ ++ support_openpty (&outer, &inner, &name, &term, &win); ++ ++ return 0; ++} ++ ++#include diff --git a/SOURCES/glibc-RHEL-83982-2.patch b/SOURCES/glibc-RHEL-83982-2.patch new file mode 100644 index 0000000..9e96eb7 --- /dev/null +++ b/SOURCES/glibc-RHEL-83982-2.patch @@ -0,0 +1,1092 @@ +From 95b780c1d0549678c0a244c6e2112ec97edf0839 Mon Sep 17 00:00:00 2001 +From: DJ Delorie +Date: Fri, 14 Mar 2025 16:08:35 -0400 +Subject: stdio: Add more setvbuf tests + + +Conflicts: + stdio-common/Makefile (context, line numbers) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 31f40cf57c..3fd33b836d 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -304,6 +304,11 @@ endif + endif + endif + ++tests-internal = \ ++ tst-setvbuf2 \ ++ tst-setvbuf2-ind \ ++ # tests-internal ++ + test-srcs = \ + $(xprintf-srcs) \ + $(xscanf-srcs) \ +@@ -348,6 +353,11 @@ tests-special += \ + $(objpfx)tst-vfprintf-width-prec-mem.out \ + # tests-special + ++tests-container += \ ++ tst-setvbuf2 \ ++ tst-setvbuf2-ind ++ # tests-container ++ + generated += \ + $(foreach f,$(xprintf-stems),$(f)-mem.out) \ + $(foreach f,$(xprintf-stems),$(f).mtrace) \ +@@ -602,6 +612,10 @@ $(objpfx)tst-setvbuf1-cmp.out: tst-setvb + cmp $^ > $@; \ + $(evaluate-test) + ++CFLAGS-tst-setvbuf2.c += -DIND_PROC=\"$(objpfx)tst-setvbuf2-ind\" ++$(objpfx)tst-setvbuf2-ind : $(objpfx)tst-setvbuf2-ind.o ++$(objpfx)tst-setvbuf2.out: $(objpfx)tst-setvbuf2-ind ++ + $(objpfx)tst-printf-round: $(libm) + $(objpfx)tst-scanf-round: $(libm) + +diff --git a/stdio-common/tst-setvbuf2-ind.c b/stdio-common/tst-setvbuf2-ind.c +new file mode 100644 +index 0000000000..fda2942c24 +--- /dev/null ++++ b/stdio-common/tst-setvbuf2-ind.c +@@ -0,0 +1,2 @@ ++#define INDEPENDENT_PART 1 ++#include "tst-setvbuf2.c" +diff --git a/stdio-common/tst-setvbuf2.c b/stdio-common/tst-setvbuf2.c +new file mode 100644 +index 0000000000..6cc83355f3 +--- /dev/null ++++ b/stdio-common/tst-setvbuf2.c +@@ -0,0 +1,1030 @@ ++/* Test setvbuf under various conditions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* This file is used twice, once as the test itself (where do_test ++ is defined) and once as a subprocess we spawn to test stdin et all ++ (where main is defined). INDEPENDENT_PART is defined for the ++ latter. ++ ++ Note also that the purpose of this test is to test setvbuf, not the ++ underlying buffering code. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Dear future developer: If you are reading this, you are likely ++ trying to change or understand this test. In that case, these ++ debug/dump macros will be helpful. */ ++#if 0 ++# define debug printf ("\033[3%dm%s:%d\033[0m\n", \ ++ (__LINE__ % 6) + 1, __FUNCTION__, __LINE__); ++ ++static void ++dumpfp (FILE *fp) ++{ ++ char f[10], *p=f; ++ ++ if (fp->_flags & _IO_UNBUFFERED) ++ *p++ = 'N'; ++ if (fp->_flags & _IO_LINE_BUF) ++ *p++ = 'L'; ++ if (p == f) ++ *p++ = 'B'; ++ *p = 0; ++ ++ printf ("FILE %p flags %s" ++ " read %p \033[%dm%+ld \033[%dm%+ld\033[0m" ++ " write %p \033[%dm%+ld \033[%dm%+ld\033[0m %ld" ++ " buf %p \033[%dm%+ld\033[0m sz %ld pend %ld\n", ++ fp, f, ++ ++ fp->_IO_read_base, ++ fp->_IO_read_ptr == fp->_IO_read_base ? 33 : 32, ++ fp->_IO_read_ptr - fp->_IO_read_base, ++ fp->_IO_read_end == fp->_IO_read_base ? 33 : 36, ++ fp->_IO_read_end - fp->_IO_read_base, ++ ++ fp->_IO_write_base, ++ fp->_IO_write_ptr == fp->_IO_write_base ? 33 : 32, ++ fp->_IO_write_ptr - fp->_IO_write_base, ++ fp->_IO_write_end == fp->_IO_write_base ? 33 : 36, ++ fp->_IO_write_end - fp->_IO_write_base, ++ fp->_IO_write_end - fp->_IO_write_base, ++ ++ fp->_IO_buf_base, ++ fp->_IO_buf_end == fp->_IO_buf_base ? 33 : 35, ++ fp->_IO_buf_end - fp->_IO_buf_base, ++ __fbufsize (fp), __fpending (fp) ++ ); ++} ++#else ++# define debug ++# define dumpfp(FP) ++#endif ++ ++#ifndef INDEPENDENT_PART ++/* st_blksize value for that file, or BUFSIZ if out of range. */ ++static int blksize = BUFSIZ; ++#endif ++ ++/* Our test buffer. */ ++#define TEST_BUFSIZE 42 ++static int bufsize = TEST_BUFSIZE < BUFSIZ ? TEST_BUFSIZE : BUFSIZ; ++static char *buffer; ++ ++/* Test data, both written to that file and used as an in-memory ++ stream. */ ++char test_data[2 * BUFSIZ]; ++ ++#define TEST_STRING "abcdef\n" ++ ++enum test_source_case ++ { ++ test_source_file, ++ test_source_pipe, ++ test_source_fifo, ++ test_source_pseudo_terminal, ++ test_source_dev_null, ++ test_source_count, ++ }; ++ ++static const char *const test_source_name[test_source_count] = ++ { ++ "regular file", ++ "pipe", ++ "fifo", ++ "pseudo_terminal", ++ "dev_null" ++ }; ++ ++enum test_stream_case ++ { ++ test_stream_stdin, ++ test_stream_stdout, ++ test_stream_stderr, ++ test_stream_fopen_r, ++ test_stream_fdopen_r, ++ test_stream_fopen_w, ++ test_stream_fdopen_w, ++ test_stream_count ++ }; ++ ++static bool test_stream_reads[test_stream_count] = ++ { ++ true, ++ false, ++ false, ++ true, ++ true, ++ false, ++ false ++ }; ++ ++static const char *const test_stream_name[test_stream_count] = ++ { ++ "stdin", ++ "stdout", ++ "stderr", ++ "fopen (read)", ++ "fdopen (read)", ++ "fopen (write)", ++ "fdopen (write)" ++ }; ++ ++enum test_config_case ++ { ++ test_config_none, ++ test_config_unbuffered, ++ test_config_line, ++ test_config_fully, ++ test_config_count ++ }; ++ ++static const char *const test_config_name[test_config_count] = ++ { ++ "no change", ++ "unbuffered", ++ "line buffered", ++ "fully buffered" ++ }; ++ ++FILE *test_stream; ++ ++char *test_file_name = NULL; ++int pty_fd; ++char *test_pipe_name = NULL; ++int test_pipe[2]; ++ ++/* This is either -1 or represents a pre-opened file descriptor for ++ the test as returned by prepare_test_file. */ ++int test_fd; ++ ++/*------------------------------------------------------------*/ ++ ++/* Note that throughout this test we reopen, remove, and change ++ to/from a fifo, the test file. This would normally cause a race ++ condition, except that we're in a test container. No other process ++ can run in the test container simultaneously. */ ++ ++void ++prepare_test_data (void) ++{ ++ buffer = (char *) xmalloc (bufsize); ++ ++#ifndef INDEPENDENT_PART ++ /* Both file and pipe need this. */ ++ if (test_file_name == NULL) ++ { ++ debug; ++ int fd = create_temp_file ("tst-setvbuf2", &test_file_name); ++ TEST_VERIFY_EXIT (fd != -1); ++ struct stat64 st; ++ xfstat64 (fd, &st); ++ if (st.st_blksize > 0 && st.st_blksize < BUFSIZ) ++ blksize = st.st_blksize; ++ xclose (fd); ++ } ++#endif ++ ++ for (size_t i = 0; i < 2 * BUFSIZ; i++) ++ { ++ unsigned char c = TEST_STRING[i % strlen (TEST_STRING)]; ++ test_data[i] = c; ++ } ++} ++ ++#ifndef INDEPENDENT_PART ++ ++/* These functions provide a source/sink for the "other" side of any ++ pipe-style descriptor we're using for test. */ ++ ++static pthread_t writer_thread_tid = 0; ++static pthread_t reader_thread_tid = 0; ++ ++typedef struct { ++ int fd; ++ const char *fname; ++} ThreadData; ++/* It's OK if this is static, we only run one at a time. */ ++ThreadData thread_data; ++ ++static void * ++writer_thread_proc (void *closure) ++{ ++ ThreadData *td = (ThreadData *) closure; ++ int fd; ++ int i; ++ ssize_t wn; ++ debug; ++ ++ if (td->fname) ++ td->fd = xopen (td->fname, O_WRONLY, 0777); ++ fd = td->fd; ++ ++ while (1) ++ { ++ i = 0; ++ while (i < BUFSIZ) ++ { ++ wn = write (fd, test_data + i, BUFSIZ - i); ++ if (wn <= 0) ++ break; ++ i += wn; ++ } ++ } ++ return NULL; ++} ++ ++static void * ++reader_thread_proc (void *closure) ++{ ++ ThreadData *td = (ThreadData *) closure; ++ int fd; ++ ssize_t rn; ++ int n = 0; ++ debug; ++ ++ if (td->fname) ++ td->fd = xopen (td->fname, O_RDONLY, 0777); ++ fd = td->fd; ++ ++ while (1) ++ { ++ char buf[BUFSIZ]; ++ rn = read (fd, buf, BUFSIZ); ++ if (rn <= 0) ++ break; ++ TEST_COMPARE_BLOB (buf, rn, test_data+n, rn); ++ n += rn; ++ } ++ return NULL; ++} ++ ++static void ++start_writer_thread (int fd) ++{ ++ debug; ++ thread_data.fd = fd; ++ thread_data.fname = NULL; ++ writer_thread_tid = xpthread_create (NULL, writer_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++start_writer_thread_n (const char *fname) ++{ ++ debug; ++ thread_data.fd = 0; ++ thread_data.fname = fname; ++ writer_thread_tid = xpthread_create (NULL, writer_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++end_writer_thread (void) ++{ ++ debug; ++ if (writer_thread_tid) ++ { ++ pthread_cancel (writer_thread_tid); ++ xpthread_join (writer_thread_tid); ++ xclose (thread_data.fd); ++ writer_thread_tid = 0; ++ } ++} ++ ++static void ++start_reader_thread (int fd) ++{ ++ debug; ++ thread_data.fd = fd; ++ thread_data.fname = NULL; ++ reader_thread_tid = xpthread_create (NULL, reader_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++start_reader_thread_n (const char *fname) ++{ ++ debug; ++ thread_data.fd = 0; ++ thread_data.fname = fname; ++ reader_thread_tid = xpthread_create (NULL, reader_thread_proc, ++ (void *)&thread_data); ++} ++ ++static void ++end_reader_thread (void) ++{ ++ debug; ++ if (reader_thread_tid) ++ { ++ pthread_cancel (reader_thread_tid); ++ xpthread_join (reader_thread_tid); ++ xclose (thread_data.fd); ++ reader_thread_tid = 0; ++ } ++} ++ ++/*------------------------------------------------------------*/ ++ ++/* These two functions are reponsible for choosing a file to be tested ++ against, typically by returning a filename but in a few cases also ++ providing a file descriptor (i.e. for fdopen). */ ++ ++static const char * ++prepare_test_file (enum test_source_case f, enum test_stream_case s) ++{ ++ debug; ++ ++ test_fd = -1; ++ ++ switch (f) ++ { ++ case test_source_file: ++ { ++ if (test_stream_reads[f]) ++ { ++ debug; ++ FILE *fp = xfopen (test_file_name, "w"); ++ TEST_VERIFY_EXIT (fwrite (test_data, 1, 2 * BUFSIZ, fp) ++ == 2 * BUFSIZ); ++ xfclose (fp); ++ } ++ debug; ++ return test_file_name; ++ } ++ ++ case test_source_pipe: ++ { ++ debug; ++ xpipe (test_pipe); ++ if (test_stream_reads[s]) ++ { ++ start_writer_thread (test_pipe[1]); ++ test_fd = test_pipe[0]; ++ } ++ else ++ { ++ start_reader_thread (test_pipe[0]); ++ test_fd = test_pipe[1]; ++ } ++ test_pipe_name = xasprintf ("/proc/self/fd/%d", test_fd); ++ debug; ++ return test_pipe_name; ++ } ++ ++ case test_source_fifo: ++ { ++ /* We do not want to fail/exit if the file doesn't exist. */ ++ unlink (test_file_name); ++ xmkfifo (test_file_name, 0600); ++ debug; ++ if (test_stream_reads[s]) ++ start_writer_thread_n (test_file_name); ++ else ++ start_reader_thread_n (test_file_name); ++ debug; ++ return test_file_name; ++ } ++ ++ case test_source_pseudo_terminal: ++ { ++ support_openpty (&pty_fd, &test_fd, &test_pipe_name, NULL, NULL); ++ ++ debug; ++ if (test_stream_reads[s]) ++ start_writer_thread (pty_fd); ++ else ++ start_reader_thread (pty_fd); ++ ++ debug; ++ return test_pipe_name; ++ } ++ ++ case test_source_dev_null: ++ debug; ++ return "/dev/null"; ++ ++ default: ++ abort (); ++ } ++} ++ ++static void ++unprepare_test_file (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s) ++{ ++ debug; ++ switch (f) ++ { ++ case test_source_file: ++ break; ++ ++ case test_source_pipe: ++ free (test_pipe_name); ++ if (test_stream_reads[s]) ++ end_writer_thread (); ++ else ++ end_reader_thread (); ++ break; ++ ++ case test_source_fifo: ++ if (test_stream_reads[s]) ++ end_writer_thread (); ++ else ++ end_reader_thread (); ++ unlink (test_file_name); ++ break; ++ ++ case test_source_pseudo_terminal: ++ free (test_pipe_name); ++ if (test_stream_reads[s]) ++ end_writer_thread (); ++ else ++ end_reader_thread (); ++ break; ++ ++ case test_source_dev_null: ++ break; ++ ++ default: ++ abort (); ++ } ++ debug; ++} ++ ++/*------------------------------------------------------------*/ ++ ++/* This function takes a filename and returns a file descriptor, ++ opened according to the method requested. */ ++ ++static FILE * ++open_test_stream (enum test_source_case f, enum test_stream_case s) ++{ ++ int fd; ++ FILE *fp; ++ const char *fname; ++ ++ debug; ++ fname = prepare_test_file (f, s); ++ if (fname == NULL) ++ return NULL; ++ ++ switch (s) ++ { ++ case test_stream_stdin: ++ fp = xfopen (fname, "r"); ++ break; ++ ++ case test_stream_stdout: ++ fp = xfopen (fname, "w"); ++ break; ++ ++ case test_stream_stderr: ++ fp = xfopen (fname, "w"); ++ break; ++ ++ case test_stream_fopen_r: ++ fp = xfopen (fname, "r"); ++ break; ++ ++ case test_stream_fdopen_r: ++ if (test_fd == -1) ++ fd = xopen (fname, O_RDONLY, 0); ++ else ++ fd = test_fd; ++ fp = fdopen (fd, "r"); ++ break; ++ ++ case test_stream_fopen_w: ++ fp = xfopen (fname, "w"); ++ break; ++ ++ case test_stream_fdopen_w: ++ fd = xopen (fname, O_WRONLY|O_CREAT|O_TRUNC, 0777); ++ fp = fdopen (fd, "w"); ++ break; ++ ++ default: ++ abort (); ++ } ++ TEST_VERIFY_EXIT (fp != NULL); ++ ++ if (f == test_source_pseudo_terminal) ++ { ++ struct termios t; ++ /* We disable the NL to CR-LF conversion so that we can compare ++ data without having to remove the extra CRs. */ ++ if (tcgetattr (fileno (fp), &t) < 0) ++ FAIL_EXIT1 ("tcgetattr failed: %m"); ++ t.c_oflag &= ~ONLCR; ++ if (tcsetattr (fileno (fp), TCSANOW, &t) < 0) ++ FAIL_EXIT1 ("tcsetattr failed: %m"); ++ } ++ ++ debug; ++ printf ("source %s stream %s file %s fd %d\n", ++ test_source_name[f], ++ test_stream_name[s], fname, fileno (fp)); ++ return fp; ++} ++ ++#endif ++ ++/*------------------------------------------------------------*/ ++ ++/* These functions do the actual testing - setting various buffering ++ options and verifying that they buffer as expected. */ ++ ++static void ++test_put_string (FILE *fp, const char *s, int count) ++{ ++ while (*s && count--) ++ { ++ fputc (*s++, fp); ++ TEST_VERIFY_EXIT (!ferror (fp)); ++ } ++} ++ ++int ++verify_fully_buffered (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ debug; ++ if (test_stream_reads[s]) ++ { ++ char buf[10]; ++ dumpfp (fp); ++ size_t fc = fread (buf, 1, 10 - 1, fp); ++ dumpfp (fp); ++ ++ ssize_t count = fp->_IO_read_ptr - fp->_IO_read_base; ++ ++ TEST_VERIFY (fp->_IO_read_base != NULL); ++ if (f == test_source_dev_null) ++ { ++ TEST_VERIFY (fc == 0); ++ TEST_VERIFY (count == 0); ++ } ++ else if (f == test_source_pseudo_terminal) ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 3 || count == 10); ++ } ++ else ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 10); ++ } ++ ++ /* We already checked for the first character being 'a'. */ ++ if (count > 1) ++ { ++ TEST_COMPARE_BLOB (buf, count - 1, test_data + 1, count - 1); ++ TEST_COMPARE_BLOB (fp->_IO_read_base, count, test_data, count); ++ } ++ } ++ else ++ { ++ dumpfp (fp); ++ test_put_string (fp, test_data + 1, 10 - 1); ++ dumpfp (fp); ++ TEST_COMPARE (fp->_IO_write_ptr - fp->_IO_write_base, 10); ++ TEST_COMPARE_BLOB (fp->_IO_write_base, 10, test_data, 10); ++ } ++ ++ TEST_COMPARE ((fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)), 0); ++ if (c != test_config_none) ++ TEST_COMPARE (__fbufsize (fp), bufsize); ++ return 0; ++} ++ ++int ++verify_line_buffered (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ debug; ++ /* "line buffered" for inputs is not really defined; what you really ++ want here is to control the device providing input. For GLIBC a ++ line-buffered input is treated as fully buffered. */ ++ if (test_stream_reads[s]) ++ { ++ char buf[10]; ++ dumpfp (fp); ++ size_t fc = fread (buf, 1, 10 - 1, fp); ++ dumpfp (fp); ++ ++ ssize_t count = fp->_IO_read_ptr - fp->_IO_read_base; ++ ++ TEST_VERIFY (fp->_IO_read_base != NULL); ++ if (f == test_source_dev_null) ++ { ++ TEST_VERIFY (fc == 0); ++ TEST_VERIFY (count == 0); ++ } ++ else if (f == test_source_pseudo_terminal) ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 3 || count == 10); ++ } ++ else ++ { ++ TEST_VERIFY (fc == 9); ++ TEST_VERIFY (count == 10); ++ } ++ ++ /* We already checked for the first character being 'a'. */ ++ if (count > 1) ++ { ++ TEST_COMPARE_BLOB (buf, count - 1, test_data + 1, count - 1); ++ TEST_COMPARE_BLOB (fp->_IO_read_base, count, test_data, count); ++ } ++ } ++ else ++ { ++ dumpfp (fp); ++ test_put_string (fp, test_data + 1, 10 - 1); ++ dumpfp (fp); ++ TEST_COMPARE (fp->_IO_write_ptr - fp->_IO_write_base, 3); ++ /* The first "abcdef\n" got flushed, leaving "abc". */ ++ TEST_COMPARE_BLOB (fp->_IO_write_base, 3, test_data + 7, 3); ++ } ++ ++ TEST_COMPARE ((fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)), _IO_LINE_BUF); ++ if (c != test_config_none) ++ TEST_COMPARE (__fbufsize (fp), bufsize); ++ return 0; ++} ++ ++int ++verify_unbuffered (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ debug; ++ if (test_stream_reads[s]) ++ { ++ /* We've already read one byte. */ ++ dumpfp (fp); ++ TEST_VERIFY (fp->_IO_read_base != NULL); ++ if (f == test_source_dev_null) ++ TEST_COMPARE (fp->_IO_read_ptr - fp->_IO_read_base, 0); ++ else ++ { ++ TEST_COMPARE (fp->_IO_read_ptr - fp->_IO_read_base, 1); ++ TEST_COMPARE (fp->_IO_read_base[0], test_data[0]); ++ TEST_VERIFY (fp->_IO_read_ptr == fp->_IO_read_end); ++ } ++ } ++ else ++ { ++ dumpfp (fp); ++ fputc (test_data[1], fp); ++ dumpfp (fp); ++ TEST_COMPARE (fp->_IO_write_ptr - fp->_IO_write_base, 0); ++ TEST_COMPARE (fp->_IO_write_base[0], test_data[1]); ++ TEST_VERIFY (fp->_IO_write_end == fp->_IO_write_base); ++ } ++ TEST_COMPARE ((fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)), ++ _IO_UNBUFFERED); ++ TEST_COMPARE (__fbufsize (fp), 1); ++ return 0; ++} ++ ++static int ++do_setvbuf (FILE *fp, void *buf, int flags, int size, ++ enum test_stream_case s) ++{ ++ if (s != test_stream_stdout) ++ printf ("SETVBUF %p %p %s %d\n", ++ fp, buf, ++ flags == _IONBF ? "_IONBF" ++ : flags == _IOLBF ? "_IOLBF" ++ : flags == _IOFBF ? "_IOFBF" ++ : "???", size); ++ if (setvbuf (fp, buf, flags, size)) ++ { ++ perror ("setvbuf"); ++ return 1; ++ } ++ return 0; ++} ++ ++int ++do_second_part (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ /* At this point, FP is the stream to test according to the other ++ parameters. */ ++ ++ int rv = 0; ++ int flags_before; ++ int flags_after; ++ ++ debug; ++ ++ flags_before = fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF); ++ ++ /* This is where we do the thing we're testing for. */ ++ switch (c) ++ { ++ case test_config_none: ++ /* Buffering is unchanged. */ ++ break; ++ ++ case test_config_unbuffered: ++ do_setvbuf (fp, NULL, _IONBF, 0, s); ++ break; ++ ++ case test_config_line: ++ do_setvbuf (fp, buffer, _IOLBF, bufsize, s); ++ break; ++ ++ case test_config_fully: ++ do_setvbuf (fp, buffer, _IOFBF, bufsize, s); ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ flags_after = fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF); ++ ++ /* Check the buffer mode after we touch it, if we touched it. */ ++ switch (c) ++ { ++ case test_config_none: ++ /* Buffering is unchanged, but may change on the first read/write. */ ++ TEST_COMPARE (flags_after, flags_before); ++ break; ++ ++ case test_config_unbuffered: ++ TEST_COMPARE (flags_after, _IO_UNBUFFERED); ++ break; ++ ++ case test_config_line: ++ TEST_COMPARE (flags_after, _IO_LINE_BUF); ++ break; ++ ++ case test_config_fully: ++ TEST_COMPARE (flags_after, 0); ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ /* Glibc defers calculating the appropriate buffering mechanism ++ until it reads from or writes to the device. So we read one ++ character here, and account for that in the tests. */ ++ if (test_stream_reads[s]) ++ { ++ dumpfp (fp); ++ int c = fgetc (fp); ++ if (c != TEST_STRING[0] && f != test_source_dev_null) ++ FAIL ("first char read is %c not %c", c, TEST_STRING[0]); ++ dumpfp (fp); ++ } ++ else ++ { ++ dumpfp (fp); ++ fputc (TEST_STRING[0], fp); ++ dumpfp (fp); ++ } ++ ++ switch (fp->_flags & (_IO_UNBUFFERED | _IO_LINE_BUF)) ++ { ++ case _IO_LINE_BUF: ++ rv += verify_line_buffered (fp, f, s, c); ++ break; ++ ++ case _IO_UNBUFFERED: ++ rv += verify_unbuffered (fp, f, s, c); ++ break; ++ ++ case 0: /* Fully buffered. */ ++ rv += verify_fully_buffered (fp, f, s, c); ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ ++ fclose (fp); ++ return rv; ++} ++ ++/*------------------------------------------------------------*/ ++ ++#ifdef INDEPENDENT_PART ++/* This part is the independent sub-process we call to test stdin et ++ al. */ ++ ++int ++main (int argc, char **argv) ++{ ++ /* This is one of the subprocesses we created to test stdin et ++ al. */ ++ FILE *fp; ++ ++ /* If we're called as a regular test, instead of as a sub-process, ++ don't complain. */ ++ if (argc == 1) ++ return 0; ++ ++ if (argc != 4) ++ { ++ int i; ++ for (i = 0; i <= argc; i ++) ++ printf ("argv[%d] = `%s'\n", i, argv[i] ?: "(null)"); ++ FAIL_EXIT1 ("sub-process called wrong"); ++ } ++ ++ prepare_test_data (); ++ ++ enum test_source_case f = atoi (argv[1]); ++ enum test_stream_case s = atoi (argv[2]); ++ enum test_config_case c = atoi (argv[3]); ++ ++ if (s != test_stream_stdout) ++ printf ("\n\033[41mRunning test %s : %s : %s\033[0m\n", ++ test_source_name[f], ++ test_stream_name[s], ++ test_config_name[c]); ++ ++ switch (s) ++ { ++ case test_stream_stdin: ++ fp = stdin; ++ break; ++ case test_stream_stdout: ++ fp = stdout; ++ break; ++ case test_stream_stderr: ++ fp = stderr; ++ break; ++ default: ++ abort (); ++ } ++ ++ return do_second_part (fp, f, s, c); ++} ++ ++#else ++/* This part is the standard test process. */ ++ ++/* Spawn an independent sub-process with std* redirected. */ ++int ++recurse (FILE *fp, ++ enum test_source_case f, ++ enum test_stream_case s, ++ enum test_config_case c) ++{ ++ /* We need to test stdin, stdout, or stderr, which means creating a ++ subprocess with one of those redirected from FP. */ ++ debug; ++ ++ pid_t pid; ++ int status; ++ ++ pid = fork (); ++ ++ switch (pid) ++ { ++ case -1: /* error */ ++ perror ("fork"); ++ return 1; ++ break; ++ ++ default: /* parent */ ++ fclose (fp); ++ xwaitpid (pid, &status, 0); ++ if (WIFEXITED (status) ++ && WEXITSTATUS (status) == 0) ++ return 0; ++ return 1; ++ ++ case 0: /* child */ ++ switch (s) ++ { ++ case test_stream_stdin: ++ xclose (0); ++ dup2 (fileno (fp), 0); ++ break; ++ case test_stream_stdout: ++ xclose (1); ++ dup2 (fileno (fp), 1); ++ break; ++ case test_stream_stderr: ++ xclose (2); ++ dup2 (fileno (fp), 2); ++ break; ++ default: ++ abort (); ++ } ++ fclose (fp); ++ ++ /* At this point, we have to run a program... which is tricky to ++ properly support for remote targets or crosses, because of ++ glibc versions etc. Hence we run in a test-container. */ ++ ++ char fs[10], ss[10], cs[10]; ++ sprintf (fs, "%d", f); ++ sprintf (ss, "%d", s); ++ sprintf (cs, "%d", c); ++ execl (IND_PROC, IND_PROC, fs, ss, cs, NULL); ++ if (s == test_stream_stdout) ++ fprintf (stderr, "execl (%s) failed, ", IND_PROC); ++ else ++ printf ("execl (%s) failed, ", IND_PROC); ++ perror ("The error was"); ++ exit (1); ++ break; ++ } ++ ++ return 0; ++} ++ ++int ++do_test (void) ++{ ++ int rv = 0; ++ ++ signal (SIGPIPE, SIG_IGN); ++ ++ prepare_test_data (); ++ ++ for (enum test_source_case f = 0; f < test_source_count; ++f) ++ for (enum test_stream_case s = 0; s < test_stream_count; ++s) ++ for (enum test_config_case c = 0; c < test_config_count; ++c) ++ { ++ printf ("\n\033[43mRunning test %s : %s : %s\033[0m\n", ++ test_source_name[f], ++ test_stream_name[s], ++ test_config_name[c]); ++ ++ FILE *fp = open_test_stream (f, s); ++ ++ if (fp) ++ { ++ ++ if (s <= test_stream_stderr) ++ rv += recurse (fp, f, s, c); ++ else ++ rv += do_second_part (fp, f, s, c); ++ ++ unprepare_test_file (fp, f, s); ++ } ++ } ++ ++ free (buffer); ++ ++ printf ("return %d\n", rv); ++ return rv; ++} ++ ++# include ++#endif ++ diff --git a/SOURCES/glibc-RHEL-83982-3.patch b/SOURCES/glibc-RHEL-83982-3.patch new file mode 100644 index 0000000..fc5ce1b --- /dev/null +++ b/SOURCES/glibc-RHEL-83982-3.patch @@ -0,0 +1,112 @@ +commit 4fa959d13d21b8f56a43aa0a416100303736c55c +Author: Florian Weimer +Date: Tue Apr 8 10:39:44 2025 +0200 + + stdio-common: In tst-setvbuf2, close helper thread descriptor only if opened + + The helper thread may get canceled before the open system + call succeds. Then ThreadData.fd remains zero, and eventually + the xclose call in end_reader_thread fails because descriptor 0 + is not open. + + Instead, initialize the fd member to -1 (not a valid descriptor) + and close the descriptor only if valid. Do this in a new end_thread + helper routine. + + Also add more error checking to close operations. + + Fixes commit 95b780c1d0549678c0a244c6e2112ec97edf0839 ("stdio: Add + more setvbuf tests"). + +diff --git a/stdio-common/tst-setvbuf2.c b/stdio-common/tst-setvbuf2.c +index 6cc83355f391afab..84d8b43a5811b4be 100644 +--- a/stdio-common/tst-setvbuf2.c ++++ b/stdio-common/tst-setvbuf2.c +@@ -240,6 +240,21 @@ typedef struct { + /* It's OK if this is static, we only run one at a time. */ + ThreadData thread_data; + ++static void ++end_thread (pthread_t *ptid) ++{ ++ if (*ptid) ++ { ++ pthread_cancel (*ptid); ++ xpthread_join (*ptid); ++ /* The descriptor was passed in, or the helper thread made ++ sufficient progress and opened the file. */ ++ if (thread_data.fd >= 0) ++ xclose (thread_data.fd); ++ *ptid = 0; ++ } ++} ++ + static void * + writer_thread_proc (void *closure) + { +@@ -306,7 +321,7 @@ static void + start_writer_thread_n (const char *fname) + { + debug; +- thread_data.fd = 0; ++ thread_data.fd = -1; + thread_data.fname = fname; + writer_thread_tid = xpthread_create (NULL, writer_thread_proc, + (void *)&thread_data); +@@ -316,13 +331,7 @@ static void + end_writer_thread (void) + { + debug; +- if (writer_thread_tid) +- { +- pthread_cancel (writer_thread_tid); +- xpthread_join (writer_thread_tid); +- xclose (thread_data.fd); +- writer_thread_tid = 0; +- } ++ end_thread (&writer_thread_tid); + } + + static void +@@ -339,7 +348,7 @@ static void + start_reader_thread_n (const char *fname) + { + debug; +- thread_data.fd = 0; ++ thread_data.fd = -1; + thread_data.fname = fname; + reader_thread_tid = xpthread_create (NULL, reader_thread_proc, + (void *)&thread_data); +@@ -349,13 +358,7 @@ static void + end_reader_thread (void) + { + debug; +- if (reader_thread_tid) +- { +- pthread_cancel (reader_thread_tid); +- xpthread_join (reader_thread_tid); +- xclose (thread_data.fd); +- reader_thread_tid = 0; +- } ++ end_thread (&reader_thread_tid); + } + + /*------------------------------------------------------------*/ +@@ -852,7 +855,7 @@ do_second_part (FILE *fp, + } + + +- fclose (fp); ++ xfclose (fp); + return rv; + } + +@@ -939,7 +942,7 @@ recurse (FILE *fp, + break; + + default: /* parent */ +- fclose (fp); ++ xfclose (fp); + xwaitpid (pid, &status, 0); + if (WIFEXITED (status) + && WEXITSTATUS (status) == 0) diff --git a/SOURCES/glibc-RHEL-83984-1.patch b/SOURCES/glibc-RHEL-83984-1.patch new file mode 100644 index 0000000..a1797aa --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-1.patch @@ -0,0 +1,135 @@ +commit 4e4641164d2722d622a1bf3b5e4583538d9c7227 +Author: Florian Weimer +Date: Mon Apr 17 15:41:08 2023 +0200 + + debug: Re-flow and sort routines variable in Makefile + + Reviewed-by: Adhemerval Zanella + +Conflicts: + debug/Makefile (fixed context) + +diff --git a/debug/Makefile b/debug/Makefile +index 63395fc626610a53..c19c76e2b8564bd2 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -28,31 +28,94 @@ headers := execinfo.h + # Note that ptsname_r_chk and getlogin_r are not here, but in + # login/Makefile instead. If that subdir is omitted from the + # build, its _FORTIFY_SOURCE support will be too. +-routines = backtrace backtracesyms backtracesymsfd noophooks \ +- memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \ +- strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \ +- sprintf_chk vsprintf_chk snprintf_chk vsnprintf_chk \ +- printf_chk fprintf_chk vprintf_chk vfprintf_chk \ +- gets_chk chk_fail readonly-area fgets_chk fgets_u_chk \ +- read_chk pread_chk pread64_chk recv_chk recvfrom_chk \ +- readlink_chk readlinkat_chk getwd_chk getcwd_chk \ +- realpath_chk fread_chk fread_u_chk \ +- wctomb_chk wcscpy_chk wmemcpy_chk wmemmove_chk wmempcpy_chk \ +- wcpcpy_chk wcsncpy_chk wcscat_chk wcsncat_chk wmemset_chk \ +- wcpncpy_chk \ +- swprintf_chk vswprintf_chk wprintf_chk fwprintf_chk \ +- vwprintf_chk vfwprintf_chk fgetws_chk fgetws_u_chk \ +- confstr_chk getgroups_chk ttyname_r_chk \ +- gethostname_chk getdomainname_chk wcrtomb_chk mbsnrtowcs_chk \ +- wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \ +- wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \ +- vdprintf_chk obprintf_chk vobprintf_chk \ +- longjmp_chk ____longjmp_chk \ +- fdelt_chk poll_chk ppoll_chk \ +- explicit_bzero_chk \ +- stack_chk_fail fortify_fail \ +- readonly-area-fallback \ +- $(static-only-routines) ++routines = \ ++ ____longjmp_chk \ ++ asprintf_chk \ ++ backtrace \ ++ backtracesyms \ ++ backtracesymsfd \ ++ chk_fail \ ++ confstr_chk \ ++ dprintf_chk \ ++ explicit_bzero_chk \ ++ fdelt_chk \ ++ fgets_chk \ ++ fgets_u_chk \ ++ fgetws_chk \ ++ fgetws_u_chk \ ++ fortify_fail \ ++ fprintf_chk \ ++ fread_chk \ ++ fread_u_chk \ ++ fwprintf_chk \ ++ getcwd_chk \ ++ getdomainname_chk \ ++ getgroups_chk \ ++ gethostname_chk \ ++ gets_chk \ ++ getwd_chk \ ++ longjmp_chk \ ++ mbsnrtowcs_chk \ ++ mbsrtowcs_chk \ ++ mbstowcs_chk \ ++ memcpy_chk \ ++ memmove_chk \ ++ mempcpy_chk \ ++ memset_chk \ ++ noophooks \ ++ obprintf_chk \ ++ poll_chk \ ++ ppoll_chk \ ++ pread64_chk \ ++ pread_chk \ ++ printf_chk \ ++ read_chk \ ++ readlink_chk \ ++ readlinkat_chk \ ++ readonly-area \ ++ readonly-area-fallback \ ++ realpath_chk \ ++ recv_chk \ ++ recvfrom_chk \ ++ snprintf_chk \ ++ sprintf_chk \ ++ stack_chk_fail \ ++ stpcpy_chk \ ++ stpncpy_chk \ ++ strcat_chk \ ++ strcpy_chk \ ++ strncat_chk \ ++ strncpy_chk \ ++ swprintf_chk \ ++ ttyname_r_chk \ ++ vasprintf_chk \ ++ vdprintf_chk \ ++ vfprintf_chk \ ++ vfwprintf_chk \ ++ vobprintf_chk \ ++ vprintf_chk \ ++ vsnprintf_chk \ ++ vsprintf_chk \ ++ vswprintf_chk \ ++ vwprintf_chk \ ++ wcpcpy_chk \ ++ wcpncpy_chk \ ++ wcrtomb_chk \ ++ wcscat_chk \ ++ wcscpy_chk \ ++ wcsncat_chk \ ++ wcsncpy_chk \ ++ wcsnrtombs_chk \ ++ wcsrtombs_chk \ ++ wcstombs_chk \ ++ wctomb_chk \ ++ wmemcpy_chk \ ++ wmemmove_chk \ ++ wmempcpy_chk \ ++ wmemset_chk \ ++ wprintf_chk \ ++ $(static-only-routines) ++ # routines + static-only-routines := stack_chk_fail_local + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local diff --git a/SOURCES/glibc-RHEL-83984-2.patch b/SOURCES/glibc-RHEL-83984-2.patch new file mode 100644 index 0000000..a375886 --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-2.patch @@ -0,0 +1,168 @@ +commit b6b8a88cf59a00d7716e9dd2e5ba92eedfec69ce +Author: Arjun Shankar +Date: Mon Oct 2 14:55:13 2023 +0200 + + inet: Rearrange and sort Makefile variables + + Rearrange lists of routines, tests, etc. into one-per-line in + inet/Makefile and sort them using scripts/sort-makefile-lines.py. + Reviewed-by: Siddhesh Poyarekar + +diff --git a/inet/Makefile b/inet/Makefile +index cf4cf5cf8ae6732f..b7d6e40fb319f52d 100644 +--- a/inet/Makefile ++++ b/inet/Makefile +@@ -22,41 +22,123 @@ subdir := inet + + include ../Makeconfig + +-headers := netinet/ether.h netinet/in.h netinet/in_systm.h \ +- netinet/if_ether.h netinet/igmp.h \ +- netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \ +- aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h \ +- rpc/netdb.h +- +-routines := htonl htons \ +- inet_lnaof inet_mkadr \ +- inet_netof inet_ntoa inet_net herrno herrno-loc \ +- gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \ +- gethstbynm_r gethstent gethstent_r \ +- getnetbyad getnetbyad_r getnetbynm getnetent getnetent_r \ +- getnetbynm_r \ +- getproto getproto_r getprtent getprtent_r getprtname getprtname_r \ +- getsrvbynm getsrvbynm_r getsrvbypt getsrvbypt_r getservent \ +- getservent_r getrpcent getrpcbyname getrpcbynumber \ +- getrpcent_r getrpcbyname_r getrpcbynumber_r \ +- ether_aton ether_aton_r ether_hton ether_line \ +- ether_ntoa ether_ntoa_r ether_ntoh \ +- rcmd rexec ruserpass bindresvport \ +- getnetgrent_r getnetgrent \ +- getaliasent_r getaliasent getaliasname getaliasname_r \ +- in6_addr getnameinfo if_index ifaddrs inet6_option \ +- getipv4sourcefilter setipv4sourcefilter \ +- getsourcefilter setsourcefilter inet6_opt inet6_rth \ +- inet6_scopeid_pton deadline idna idna_name_classify ++headers := \ ++ $(wildcard arpa/*.h protocols/*.h) \ ++ aliases.h \ ++ bits/in.h \ ++ ifaddrs.h \ ++ netinet/ether.h \ ++ netinet/icmp6.h \ ++ netinet/if_ether.h \ ++ netinet/igmp.h \ ++ netinet/in.h \ ++ netinet/in_systm.h \ ++ netinet/ip.h \ ++ netinet/ip6.h \ ++ netinet/tcp.h \ ++ rpc/netdb.h \ ++ # headers ++ ++routines := \ ++ bindresvport \ ++ deadline \ ++ ether_aton \ ++ ether_aton_r \ ++ ether_hton \ ++ ether_line \ ++ ether_ntoa \ ++ ether_ntoa_r \ ++ ether_ntoh \ ++ getaliasent \ ++ getaliasent_r \ ++ getaliasname \ ++ getaliasname_r \ ++ gethstbyad \ ++ gethstbyad_r \ ++ gethstbynm \ ++ gethstbynm2 \ ++ gethstbynm2_r \ ++ gethstbynm_r \ ++ gethstent \ ++ gethstent_r \ ++ getipv4sourcefilter \ ++ getnameinfo \ ++ getnetbyad \ ++ getnetbyad_r \ ++ getnetbynm \ ++ getnetbynm_r \ ++ getnetent \ ++ getnetent_r \ ++ getnetgrent \ ++ getnetgrent_r \ ++ getproto \ ++ getproto_r \ ++ getprtent \ ++ getprtent_r \ ++ getprtname \ ++ getprtname_r \ ++ getrpcbyname \ ++ getrpcbyname_r \ ++ getrpcbynumber \ ++ getrpcbynumber_r \ ++ getrpcent \ ++ getrpcent_r \ ++ getservent \ ++ getservent_r \ ++ getsourcefilter \ ++ getsrvbynm \ ++ getsrvbynm_r \ ++ getsrvbypt \ ++ getsrvbypt_r \ ++ herrno \ ++ herrno-loc \ ++ htonl \ ++ htons \ ++ idna \ ++ idna_name_classify \ ++ if_index \ ++ ifaddrs \ ++ in6_addr \ ++ inet6_opt \ ++ inet6_option \ ++ inet6_rth \ ++ inet6_scopeid_pton \ ++ inet_lnaof \ ++ inet_mkadr \ ++ inet_net \ ++ inet_netof \ ++ inet_ntoa \ ++ rcmd \ ++ rexec \ ++ ruserpass \ ++ setipv4sourcefilter \ ++ setsourcefilter \ ++ # routines + + install-others = $(inst_sysconfdir)/rpc + + aux := check_pf check_native ifreq + +-tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ +- tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \ +- tst-getni1 tst-getni2 tst-inet6_rth tst-checks tst-checks-posix \ +- tst-sockaddr test-hnto-types tst-if_index-long ++tests := \ ++ bug-if1 \ ++ htontest \ ++ test-hnto-types \ ++ test-ifaddrs \ ++ test-inet6_opt \ ++ test_ifindex \ ++ tst-checks \ ++ tst-checks-posix \ ++ tst-ether_aton \ ++ tst-ether_line \ ++ tst-gethnm \ ++ tst-getni1 \ ++ tst-getni2 \ ++ tst-if_index-long \ ++ tst-inet6_rth \ ++ tst-network \ ++ tst-ntoa \ ++ tst-sockaddr \ ++ # tests + + # tst-deadline must be linked statically so that we can access + # internal functions. diff --git a/SOURCES/glibc-RHEL-83984-3.patch b/SOURCES/glibc-RHEL-83984-3.patch new file mode 100644 index 0000000..ca7ee81 --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-3.patch @@ -0,0 +1,81 @@ +commit 84373ef7b72c9c8ab61ce1fdfd798777715a1a52 +Author: Frédéric Bérat +Date: Fri Mar 7 14:42:26 2025 +0100 + + Prepare inet_ntop to be fortified + + Rename inet_ntop to __inet_ntop and create the inet_ntop weak alias + based on it in order to prepare for disabling fortification when + available. + + Reviewed-by: Florian Weimer + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index df9472ba3bc52689..d1ea13bb19d4a497 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -5,7 +5,9 @@ + extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); + libc_hidden_proto (__inet_aton_exact) + +-libc_hidden_proto (inet_ntop) ++extern __typeof (inet_ntop) __inet_ntop; ++libc_hidden_proto (__inet_ntop) ++ + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; + libc_hidden_proto (__inet_pton) +diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c +index 8380d8578361b289..d0c6de6ba12b6298 100644 +--- a/inet/getnameinfo.c ++++ b/inet/getnameinfo.c +@@ -323,7 +323,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf, + if (sa->sa_family == AF_INET6) + { + const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; +- if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) ++ if (__inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) + return EAI_OVERFLOW; + + uint32_t scopeid = sin6p->sin6_scope_id; +@@ -350,7 +350,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf, + else + { + const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; +- if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) ++ if (__inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) + return EAI_OVERFLOW; + } + return 0; +diff --git a/resolv/inet_ntop.c b/resolv/inet_ntop.c +index c4d38c0f951013e5..acf5f3cb885e2e47 100644 +--- a/resolv/inet_ntop.c ++++ b/resolv/inet_ntop.c +@@ -42,7 +42,7 @@ static const char *inet_ntop4 (const u_char *src, char *dst, socklen_t size); + static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size); + + /* char * +- * inet_ntop(af, src, dst, size) ++ * __inet_ntop(af, src, dst, size) + * convert a network format address to presentation format. + * return: + * pointer to presentation format address (`dst'), or NULL (see errno). +@@ -50,7 +50,7 @@ static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size); + * Paul Vixie, 1996. + */ + const char * +-inet_ntop (int af, const void *src, char *dst, socklen_t size) ++__inet_ntop (int af, const void *src, char *dst, socklen_t size) + { + switch (af) { + case AF_INET: +@@ -63,7 +63,8 @@ inet_ntop (int af, const void *src, char *dst, socklen_t size) + } + /* NOTREACHED */ + } +-libc_hidden_def (inet_ntop) ++libc_hidden_def (__inet_ntop) ++weak_alias (__inet_ntop, inet_ntop) + + /* const char * + * inet_ntop4(src, dst, size) diff --git a/SOURCES/glibc-RHEL-83984-4.patch b/SOURCES/glibc-RHEL-83984-4.patch new file mode 100644 index 0000000..ca6bade --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-4.patch @@ -0,0 +1,26 @@ +commit 3cdb99d8bb9d0008b2b297080e61d6c10dd66cc8 +Author: Frédéric Bérat +Date: Tue Mar 11 10:40:11 2025 +0100 + + Add missing guards in include/arpa/inet.h + + Add the missing guards in the header, similarly to other headers at the + same level + + Reviewed-by: Florian Weimer + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index d1ea13bb19d4a497..d9e55a3c7f2db9f2 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -1,3 +1,5 @@ ++#ifndef _ARPA_INET_H ++/* Note: _ARPA_INET_H is defined by inet/arpa/inet.h below. */ + #include + + #ifndef _ISOMAC +@@ -17,3 +19,4 @@ libc_hidden_proto (inet_netof) + extern __typeof (inet_network) __inet_network; + libc_hidden_proto (__inet_network) + #endif ++#endif diff --git a/SOURCES/glibc-RHEL-83984-5.patch b/SOURCES/glibc-RHEL-83984-5.patch new file mode 100644 index 0000000..24ba239 --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-5.patch @@ -0,0 +1,277 @@ +commit 090dfa40a5e46f7c0e4d6e8369bcbbd51267625f +Author: Frédéric Bérat +Date: Fri Mar 7 18:16:30 2025 +0100 + + Add _FORTIFY_SOURCE support for inet_ntop + + - Create the __inet_ntop_chk routine that verifies that the builtin size + of the destination buffer is at least as big as the size given by the + user. + - Redirect calls from inet_ntop to __inet_ntop_chk or __inet_ntop_warn + - Update the abilist for this new routine + - Update the manual to mention the new fortification + + Reviewed-by: Florian Weimer + +Conflicts: + debug/Makefile (New routine added to static-only-routines + instead of routines) + debug/Versions (Version not updated in the backport) + inet/Makefile (New headers) + manual/maint.texi (Not relevant in current Glibc Version) + */libc.abilist (Not added in the backport) + inet/bits/inet-fortified-decl.h (Replace __REDIRECT_FORTIFY_NTH + with __REDIRECT_NTH) + inet/bits/inet-fortified.h (removed attribute_overloadable and + clang specific handling) + +Note on the changes: +- Since we can't modify the ABI, __inet_ntop_chk has been added to + static-only-routines and `attribute_hidden` has been added to its definition. +- __REDIRECT_FORTIFY* macros aren't available in the current version, since + the patch to enable foritfication on glibc itself hasn't be ported. +- clang specific handling of foritifcation has not been ported, which means the + following had to be removed from the patch: + - use of __attribute_overloadable__ + - use of __fortify_clang_* macros + +diff --git a/debug/Makefile b/debug/Makefile +index c19c76e2b8564bd2..18be784e86bbaaab 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -116,7 +116,8 @@ routines = \ + wprintf_chk \ + $(static-only-routines) + # routines +-static-only-routines := stack_chk_fail_local ++static-only-routines := stack_chk_fail_local \ ++ inet_ntop_chk \ + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local + # is an alias of __stack_chk_fail in stack_chk_fail.o. +diff --git a/debug/inet_ntop_chk.c b/debug/inet_ntop_chk.c +new file mode 100644 +index 0000000000000000..8a3994dd3fc9bfe4 +--- /dev/null ++++ b/debug/inet_ntop_chk.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++attribute_hidden ++const char * ++__inet_ntop_chk (int af, const void *src, char *dst, ++ socklen_t size, size_t dst_size) ++{ ++ if (size > dst_size) ++ __chk_fail (); ++ ++ return inet_ntop (af, src, dst, size); ++} ++libc_hidden_def (__inet_ntop_chk) +diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c +index 01a8703de1e6e09a..50909d0af53da10e 100644 +--- a/debug/tst-fortify.c ++++ b/debug/tst-fortify.c +@@ -24,6 +24,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -1762,6 +1763,26 @@ do_test (void) + # endif + #endif + ++ struct in6_addr addr6 = {}; ++ struct in_addr addr = {}; ++ char addrstr6[INET6_ADDRSTRLEN]; ++ char addrstr[INET_ADDRSTRLEN]; ++ ++ if (inet_ntop (AF_INET6, &addr6, addrstr6, sizeof (addrstr6)) == NULL) ++ FAIL (); ++ if (inet_ntop (AF_INET, &addr, addrstr, sizeof (addrstr)) == NULL) ++ FAIL (); ++ ++#if __USE_FORTIFY_LEVEL >= 1 ++ CHK_FAIL_START ++ inet_ntop (AF_INET6, &addr6, buf, INET6_ADDRSTRLEN); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN); ++ CHK_FAIL_END ++#endif ++ + return ret; + } + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index d9e55a3c7f2db9f2..a02892f48a27454e 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -3,12 +3,18 @@ + #include + + #ifndef _ISOMAC ++/* Declare functions with security checks. ++ This needs to be included unconditionally as these definition are needed even ++ when fortification is disabled in inet/arpa/inet.h. */ ++#include ++ + /* Variant of inet_aton which rejects trailing garbage. */ + extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); + libc_hidden_proto (__inet_aton_exact) + + extern __typeof (inet_ntop) __inet_ntop; + libc_hidden_proto (__inet_ntop) ++libc_hidden_proto (__inet_ntop_chk) + + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; +diff --git a/include/bits/inet-fortified-decl.h b/include/bits/inet-fortified-decl.h +new file mode 100644 +index 0000000000000000..e6ad4d4663c61a0d +--- /dev/null ++++ b/include/bits/inet-fortified-decl.h +@@ -0,0 +1 @@ ++#include +diff --git a/include/bits/inet-fortified.h b/include/bits/inet-fortified.h +new file mode 100644 +index 0000000000000000..abba7c57014c2a23 +--- /dev/null ++++ b/include/bits/inet-fortified.h +@@ -0,0 +1 @@ ++#include +diff --git a/inet/Makefile b/inet/Makefile +index b7d6e40fb319f52d..ef6b94ed0b519d6d 100644 +--- a/inet/Makefile ++++ b/inet/Makefile +@@ -26,6 +26,8 @@ headers := \ + $(wildcard arpa/*.h protocols/*.h) \ + aliases.h \ + bits/in.h \ ++ bits/inet-fortified-decl.h \ ++ bits/inet-fortified.h \ + ifaddrs.h \ + netinet/ether.h \ + netinet/icmp6.h \ +diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h +index 54c9c6d468b66a2f..2ac498061a533a7b 100644 +--- a/inet/arpa/inet.h ++++ b/inet/arpa/inet.h +@@ -101,6 +101,11 @@ extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp, + char *__buf) __THROW; + #endif + ++#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function ++/* Include functions with security checks. */ ++# include ++#endif ++ + __END_DECLS + + #endif /* arpa/inet.h */ +diff --git a/inet/bits/inet-fortified-decl.h b/inet/bits/inet-fortified-decl.h +new file mode 100644 +index 0000000000000000..229063ae7898ba2d +--- /dev/null ++++ b/inet/bits/inet-fortified-decl.h +@@ -0,0 +1,35 @@ ++/* Declarations of checking macros for inet functions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _BITS_INET_FORTIFIED_DEC_H ++#define _BITS_INET_FORTIFIED_DEC_H 1 ++ ++#ifndef _ARPA_INET_H ++# error "Never include directly; use instead." ++#endif ++ ++extern const char *__inet_ntop_chk (int, const void *, char *, socklen_t, size_t); ++ ++extern const char *__REDIRECT_NTH (__inet_ntop_alias, ++ (int, const void *, char *, socklen_t), inet_ntop); ++extern const char *__REDIRECT_NTH (__inet_ntop_chk_warn, ++ (int, const void *, char *, socklen_t, size_t), __inet_ntop_chk) ++ __warnattr ("inet_ntop called with bigger length than " ++ "size of destination buffer"); ++ ++#endif /* bits/inet-fortified-decl.h. */ +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +new file mode 100644 +index 0000000000000000..af26f36ef6ae0533 +--- /dev/null ++++ b/inet/bits/inet-fortified.h +@@ -0,0 +1,37 @@ ++/* Checking macros for inet functions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef _BITS_INET_FORTIFIED_H ++#define _BITS_INET_FORTIFIED_H 1 ++ ++#ifndef _ARPA_INET_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++__fortify_function const char * ++__NTH (inet_ntop (int __af, const void * __restrict __src, ++ char *__restrict __dst, socklen_t __dst_size)) ++{ ++ return __glibc_fortify (inet_ntop, __dst_size, sizeof (char), ++ __glibc_objsize (__dst), ++ __af, __src, __dst, __dst_size); ++}; ++ ++#endif /* bits/inet-fortified.h. */ diff --git a/SOURCES/glibc-RHEL-83984-6.patch b/SOURCES/glibc-RHEL-83984-6.patch new file mode 100644 index 0000000..97a7fcc --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-6.patch @@ -0,0 +1,23 @@ +commit 7f0d9e61f40c669fca3cfd1e342fa8236c7220b7 +Author: Paul Pluzhnikov +Date: Sat May 20 13:37:47 2023 +0000 + + Fix all the remaining misspellings -- BZ 25337 + +Note on the changes: +- Partial backport, the only file modified is `resolv/inet_pton.c` to + ease further backport for RHEL-83984. + +diff --git a/resolv/inet_pton.c b/resolv/inet_pton.c +index f1d5db75d0d47501..835f364794c1be96 100644 +--- a/resolv/inet_pton.c ++++ b/resolv/inet_pton.c +@@ -121,7 +121,7 @@ inet_pton4 (const char *src, const char *end, unsigned char *dst) + return 1; + } + +-/* Return the value of CH as a hexademical digit, or -1 if it is a ++/* Return the value of CH as a hexadecimal digit, or -1 if it is a + different type of character. */ + static int + hex_digit_value (char ch) diff --git a/SOURCES/glibc-RHEL-83984-7.patch b/SOURCES/glibc-RHEL-83984-7.patch new file mode 100644 index 0000000..51ee98f --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-7.patch @@ -0,0 +1,471 @@ +commit a71db81ed1353edd00ca2901d2fefd98c53209d3 +Author: Aaron Merey +Date: Thu Mar 20 11:07:05 2025 -0400 + + Prepare inet_pton to be fortified + + Split inet_pton internals such as __inet_pton_length from the + inet_pton entry point. + + This allows the internals to be built with fortification while + leaving the inet_pton entry point unchanged. + + Co-authored-by: Frédéric Bérat + Reviewed-by: Florian Weimer + +diff --git a/resolv/Makefile b/resolv/Makefile +index e168a81d9e086df4..f3f5c260d0b7471f 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -38,6 +38,7 @@ routines := \ + inet_addr \ + inet_ntop \ + inet_pton \ ++ inet_pton_length \ + ns_makecanon \ + ns_name_compress \ + ns_name_length_uncompressed \ +@@ -73,6 +74,11 @@ routines := \ + resolv_context \ + # routines + ++# Exclude fortified routines from being built with _FORTIFY_SOURCE ++routines_no_fortify += \ ++ inet_pton \ ++ # routines_no_fortify ++ + tests = tst-aton tst-leaks tst-inet_ntop + tests-container = tst-leaks2 + +diff --git a/resolv/inet_pton.c b/resolv/inet_pton.c +index 835f364794c1be96..cebccb2e1ee7bfd1 100644 +--- a/resolv/inet_pton.c ++++ b/resolv/inet_pton.c +@@ -33,33 +33,7 @@ + */ + + #include +-#include +-#include +-#include +-#include + #include +-#include +-#include +-#include +- +-static int inet_pton4 (const char *src, const char *src_end, u_char *dst); +-static int inet_pton6 (const char *src, const char *src_end, u_char *dst); +- +-int +-__inet_pton_length (int af, const char *src, size_t srclen, void *dst) +-{ +- switch (af) +- { +- case AF_INET: +- return inet_pton4 (src, src + srclen, dst); +- case AF_INET6: +- return inet_pton6 (src, src + srclen, dst); +- default: +- __set_errno (EAFNOSUPPORT); +- return -1; +- } +-} +-libc_hidden_def (__inet_pton_length) + + /* Like __inet_pton_length, but use strlen (SRC) as the length of + SRC. */ +@@ -71,164 +45,3 @@ __inet_pton (int af, const char *src, void *dst) + libc_hidden_def (__inet_pton) + weak_alias (__inet_pton, inet_pton) + libc_hidden_weak (inet_pton) +- +-/* Like inet_aton but without all the hexadecimal, octal and shorthand +- (and trailing garbage is not ignored). Return 1 if SRC is a valid +- dotted quad, else 0. This function does not touch DST unless it's +- returning 1. +- Author: Paul Vixie, 1996. */ +-static int +-inet_pton4 (const char *src, const char *end, unsigned char *dst) +-{ +- int saw_digit, octets, ch; +- unsigned char tmp[NS_INADDRSZ], *tp; +- +- saw_digit = 0; +- octets = 0; +- *(tp = tmp) = 0; +- while (src < end) +- { +- ch = *src++; +- if (ch >= '0' && ch <= '9') +- { +- unsigned int new = *tp * 10 + (ch - '0'); +- +- if (saw_digit && *tp == 0) +- return 0; +- if (new > 255) +- return 0; +- *tp = new; +- if (! saw_digit) +- { +- if (++octets > 4) +- return 0; +- saw_digit = 1; +- } +- } +- else if (ch == '.' && saw_digit) +- { +- if (octets == 4) +- return 0; +- *++tp = 0; +- saw_digit = 0; +- } +- else +- return 0; +- } +- if (octets < 4) +- return 0; +- memcpy (dst, tmp, NS_INADDRSZ); +- return 1; +-} +- +-/* Return the value of CH as a hexadecimal digit, or -1 if it is a +- different type of character. */ +-static int +-hex_digit_value (char ch) +-{ +- if ('0' <= ch && ch <= '9') +- return ch - '0'; +- if ('a' <= ch && ch <= 'f') +- return ch - 'a' + 10; +- if ('A' <= ch && ch <= 'F') +- return ch - 'A' + 10; +- return -1; +-} +- +-/* Convert presentation-level IPv6 address to network order binary +- form. Return 1 if SRC is a valid [RFC1884 2.2] address, else 0. +- This function does not touch DST unless it's returning 1. +- Author: Paul Vixie, 1996. Inspired by Mark Andrews. */ +-static int +-inet_pton6 (const char *src, const char *src_endp, unsigned char *dst) +-{ +- unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; +- const char *curtok; +- int ch; +- size_t xdigits_seen; /* Number of hex digits since colon. */ +- unsigned int val; +- +- tp = memset (tmp, '\0', NS_IN6ADDRSZ); +- endp = tp + NS_IN6ADDRSZ; +- colonp = NULL; +- +- /* Leading :: requires some special handling. */ +- if (src == src_endp) +- return 0; +- if (*src == ':') +- { +- ++src; +- if (src == src_endp || *src != ':') +- return 0; +- } +- +- curtok = src; +- xdigits_seen = 0; +- val = 0; +- while (src < src_endp) +- { +- ch = *src++; +- int digit = hex_digit_value (ch); +- if (digit >= 0) +- { +- if (xdigits_seen == 4) +- return 0; +- val <<= 4; +- val |= digit; +- if (val > 0xffff) +- return 0; +- ++xdigits_seen; +- continue; +- } +- if (ch == ':') +- { +- curtok = src; +- if (xdigits_seen == 0) +- { +- if (colonp) +- return 0; +- colonp = tp; +- continue; +- } +- else if (src == src_endp) +- return 0; +- if (tp + NS_INT16SZ > endp) +- return 0; +- *tp++ = (unsigned char) (val >> 8) & 0xff; +- *tp++ = (unsigned char) val & 0xff; +- xdigits_seen = 0; +- val = 0; +- continue; +- } +- if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) +- && inet_pton4 (curtok, src_endp, tp) > 0) +- { +- tp += NS_INADDRSZ; +- xdigits_seen = 0; +- break; /* '\0' was seen by inet_pton4. */ +- } +- return 0; +- } +- if (xdigits_seen > 0) +- { +- if (tp + NS_INT16SZ > endp) +- return 0; +- *tp++ = (unsigned char) (val >> 8) & 0xff; +- *tp++ = (unsigned char) val & 0xff; +- } +- if (colonp != NULL) +- { +- /* Replace :: with zeros. */ +- if (tp == endp) +- /* :: would expand to a zero-width field. */ +- return 0; +- size_t n = tp - colonp; +- memmove (endp - n, colonp, n); +- memset (colonp, 0, endp - n - colonp); +- tp = endp; +- } +- if (tp != endp) +- return 0; +- memcpy (dst, tmp, NS_IN6ADDRSZ); +- return 1; +-} +diff --git a/resolv/inet_pton_length.c b/resolv/inet_pton_length.c +new file mode 100644 +index 0000000000000000..c3614074a47140c1 +--- /dev/null ++++ b/resolv/inet_pton_length.c +@@ -0,0 +1,223 @@ ++/* Copyright (C) 1996-2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* ++ * Copyright (c) 1996,1999 by Internet Software Consortium. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS ++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE ++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int inet_pton4 (const char *src, const char *src_end, u_char *dst); ++static int inet_pton6 (const char *src, const char *src_end, u_char *dst); ++ ++int ++__inet_pton_length (int af, const char *src, size_t srclen, void *dst) ++{ ++ switch (af) ++ { ++ case AF_INET: ++ return inet_pton4 (src, src + srclen, dst); ++ case AF_INET6: ++ return inet_pton6 (src, src + srclen, dst); ++ default: ++ __set_errno (EAFNOSUPPORT); ++ return -1; ++ } ++} ++libc_hidden_def (__inet_pton_length) ++ ++/* Like inet_aton but without all the hexadecimal, octal and shorthand ++ (and trailing garbage is not ignored). Return 1 if SRC is a valid ++ dotted quad, else 0. This function does not touch DST unless it's ++ returning 1. ++ Author: Paul Vixie, 1996. */ ++static int ++inet_pton4 (const char *src, const char *end, unsigned char *dst) ++{ ++ int saw_digit, octets, ch; ++ unsigned char tmp[NS_INADDRSZ], *tp; ++ ++ saw_digit = 0; ++ octets = 0; ++ *(tp = tmp) = 0; ++ while (src < end) ++ { ++ ch = *src++; ++ if (ch >= '0' && ch <= '9') ++ { ++ unsigned int new = *tp * 10 + (ch - '0'); ++ ++ if (saw_digit && *tp == 0) ++ return 0; ++ if (new > 255) ++ return 0; ++ *tp = new; ++ if (! saw_digit) ++ { ++ if (++octets > 4) ++ return 0; ++ saw_digit = 1; ++ } ++ } ++ else if (ch == '.' && saw_digit) ++ { ++ if (octets == 4) ++ return 0; ++ *++tp = 0; ++ saw_digit = 0; ++ } ++ else ++ return 0; ++ } ++ if (octets < 4) ++ return 0; ++ memcpy (dst, tmp, NS_INADDRSZ); ++ return 1; ++} ++ ++/* Return the value of CH as a hexadecimal digit, or -1 if it is a ++ different type of character. */ ++static int ++hex_digit_value (char ch) ++{ ++ if ('0' <= ch && ch <= '9') ++ return ch - '0'; ++ if ('a' <= ch && ch <= 'f') ++ return ch - 'a' + 10; ++ if ('A' <= ch && ch <= 'F') ++ return ch - 'A' + 10; ++ return -1; ++} ++ ++/* Convert presentation-level IPv6 address to network order binary ++ form. Return 1 if SRC is a valid [RFC1884 2.2] address, else 0. ++ This function does not touch DST unless it's returning 1. ++ Author: Paul Vixie, 1996. Inspired by Mark Andrews. */ ++static int ++inet_pton6 (const char *src, const char *src_endp, unsigned char *dst) ++{ ++ unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; ++ const char *curtok; ++ int ch; ++ size_t xdigits_seen; /* Number of hex digits since colon. */ ++ unsigned int val; ++ ++ tp = memset (tmp, '\0', NS_IN6ADDRSZ); ++ endp = tp + NS_IN6ADDRSZ; ++ colonp = NULL; ++ ++ /* Leading :: requires some special handling. */ ++ if (src == src_endp) ++ return 0; ++ if (*src == ':') ++ { ++ ++src; ++ if (src == src_endp || *src != ':') ++ return 0; ++ } ++ ++ curtok = src; ++ xdigits_seen = 0; ++ val = 0; ++ while (src < src_endp) ++ { ++ ch = *src++; ++ int digit = hex_digit_value (ch); ++ if (digit >= 0) ++ { ++ if (xdigits_seen == 4) ++ return 0; ++ val <<= 4; ++ val |= digit; ++ if (val > 0xffff) ++ return 0; ++ ++xdigits_seen; ++ continue; ++ } ++ if (ch == ':') ++ { ++ curtok = src; ++ if (xdigits_seen == 0) ++ { ++ if (colonp) ++ return 0; ++ colonp = tp; ++ continue; ++ } ++ else if (src == src_endp) ++ return 0; ++ if (tp + NS_INT16SZ > endp) ++ return 0; ++ *tp++ = (unsigned char) (val >> 8) & 0xff; ++ *tp++ = (unsigned char) val & 0xff; ++ xdigits_seen = 0; ++ val = 0; ++ continue; ++ } ++ if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) ++ && inet_pton4 (curtok, src_endp, tp) > 0) ++ { ++ tp += NS_INADDRSZ; ++ xdigits_seen = 0; ++ break; /* '\0' was seen by inet_pton4. */ ++ } ++ return 0; ++ } ++ if (xdigits_seen > 0) ++ { ++ if (tp + NS_INT16SZ > endp) ++ return 0; ++ *tp++ = (unsigned char) (val >> 8) & 0xff; ++ *tp++ = (unsigned char) val & 0xff; ++ } ++ if (colonp != NULL) ++ { ++ /* Replace :: with zeros. */ ++ if (tp == endp) ++ /* :: would expand to a zero-width field. */ ++ return 0; ++ size_t n = tp - colonp; ++ memmove (endp - n, colonp, n); ++ memset (colonp, 0, endp - n - colonp); ++ tp = endp; ++ } ++ if (tp != endp) ++ return 0; ++ memcpy (dst, tmp, NS_IN6ADDRSZ); ++ return 1; ++} diff --git a/SOURCES/glibc-RHEL-83984-8.patch b/SOURCES/glibc-RHEL-83984-8.patch new file mode 100644 index 0000000..dbba29e --- /dev/null +++ b/SOURCES/glibc-RHEL-83984-8.patch @@ -0,0 +1,176 @@ +commit e3a6e85d67f1a48dec3e2557a83d6ce1544a58cb +Author: Aaron Merey +Date: Thu Mar 20 13:13:33 2025 -0400 + + Add _FORTIFY_SOURCE support for inet_pton + + Add function __inet_pton_chk which calls __chk_fail when the size of + argument dst is too small. inet_pton is redirected to __inet_pton_chk + or __inet_pton_warn when _FORTIFY_SOURCE is > 0. + + Also add tests to debug/tst-fortify.c, update the abilist with + __inet_pton_chk and mention inet_pton fortification in maint.texi. + + Co-authored-by: Frédéric Bérat + Reviewed-by: Florian Weimer + +Conflicts: + debug/Makefile (New routine added to static-only-routines + instead of routines) + debug/Versions (Not added in the backport) + manual/maint.texi (Not relevant for this version) + */libc.abilist (Not added in the backport) + inet/bits/inet-fortified-decl.h (Replace __REDIRECT_FORTIFY_NTH + with __REDIRECT_NTH) + inet/bits/inet-fortified.h (removed attribute_overloadable and + clang specific handling) + +Note on the changes: +- Since we can't modify the ABI, __inet_pton_chk has been added to + static-only-routines and `attribute_hidden` has been added to its definition. +- __REDIRECT_FORTIFY* macros aren't available in the current version, since + the patch to enable foritfication on glibc itself hasn't be ported. +- clang specific handling of foritifcation has not been ported, which means the + following had to be removed from the patch: + - use of __attribute_overloadable__ + - use of __fortify_clang_* macros + +diff --git a/debug/Makefile b/debug/Makefile +index 18be784e86bbaaab..c6ca9946d5fb5d19 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -118,6 +118,7 @@ routines = \ + # routines + static-only-routines := stack_chk_fail_local \ + inet_ntop_chk \ ++ inet_pton_chk \ + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local + # is an alias of __stack_chk_fail in stack_chk_fail.o. +diff --git a/debug/inet_pton_chk.c b/debug/inet_pton_chk.c +new file mode 100644 +index 0000000000000000..c9e4fd4683900141 +--- /dev/null ++++ b/debug/inet_pton_chk.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++attribute_hidden ++int ++__inet_pton_chk (int af, const char *src, void *dst, size_t dst_size) ++{ ++ if ((af == AF_INET && dst_size < 4) ++ || (af == AF_INET6 && dst_size < 16)) ++ __chk_fail (); ++ ++ return inet_pton (af, src, dst); ++} ++libc_hidden_def (__inet_pton_chk) +diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c +index 50909d0af53da10e..a87793e44ee36363 100644 +--- a/debug/tst-fortify.c ++++ b/debug/tst-fortify.c +@@ -1783,6 +1783,30 @@ do_test (void) + CHK_FAIL_END + #endif + ++ const char *ipv4str = "127.0.0.1"; ++ const char *ipv6str = "::1"; ++ ++ if (inet_pton (AF_INET, ipv4str, (void *) &addr) != 1) ++ FAIL (); ++ if (inet_pton (AF_INET6, ipv6str, (void *) &addr6) != 1) ++ FAIL (); ++ ++#if __USE_FORTIFY_LEVEL >= 1 ++ char smallbuf[2]; ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET, ipv4str, (void *) smallbuf); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET6, ipv6str, (void *) smallbuf); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET6, ipv6str, (void *) &addr); ++ CHK_FAIL_END ++#endif ++ + return ret; + } + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index a02892f48a27454e..3db8f1a96fdbd6fd 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -19,6 +19,8 @@ libc_hidden_proto (__inet_ntop_chk) + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; + libc_hidden_proto (__inet_pton) ++libc_hidden_proto (__inet_pton_chk) ++ + extern __typeof (inet_makeaddr) __inet_makeaddr; + libc_hidden_proto (__inet_makeaddr) + libc_hidden_proto (inet_netof) +diff --git a/inet/bits/inet-fortified-decl.h b/inet/bits/inet-fortified-decl.h +index 229063ae7898ba2d..189d35aee8bacab1 100644 +--- a/inet/bits/inet-fortified-decl.h ++++ b/inet/bits/inet-fortified-decl.h +@@ -32,4 +32,11 @@ extern const char *__REDIRECT_NTH (__inet_ntop_chk_warn, + __warnattr ("inet_ntop called with bigger length than " + "size of destination buffer"); + ++extern int __inet_pton_chk (int, const char *, void *, size_t); ++ ++extern int __REDIRECT_NTH (__inet_pton_alias, ++ (int, const char *, void *), inet_pton); ++extern int __REDIRECT_NTH (__inet_pton_chk_warn, ++ (int, const char *, void *, size_t), __inet_pton_chk) ++ __warnattr ("inet_pton called with a destination buffer size too small"); + #endif /* bits/inet-fortified-decl.h. */ +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +index af26f36ef6ae0533..8420a4b7fb41086f 100644 +--- a/inet/bits/inet-fortified.h ++++ b/inet/bits/inet-fortified.h +@@ -34,4 +34,21 @@ __NTH (inet_ntop (int __af, const void * __restrict __src, + __af, __src, __dst, __dst_size); + }; + ++__fortify_function int ++__NTH (inet_pton (int __af, const char *__restrict __src, ++ void * __restrict __dst)) ++{ ++ size_t sz = 0; ++ if (__af == AF_INET) ++ sz = sizeof (struct in_addr); ++ else if (__af == AF_INET6) ++ sz = sizeof (struct in6_addr); ++ else ++ return __inet_pton_alias (__af, __src, __dst); ++ ++ return __glibc_fortify (inet_pton, sz, sizeof (char), ++ __glibc_objsize (__dst), ++ __af, __src, __dst); ++}; ++ + #endif /* bits/inet-fortified.h. */ diff --git a/SOURCES/glibc-RHEL-84306-1.patch b/SOURCES/glibc-RHEL-84306-1.patch new file mode 100644 index 0000000..22a8769 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-1.patch @@ -0,0 +1,15932 @@ +commit d1a621b735247ba0f7bf288e35a1b172cb6803f6 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add tests for formatted scanf input specifiers + + Add a collection of tests for formatted scanf input specifiers covering + the b, d, i, o, u, x, and X integer conversions, the a, A, e, E, f, F, + g, and G floating-point conversions, and the [, c, and s character + conversions. Also the hh, h, l, and ll length modifiers are covered + with the integer conversions as are the l and L length modifier with the + floating-point conversions. The tests cover assignment suppressing and + the field width as well, verifying the number of assignments made, the + number of characters consumed and the value assigned. + + Add the common test code here as well as test cases for scanf, and then + base Makefile infrastructure plus target-agnostic input data, for the + character conversions and the `char', `short', and `long long' integer + ones, signed and unsigned, with remaining input data and other functions + from the scanf family deferred to subsequent additions. + + Keep input data disabled and referring to BZ #12701 for entries that are + currently incorrectly accepted as valid data, such as '0b' or '0x' with + the relevant integer conversions or sequences of an insufficient number + of characters with the c conversion. + + Reviewed-by: Joseph Myers + + +Conflicts: + stdio-common/Makefile + (mising tst-fwrite-bz29459 downstream) + +diff --git a/Makerules b/Makerules +index 689842ba56c71b0d..2b5deadced0f8c08 100644 +--- a/Makerules ++++ b/Makerules +@@ -1240,6 +1240,9 @@ check: tests + .PHONY: xcheck + xcheck: xtests + ++# Also handle test inputs in sysdeps. ++vpath %.input $(sysdirs) ++ + # Handle tests-time64 and xtests-time64 that should built with LFS + # and 64-bit time support. + include $(o-iterator) +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index fe69e48849cb9819..df7afefc7a1f9828 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -51,6 +51,33 @@ nonfmt-xprintf-stems := \ + + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + ++# List of markers for scanf family function tests. ++xscanf-funcs := s ++ ++# List of data types and formats for individual per-conversion scanf tests. ++# Further conversions are provided by sysdeps. ++xscanf-kinds := char int real uint ++fmt-xscanf-char-convs := c ++fmts-xscanf-char := b c s ++fmt-xscanf-int-convs := char llong short ++fmts-xscanf-int := d i ++fmt-xscanf-real-convs := ++fmts-xscanf-real := aa a ee e ff f gg g ++fmt-xscanf-uint-convs := uchar ullong ushort ++fmts-xscanf-uint := b o u xx x ++ ++xscanf-convs = $(sort $(fmt-xscanf-char-convs) $(fmt-xscanf-int-convs) \ ++ $(fmt-xscanf-real-convs) $(fmt-xscanf-uint-convs)) ++ ++xscanf-srcs = $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(xscanf-convs),tst-scanf-format-$(p)-$(c))) ++ ++xscanf-stems = $(sort $(foreach k,$(xscanf-kinds), \ ++ $(foreach f,$(fmts-xscanf-$(k)), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-$(k)-convs), \ ++ tst-scanf-format-$(p)-$(c)-$(f)))))) ++ + headers := \ + bits/printf-ldbl.h \ + bits/stdio_lim.h \ +@@ -274,6 +301,7 @@ endif + + test-srcs = \ + $(xprintf-srcs) \ ++ $(xscanf-srcs) \ + tst-printf \ + tst-printfsz-islongdouble \ + tst-unbputc \ +@@ -282,6 +310,7 @@ test-srcs = \ + ifeq ($(run-built-tests),yes) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f).out) \ ++ $(foreach f,$(xscanf-stems),$(objpfx)$(f).out) \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ + $(objpfx)tst-setvbuf1-cmp.out \ +@@ -293,6 +322,7 @@ ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f)-mem.out) \ ++ $(foreach f,$(xscanf-stems),$(objpfx)$(f)-mem.out) \ + $(objpfx)tst-freopen2-mem.out \ + $(objpfx)tst-freopen3-mem.out \ + $(objpfx)tst-freopen4-mem.out \ +@@ -314,6 +344,8 @@ tests-special += \ + generated += \ + $(foreach f,$(xprintf-stems),$(f)-mem.out) \ + $(foreach f,$(xprintf-stems),$(f).mtrace) \ ++ $(foreach f,$(xscanf-stems),$(f)-mem.out) \ ++ $(foreach f,$(xscanf-stems),$(f).mtrace) \ + tst-freopen2-mem.out \ + tst-freopen2.mtrace \ + tst-freopen3-mem.out \ +@@ -457,6 +489,26 @@ $(objpfx)tst-printf-format-%.out: \ + $(make-tst-printf-format-out) > $@; \ + $(evaluate-test) + ++# With scanf format tests reuse the same executable for all the inputs ++# of the same data type that use a different conversion specifier each. ++define tst-scanf-format-rule ++$$(objpfx)tst-scanf-format-$(1)-$(2)-$(3).out: \ ++ tst-scanf-format-$(2)-$(3).input $$(objpfx)tst-scanf-format-$(1)-$(2) ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++endef ++make-tst-scanf-format-out = \ ++ $(test-wrapper-env) \ ++ $(run-program-env) \ ++ MALLOC_TRACE=$(@:.out=.mtrace) \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so \ ++ $(host-test-program-cmd) ++$(foreach k,$(xscanf-kinds), \ ++ $(foreach f,$(fmts-xscanf-$(k)), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-$(k)-convs), \ ++ $(eval $(call tst-scanf-format-rule,$(p),$(c),$(f))))))) ++ + $(objpfx)tst-printfsz-islongdouble.out: \ + tst-printfsz-islongdouble.sh $(objpfx)tst-printfsz-islongdouble + $(SHELL) $^ '$(test-program-prefix)' $@; \ +@@ -542,5 +594,13 @@ $(objpfx)tst-setvbuf1-cmp.out: tst-setvbuf1.expect $(objpfx)tst-setvbuf1.out + $(objpfx)tst-printf-round: $(libm) + $(objpfx)tst-scanf-round: $(libm) + ++# With scanf format tests real conversions depend on libm. ++define tst-scanf-format-libm-dep ++$$(objpfx)tst-scanf-format-$(1)-$(2): $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-real-convs), \ ++ $(eval $(call tst-scanf-format-libm-dep,$(p),$(c))))) ++ + $(objpfx)tst-freopen7: $(shared-thread-library) + $(objpfx)tst-freopen64-7: $(shared-thread-library) +diff --git a/stdio-common/tst-scanf-format-c-b.input b/stdio-common/tst-scanf-format-c-b.input +new file mode 100644 +index 0000000000000000..52b2dc1a4c9b7f7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-b.input +@@ -0,0 +1,90 @@ ++%[bcdefghijklmnopqrstuvw]::0:-1: ++%*[bcdefghijklmnopqrstuvw]::0:-1: ++%[bcdefghijklmnopqrstuvw]:The:0:-1: ++%*[bcdefghijklmnopqrstuvw]:The:0:-1: ++%[bcdefghijklmnopqrstuvw]:quick:1:5:quick: ++%*[bcdefghijklmnopqrstuvw]:quick:0:5: ++%[bcdefghijklmnopqrstuvw]:brown fox:1:5:brown: ++%*[bcdefghijklmnopqrstuvw]:brown fox:0:5: ++%[bcdefghijklmnopqrstuvw]:jumps over the lazy dog:1:5:jumps: ++%*[bcdefghijklmnopqrstuvw]:jumps over the lazy dog:0:5: ++%[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:23:jumps over the lazy dog: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:23: ++%1[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:The:1:1:T: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:The:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:1:q: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:1:b: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:1:j: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:1: ++%2[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:The:1:2:Th: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:The:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:2:qu: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:2:br: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:2:ju: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:2: ++%5[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:5:brown: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:5:jumps: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:5: ++%10[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:10:jumps over: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:10: ++%25[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:23:jumps over the lazy dog: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:23: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: :1:1: : ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: :0:1: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: The :1:5: The : ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: The :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: quick :1:5: quic: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: quick :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :1:5: brow: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :1:5: jump: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: :1:1: : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: :0:1: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: The :1:5: The : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: The :0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: quick :1:7: quick : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: quick :0:7: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :1:11: brown fox : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :0:11: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :1:25: jumps over the lazy dog : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :0:25: +diff --git a/stdio-common/tst-scanf-format-c-c.input b/stdio-common/tst-scanf-format-c-c.input +new file mode 100644 +index 0000000000000000..a3a6ee26af755dec +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-c.input +@@ -0,0 +1,64 @@ ++%c:The:1:1:T: ++%*c:The:0:1: ++%c:quick:1:1:q: ++%*c:quick:0:1: ++%c:brown fox:1:1:b: ++%*c:brown fox:0:1: ++%c:jumps over the lazy dog:1:1:j: ++%*c:jumps over the lazy dog:0:1: ++%1c:The:1:1:T: ++%*1c:The:0:1: ++%1c:quick:1:1:q: ++%*1c:quick:0:1: ++%1c:brown fox:1:1:b: ++%*1c:brown fox:0:1: ++%1c:jumps over the lazy dog:1:1:j: ++%*1c:jumps over the lazy dog:0:1: ++%2c:The:1:2:Th: ++%*2c:The:0:2: ++%2c:quick:1:2:qu: ++%*2c:quick:0:2: ++%2c:brown fox:1:2:br: ++%*2c:brown fox:0:2: ++%2c:jumps over the lazy dog:1:2:ju: ++%*2c:jumps over the lazy dog:0:2: ++# BZ12701 %5c:The:0:-1: ++# BZ12701 %*5c:The:0:-1: ++%5c:quick:1:5:quick: ++%*5c:quick:0:5: ++%5c:brown fox:1:5:brown: ++%*5c:brown fox:0:5: ++%5c:jumps over the lazy dog:1:5:jumps: ++%*5c:jumps over the lazy dog:0:5: ++# BZ12701 %10c:The:0:-1: ++# BZ12701 %*10c:The:0:-1: ++# BZ12701 %10c:quick:0:-1: ++# BZ12701 %*10c:quick:0:-1: ++# BZ12701 %10c:brown fox:0:-1: ++# BZ12701 %*10c:brown fox:0:-1: ++%10c:jumps over the lazy dog:1:10:jumps over: ++%*10c:jumps over the lazy dog:0:10: ++# BZ12701 %25c:The:0:-1: ++# BZ12701 %*25c:The:0:-1: ++# BZ12701 %25c:quick:0:-1: ++# BZ12701 %*25c:quick:0:-1: ++# BZ12701 %25c:brown fox:0:-1: ++# BZ12701 %*25c:brown fox:0:-1: ++# BZ12701 %25c:jumps over the lazy dog:0:-1: ++# BZ12701 %*25c:jumps over the lazy dog:0:-1: ++%5c: The :1:5: The : ++%*5c: The :0:5: ++%5c: quick :1:5: quic: ++%*5c: quick :0:5: ++%5c: brown fox :1:5: brow: ++%*5c: brown fox :0:5: ++%5c: jumps over the lazy dog :1:5: jump: ++%*5c: jumps over the lazy dog :0:5: ++# BZ12701 %25c: The :0:-1: ++# BZ12701 %*25c: The :0:-1: ++# BZ12701 %25c: quick :0:-1: ++# BZ12701 %*25c: quick :0:-1: ++# BZ12701 %25c: brown fox :0:-1: ++# BZ12701 %*25c: brown fox :0:-1: ++%25c: jumps over the lazy dog :1:25: jumps over the lazy dog : ++%*25c: jumps over the lazy dog :0:25: +diff --git a/stdio-common/tst-scanf-format-c-s.input b/stdio-common/tst-scanf-format-c-s.input +new file mode 100644 +index 0000000000000000..52c992f190c7eec5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-s.input +@@ -0,0 +1,64 @@ ++%s:The :1:3:The: ++%*s:The :0:3: ++%s:quick :1:5:quick: ++%*s:quick :0:5: ++%s:brown fox :1:5:brown: ++%*s:brown fox :0:5: ++%s:jumps over the lazy dog :1:5:jumps: ++%*s:jumps over the lazy dog :0:5: ++%1s:The :1:1:T: ++%*1s:The :0:1: ++%1s:quick :1:1:q: ++%*1s:quick :0:1: ++%1s:brown fox :1:1:b: ++%*1s:brown fox :0:1: ++%1s:jumps over the lazy dog :1:1:j: ++%*1s:jumps over the lazy dog :0:1: ++%2s:The :1:2:Th: ++%*2s:The :0:2: ++%2s:quick :1:2:qu: ++%*2s:quick :0:2: ++%2s:brown fox :1:2:br: ++%*2s:brown fox :0:2: ++%2s:jumps over the lazy dog :1:2:ju: ++%*2s:jumps over the lazy dog :0:2: ++%5s:The :1:3:The: ++%*5s:The :0:3: ++%5s:quick :1:5:quick: ++%*5s:quick :0:5: ++%5s:brown fox :1:5:brown: ++%*5s:brown fox :0:5: ++%5s:jumps over the lazy dog :1:5:jumps: ++%*5s:jumps over the lazy dog :0:5: ++%10s:The :1:3:The: ++%*10s:The :0:3: ++%10s:quick :1:5:quick: ++%*10s:quick :0:5: ++%10s:brown fox :1:5:brown: ++%*10s:brown fox :0:5: ++%10s:jumps over the lazy dog :1:5:jumps: ++%*10s:jumps over the lazy dog :0:5: ++%25s:The :1:3:The: ++%*25s:The :0:3: ++%25s:quick :1:5:quick: ++%*25s:quick :0:5: ++%25s:brown fox :1:5:brown: ++%*25s:brown fox :0:5: ++%25s:jumps over the lazy dog :1:5:jumps: ++%*25s:jumps over the lazy dog :0:5: ++%5s: The :1:4:The: ++%*5s: The :0:4: ++%5s: quick :1:6:quick: ++%*5s: quick :0:6: ++%5s: brown fox :1:6:brown: ++%*5s: brown fox :0:6: ++%5s: jumps over the lazy dog :1:6:jumps: ++%*5s: jumps over the lazy dog :0:6: ++%25s: The :1:4:The: ++%*25s: The :0:4: ++%25s: quick :1:6:quick: ++%*25s: quick :0:6: ++%25s: brown fox :1:6:brown: ++%*25s: brown fox :0:6: ++%25s: jumps over the lazy dog :1:6:jumps: ++%*25s: jumps over the lazy dog :0:6: +diff --git a/stdio-common/tst-scanf-format-char-d.input b/stdio-common/tst-scanf-format-char-d.input +new file mode 100644 +index 0000000000000000..eeb6920c705323f9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-char-d.input +@@ -0,0 +1,266 @@ ++%hhd::0:-1: ++%*hhd::0:-1: ++%hhd:-251:1:4:5: ++%*hhd:-251:0:4: ++%hhd:-129:1:4:127: ++%*hhd:-129:0:4: ++%hhd:-128:1:4:-128: ++%*hhd:-128:0:4: ++%hhd:-123:1:4:-123: ++%*hhd:-123:0:4: ++%hhd:-1:1:2:-1: ++%*hhd:-1:0:2: ++%hhd:-0:1:2:0: ++%*hhd:-0:0:2: ++%hhd:0:1:1:0: ++%*hhd:0:0:1: ++%hhd:1:1:1:1: ++%*hhd:1:0:1: ++%hhd:42:1:2:42: ++%*hhd:42:0:2: ++%hhd:127:1:3:127: ++%*hhd:127:0:3: ++%hhd:128:1:3:-128: ++%*hhd:128:0:3: ++%hhd:169:1:3:-87: ++%*hhd:169:0:3: ++%hhd:+0:1:2:0: ++%*hhd:+0:0:2: ++%hhd:+1:1:2:1: ++%*hhd:+1:0:2: ++%hhd:+42:1:3:42: ++%*hhd:+42:0:3: ++%hhd:+127:1:4:127: ++%*hhd:+127:0:4: ++%hhd:+128:1:4:-128: ++%*hhd:+128:0:4: ++%hhd:+169:1:4:-87: ++%*hhd:+169:0:4: ++%1hhd::0:-1: ++%*1hhd::0:-1: ++%1hhd:-251:0:-1: ++%*1hhd:-251:0:-1: ++%1hhd:-129:0:-1: ++%*1hhd:-129:0:-1: ++%1hhd:-128:0:-1: ++%*1hhd:-128:0:-1: ++%1hhd:-123:0:-1: ++%*1hhd:-123:0:-1: ++%1hhd:-1:0:-1: ++%*1hhd:-1:0:-1: ++%1hhd:-0:0:-1: ++%*1hhd:-0:0:-1: ++%1hhd:0:1:1:0: ++%*1hhd:0:0:1: ++%1hhd:1:1:1:1: ++%*1hhd:1:0:1: ++%1hhd:42:1:1:4: ++%*1hhd:42:0:1: ++%1hhd:127:1:1:1: ++%*1hhd:127:0:1: ++%1hhd:128:1:1:1: ++%*1hhd:128:0:1: ++%1hhd:169:1:1:1: ++%*1hhd:169:0:1: ++%1hhd:+0:0:-1: ++%*1hhd:+0:0:-1: ++%1hhd:+1:0:-1: ++%*1hhd:+1:0:-1: ++%1hhd:+42:0:-1: ++%*1hhd:+42:0:-1: ++%1hhd:+127:0:-1: ++%*1hhd:+127:0:-1: ++%1hhd:+128:0:-1: ++%*1hhd:+128:0:-1: ++%1hhd:+169:0:-1: ++%*1hhd:+169:0:-1: ++%2hhd::0:-1: ++%*2hhd::0:-1: ++%2hhd:-251:1:2:-2: ++%*2hhd:-251:0:2: ++%2hhd:-129:1:2:-1: ++%*2hhd:-129:0:2: ++%2hhd:-128:1:2:-1: ++%*2hhd:-128:0:2: ++%2hhd:-123:1:2:-1: ++%*2hhd:-123:0:2: ++%2hhd:-1:1:2:-1: ++%*2hhd:-1:0:2: ++%2hhd:-0:1:2:0: ++%*2hhd:-0:0:2: ++%2hhd:0:1:1:0: ++%*2hhd:0:0:1: ++%2hhd:1:1:1:1: ++%*2hhd:1:0:1: ++%2hhd:42:1:2:42: ++%*2hhd:42:0:2: ++%2hhd:127:1:2:12: ++%*2hhd:127:0:2: ++%2hhd:128:1:2:12: ++%*2hhd:128:0:2: ++%2hhd:169:1:2:16: ++%*2hhd:169:0:2: ++%2hhd:+0:1:2:0: ++%*2hhd:+0:0:2: ++%2hhd:+1:1:2:1: ++%*2hhd:+1:0:2: ++%2hhd:+42:1:2:4: ++%*2hhd:+42:0:2: ++%2hhd:+127:1:2:1: ++%*2hhd:+127:0:2: ++%2hhd:+128:1:2:1: ++%*2hhd:+128:0:2: ++%2hhd:+169:1:2:1: ++%*2hhd:+169:0:2: ++%3hhd::0:-1: ++%*3hhd::0:-1: ++%3hhd:-251:1:3:-25: ++%*3hhd:-251:0:3: ++%3hhd:-129:1:3:-12: ++%*3hhd:-129:0:3: ++%3hhd:-128:1:3:-12: ++%*3hhd:-128:0:3: ++%3hhd:-123:1:3:-12: ++%*3hhd:-123:0:3: ++%3hhd:-1:1:2:-1: ++%*3hhd:-1:0:2: ++%3hhd:-0:1:2:0: ++%*3hhd:-0:0:2: ++%3hhd:0:1:1:0: ++%*3hhd:0:0:1: ++%3hhd:1:1:1:1: ++%*3hhd:1:0:1: ++%3hhd:42:1:2:42: ++%*3hhd:42:0:2: ++%3hhd:127:1:3:127: ++%*3hhd:127:0:3: ++%3hhd:128:1:3:-128: ++%*3hhd:128:0:3: ++%3hhd:169:1:3:-87: ++%*3hhd:169:0:3: ++%3hhd:+0:1:2:0: ++%*3hhd:+0:0:2: ++%3hhd:+1:1:2:1: ++%*3hhd:+1:0:2: ++%3hhd:+42:1:3:42: ++%*3hhd:+42:0:3: ++%3hhd:+127:1:3:12: ++%*3hhd:+127:0:3: ++%3hhd:+128:1:3:12: ++%*3hhd:+128:0:3: ++%3hhd:+169:1:3:16: ++%*3hhd:+169:0:3: ++%5hhd::0:-1: ++%*5hhd::0:-1: ++%5hhd:-251:1:4:5: ++%*5hhd:-251:0:4: ++%5hhd:-129:1:4:127: ++%*5hhd:-129:0:4: ++%5hhd:-128:1:4:-128: ++%*5hhd:-128:0:4: ++%5hhd:-123:1:4:-123: ++%*5hhd:-123:0:4: ++%5hhd:-1:1:2:-1: ++%*5hhd:-1:0:2: ++%5hhd:-0:1:2:0: ++%*5hhd:-0:0:2: ++%5hhd:0:1:1:0: ++%*5hhd:0:0:1: ++%5hhd:1:1:1:1: ++%*5hhd:1:0:1: ++%5hhd:42:1:2:42: ++%*5hhd:42:0:2: ++%5hhd:127:1:3:127: ++%*5hhd:127:0:3: ++%5hhd:128:1:3:-128: ++%*5hhd:128:0:3: ++%5hhd:169:1:3:-87: ++%*5hhd:169:0:3: ++%5hhd:+0:1:2:0: ++%*5hhd:+0:0:2: ++%5hhd:+1:1:2:1: ++%*5hhd:+1:0:2: ++%5hhd:+42:1:3:42: ++%*5hhd:+42:0:3: ++%5hhd:+127:1:4:127: ++%*5hhd:+127:0:4: ++%5hhd:+128:1:4:-128: ++%*5hhd:+128:0:4: ++%5hhd:+169:1:4:-87: ++%*5hhd:+169:0:4: ++%2hhd: :0:-1: ++%*2hhd: :0:-1: ++%2hhd: -251:1:3:-2: ++%*2hhd: -251:0:3: ++%2hhd: -129:1:3:-1: ++%*2hhd: -129:0:3: ++%2hhd: -128:1:3:-1: ++%*2hhd: -128:0:3: ++%2hhd: -123:1:3:-1: ++%*2hhd: -123:0:3: ++%2hhd: -1:1:3:-1: ++%*2hhd: -1:0:3: ++%2hhd: -0:1:3:0: ++%*2hhd: -0:0:3: ++%2hhd: 0:1:2:0: ++%*2hhd: 0:0:2: ++%2hhd: 1:1:2:1: ++%*2hhd: 1:0:2: ++%2hhd: 42:1:3:42: ++%*2hhd: 42:0:3: ++%2hhd: 127:1:3:12: ++%*2hhd: 127:0:3: ++%2hhd: 128:1:3:12: ++%*2hhd: 128:0:3: ++%2hhd: 169:1:3:16: ++%*2hhd: 169:0:3: ++%2hhd: +0:1:3:0: ++%*2hhd: +0:0:3: ++%2hhd: +1:1:3:1: ++%*2hhd: +1:0:3: ++%2hhd: +42:1:3:4: ++%*2hhd: +42:0:3: ++%2hhd: +127:1:3:1: ++%*2hhd: +127:0:3: ++%2hhd: +128:1:3:1: ++%*2hhd: +128:0:3: ++%2hhd: +169:1:3:1: ++%*2hhd: +169:0:3: ++%5hhd: :0:-1: ++%*5hhd: :0:-1: ++%5hhd: -251:1:5:5: ++%*5hhd: -251:0:5: ++%5hhd: -129:1:5:127: ++%*5hhd: -129:0:5: ++%5hhd: -128:1:5:-128: ++%*5hhd: -128:0:5: ++%5hhd: -123:1:5:-123: ++%*5hhd: -123:0:5: ++%5hhd: -1:1:3:-1: ++%*5hhd: -1:0:3: ++%5hhd: -0:1:3:0: ++%*5hhd: -0:0:3: ++%5hhd: 0:1:2:0: ++%*5hhd: 0:0:2: ++%5hhd: 1:1:2:1: ++%*5hhd: 1:0:2: ++%5hhd: 42:1:3:42: ++%*5hhd: 42:0:3: ++%5hhd: 127:1:4:127: ++%*5hhd: 127:0:4: ++%5hhd: 128:1:4:-128: ++%*5hhd: 128:0:4: ++%5hhd: 169:1:4:-87: ++%*5hhd: 169:0:4: ++%5hhd: +0:1:3:0: ++%*5hhd: +0:0:3: ++%5hhd: +1:1:3:1: ++%*5hhd: +1:0:3: ++%5hhd: +42:1:4:42: ++%*5hhd: +42:0:4: ++%5hhd: +127:1:5:127: ++%*5hhd: +127:0:5: ++%5hhd: +128:1:5:-128: ++%*5hhd: +128:0:5: ++%5hhd: +169:1:5:-87: ++%*5hhd: +169:0:5: +diff --git a/stdio-common/tst-scanf-format-char-i.input b/stdio-common/tst-scanf-format-char-i.input +new file mode 100644 +index 0000000000000000..31f7ff0508c73c00 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-char-i.input +@@ -0,0 +1,1526 @@ ++%hhi::0:-1: ++%*hhi::0:-1: ++%hhi:-251:1:4:5: ++%*hhi:-251:0:4: ++%hhi:-0Xfb:1:5:5: ++%*hhi:-0Xfb:0:5: ++%hhi:-0xFB:1:5:5: ++%*hhi:-0xFB:0:5: ++%hhi:-0373:1:5:5: ++%*hhi:-0373:0:5: ++%hhi:-0B11111011:1:11:5: ++%*hhi:-0B11111011:0:11: ++%hhi:-0b11111011:1:11:5: ++%*hhi:-0b11111011:0:11: ++%hhi:-129:1:4:127: ++%*hhi:-129:0:4: ++%hhi:-0X81:1:5:127: ++%*hhi:-0X81:0:5: ++%hhi:-0x81:1:5:127: ++%*hhi:-0x81:0:5: ++%hhi:-0201:1:5:127: ++%*hhi:-0201:0:5: ++%hhi:-0B10000001:1:11:127: ++%*hhi:-0B10000001:0:11: ++%hhi:-0b10000001:1:11:127: ++%*hhi:-0b10000001:0:11: ++%hhi:-128:1:4:-128: ++%*hhi:-128:0:4: ++%hhi:-0X80:1:5:-128: ++%*hhi:-0X80:0:5: ++%hhi:-0x80:1:5:-128: ++%*hhi:-0x80:0:5: ++%hhi:-0200:1:5:-128: ++%*hhi:-0200:0:5: ++%hhi:-0B10000000:1:11:-128: ++%*hhi:-0B10000000:0:11: ++%hhi:-0b10000000:1:11:-128: ++%*hhi:-0b10000000:0:11: ++%hhi:-123:1:4:-123: ++%*hhi:-123:0:4: ++%hhi:-0X7b:1:5:-123: ++%*hhi:-0X7b:0:5: ++%hhi:-0x7B:1:5:-123: ++%*hhi:-0x7B:0:5: ++%hhi:-0173:1:5:-123: ++%*hhi:-0173:0:5: ++%hhi:-0B1111011:1:10:-123: ++%*hhi:-0B1111011:0:10: ++%hhi:-0b1111011:1:10:-123: ++%*hhi:-0b1111011:0:10: ++%hhi:-1:1:2:-1: ++%*hhi:-1:0:2: ++%hhi:-0X1:1:4:-1: ++%*hhi:-0X1:0:4: ++%hhi:-0x1:1:4:-1: ++%*hhi:-0x1:0:4: ++%hhi:-01:1:3:-1: ++%*hhi:-01:0:3: ++%hhi:-0B1:1:4:-1: ++%*hhi:-0B1:0:4: ++%hhi:-0b1:1:4:-1: ++%*hhi:-0b1:0:4: ++%hhi:-0:1:2:0: ++%*hhi:-0:0:2: ++%hhi:-0X0:1:4:0: ++%*hhi:-0X0:0:4: ++%hhi:-0x0:1:4:0: ++%*hhi:-0x0:0:4: ++%hhi:-00:1:3:0: ++%*hhi:-00:0:3: ++%hhi:-0B0:1:4:0: ++%*hhi:-0B0:0:4: ++%hhi:-0b0:1:4:0: ++%*hhi:-0b0:0:4: ++%hhi:0:1:1:0: ++%*hhi:0:0:1: ++%hhi:0X0:1:3:0: ++%*hhi:0X0:0:3: ++%hhi:0x0:1:3:0: ++%*hhi:0x0:0:3: ++%hhi:00:1:2:0: ++%*hhi:00:0:2: ++%hhi:0B0:1:3:0: ++%*hhi:0B0:0:3: ++%hhi:0b0:1:3:0: ++%*hhi:0b0:0:3: ++%hhi:1:1:1:1: ++%*hhi:1:0:1: ++%hhi:0X1:1:3:1: ++%*hhi:0X1:0:3: ++%hhi:0x1:1:3:1: ++%*hhi:0x1:0:3: ++%hhi:01:1:2:1: ++%*hhi:01:0:2: ++%hhi:0B1:1:3:1: ++%*hhi:0B1:0:3: ++%hhi:0b1:1:3:1: ++%*hhi:0b1:0:3: ++%hhi:42:1:2:42: ++%*hhi:42:0:2: ++%hhi:0X2a:1:4:42: ++%*hhi:0X2a:0:4: ++%hhi:0x2A:1:4:42: ++%*hhi:0x2A:0:4: ++%hhi:052:1:3:42: ++%*hhi:052:0:3: ++%hhi:0B101010:1:8:42: ++%*hhi:0B101010:0:8: ++%hhi:0b101010:1:8:42: ++%*hhi:0b101010:0:8: ++%hhi:127:1:3:127: ++%*hhi:127:0:3: ++%hhi:0X7f:1:4:127: ++%*hhi:0X7f:0:4: ++%hhi:0x7F:1:4:127: ++%*hhi:0x7F:0:4: ++%hhi:0177:1:4:127: ++%*hhi:0177:0:4: ++%hhi:0B1111111:1:9:127: ++%*hhi:0B1111111:0:9: ++%hhi:0b1111111:1:9:127: ++%*hhi:0b1111111:0:9: ++%hhi:128:1:3:-128: ++%*hhi:128:0:3: ++%hhi:0X80:1:4:-128: ++%*hhi:0X80:0:4: ++%hhi:0x80:1:4:-128: ++%*hhi:0x80:0:4: ++%hhi:0200:1:4:-128: ++%*hhi:0200:0:4: ++%hhi:0B10000000:1:10:-128: ++%*hhi:0B10000000:0:10: ++%hhi:0b10000000:1:10:-128: ++%*hhi:0b10000000:0:10: ++%hhi:169:1:3:-87: ++%*hhi:169:0:3: ++%hhi:0Xa9:1:4:-87: ++%*hhi:0Xa9:0:4: ++%hhi:0xA9:1:4:-87: ++%*hhi:0xA9:0:4: ++%hhi:0251:1:4:-87: ++%*hhi:0251:0:4: ++%hhi:0B10101001:1:10:-87: ++%*hhi:0B10101001:0:10: ++%hhi:0b10101001:1:10:-87: ++%*hhi:0b10101001:0:10: ++%hhi:+0:1:2:0: ++%*hhi:+0:0:2: ++%hhi:+0X0:1:4:0: ++%*hhi:+0X0:0:4: ++%hhi:+0x0:1:4:0: ++%*hhi:+0x0:0:4: ++%hhi:+00:1:3:0: ++%*hhi:+00:0:3: ++%hhi:+0B0:1:4:0: ++%*hhi:+0B0:0:4: ++%hhi:+0b0:1:4:0: ++%*hhi:+0b0:0:4: ++%hhi:+1:1:2:1: ++%*hhi:+1:0:2: ++%hhi:+0X1:1:4:1: ++%*hhi:+0X1:0:4: ++%hhi:+0x1:1:4:1: ++%*hhi:+0x1:0:4: ++%hhi:+01:1:3:1: ++%*hhi:+01:0:3: ++%hhi:+0B1:1:4:1: ++%*hhi:+0B1:0:4: ++%hhi:+0b1:1:4:1: ++%*hhi:+0b1:0:4: ++%hhi:+42:1:3:42: ++%*hhi:+42:0:3: ++%hhi:+0X2a:1:5:42: ++%*hhi:+0X2a:0:5: ++%hhi:+0x2A:1:5:42: ++%*hhi:+0x2A:0:5: ++%hhi:+052:1:4:42: ++%*hhi:+052:0:4: ++%hhi:+0B101010:1:9:42: ++%*hhi:+0B101010:0:9: ++%hhi:+0b101010:1:9:42: ++%*hhi:+0b101010:0:9: ++%hhi:+127:1:4:127: ++%*hhi:+127:0:4: ++%hhi:+0X7f:1:5:127: ++%*hhi:+0X7f:0:5: ++%hhi:+0x7F:1:5:127: ++%*hhi:+0x7F:0:5: ++%hhi:+0177:1:5:127: ++%*hhi:+0177:0:5: ++%hhi:+0B1111111:1:10:127: ++%*hhi:+0B1111111:0:10: ++%hhi:+0b1111111:1:10:127: ++%*hhi:+0b1111111:0:10: ++%hhi:+128:1:4:-128: ++%*hhi:+128:0:4: ++%hhi:+0X80:1:5:-128: ++%*hhi:+0X80:0:5: ++%hhi:+0x80:1:5:-128: ++%*hhi:+0x80:0:5: ++%hhi:+0200:1:5:-128: ++%*hhi:+0200:0:5: ++%hhi:+0B10000000:1:11:-128: ++%*hhi:+0B10000000:0:11: ++%hhi:+0b10000000:1:11:-128: ++%*hhi:+0b10000000:0:11: ++%hhi:+169:1:4:-87: ++%*hhi:+169:0:4: ++%hhi:+0Xa9:1:5:-87: ++%*hhi:+0Xa9:0:5: ++%hhi:+0xA9:1:5:-87: ++%*hhi:+0xA9:0:5: ++%hhi:+0251:1:5:-87: ++%*hhi:+0251:0:5: ++%hhi:+0B10101001:1:11:-87: ++%*hhi:+0B10101001:0:11: ++%hhi:+0b10101001:1:11:-87: ++%*hhi:+0b10101001:0:11: ++%1hhi::0:-1: ++%*1hhi::0:-1: ++%1hhi:-251:0:-1: ++%*1hhi:-251:0:-1: ++%1hhi:-0Xfb:0:-1: ++%*1hhi:-0Xfb:0:-1: ++%1hhi:-0xFB:0:-1: ++%*1hhi:-0xFB:0:-1: ++%1hhi:-0373:0:-1: ++%*1hhi:-0373:0:-1: ++%1hhi:-0B11111011:0:-1: ++%*1hhi:-0B11111011:0:-1: ++%1hhi:-0b11111011:0:-1: ++%*1hhi:-0b11111011:0:-1: ++%1hhi:-129:0:-1: ++%*1hhi:-129:0:-1: ++%1hhi:-0X81:0:-1: ++%*1hhi:-0X81:0:-1: ++%1hhi:-0x81:0:-1: ++%*1hhi:-0x81:0:-1: ++%1hhi:-0201:0:-1: ++%*1hhi:-0201:0:-1: ++%1hhi:-0B10000001:0:-1: ++%*1hhi:-0B10000001:0:-1: ++%1hhi:-0b10000001:0:-1: ++%*1hhi:-0b10000001:0:-1: ++%1hhi:-128:0:-1: ++%*1hhi:-128:0:-1: ++%1hhi:-0X80:0:-1: ++%*1hhi:-0X80:0:-1: ++%1hhi:-0x80:0:-1: ++%*1hhi:-0x80:0:-1: ++%1hhi:-0200:0:-1: ++%*1hhi:-0200:0:-1: ++%1hhi:-0B10000000:0:-1: ++%*1hhi:-0B10000000:0:-1: ++%1hhi:-0b10000000:0:-1: ++%*1hhi:-0b10000000:0:-1: ++%1hhi:-123:0:-1: ++%*1hhi:-123:0:-1: ++%1hhi:-0X7b:0:-1: ++%*1hhi:-0X7b:0:-1: ++%1hhi:-0x7B:0:-1: ++%*1hhi:-0x7B:0:-1: ++%1hhi:-0173:0:-1: ++%*1hhi:-0173:0:-1: ++%1hhi:-0B1111011:0:-1: ++%*1hhi:-0B1111011:0:-1: ++%1hhi:-0b1111011:0:-1: ++%*1hhi:-0b1111011:0:-1: ++%1hhi:-1:0:-1: ++%*1hhi:-1:0:-1: ++%1hhi:-0X1:0:-1: ++%*1hhi:-0X1:0:-1: ++%1hhi:-0x1:0:-1: ++%*1hhi:-0x1:0:-1: ++%1hhi:-01:0:-1: ++%*1hhi:-01:0:-1: ++%1hhi:-0B1:0:-1: ++%*1hhi:-0B1:0:-1: ++%1hhi:-0b1:0:-1: ++%*1hhi:-0b1:0:-1: ++%1hhi:-0:0:-1: ++%*1hhi:-0:0:-1: ++%1hhi:-0X0:0:-1: ++%*1hhi:-0X0:0:-1: ++%1hhi:-0x0:0:-1: ++%*1hhi:-0x0:0:-1: ++%1hhi:-00:0:-1: ++%*1hhi:-00:0:-1: ++%1hhi:-0B0:0:-1: ++%*1hhi:-0B0:0:-1: ++%1hhi:-0b0:0:-1: ++%*1hhi:-0b0:0:-1: ++%1hhi:0:1:1:0: ++%*1hhi:0:0:1: ++%1hhi:0X0:1:1:0: ++%*1hhi:0X0:0:1: ++%1hhi:0x0:1:1:0: ++%*1hhi:0x0:0:1: ++%1hhi:00:1:1:0: ++%*1hhi:00:0:1: ++%1hhi:0B0:1:1:0: ++%*1hhi:0B0:0:1: ++%1hhi:0b0:1:1:0: ++%*1hhi:0b0:0:1: ++%1hhi:1:1:1:1: ++%*1hhi:1:0:1: ++%1hhi:0X1:1:1:0: ++%*1hhi:0X1:0:1: ++%1hhi:0x1:1:1:0: ++%*1hhi:0x1:0:1: ++%1hhi:01:1:1:0: ++%*1hhi:01:0:1: ++%1hhi:0B1:1:1:0: ++%*1hhi:0B1:0:1: ++%1hhi:0b1:1:1:0: ++%*1hhi:0b1:0:1: ++%1hhi:42:1:1:4: ++%*1hhi:42:0:1: ++%1hhi:0X2a:1:1:0: ++%*1hhi:0X2a:0:1: ++%1hhi:0x2A:1:1:0: ++%*1hhi:0x2A:0:1: ++%1hhi:052:1:1:0: ++%*1hhi:052:0:1: ++%1hhi:0B101010:1:1:0: ++%*1hhi:0B101010:0:1: ++%1hhi:0b101010:1:1:0: ++%*1hhi:0b101010:0:1: ++%1hhi:127:1:1:1: ++%*1hhi:127:0:1: ++%1hhi:0X7f:1:1:0: ++%*1hhi:0X7f:0:1: ++%1hhi:0x7F:1:1:0: ++%*1hhi:0x7F:0:1: ++%1hhi:0177:1:1:0: ++%*1hhi:0177:0:1: ++%1hhi:0B1111111:1:1:0: ++%*1hhi:0B1111111:0:1: ++%1hhi:0b1111111:1:1:0: ++%*1hhi:0b1111111:0:1: ++%1hhi:128:1:1:1: ++%*1hhi:128:0:1: ++%1hhi:0X80:1:1:0: ++%*1hhi:0X80:0:1: ++%1hhi:0x80:1:1:0: ++%*1hhi:0x80:0:1: ++%1hhi:0200:1:1:0: ++%*1hhi:0200:0:1: ++%1hhi:0B10000000:1:1:0: ++%*1hhi:0B10000000:0:1: ++%1hhi:0b10000000:1:1:0: ++%*1hhi:0b10000000:0:1: ++%1hhi:169:1:1:1: ++%*1hhi:169:0:1: ++%1hhi:0Xa9:1:1:0: ++%*1hhi:0Xa9:0:1: ++%1hhi:0xA9:1:1:0: ++%*1hhi:0xA9:0:1: ++%1hhi:0251:1:1:0: ++%*1hhi:0251:0:1: ++%1hhi:0B10101001:1:1:0: ++%*1hhi:0B10101001:0:1: ++%1hhi:0b10101001:1:1:0: ++%*1hhi:0b10101001:0:1: ++%1hhi:+0:0:-1: ++%*1hhi:+0:0:-1: ++%1hhi:+0X0:0:-1: ++%*1hhi:+0X0:0:-1: ++%1hhi:+0x0:0:-1: ++%*1hhi:+0x0:0:-1: ++%1hhi:+00:0:-1: ++%*1hhi:+00:0:-1: ++%1hhi:+0B0:0:-1: ++%*1hhi:+0B0:0:-1: ++%1hhi:+0b0:0:-1: ++%*1hhi:+0b0:0:-1: ++%1hhi:+1:0:-1: ++%*1hhi:+1:0:-1: ++%1hhi:+0X1:0:-1: ++%*1hhi:+0X1:0:-1: ++%1hhi:+0x1:0:-1: ++%*1hhi:+0x1:0:-1: ++%1hhi:+01:0:-1: ++%*1hhi:+01:0:-1: ++%1hhi:+0B1:0:-1: ++%*1hhi:+0B1:0:-1: ++%1hhi:+0b1:0:-1: ++%*1hhi:+0b1:0:-1: ++%1hhi:+42:0:-1: ++%*1hhi:+42:0:-1: ++%1hhi:+0X2a:0:-1: ++%*1hhi:+0X2a:0:-1: ++%1hhi:+0x2A:0:-1: ++%*1hhi:+0x2A:0:-1: ++%1hhi:+052:0:-1: ++%*1hhi:+052:0:-1: ++%1hhi:+0B101010:0:-1: ++%*1hhi:+0B101010:0:-1: ++%1hhi:+0b101010:0:-1: ++%*1hhi:+0b101010:0:-1: ++%1hhi:+127:0:-1: ++%*1hhi:+127:0:-1: ++%1hhi:+0X7f:0:-1: ++%*1hhi:+0X7f:0:-1: ++%1hhi:+0x7F:0:-1: ++%*1hhi:+0x7F:0:-1: ++%1hhi:+0177:0:-1: ++%*1hhi:+0177:0:-1: ++%1hhi:+0B1111111:0:-1: ++%*1hhi:+0B1111111:0:-1: ++%1hhi:+0b1111111:0:-1: ++%*1hhi:+0b1111111:0:-1: ++%1hhi:+128:0:-1: ++%*1hhi:+128:0:-1: ++%1hhi:+0X80:0:-1: ++%*1hhi:+0X80:0:-1: ++%1hhi:+0x80:0:-1: ++%*1hhi:+0x80:0:-1: ++%1hhi:+0200:0:-1: ++%*1hhi:+0200:0:-1: ++%1hhi:+0B10000000:0:-1: ++%*1hhi:+0B10000000:0:-1: ++%1hhi:+0b10000000:0:-1: ++%*1hhi:+0b10000000:0:-1: ++%1hhi:+169:0:-1: ++%*1hhi:+169:0:-1: ++%1hhi:+0Xa9:0:-1: ++%*1hhi:+0Xa9:0:-1: ++%1hhi:+0xA9:0:-1: ++%*1hhi:+0xA9:0:-1: ++%1hhi:+0251:0:-1: ++%*1hhi:+0251:0:-1: ++%1hhi:+0B10101001:0:-1: ++%*1hhi:+0B10101001:0:-1: ++%1hhi:+0b10101001:0:-1: ++%*1hhi:+0b10101001:0:-1: ++%2hhi::0:-1: ++%*2hhi::0:-1: ++%2hhi:-251:1:2:-2: ++%*2hhi:-251:0:2: ++%2hhi:-0Xfb:1:2:0: ++%*2hhi:-0Xfb:0:2: ++%2hhi:-0xFB:1:2:0: ++%*2hhi:-0xFB:0:2: ++%2hhi:-0373:1:2:0: ++%*2hhi:-0373:0:2: ++%2hhi:-0B11111011:1:2:0: ++%*2hhi:-0B11111011:0:2: ++%2hhi:-0b11111011:1:2:0: ++%*2hhi:-0b11111011:0:2: ++%2hhi:-129:1:2:-1: ++%*2hhi:-129:0:2: ++%2hhi:-0X81:1:2:0: ++%*2hhi:-0X81:0:2: ++%2hhi:-0x81:1:2:0: ++%*2hhi:-0x81:0:2: ++%2hhi:-0201:1:2:0: ++%*2hhi:-0201:0:2: ++%2hhi:-0B10000001:1:2:0: ++%*2hhi:-0B10000001:0:2: ++%2hhi:-0b10000001:1:2:0: ++%*2hhi:-0b10000001:0:2: ++%2hhi:-128:1:2:-1: ++%*2hhi:-128:0:2: ++%2hhi:-0X80:1:2:0: ++%*2hhi:-0X80:0:2: ++%2hhi:-0x80:1:2:0: ++%*2hhi:-0x80:0:2: ++%2hhi:-0200:1:2:0: ++%*2hhi:-0200:0:2: ++%2hhi:-0B10000000:1:2:0: ++%*2hhi:-0B10000000:0:2: ++%2hhi:-0b10000000:1:2:0: ++%*2hhi:-0b10000000:0:2: ++%2hhi:-123:1:2:-1: ++%*2hhi:-123:0:2: ++%2hhi:-0X7b:1:2:0: ++%*2hhi:-0X7b:0:2: ++%2hhi:-0x7B:1:2:0: ++%*2hhi:-0x7B:0:2: ++%2hhi:-0173:1:2:0: ++%*2hhi:-0173:0:2: ++%2hhi:-0B1111011:1:2:0: ++%*2hhi:-0B1111011:0:2: ++%2hhi:-0b1111011:1:2:0: ++%*2hhi:-0b1111011:0:2: ++%2hhi:-1:1:2:-1: ++%*2hhi:-1:0:2: ++%2hhi:-0X1:1:2:0: ++%*2hhi:-0X1:0:2: ++%2hhi:-0x1:1:2:0: ++%*2hhi:-0x1:0:2: ++%2hhi:-01:1:2:0: ++%*2hhi:-01:0:2: ++%2hhi:-0B1:1:2:0: ++%*2hhi:-0B1:0:2: ++%2hhi:-0b1:1:2:0: ++%*2hhi:-0b1:0:2: ++%2hhi:-0:1:2:0: ++%*2hhi:-0:0:2: ++%2hhi:-0X0:1:2:0: ++%*2hhi:-0X0:0:2: ++%2hhi:-0x0:1:2:0: ++%*2hhi:-0x0:0:2: ++%2hhi:-00:1:2:0: ++%*2hhi:-00:0:2: ++%2hhi:-0B0:1:2:0: ++%*2hhi:-0B0:0:2: ++%2hhi:-0b0:1:2:0: ++%*2hhi:-0b0:0:2: ++%2hhi:0:1:1:0: ++%*2hhi:0:0:1: ++# BZ12701 %2hhi:0X0:0:-1: ++# BZ12701 %*2hhi:0X0:0:-1: ++# BZ12701 %2hhi:0x0:0:-1: ++# BZ12701 %*2hhi:0x0:0:-1: ++%2hhi:00:1:2:0: ++%*2hhi:00:0:2: ++# BZ12701 %2hhi:0B0:0:-1: ++# BZ12701 %*2hhi:0B0:0:-1: ++# BZ12701 %2hhi:0b0:0:-1: ++# BZ12701 %*2hhi:0b0:0:-1: ++%2hhi:1:1:1:1: ++%*2hhi:1:0:1: ++# BZ12701 %2hhi:0X1:0:-1: ++# BZ12701 %*2hhi:0X1:0:-1: ++# BZ12701 %2hhi:0x1:0:-1: ++# BZ12701 %*2hhi:0x1:0:-1: ++%2hhi:01:1:2:1: ++%*2hhi:01:0:2: ++# BZ12701 %2hhi:0B1:0:-1: ++# BZ12701 %*2hhi:0B1:0:-1: ++# BZ12701 %2hhi:0b1:0:-1: ++# BZ12701 %*2hhi:0b1:0:-1: ++%2hhi:42:1:2:42: ++%*2hhi:42:0:2: ++# BZ12701 %2hhi:0X2a:0:-1: ++# BZ12701 %*2hhi:0X2a:0:-1: ++# BZ12701 %2hhi:0x2A:0:-1: ++# BZ12701 %*2hhi:0x2A:0:-1: ++%2hhi:052:1:2:5: ++%*2hhi:052:0:2: ++# BZ12701 %2hhi:0B101010:0:-1: ++# BZ12701 %*2hhi:0B101010:0:-1: ++# BZ12701 %2hhi:0b101010:0:-1: ++# BZ12701 %*2hhi:0b101010:0:-1: ++%2hhi:127:1:2:12: ++%*2hhi:127:0:2: ++# BZ12701 %2hhi:0X7f:0:-1: ++# BZ12701 %*2hhi:0X7f:0:-1: ++# BZ12701 %2hhi:0x7F:0:-1: ++# BZ12701 %*2hhi:0x7F:0:-1: ++%2hhi:0177:1:2:1: ++%*2hhi:0177:0:2: ++# BZ12701 %2hhi:0B1111111:0:-1: ++# BZ12701 %*2hhi:0B1111111:0:-1: ++# BZ12701 %2hhi:0b1111111:0:-1: ++# BZ12701 %*2hhi:0b1111111:0:-1: ++%2hhi:128:1:2:12: ++%*2hhi:128:0:2: ++# BZ12701 %2hhi:0X80:0:-1: ++# BZ12701 %*2hhi:0X80:0:-1: ++# BZ12701 %2hhi:0x80:0:-1: ++# BZ12701 %*2hhi:0x80:0:-1: ++%2hhi:0200:1:2:2: ++%*2hhi:0200:0:2: ++# BZ12701 %2hhi:0B10000000:0:-1: ++# BZ12701 %*2hhi:0B10000000:0:-1: ++# BZ12701 %2hhi:0b10000000:0:-1: ++# BZ12701 %*2hhi:0b10000000:0:-1: ++%2hhi:169:1:2:16: ++%*2hhi:169:0:2: ++# BZ12701 %2hhi:0Xa9:0:-1: ++# BZ12701 %*2hhi:0Xa9:0:-1: ++# BZ12701 %2hhi:0xA9:0:-1: ++# BZ12701 %*2hhi:0xA9:0:-1: ++%2hhi:0251:1:2:2: ++%*2hhi:0251:0:2: ++# BZ12701 %2hhi:0B10101001:0:-1: ++# BZ12701 %*2hhi:0B10101001:0:-1: ++# BZ12701 %2hhi:0b10101001:0:-1: ++# BZ12701 %*2hhi:0b10101001:0:-1: ++%2hhi:+0:1:2:0: ++%*2hhi:+0:0:2: ++%2hhi:+0X0:1:2:0: ++%*2hhi:+0X0:0:2: ++%2hhi:+0x0:1:2:0: ++%*2hhi:+0x0:0:2: ++%2hhi:+00:1:2:0: ++%*2hhi:+00:0:2: ++%2hhi:+0B0:1:2:0: ++%*2hhi:+0B0:0:2: ++%2hhi:+0b0:1:2:0: ++%*2hhi:+0b0:0:2: ++%2hhi:+1:1:2:1: ++%*2hhi:+1:0:2: ++%2hhi:+0X1:1:2:0: ++%*2hhi:+0X1:0:2: ++%2hhi:+0x1:1:2:0: ++%*2hhi:+0x1:0:2: ++%2hhi:+01:1:2:0: ++%*2hhi:+01:0:2: ++%2hhi:+0B1:1:2:0: ++%*2hhi:+0B1:0:2: ++%2hhi:+0b1:1:2:0: ++%*2hhi:+0b1:0:2: ++%2hhi:+42:1:2:4: ++%*2hhi:+42:0:2: ++%2hhi:+0X2a:1:2:0: ++%*2hhi:+0X2a:0:2: ++%2hhi:+0x2A:1:2:0: ++%*2hhi:+0x2A:0:2: ++%2hhi:+052:1:2:0: ++%*2hhi:+052:0:2: ++%2hhi:+0B101010:1:2:0: ++%*2hhi:+0B101010:0:2: ++%2hhi:+0b101010:1:2:0: ++%*2hhi:+0b101010:0:2: ++%2hhi:+127:1:2:1: ++%*2hhi:+127:0:2: ++%2hhi:+0X7f:1:2:0: ++%*2hhi:+0X7f:0:2: ++%2hhi:+0x7F:1:2:0: ++%*2hhi:+0x7F:0:2: ++%2hhi:+0177:1:2:0: ++%*2hhi:+0177:0:2: ++%2hhi:+0B1111111:1:2:0: ++%*2hhi:+0B1111111:0:2: ++%2hhi:+0b1111111:1:2:0: ++%*2hhi:+0b1111111:0:2: ++%2hhi:+128:1:2:1: ++%*2hhi:+128:0:2: ++%2hhi:+0X80:1:2:0: ++%*2hhi:+0X80:0:2: ++%2hhi:+0x80:1:2:0: ++%*2hhi:+0x80:0:2: ++%2hhi:+0200:1:2:0: ++%*2hhi:+0200:0:2: ++%2hhi:+0B10000000:1:2:0: ++%*2hhi:+0B10000000:0:2: ++%2hhi:+0b10000000:1:2:0: ++%*2hhi:+0b10000000:0:2: ++%2hhi:+169:1:2:1: ++%*2hhi:+169:0:2: ++%2hhi:+0Xa9:1:2:0: ++%*2hhi:+0Xa9:0:2: ++%2hhi:+0xA9:1:2:0: ++%*2hhi:+0xA9:0:2: ++%2hhi:+0251:1:2:0: ++%*2hhi:+0251:0:2: ++%2hhi:+0B10101001:1:2:0: ++%*2hhi:+0B10101001:0:2: ++%2hhi:+0b10101001:1:2:0: ++%*2hhi:+0b10101001:0:2: ++%3hhi::0:-1: ++%*3hhi::0:-1: ++%3hhi:-251:1:3:-25: ++%*3hhi:-251:0:3: ++# BZ12701 %3hhi:-0Xfb:0:-1: ++# BZ12701 %*3hhi:-0Xfb:0:-1: ++# BZ12701 %3hhi:-0xFB:0:-1: ++# BZ12701 %*3hhi:-0xFB:0:-1: ++%3hhi:-0373:1:3:-3: ++%*3hhi:-0373:0:3: ++# BZ12701 %3hhi:-0B11111011:0:-1: ++# BZ12701 %*3hhi:-0B11111011:0:-1: ++# BZ12701 %3hhi:-0b11111011:0:-1: ++# BZ12701 %*3hhi:-0b11111011:0:-1: ++%3hhi:-129:1:3:-12: ++%*3hhi:-129:0:3: ++# BZ12701 %3hhi:-0X81:0:-1: ++# BZ12701 %*3hhi:-0X81:0:-1: ++# BZ12701 %3hhi:-0x81:0:-1: ++# BZ12701 %*3hhi:-0x81:0:-1: ++%3hhi:-0201:1:3:-2: ++%*3hhi:-0201:0:3: ++# BZ12701 %3hhi:-0B10000001:0:-1: ++# BZ12701 %*3hhi:-0B10000001:0:-1: ++# BZ12701 %3hhi:-0b10000001:0:-1: ++# BZ12701 %*3hhi:-0b10000001:0:-1: ++%3hhi:-128:1:3:-12: ++%*3hhi:-128:0:3: ++# BZ12701 %3hhi:-0X80:0:-1: ++# BZ12701 %*3hhi:-0X80:0:-1: ++# BZ12701 %3hhi:-0x80:0:-1: ++# BZ12701 %*3hhi:-0x80:0:-1: ++%3hhi:-0200:1:3:-2: ++%*3hhi:-0200:0:3: ++# BZ12701 %3hhi:-0B10000000:0:-1: ++# BZ12701 %*3hhi:-0B10000000:0:-1: ++# BZ12701 %3hhi:-0b10000000:0:-1: ++# BZ12701 %*3hhi:-0b10000000:0:-1: ++%3hhi:-123:1:3:-12: ++%*3hhi:-123:0:3: ++# BZ12701 %3hhi:-0X7b:0:-1: ++# BZ12701 %*3hhi:-0X7b:0:-1: ++# BZ12701 %3hhi:-0x7B:0:-1: ++# BZ12701 %*3hhi:-0x7B:0:-1: ++%3hhi:-0173:1:3:-1: ++%*3hhi:-0173:0:3: ++# BZ12701 %3hhi:-0B1111011:0:-1: ++# BZ12701 %*3hhi:-0B1111011:0:-1: ++# BZ12701 %3hhi:-0b1111011:0:-1: ++# BZ12701 %*3hhi:-0b1111011:0:-1: ++%3hhi:-1:1:2:-1: ++%*3hhi:-1:0:2: ++# BZ12701 %3hhi:-0X1:0:-1: ++# BZ12701 %*3hhi:-0X1:0:-1: ++# BZ12701 %3hhi:-0x1:0:-1: ++# BZ12701 %*3hhi:-0x1:0:-1: ++%3hhi:-01:1:3:-1: ++%*3hhi:-01:0:3: ++# BZ12701 %3hhi:-0B1:0:-1: ++# BZ12701 %*3hhi:-0B1:0:-1: ++# BZ12701 %3hhi:-0b1:0:-1: ++# BZ12701 %*3hhi:-0b1:0:-1: ++%3hhi:-0:1:2:0: ++%*3hhi:-0:0:2: ++# BZ12701 %3hhi:-0X0:0:-1: ++# BZ12701 %*3hhi:-0X0:0:-1: ++# BZ12701 %3hhi:-0x0:0:-1: ++# BZ12701 %*3hhi:-0x0:0:-1: ++%3hhi:-00:1:3:0: ++%*3hhi:-00:0:3: ++# BZ12701 %3hhi:-0B0:0:-1: ++# BZ12701 %*3hhi:-0B0:0:-1: ++# BZ12701 %3hhi:-0b0:0:-1: ++# BZ12701 %*3hhi:-0b0:0:-1: ++%3hhi:0:1:1:0: ++%*3hhi:0:0:1: ++%3hhi:0X0:1:3:0: ++%*3hhi:0X0:0:3: ++%3hhi:0x0:1:3:0: ++%*3hhi:0x0:0:3: ++%3hhi:00:1:2:0: ++%*3hhi:00:0:2: ++%3hhi:0B0:1:3:0: ++%*3hhi:0B0:0:3: ++%3hhi:0b0:1:3:0: ++%*3hhi:0b0:0:3: ++%3hhi:1:1:1:1: ++%*3hhi:1:0:1: ++%3hhi:0X1:1:3:1: ++%*3hhi:0X1:0:3: ++%3hhi:0x1:1:3:1: ++%*3hhi:0x1:0:3: ++%3hhi:01:1:2:1: ++%*3hhi:01:0:2: ++%3hhi:0B1:1:3:1: ++%*3hhi:0B1:0:3: ++%3hhi:0b1:1:3:1: ++%*3hhi:0b1:0:3: ++%3hhi:42:1:2:42: ++%*3hhi:42:0:2: ++%3hhi:0X2a:1:3:2: ++%*3hhi:0X2a:0:3: ++%3hhi:0x2A:1:3:2: ++%*3hhi:0x2A:0:3: ++%3hhi:052:1:3:42: ++%*3hhi:052:0:3: ++%3hhi:0B101010:1:3:1: ++%*3hhi:0B101010:0:3: ++%3hhi:0b101010:1:3:1: ++%*3hhi:0b101010:0:3: ++%3hhi:127:1:3:127: ++%*3hhi:127:0:3: ++%3hhi:0X7f:1:3:7: ++%*3hhi:0X7f:0:3: ++%3hhi:0x7F:1:3:7: ++%*3hhi:0x7F:0:3: ++%3hhi:0177:1:3:15: ++%*3hhi:0177:0:3: ++%3hhi:0B1111111:1:3:1: ++%*3hhi:0B1111111:0:3: ++%3hhi:0b1111111:1:3:1: ++%*3hhi:0b1111111:0:3: ++%3hhi:128:1:3:-128: ++%*3hhi:128:0:3: ++%3hhi:0X80:1:3:8: ++%*3hhi:0X80:0:3: ++%3hhi:0x80:1:3:8: ++%*3hhi:0x80:0:3: ++%3hhi:0200:1:3:16: ++%*3hhi:0200:0:3: ++%3hhi:0B10000000:1:3:1: ++%*3hhi:0B10000000:0:3: ++%3hhi:0b10000000:1:3:1: ++%*3hhi:0b10000000:0:3: ++%3hhi:169:1:3:-87: ++%*3hhi:169:0:3: ++%3hhi:0Xa9:1:3:10: ++%*3hhi:0Xa9:0:3: ++%3hhi:0xA9:1:3:10: ++%*3hhi:0xA9:0:3: ++%3hhi:0251:1:3:21: ++%*3hhi:0251:0:3: ++%3hhi:0B10101001:1:3:1: ++%*3hhi:0B10101001:0:3: ++%3hhi:0b10101001:1:3:1: ++%*3hhi:0b10101001:0:3: ++%3hhi:+0:1:2:0: ++%*3hhi:+0:0:2: ++# BZ12701 %3hhi:+0X0:0:-1: ++# BZ12701 %*3hhi:+0X0:0:-1: ++# BZ12701 %3hhi:+0x0:0:-1: ++# BZ12701 %*3hhi:+0x0:0:-1: ++%3hhi:+00:1:3:0: ++%*3hhi:+00:0:3: ++# BZ12701 %3hhi:+0B0:0:-1: ++# BZ12701 %*3hhi:+0B0:0:-1: ++# BZ12701 %3hhi:+0b0:0:-1: ++# BZ12701 %*3hhi:+0b0:0:-1: ++%3hhi:+1:1:2:1: ++%*3hhi:+1:0:2: ++# BZ12701 %3hhi:+0X1:0:-1: ++# BZ12701 %*3hhi:+0X1:0:-1: ++# BZ12701 %3hhi:+0x1:0:-1: ++# BZ12701 %*3hhi:+0x1:0:-1: ++%3hhi:+01:1:3:1: ++%*3hhi:+01:0:3: ++# BZ12701 %3hhi:+0B1:0:-1: ++# BZ12701 %*3hhi:+0B1:0:-1: ++# BZ12701 %3hhi:+0b1:0:-1: ++# BZ12701 %*3hhi:+0b1:0:-1: ++%3hhi:+42:1:3:42: ++%*3hhi:+42:0:3: ++# BZ12701 %3hhi:+0X2a:0:-1: ++# BZ12701 %*3hhi:+0X2a:0:-1: ++# BZ12701 %3hhi:+0x2A:0:-1: ++# BZ12701 %*3hhi:+0x2A:0:-1: ++%3hhi:+052:1:3:5: ++%*3hhi:+052:0:3: ++# BZ12701 %3hhi:+0B101010:0:-1: ++# BZ12701 %*3hhi:+0B101010:0:-1: ++# BZ12701 %3hhi:+0b101010:0:-1: ++# BZ12701 %*3hhi:+0b101010:0:-1: ++%3hhi:+127:1:3:12: ++%*3hhi:+127:0:3: ++# BZ12701 %3hhi:+0X7f:0:-1: ++# BZ12701 %*3hhi:+0X7f:0:-1: ++# BZ12701 %3hhi:+0x7F:0:-1: ++# BZ12701 %*3hhi:+0x7F:0:-1: ++%3hhi:+0177:1:3:1: ++%*3hhi:+0177:0:3: ++# BZ12701 %3hhi:+0B1111111:0:-1: ++# BZ12701 %*3hhi:+0B1111111:0:-1: ++# BZ12701 %3hhi:+0b1111111:0:-1: ++# BZ12701 %*3hhi:+0b1111111:0:-1: ++%3hhi:+128:1:3:12: ++%*3hhi:+128:0:3: ++# BZ12701 %3hhi:+0X80:0:-1: ++# BZ12701 %*3hhi:+0X80:0:-1: ++# BZ12701 %3hhi:+0x80:0:-1: ++# BZ12701 %*3hhi:+0x80:0:-1: ++%3hhi:+0200:1:3:2: ++%*3hhi:+0200:0:3: ++# BZ12701 %3hhi:+0B10000000:0:-1: ++# BZ12701 %*3hhi:+0B10000000:0:-1: ++# BZ12701 %3hhi:+0b10000000:0:-1: ++# BZ12701 %*3hhi:+0b10000000:0:-1: ++%3hhi:+169:1:3:16: ++%*3hhi:+169:0:3: ++# BZ12701 %3hhi:+0Xa9:0:-1: ++# BZ12701 %*3hhi:+0Xa9:0:-1: ++# BZ12701 %3hhi:+0xA9:0:-1: ++# BZ12701 %*3hhi:+0xA9:0:-1: ++%3hhi:+0251:1:3:2: ++%*3hhi:+0251:0:3: ++# BZ12701 %3hhi:+0B10101001:0:-1: ++# BZ12701 %*3hhi:+0B10101001:0:-1: ++# BZ12701 %3hhi:+0b10101001:0:-1: ++# BZ12701 %*3hhi:+0b10101001:0:-1: ++%5hhi::0:-1: ++%*5hhi::0:-1: ++%5hhi:-251:1:4:5: ++%*5hhi:-251:0:4: ++%5hhi:-0Xfb:1:5:5: ++%*5hhi:-0Xfb:0:5: ++%5hhi:-0xFB:1:5:5: ++%*5hhi:-0xFB:0:5: ++%5hhi:-0373:1:5:5: ++%*5hhi:-0373:0:5: ++%5hhi:-0B11111011:1:5:-3: ++%*5hhi:-0B11111011:0:5: ++%5hhi:-0b11111011:1:5:-3: ++%*5hhi:-0b11111011:0:5: ++%5hhi:-129:1:4:127: ++%*5hhi:-129:0:4: ++%5hhi:-0X81:1:5:127: ++%*5hhi:-0X81:0:5: ++%5hhi:-0x81:1:5:127: ++%*5hhi:-0x81:0:5: ++%5hhi:-0201:1:5:127: ++%*5hhi:-0201:0:5: ++%5hhi:-0B10000001:1:5:-2: ++%*5hhi:-0B10000001:0:5: ++%5hhi:-0b10000001:1:5:-2: ++%*5hhi:-0b10000001:0:5: ++%5hhi:-128:1:4:-128: ++%*5hhi:-128:0:4: ++%5hhi:-0X80:1:5:-128: ++%*5hhi:-0X80:0:5: ++%5hhi:-0x80:1:5:-128: ++%*5hhi:-0x80:0:5: ++%5hhi:-0200:1:5:-128: ++%*5hhi:-0200:0:5: ++%5hhi:-0B10000000:1:5:-2: ++%*5hhi:-0B10000000:0:5: ++%5hhi:-0b10000000:1:5:-2: ++%*5hhi:-0b10000000:0:5: ++%5hhi:-123:1:4:-123: ++%*5hhi:-123:0:4: ++%5hhi:-0X7b:1:5:-123: ++%*5hhi:-0X7b:0:5: ++%5hhi:-0x7B:1:5:-123: ++%*5hhi:-0x7B:0:5: ++%5hhi:-0173:1:5:-123: ++%*5hhi:-0173:0:5: ++%5hhi:-0B1111011:1:5:-3: ++%*5hhi:-0B1111011:0:5: ++%5hhi:-0b1111011:1:5:-3: ++%*5hhi:-0b1111011:0:5: ++%5hhi:-1:1:2:-1: ++%*5hhi:-1:0:2: ++%5hhi:-0X1:1:4:-1: ++%*5hhi:-0X1:0:4: ++%5hhi:-0x1:1:4:-1: ++%*5hhi:-0x1:0:4: ++%5hhi:-01:1:3:-1: ++%*5hhi:-01:0:3: ++%5hhi:-0B1:1:4:-1: ++%*5hhi:-0B1:0:4: ++%5hhi:-0b1:1:4:-1: ++%*5hhi:-0b1:0:4: ++%5hhi:-0:1:2:0: ++%*5hhi:-0:0:2: ++%5hhi:-0X0:1:4:0: ++%*5hhi:-0X0:0:4: ++%5hhi:-0x0:1:4:0: ++%*5hhi:-0x0:0:4: ++%5hhi:-00:1:3:0: ++%*5hhi:-00:0:3: ++%5hhi:-0B0:1:4:0: ++%*5hhi:-0B0:0:4: ++%5hhi:-0b0:1:4:0: ++%*5hhi:-0b0:0:4: ++%5hhi:0:1:1:0: ++%*5hhi:0:0:1: ++%5hhi:0X0:1:3:0: ++%*5hhi:0X0:0:3: ++%5hhi:0x0:1:3:0: ++%*5hhi:0x0:0:3: ++%5hhi:00:1:2:0: ++%*5hhi:00:0:2: ++%5hhi:0B0:1:3:0: ++%*5hhi:0B0:0:3: ++%5hhi:0b0:1:3:0: ++%*5hhi:0b0:0:3: ++%5hhi:1:1:1:1: ++%*5hhi:1:0:1: ++%5hhi:0X1:1:3:1: ++%*5hhi:0X1:0:3: ++%5hhi:0x1:1:3:1: ++%*5hhi:0x1:0:3: ++%5hhi:01:1:2:1: ++%*5hhi:01:0:2: ++%5hhi:0B1:1:3:1: ++%*5hhi:0B1:0:3: ++%5hhi:0b1:1:3:1: ++%*5hhi:0b1:0:3: ++%5hhi:42:1:2:42: ++%*5hhi:42:0:2: ++%5hhi:0X2a:1:4:42: ++%*5hhi:0X2a:0:4: ++%5hhi:0x2A:1:4:42: ++%*5hhi:0x2A:0:4: ++%5hhi:052:1:3:42: ++%*5hhi:052:0:3: ++%5hhi:0B101010:1:5:5: ++%*5hhi:0B101010:0:5: ++%5hhi:0b101010:1:5:5: ++%*5hhi:0b101010:0:5: ++%5hhi:127:1:3:127: ++%*5hhi:127:0:3: ++%5hhi:0X7f:1:4:127: ++%*5hhi:0X7f:0:4: ++%5hhi:0x7F:1:4:127: ++%*5hhi:0x7F:0:4: ++%5hhi:0177:1:4:127: ++%*5hhi:0177:0:4: ++%5hhi:0B1111111:1:5:7: ++%*5hhi:0B1111111:0:5: ++%5hhi:0b1111111:1:5:7: ++%*5hhi:0b1111111:0:5: ++%5hhi:128:1:3:-128: ++%*5hhi:128:0:3: ++%5hhi:0X80:1:4:-128: ++%*5hhi:0X80:0:4: ++%5hhi:0x80:1:4:-128: ++%*5hhi:0x80:0:4: ++%5hhi:0200:1:4:-128: ++%*5hhi:0200:0:4: ++%5hhi:0B10000000:1:5:4: ++%*5hhi:0B10000000:0:5: ++%5hhi:0b10000000:1:5:4: ++%*5hhi:0b10000000:0:5: ++%5hhi:169:1:3:-87: ++%*5hhi:169:0:3: ++%5hhi:0Xa9:1:4:-87: ++%*5hhi:0Xa9:0:4: ++%5hhi:0xA9:1:4:-87: ++%*5hhi:0xA9:0:4: ++%5hhi:0251:1:4:-87: ++%*5hhi:0251:0:4: ++%5hhi:0B10101001:1:5:5: ++%*5hhi:0B10101001:0:5: ++%5hhi:0b10101001:1:5:5: ++%*5hhi:0b10101001:0:5: ++%5hhi:+0:1:2:0: ++%*5hhi:+0:0:2: ++%5hhi:+0X0:1:4:0: ++%*5hhi:+0X0:0:4: ++%5hhi:+0x0:1:4:0: ++%*5hhi:+0x0:0:4: ++%5hhi:+00:1:3:0: ++%*5hhi:+00:0:3: ++%5hhi:+0B0:1:4:0: ++%*5hhi:+0B0:0:4: ++%5hhi:+0b0:1:4:0: ++%*5hhi:+0b0:0:4: ++%5hhi:+1:1:2:1: ++%*5hhi:+1:0:2: ++%5hhi:+0X1:1:4:1: ++%*5hhi:+0X1:0:4: ++%5hhi:+0x1:1:4:1: ++%*5hhi:+0x1:0:4: ++%5hhi:+01:1:3:1: ++%*5hhi:+01:0:3: ++%5hhi:+0B1:1:4:1: ++%*5hhi:+0B1:0:4: ++%5hhi:+0b1:1:4:1: ++%*5hhi:+0b1:0:4: ++%5hhi:+42:1:3:42: ++%*5hhi:+42:0:3: ++%5hhi:+0X2a:1:5:42: ++%*5hhi:+0X2a:0:5: ++%5hhi:+0x2A:1:5:42: ++%*5hhi:+0x2A:0:5: ++%5hhi:+052:1:4:42: ++%*5hhi:+052:0:4: ++%5hhi:+0B101010:1:5:2: ++%*5hhi:+0B101010:0:5: ++%5hhi:+0b101010:1:5:2: ++%*5hhi:+0b101010:0:5: ++%5hhi:+127:1:4:127: ++%*5hhi:+127:0:4: ++%5hhi:+0X7f:1:5:127: ++%*5hhi:+0X7f:0:5: ++%5hhi:+0x7F:1:5:127: ++%*5hhi:+0x7F:0:5: ++%5hhi:+0177:1:5:127: ++%*5hhi:+0177:0:5: ++%5hhi:+0B1111111:1:5:3: ++%*5hhi:+0B1111111:0:5: ++%5hhi:+0b1111111:1:5:3: ++%*5hhi:+0b1111111:0:5: ++%5hhi:+128:1:4:-128: ++%*5hhi:+128:0:4: ++%5hhi:+0X80:1:5:-128: ++%*5hhi:+0X80:0:5: ++%5hhi:+0x80:1:5:-128: ++%*5hhi:+0x80:0:5: ++%5hhi:+0200:1:5:-128: ++%*5hhi:+0200:0:5: ++%5hhi:+0B10000000:1:5:2: ++%*5hhi:+0B10000000:0:5: ++%5hhi:+0b10000000:1:5:2: ++%*5hhi:+0b10000000:0:5: ++%5hhi:+169:1:4:-87: ++%*5hhi:+169:0:4: ++%5hhi:+0Xa9:1:5:-87: ++%*5hhi:+0Xa9:0:5: ++%5hhi:+0xA9:1:5:-87: ++%*5hhi:+0xA9:0:5: ++%5hhi:+0251:1:5:-87: ++%*5hhi:+0251:0:5: ++%5hhi:+0B10101001:1:5:2: ++%*5hhi:+0B10101001:0:5: ++%5hhi:+0b10101001:1:5:2: ++%*5hhi:+0b10101001:0:5: ++%2hhi: :0:-1: ++%*2hhi: :0:-1: ++%2hhi: -251:1:3:-2: ++%*2hhi: -251:0:3: ++%2hhi: -0Xfb:1:3:0: ++%*2hhi: -0Xfb:0:3: ++%2hhi: -0xFB:1:3:0: ++%*2hhi: -0xFB:0:3: ++%2hhi: -0373:1:3:0: ++%*2hhi: -0373:0:3: ++%2hhi: -0B11111011:1:3:0: ++%*2hhi: -0B11111011:0:3: ++%2hhi: -0b11111011:1:3:0: ++%*2hhi: -0b11111011:0:3: ++%2hhi: -129:1:3:-1: ++%*2hhi: -129:0:3: ++%2hhi: -0X81:1:3:0: ++%*2hhi: -0X81:0:3: ++%2hhi: -0x81:1:3:0: ++%*2hhi: -0x81:0:3: ++%2hhi: -0201:1:3:0: ++%*2hhi: -0201:0:3: ++%2hhi: -0B10000001:1:3:0: ++%*2hhi: -0B10000001:0:3: ++%2hhi: -0b10000001:1:3:0: ++%*2hhi: -0b10000001:0:3: ++%2hhi: -128:1:3:-1: ++%*2hhi: -128:0:3: ++%2hhi: -0X80:1:3:0: ++%*2hhi: -0X80:0:3: ++%2hhi: -0x80:1:3:0: ++%*2hhi: -0x80:0:3: ++%2hhi: -0200:1:3:0: ++%*2hhi: -0200:0:3: ++%2hhi: -0B10000000:1:3:0: ++%*2hhi: -0B10000000:0:3: ++%2hhi: -0b10000000:1:3:0: ++%*2hhi: -0b10000000:0:3: ++%2hhi: -123:1:3:-1: ++%*2hhi: -123:0:3: ++%2hhi: -0X7b:1:3:0: ++%*2hhi: -0X7b:0:3: ++%2hhi: -0x7B:1:3:0: ++%*2hhi: -0x7B:0:3: ++%2hhi: -0173:1:3:0: ++%*2hhi: -0173:0:3: ++%2hhi: -0B1111011:1:3:0: ++%*2hhi: -0B1111011:0:3: ++%2hhi: -0b1111011:1:3:0: ++%*2hhi: -0b1111011:0:3: ++%2hhi: -1:1:3:-1: ++%*2hhi: -1:0:3: ++%2hhi: -0X1:1:3:0: ++%*2hhi: -0X1:0:3: ++%2hhi: -0x1:1:3:0: ++%*2hhi: -0x1:0:3: ++%2hhi: -01:1:3:0: ++%*2hhi: -01:0:3: ++%2hhi: -0B1:1:3:0: ++%*2hhi: -0B1:0:3: ++%2hhi: -0b1:1:3:0: ++%*2hhi: -0b1:0:3: ++%2hhi: -0:1:3:0: ++%*2hhi: -0:0:3: ++%2hhi: -0X0:1:3:0: ++%*2hhi: -0X0:0:3: ++%2hhi: -0x0:1:3:0: ++%*2hhi: -0x0:0:3: ++%2hhi: -00:1:3:0: ++%*2hhi: -00:0:3: ++%2hhi: -0B0:1:3:0: ++%*2hhi: -0B0:0:3: ++%2hhi: -0b0:1:3:0: ++%*2hhi: -0b0:0:3: ++%2hhi: 0:1:2:0: ++%*2hhi: 0:0:2: ++# BZ12701 %2hhi: 0X0:0:-1: ++# BZ12701 %*2hhi: 0X0:0:-1: ++# BZ12701 %2hhi: 0x0:0:-1: ++# BZ12701 %*2hhi: 0x0:0:-1: ++%2hhi: 00:1:3:0: ++%*2hhi: 00:0:3: ++# BZ12701 %2hhi: 0B0:0:-1: ++# BZ12701 %*2hhi: 0B0:0:-1: ++# BZ12701 %2hhi: 0b0:0:-1: ++# BZ12701 %*2hhi: 0b0:0:-1: ++%2hhi: 1:1:2:1: ++%*2hhi: 1:0:2: ++# BZ12701 %2hhi: 0X1:0:-1: ++# BZ12701 %*2hhi: 0X1:0:-1: ++# BZ12701 %2hhi: 0x1:0:-1: ++# BZ12701 %*2hhi: 0x1:0:-1: ++%2hhi: 01:1:3:1: ++%*2hhi: 01:0:3: ++# BZ12701 %2hhi: 0B1:0:-1: ++# BZ12701 %*2hhi: 0B1:0:-1: ++# BZ12701 %2hhi: 0b1:0:-1: ++# BZ12701 %*2hhi: 0b1:0:-1: ++%2hhi: 42:1:3:42: ++%*2hhi: 42:0:3: ++# BZ12701 %2hhi: 0X2a:0:-1: ++# BZ12701 %*2hhi: 0X2a:0:-1: ++# BZ12701 %2hhi: 0x2A:0:-1: ++# BZ12701 %*2hhi: 0x2A:0:-1: ++%2hhi: 052:1:3:5: ++%*2hhi: 052:0:3: ++# BZ12701 %2hhi: 0B101010:0:-1: ++# BZ12701 %*2hhi: 0B101010:0:-1: ++# BZ12701 %2hhi: 0b101010:0:-1: ++# BZ12701 %*2hhi: 0b101010:0:-1: ++%2hhi: 127:1:3:12: ++%*2hhi: 127:0:3: ++# BZ12701 %2hhi: 0X7f:0:-1: ++# BZ12701 %*2hhi: 0X7f:0:-1: ++# BZ12701 %2hhi: 0x7F:0:-1: ++# BZ12701 %*2hhi: 0x7F:0:-1: ++%2hhi: 0177:1:3:1: ++%*2hhi: 0177:0:3: ++# BZ12701 %2hhi: 0B1111111:0:-1: ++# BZ12701 %*2hhi: 0B1111111:0:-1: ++# BZ12701 %2hhi: 0b1111111:0:-1: ++# BZ12701 %*2hhi: 0b1111111:0:-1: ++%2hhi: 128:1:3:12: ++%*2hhi: 128:0:3: ++# BZ12701 %2hhi: 0X80:0:-1: ++# BZ12701 %*2hhi: 0X80:0:-1: ++# BZ12701 %2hhi: 0x80:0:-1: ++# BZ12701 %*2hhi: 0x80:0:-1: ++%2hhi: 0200:1:3:2: ++%*2hhi: 0200:0:3: ++# BZ12701 %2hhi: 0B10000000:0:-1: ++# BZ12701 %*2hhi: 0B10000000:0:-1: ++# BZ12701 %2hhi: 0b10000000:0:-1: ++# BZ12701 %*2hhi: 0b10000000:0:-1: ++%2hhi: 169:1:3:16: ++%*2hhi: 169:0:3: ++# BZ12701 %2hhi: 0Xa9:0:-1: ++# BZ12701 %*2hhi: 0Xa9:0:-1: ++# BZ12701 %2hhi: 0xA9:0:-1: ++# BZ12701 %*2hhi: 0xA9:0:-1: ++%2hhi: 0251:1:3:2: ++%*2hhi: 0251:0:3: ++# BZ12701 %2hhi: 0B10101001:0:-1: ++# BZ12701 %*2hhi: 0B10101001:0:-1: ++# BZ12701 %2hhi: 0b10101001:0:-1: ++# BZ12701 %*2hhi: 0b10101001:0:-1: ++%2hhi: +0:1:3:0: ++%*2hhi: +0:0:3: ++%2hhi: +0X0:1:3:0: ++%*2hhi: +0X0:0:3: ++%2hhi: +0x0:1:3:0: ++%*2hhi: +0x0:0:3: ++%2hhi: +00:1:3:0: ++%*2hhi: +00:0:3: ++%2hhi: +0B0:1:3:0: ++%*2hhi: +0B0:0:3: ++%2hhi: +0b0:1:3:0: ++%*2hhi: +0b0:0:3: ++%2hhi: +1:1:3:1: ++%*2hhi: +1:0:3: ++%2hhi: +0X1:1:3:0: ++%*2hhi: +0X1:0:3: ++%2hhi: +0x1:1:3:0: ++%*2hhi: +0x1:0:3: ++%2hhi: +01:1:3:0: ++%*2hhi: +01:0:3: ++%2hhi: +0B1:1:3:0: ++%*2hhi: +0B1:0:3: ++%2hhi: +0b1:1:3:0: ++%*2hhi: +0b1:0:3: ++%2hhi: +42:1:3:4: ++%*2hhi: +42:0:3: ++%2hhi: +0X2a:1:3:0: ++%*2hhi: +0X2a:0:3: ++%2hhi: +0x2A:1:3:0: ++%*2hhi: +0x2A:0:3: ++%2hhi: +052:1:3:0: ++%*2hhi: +052:0:3: ++%2hhi: +0B101010:1:3:0: ++%*2hhi: +0B101010:0:3: ++%2hhi: +0b101010:1:3:0: ++%*2hhi: +0b101010:0:3: ++%2hhi: +127:1:3:1: ++%*2hhi: +127:0:3: ++%2hhi: +0X7f:1:3:0: ++%*2hhi: +0X7f:0:3: ++%2hhi: +0x7F:1:3:0: ++%*2hhi: +0x7F:0:3: ++%2hhi: +0177:1:3:0: ++%*2hhi: +0177:0:3: ++%2hhi: +0B1111111:1:3:0: ++%*2hhi: +0B1111111:0:3: ++%2hhi: +0b1111111:1:3:0: ++%*2hhi: +0b1111111:0:3: ++%2hhi: +128:1:3:1: ++%*2hhi: +128:0:3: ++%2hhi: +0X80:1:3:0: ++%*2hhi: +0X80:0:3: ++%2hhi: +0x80:1:3:0: ++%*2hhi: +0x80:0:3: ++%2hhi: +0200:1:3:0: ++%*2hhi: +0200:0:3: ++%2hhi: +0B10000000:1:3:0: ++%*2hhi: +0B10000000:0:3: ++%2hhi: +0b10000000:1:3:0: ++%*2hhi: +0b10000000:0:3: ++%2hhi: +169:1:3:1: ++%*2hhi: +169:0:3: ++%2hhi: +0Xa9:1:3:0: ++%*2hhi: +0Xa9:0:3: ++%2hhi: +0xA9:1:3:0: ++%*2hhi: +0xA9:0:3: ++%2hhi: +0251:1:3:0: ++%*2hhi: +0251:0:3: ++%2hhi: +0B10101001:1:3:0: ++%*2hhi: +0B10101001:0:3: ++%2hhi: +0b10101001:1:3:0: ++%*2hhi: +0b10101001:0:3: ++%5hhi: :0:-1: ++%*5hhi: :0:-1: ++%5hhi: -251:1:5:5: ++%*5hhi: -251:0:5: ++%5hhi: -0Xfb:1:6:5: ++%*5hhi: -0Xfb:0:6: ++%5hhi: -0xFB:1:6:5: ++%*5hhi: -0xFB:0:6: ++%5hhi: -0373:1:6:5: ++%*5hhi: -0373:0:6: ++%5hhi: -0B11111011:1:6:-3: ++%*5hhi: -0B11111011:0:6: ++%5hhi: -0b11111011:1:6:-3: ++%*5hhi: -0b11111011:0:6: ++%5hhi: -129:1:5:127: ++%*5hhi: -129:0:5: ++%5hhi: -0X81:1:6:127: ++%*5hhi: -0X81:0:6: ++%5hhi: -0x81:1:6:127: ++%*5hhi: -0x81:0:6: ++%5hhi: -0201:1:6:127: ++%*5hhi: -0201:0:6: ++%5hhi: -0B10000001:1:6:-2: ++%*5hhi: -0B10000001:0:6: ++%5hhi: -0b10000001:1:6:-2: ++%*5hhi: -0b10000001:0:6: ++%5hhi: -128:1:5:-128: ++%*5hhi: -128:0:5: ++%5hhi: -0X80:1:6:-128: ++%*5hhi: -0X80:0:6: ++%5hhi: -0x80:1:6:-128: ++%*5hhi: -0x80:0:6: ++%5hhi: -0200:1:6:-128: ++%*5hhi: -0200:0:6: ++%5hhi: -0B10000000:1:6:-2: ++%*5hhi: -0B10000000:0:6: ++%5hhi: -0b10000000:1:6:-2: ++%*5hhi: -0b10000000:0:6: ++%5hhi: -123:1:5:-123: ++%*5hhi: -123:0:5: ++%5hhi: -0X7b:1:6:-123: ++%*5hhi: -0X7b:0:6: ++%5hhi: -0x7B:1:6:-123: ++%*5hhi: -0x7B:0:6: ++%5hhi: -0173:1:6:-123: ++%*5hhi: -0173:0:6: ++%5hhi: -0B1111011:1:6:-3: ++%*5hhi: -0B1111011:0:6: ++%5hhi: -0b1111011:1:6:-3: ++%*5hhi: -0b1111011:0:6: ++%5hhi: -1:1:3:-1: ++%*5hhi: -1:0:3: ++%5hhi: -0X1:1:5:-1: ++%*5hhi: -0X1:0:5: ++%5hhi: -0x1:1:5:-1: ++%*5hhi: -0x1:0:5: ++%5hhi: -01:1:4:-1: ++%*5hhi: -01:0:4: ++%5hhi: -0B1:1:5:-1: ++%*5hhi: -0B1:0:5: ++%5hhi: -0b1:1:5:-1: ++%*5hhi: -0b1:0:5: ++%5hhi: -0:1:3:0: ++%*5hhi: -0:0:3: ++%5hhi: -0X0:1:5:0: ++%*5hhi: -0X0:0:5: ++%5hhi: -0x0:1:5:0: ++%*5hhi: -0x0:0:5: ++%5hhi: -00:1:4:0: ++%*5hhi: -00:0:4: ++%5hhi: -0B0:1:5:0: ++%*5hhi: -0B0:0:5: ++%5hhi: -0b0:1:5:0: ++%*5hhi: -0b0:0:5: ++%5hhi: 0:1:2:0: ++%*5hhi: 0:0:2: ++%5hhi: 0X0:1:4:0: ++%*5hhi: 0X0:0:4: ++%5hhi: 0x0:1:4:0: ++%*5hhi: 0x0:0:4: ++%5hhi: 00:1:3:0: ++%*5hhi: 00:0:3: ++%5hhi: 0B0:1:4:0: ++%*5hhi: 0B0:0:4: ++%5hhi: 0b0:1:4:0: ++%*5hhi: 0b0:0:4: ++%5hhi: 1:1:2:1: ++%*5hhi: 1:0:2: ++%5hhi: 0X1:1:4:1: ++%*5hhi: 0X1:0:4: ++%5hhi: 0x1:1:4:1: ++%*5hhi: 0x1:0:4: ++%5hhi: 01:1:3:1: ++%*5hhi: 01:0:3: ++%5hhi: 0B1:1:4:1: ++%*5hhi: 0B1:0:4: ++%5hhi: 0b1:1:4:1: ++%*5hhi: 0b1:0:4: ++%5hhi: 42:1:3:42: ++%*5hhi: 42:0:3: ++%5hhi: 0X2a:1:5:42: ++%*5hhi: 0X2a:0:5: ++%5hhi: 0x2A:1:5:42: ++%*5hhi: 0x2A:0:5: ++%5hhi: 052:1:4:42: ++%*5hhi: 052:0:4: ++%5hhi: 0B101010:1:6:5: ++%*5hhi: 0B101010:0:6: ++%5hhi: 0b101010:1:6:5: ++%*5hhi: 0b101010:0:6: ++%5hhi: 127:1:4:127: ++%*5hhi: 127:0:4: ++%5hhi: 0X7f:1:5:127: ++%*5hhi: 0X7f:0:5: ++%5hhi: 0x7F:1:5:127: ++%*5hhi: 0x7F:0:5: ++%5hhi: 0177:1:5:127: ++%*5hhi: 0177:0:5: ++%5hhi: 0B1111111:1:6:7: ++%*5hhi: 0B1111111:0:6: ++%5hhi: 0b1111111:1:6:7: ++%*5hhi: 0b1111111:0:6: ++%5hhi: 128:1:4:-128: ++%*5hhi: 128:0:4: ++%5hhi: 0X80:1:5:-128: ++%*5hhi: 0X80:0:5: ++%5hhi: 0x80:1:5:-128: ++%*5hhi: 0x80:0:5: ++%5hhi: 0200:1:5:-128: ++%*5hhi: 0200:0:5: ++%5hhi: 0B10000000:1:6:4: ++%*5hhi: 0B10000000:0:6: ++%5hhi: 0b10000000:1:6:4: ++%*5hhi: 0b10000000:0:6: ++%5hhi: 169:1:4:-87: ++%*5hhi: 169:0:4: ++%5hhi: 0Xa9:1:5:-87: ++%*5hhi: 0Xa9:0:5: ++%5hhi: 0xA9:1:5:-87: ++%*5hhi: 0xA9:0:5: ++%5hhi: 0251:1:5:-87: ++%*5hhi: 0251:0:5: ++%5hhi: 0B10101001:1:6:5: ++%*5hhi: 0B10101001:0:6: ++%5hhi: 0b10101001:1:6:5: ++%*5hhi: 0b10101001:0:6: ++%5hhi: +0:1:3:0: ++%*5hhi: +0:0:3: ++%5hhi: +0X0:1:5:0: ++%*5hhi: +0X0:0:5: ++%5hhi: +0x0:1:5:0: ++%*5hhi: +0x0:0:5: ++%5hhi: +00:1:4:0: ++%*5hhi: +00:0:4: ++%5hhi: +0B0:1:5:0: ++%*5hhi: +0B0:0:5: ++%5hhi: +0b0:1:5:0: ++%*5hhi: +0b0:0:5: ++%5hhi: +1:1:3:1: ++%*5hhi: +1:0:3: ++%5hhi: +0X1:1:5:1: ++%*5hhi: +0X1:0:5: ++%5hhi: +0x1:1:5:1: ++%*5hhi: +0x1:0:5: ++%5hhi: +01:1:4:1: ++%*5hhi: +01:0:4: ++%5hhi: +0B1:1:5:1: ++%*5hhi: +0B1:0:5: ++%5hhi: +0b1:1:5:1: ++%*5hhi: +0b1:0:5: ++%5hhi: +42:1:4:42: ++%*5hhi: +42:0:4: ++%5hhi: +0X2a:1:6:42: ++%*5hhi: +0X2a:0:6: ++%5hhi: +0x2A:1:6:42: ++%*5hhi: +0x2A:0:6: ++%5hhi: +052:1:5:42: ++%*5hhi: +052:0:5: ++%5hhi: +0B101010:1:6:2: ++%*5hhi: +0B101010:0:6: ++%5hhi: +0b101010:1:6:2: ++%*5hhi: +0b101010:0:6: ++%5hhi: +127:1:5:127: ++%*5hhi: +127:0:5: ++%5hhi: +0X7f:1:6:127: ++%*5hhi: +0X7f:0:6: ++%5hhi: +0x7F:1:6:127: ++%*5hhi: +0x7F:0:6: ++%5hhi: +0177:1:6:127: ++%*5hhi: +0177:0:6: ++%5hhi: +0B1111111:1:6:3: ++%*5hhi: +0B1111111:0:6: ++%5hhi: +0b1111111:1:6:3: ++%*5hhi: +0b1111111:0:6: ++%5hhi: +128:1:5:-128: ++%*5hhi: +128:0:5: ++%5hhi: +0X80:1:6:-128: ++%*5hhi: +0X80:0:6: ++%5hhi: +0x80:1:6:-128: ++%*5hhi: +0x80:0:6: ++%5hhi: +0200:1:6:-128: ++%*5hhi: +0200:0:6: ++%5hhi: +0B10000000:1:6:2: ++%*5hhi: +0B10000000:0:6: ++%5hhi: +0b10000000:1:6:2: ++%*5hhi: +0b10000000:0:6: ++%5hhi: +169:1:5:-87: ++%*5hhi: +169:0:5: ++%5hhi: +0Xa9:1:6:-87: ++%*5hhi: +0Xa9:0:6: ++%5hhi: +0xA9:1:6:-87: ++%*5hhi: +0xA9:0:6: ++%5hhi: +0251:1:6:-87: ++%*5hhi: +0251:0:6: ++%5hhi: +0B10101001:1:6:2: ++%*5hhi: +0B10101001:0:6: ++%5hhi: +0b10101001:1:6:2: ++%*5hhi: +0b10101001:0:6: +diff --git a/stdio-common/tst-scanf-format-character.h b/stdio-common/tst-scanf-format-character.h +new file mode 100644 +index 0000000000000000..b68a5e1f39687294 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-character.h +@@ -0,0 +1,130 @@ ++/* Test feature wrapper for formatted character input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#include ++ ++/* Reference data is a sequence of characters to match against ++ byte-wise. ++ ++ For the 's' conversion specifier the number of characters read ++ from input includes any leading white-space characters consumed ++ as well, so we also consider it a successful match when the ':' ++ character following the reference data matches a terminating null ++ character in the output produced by the 'scanf' family function ++ under test while the character count hasn't been exhausted yet. ++ ++ The buffer is preinitialized to contain repeating '\xa5' character ++ so as to catch missing data output. Also no data is expected to be ++ written beyond the character sequence received, which is verified ++ by checking the following character in the buffer to remain '\xa5'. */ ++ ++#define SCANF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE initialize_value_init ++static void ++initialize_value_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SCANF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++initialize_value_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++#define pointer_to_value(val) (val) ++ ++#define initialize_value(val) \ ++do \ ++ { \ ++ val = ntf.buffer; \ ++ memset (val, 0xa5, SCANF_BUFFER_SIZE); \ ++ } \ ++while (0) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out, skip; \ ++ bool match = true; \ ++ int err = 0; \ ++ size_t i; \ ++ int ch; \ ++ \ ++ for (i = 0; i < count; i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ if (ch == ':' && val[i] == '\0' && f == 's') \ ++ goto skip; \ ++ if (ch != val[i]) \ ++ { \ ++ match = false; \ ++ goto out; \ ++ } \ ++ } \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ \ ++skip: \ ++ if (f != 'c' && val[i++] != '\0') \ ++ { \ ++ err = OUTPUT_TERM; \ ++ goto out; \ ++ } \ ++ if (val[i] != '\xa5') \ ++ { \ ++ err = OUTPUT_OVERRUN; \ ++ goto out; \ ++ } \ ++ \ ++ while (ch != ':') \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ match = false; \ ++ } \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ printf ("error: %s:%d: input buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j <= i; j++) \ ++ printf ("%c", val[j]); \ ++ printf ("'\n"); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) +diff --git a/stdio-common/tst-scanf-format-integer.h b/stdio-common/tst-scanf-format-integer.h +new file mode 100644 +index 0000000000000000..28f91a431bb1e643 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-integer.h +@@ -0,0 +1,51 @@ ++/* Test feature wrapper for formatted integer input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Reference data is a signed decimal integer constant to compare against ++ arithmetically. */ ++ ++#define pointer_to_value(val) (&(val)) ++ ++#define initialize_value(val) \ ++ memset (&val, 0xa5, sizeof (val)) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out; \ ++ bool match = true; \ ++ int err; \ ++ \ ++ UNSIGNED long long v = read_integer (&err); \ ++ if (err < 0) \ ++ goto out; \ ++ match = val == v; \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ printf ("error: %s:%d: input: %016llx\n", \ ++ __FILE__, __LINE__, (long long) val); \ ++ printf ("error: %s:%d: value: %016llx\n", \ ++ __FILE__, __LINE__, v); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) +diff --git a/stdio-common/tst-scanf-format-llong-d.input b/stdio-common/tst-scanf-format-llong-d.input +new file mode 100644 +index 0000000000000000..f027d1200d93bcf1 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-llong-d.input +@@ -0,0 +1,266 @@ ++%lld::0:-1: ++%*lld::0:-1: ++%lld:-9223372036867121486:1:20:-9223372036854775808: ++%*lld:-9223372036867121486:0:20: ++%lld:-9223372036854775809:1:20:-9223372036854775808: ++%*lld:-9223372036854775809:0:20: ++%lld:-9223372036854775808:1:20:-9223372036854775808: ++%*lld:-9223372036854775808:0:20: ++%lld:-123:1:4:-123: ++%*lld:-123:0:4: ++%lld:-1:1:2:-1: ++%*lld:-1:0:2: ++%lld:-0:1:2:0: ++%*lld:-0:0:2: ++%lld:0:1:1:0: ++%*lld:0:0:1: ++%lld:1:1:1:1: ++%*lld:1:0:1: ++%lld:42:1:2:42: ++%*lld:42:0:2: ++%lld:9223372036854775807:1:19:9223372036854775807: ++%*lld:9223372036854775807:0:19: ++%lld:9223372036854775808:1:19:9223372036854775807: ++%*lld:9223372036854775808:0:19: ++%lld:9223372036897200049:1:19:9223372036854775807: ++%*lld:9223372036897200049:0:19: ++%lld:+0:1:2:0: ++%*lld:+0:0:2: ++%lld:+1:1:2:1: ++%*lld:+1:0:2: ++%lld:+42:1:3:42: ++%*lld:+42:0:3: ++%lld:+9223372036854775807:1:20:9223372036854775807: ++%*lld:+9223372036854775807:0:20: ++%lld:+9223372036854775808:1:20:9223372036854775807: ++%*lld:+9223372036854775808:0:20: ++%lld:+9223372036897200049:1:20:9223372036854775807: ++%*lld:+9223372036897200049:0:20: ++%1lld::0:-1: ++%*1lld::0:-1: ++%1lld:-9223372036867121486:0:-1: ++%*1lld:-9223372036867121486:0:-1: ++%1lld:-9223372036854775809:0:-1: ++%*1lld:-9223372036854775809:0:-1: ++%1lld:-9223372036854775808:0:-1: ++%*1lld:-9223372036854775808:0:-1: ++%1lld:-123:0:-1: ++%*1lld:-123:0:-1: ++%1lld:-1:0:-1: ++%*1lld:-1:0:-1: ++%1lld:-0:0:-1: ++%*1lld:-0:0:-1: ++%1lld:0:1:1:0: ++%*1lld:0:0:1: ++%1lld:1:1:1:1: ++%*1lld:1:0:1: ++%1lld:42:1:1:4: ++%*1lld:42:0:1: ++%1lld:9223372036854775807:1:1:9: ++%*1lld:9223372036854775807:0:1: ++%1lld:9223372036854775808:1:1:9: ++%*1lld:9223372036854775808:0:1: ++%1lld:9223372036897200049:1:1:9: ++%*1lld:9223372036897200049:0:1: ++%1lld:+0:0:-1: ++%*1lld:+0:0:-1: ++%1lld:+1:0:-1: ++%*1lld:+1:0:-1: ++%1lld:+42:0:-1: ++%*1lld:+42:0:-1: ++%1lld:+9223372036854775807:0:-1: ++%*1lld:+9223372036854775807:0:-1: ++%1lld:+9223372036854775808:0:-1: ++%*1lld:+9223372036854775808:0:-1: ++%1lld:+9223372036897200049:0:-1: ++%*1lld:+9223372036897200049:0:-1: ++%2lld::0:-1: ++%*2lld::0:-1: ++%2lld:-9223372036867121486:1:2:-9: ++%*2lld:-9223372036867121486:0:2: ++%2lld:-9223372036854775809:1:2:-9: ++%*2lld:-9223372036854775809:0:2: ++%2lld:-9223372036854775808:1:2:-9: ++%*2lld:-9223372036854775808:0:2: ++%2lld:-123:1:2:-1: ++%*2lld:-123:0:2: ++%2lld:-1:1:2:-1: ++%*2lld:-1:0:2: ++%2lld:-0:1:2:0: ++%*2lld:-0:0:2: ++%2lld:0:1:1:0: ++%*2lld:0:0:1: ++%2lld:1:1:1:1: ++%*2lld:1:0:1: ++%2lld:42:1:2:42: ++%*2lld:42:0:2: ++%2lld:9223372036854775807:1:2:92: ++%*2lld:9223372036854775807:0:2: ++%2lld:9223372036854775808:1:2:92: ++%*2lld:9223372036854775808:0:2: ++%2lld:9223372036897200049:1:2:92: ++%*2lld:9223372036897200049:0:2: ++%2lld:+0:1:2:0: ++%*2lld:+0:0:2: ++%2lld:+1:1:2:1: ++%*2lld:+1:0:2: ++%2lld:+42:1:2:4: ++%*2lld:+42:0:2: ++%2lld:+9223372036854775807:1:2:9: ++%*2lld:+9223372036854775807:0:2: ++%2lld:+9223372036854775808:1:2:9: ++%*2lld:+9223372036854775808:0:2: ++%2lld:+9223372036897200049:1:2:9: ++%*2lld:+9223372036897200049:0:2: ++%15lld::0:-1: ++%*15lld::0:-1: ++%15lld:-9223372036867121486:1:15:-92233720368671: ++%*15lld:-9223372036867121486:0:15: ++%15lld:-9223372036854775809:1:15:-92233720368547: ++%*15lld:-9223372036854775809:0:15: ++%15lld:-9223372036854775808:1:15:-92233720368547: ++%*15lld:-9223372036854775808:0:15: ++%15lld:-123:1:4:-123: ++%*15lld:-123:0:4: ++%15lld:-1:1:2:-1: ++%*15lld:-1:0:2: ++%15lld:-0:1:2:0: ++%*15lld:-0:0:2: ++%15lld:0:1:1:0: ++%*15lld:0:0:1: ++%15lld:1:1:1:1: ++%*15lld:1:0:1: ++%15lld:42:1:2:42: ++%*15lld:42:0:2: ++%15lld:9223372036854775807:1:15:922337203685477: ++%*15lld:9223372036854775807:0:15: ++%15lld:9223372036854775808:1:15:922337203685477: ++%*15lld:9223372036854775808:0:15: ++%15lld:9223372036897200049:1:15:922337203689720: ++%*15lld:9223372036897200049:0:15: ++%15lld:+0:1:2:0: ++%*15lld:+0:0:2: ++%15lld:+1:1:2:1: ++%*15lld:+1:0:2: ++%15lld:+42:1:3:42: ++%*15lld:+42:0:3: ++%15lld:+9223372036854775807:1:15:92233720368547: ++%*15lld:+9223372036854775807:0:15: ++%15lld:+9223372036854775808:1:15:92233720368547: ++%*15lld:+9223372036854775808:0:15: ++%15lld:+9223372036897200049:1:15:92233720368972: ++%*15lld:+9223372036897200049:0:15: ++%25lld::0:-1: ++%*25lld::0:-1: ++%25lld:-9223372036867121486:1:20:-9223372036854775808: ++%*25lld:-9223372036867121486:0:20: ++%25lld:-9223372036854775809:1:20:-9223372036854775808: ++%*25lld:-9223372036854775809:0:20: ++%25lld:-9223372036854775808:1:20:-9223372036854775808: ++%*25lld:-9223372036854775808:0:20: ++%25lld:-123:1:4:-123: ++%*25lld:-123:0:4: ++%25lld:-1:1:2:-1: ++%*25lld:-1:0:2: ++%25lld:-0:1:2:0: ++%*25lld:-0:0:2: ++%25lld:0:1:1:0: ++%*25lld:0:0:1: ++%25lld:1:1:1:1: ++%*25lld:1:0:1: ++%25lld:42:1:2:42: ++%*25lld:42:0:2: ++%25lld:9223372036854775807:1:19:9223372036854775807: ++%*25lld:9223372036854775807:0:19: ++%25lld:9223372036854775808:1:19:9223372036854775807: ++%*25lld:9223372036854775808:0:19: ++%25lld:9223372036897200049:1:19:9223372036854775807: ++%*25lld:9223372036897200049:0:19: ++%25lld:+0:1:2:0: ++%*25lld:+0:0:2: ++%25lld:+1:1:2:1: ++%*25lld:+1:0:2: ++%25lld:+42:1:3:42: ++%*25lld:+42:0:3: ++%25lld:+9223372036854775807:1:20:9223372036854775807: ++%*25lld:+9223372036854775807:0:20: ++%25lld:+9223372036854775808:1:20:9223372036854775807: ++%*25lld:+9223372036854775808:0:20: ++%25lld:+9223372036897200049:1:20:9223372036854775807: ++%*25lld:+9223372036897200049:0:20: ++%2lld: :0:-1: ++%*2lld: :0:-1: ++%2lld: -9223372036867121486:1:3:-9: ++%*2lld: -9223372036867121486:0:3: ++%2lld: -9223372036854775809:1:3:-9: ++%*2lld: -9223372036854775809:0:3: ++%2lld: -9223372036854775808:1:3:-9: ++%*2lld: -9223372036854775808:0:3: ++%2lld: -123:1:3:-1: ++%*2lld: -123:0:3: ++%2lld: -1:1:3:-1: ++%*2lld: -1:0:3: ++%2lld: -0:1:3:0: ++%*2lld: -0:0:3: ++%2lld: 0:1:2:0: ++%*2lld: 0:0:2: ++%2lld: 1:1:2:1: ++%*2lld: 1:0:2: ++%2lld: 42:1:3:42: ++%*2lld: 42:0:3: ++%2lld: 9223372036854775807:1:3:92: ++%*2lld: 9223372036854775807:0:3: ++%2lld: 9223372036854775808:1:3:92: ++%*2lld: 9223372036854775808:0:3: ++%2lld: 9223372036897200049:1:3:92: ++%*2lld: 9223372036897200049:0:3: ++%2lld: +0:1:3:0: ++%*2lld: +0:0:3: ++%2lld: +1:1:3:1: ++%*2lld: +1:0:3: ++%2lld: +42:1:3:4: ++%*2lld: +42:0:3: ++%2lld: +9223372036854775807:1:3:9: ++%*2lld: +9223372036854775807:0:3: ++%2lld: +9223372036854775808:1:3:9: ++%*2lld: +9223372036854775808:0:3: ++%2lld: +9223372036897200049:1:3:9: ++%*2lld: +9223372036897200049:0:3: ++%25lld: :0:-1: ++%*25lld: :0:-1: ++%25lld: -9223372036867121486:1:21:-9223372036854775808: ++%*25lld: -9223372036867121486:0:21: ++%25lld: -9223372036854775809:1:21:-9223372036854775808: ++%*25lld: -9223372036854775809:0:21: ++%25lld: -9223372036854775808:1:21:-9223372036854775808: ++%*25lld: -9223372036854775808:0:21: ++%25lld: -123:1:5:-123: ++%*25lld: -123:0:5: ++%25lld: -1:1:3:-1: ++%*25lld: -1:0:3: ++%25lld: -0:1:3:0: ++%*25lld: -0:0:3: ++%25lld: 0:1:2:0: ++%*25lld: 0:0:2: ++%25lld: 1:1:2:1: ++%*25lld: 1:0:2: ++%25lld: 42:1:3:42: ++%*25lld: 42:0:3: ++%25lld: 9223372036854775807:1:20:9223372036854775807: ++%*25lld: 9223372036854775807:0:20: ++%25lld: 9223372036854775808:1:20:9223372036854775807: ++%*25lld: 9223372036854775808:0:20: ++%25lld: 9223372036897200049:1:20:9223372036854775807: ++%*25lld: 9223372036897200049:0:20: ++%25lld: +0:1:3:0: ++%*25lld: +0:0:3: ++%25lld: +1:1:3:1: ++%*25lld: +1:0:3: ++%25lld: +42:1:4:42: ++%*25lld: +42:0:4: ++%25lld: +9223372036854775807:1:21:9223372036854775807: ++%*25lld: +9223372036854775807:0:21: ++%25lld: +9223372036854775808:1:21:9223372036854775807: ++%*25lld: +9223372036854775808:0:21: ++%25lld: +9223372036897200049:1:21:9223372036854775807: ++%*25lld: +9223372036897200049:0:21: +diff --git a/stdio-common/tst-scanf-format-llong-i.input b/stdio-common/tst-scanf-format-llong-i.input +new file mode 100644 +index 0000000000000000..f63e35d099c4a330 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-llong-i.input +@@ -0,0 +1,1526 @@ ++%lli::0:-1: ++%*lli::0:-1: ++%lli:-9223372036867121486:1:20:-9223372036854775808: ++%*lli:-9223372036867121486:0:20: ++%lli:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*lli:-0X8000000000bc614e:0:19: ++%lli:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*lli:-0x8000000000BC614E:0:19: ++%lli:-01000000000000057060516:1:24:-9223372036854775808: ++%*lli:-01000000000000057060516:0:24: ++%lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%lli:-9223372036854775809:1:20:-9223372036854775808: ++%*lli:-9223372036854775809:0:20: ++%lli:-0X8000000000000001:1:19:-9223372036854775808: ++%*lli:-0X8000000000000001:0:19: ++%lli:-0x8000000000000001:1:19:-9223372036854775808: ++%*lli:-0x8000000000000001:0:19: ++%lli:-01000000000000000000001:1:24:-9223372036854775808: ++%*lli:-01000000000000000000001:0:24: ++%lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%lli:-9223372036854775808:1:20:-9223372036854775808: ++%*lli:-9223372036854775808:0:20: ++%lli:-0X8000000000000000:1:19:-9223372036854775808: ++%*lli:-0X8000000000000000:0:19: ++%lli:-0x8000000000000000:1:19:-9223372036854775808: ++%*lli:-0x8000000000000000:0:19: ++%lli:-01000000000000000000000:1:24:-9223372036854775808: ++%*lli:-01000000000000000000000:0:24: ++%lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:-123:1:4:-123: ++%*lli:-123:0:4: ++%lli:-0X7b:1:5:-123: ++%*lli:-0X7b:0:5: ++%lli:-0x7B:1:5:-123: ++%*lli:-0x7B:0:5: ++%lli:-0173:1:5:-123: ++%*lli:-0173:0:5: ++%lli:-0B1111011:1:10:-123: ++%*lli:-0B1111011:0:10: ++%lli:-0b1111011:1:10:-123: ++%*lli:-0b1111011:0:10: ++%lli:-1:1:2:-1: ++%*lli:-1:0:2: ++%lli:-0X1:1:4:-1: ++%*lli:-0X1:0:4: ++%lli:-0x1:1:4:-1: ++%*lli:-0x1:0:4: ++%lli:-01:1:3:-1: ++%*lli:-01:0:3: ++%lli:-0B1:1:4:-1: ++%*lli:-0B1:0:4: ++%lli:-0b1:1:4:-1: ++%*lli:-0b1:0:4: ++%lli:-0:1:2:0: ++%*lli:-0:0:2: ++%lli:-0X0:1:4:0: ++%*lli:-0X0:0:4: ++%lli:-0x0:1:4:0: ++%*lli:-0x0:0:4: ++%lli:-00:1:3:0: ++%*lli:-00:0:3: ++%lli:-0B0:1:4:0: ++%*lli:-0B0:0:4: ++%lli:-0b0:1:4:0: ++%*lli:-0b0:0:4: ++%lli:0:1:1:0: ++%*lli:0:0:1: ++%lli:0X0:1:3:0: ++%*lli:0X0:0:3: ++%lli:0x0:1:3:0: ++%*lli:0x0:0:3: ++%lli:00:1:2:0: ++%*lli:00:0:2: ++%lli:0B0:1:3:0: ++%*lli:0B0:0:3: ++%lli:0b0:1:3:0: ++%*lli:0b0:0:3: ++%lli:1:1:1:1: ++%*lli:1:0:1: ++%lli:0X1:1:3:1: ++%*lli:0X1:0:3: ++%lli:0x1:1:3:1: ++%*lli:0x1:0:3: ++%lli:01:1:2:1: ++%*lli:01:0:2: ++%lli:0B1:1:3:1: ++%*lli:0B1:0:3: ++%lli:0b1:1:3:1: ++%*lli:0b1:0:3: ++%lli:42:1:2:42: ++%*lli:42:0:2: ++%lli:0X2a:1:4:42: ++%*lli:0X2a:0:4: ++%lli:0x2A:1:4:42: ++%*lli:0x2A:0:4: ++%lli:052:1:3:42: ++%*lli:052:0:3: ++%lli:0B101010:1:8:42: ++%*lli:0B101010:0:8: ++%lli:0b101010:1:8:42: ++%*lli:0b101010:0:8: ++%lli:9223372036854775807:1:19:9223372036854775807: ++%*lli:9223372036854775807:0:19: ++%lli:0X7fffffffffffffff:1:18:9223372036854775807: ++%*lli:0X7fffffffffffffff:0:18: ++%lli:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*lli:0x7FFFFFFFFFFFFFFF:0:18: ++%lli:0777777777777777777777:1:22:9223372036854775807: ++%*lli:0777777777777777777777:0:22: ++%lli:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*lli:0B111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lli:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*lli:0b111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lli:9223372036854775808:1:19:9223372036854775807: ++%*lli:9223372036854775808:0:19: ++%lli:0X8000000000000000:1:18:9223372036854775807: ++%*lli:0X8000000000000000:0:18: ++%lli:0x8000000000000000:1:18:9223372036854775807: ++%*lli:0x8000000000000000:0:18: ++%lli:01000000000000000000000:1:23:9223372036854775807: ++%*lli:01000000000000000000000:0:23: ++%lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lli:9223372036897200049:1:19:9223372036854775807: ++%*lli:9223372036897200049:0:19: ++%lli:0X80000000028757b1:1:18:9223372036854775807: ++%*lli:0X80000000028757b1:0:18: ++%lli:0x80000000028757B1:1:18:9223372036854775807: ++%*lli:0x80000000028757B1:0:18: ++%lli:01000000000000241653661:1:23:9223372036854775807: ++%*lli:01000000000000241653661:0:23: ++%lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lli:+0:1:2:0: ++%*lli:+0:0:2: ++%lli:+0X0:1:4:0: ++%*lli:+0X0:0:4: ++%lli:+0x0:1:4:0: ++%*lli:+0x0:0:4: ++%lli:+00:1:3:0: ++%*lli:+00:0:3: ++%lli:+0B0:1:4:0: ++%*lli:+0B0:0:4: ++%lli:+0b0:1:4:0: ++%*lli:+0b0:0:4: ++%lli:+1:1:2:1: ++%*lli:+1:0:2: ++%lli:+0X1:1:4:1: ++%*lli:+0X1:0:4: ++%lli:+0x1:1:4:1: ++%*lli:+0x1:0:4: ++%lli:+01:1:3:1: ++%*lli:+01:0:3: ++%lli:+0B1:1:4:1: ++%*lli:+0B1:0:4: ++%lli:+0b1:1:4:1: ++%*lli:+0b1:0:4: ++%lli:+42:1:3:42: ++%*lli:+42:0:3: ++%lli:+0X2a:1:5:42: ++%*lli:+0X2a:0:5: ++%lli:+0x2A:1:5:42: ++%*lli:+0x2A:0:5: ++%lli:+052:1:4:42: ++%*lli:+052:0:4: ++%lli:+0B101010:1:9:42: ++%*lli:+0B101010:0:9: ++%lli:+0b101010:1:9:42: ++%*lli:+0b101010:0:9: ++%lli:+9223372036854775807:1:20:9223372036854775807: ++%*lli:+9223372036854775807:0:20: ++%lli:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*lli:+0X7fffffffffffffff:0:19: ++%lli:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*lli:+0x7FFFFFFFFFFFFFFF:0:19: ++%lli:+0777777777777777777777:1:23:9223372036854775807: ++%*lli:+0777777777777777777777:0:23: ++%lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lli:+9223372036854775808:1:20:9223372036854775807: ++%*lli:+9223372036854775808:0:20: ++%lli:+0X8000000000000000:1:19:9223372036854775807: ++%*lli:+0X8000000000000000:0:19: ++%lli:+0x8000000000000000:1:19:9223372036854775807: ++%*lli:+0x8000000000000000:0:19: ++%lli:+01000000000000000000000:1:24:9223372036854775807: ++%*lli:+01000000000000000000000:0:24: ++%lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:+9223372036897200049:1:20:9223372036854775807: ++%*lli:+9223372036897200049:0:20: ++%lli:+0X80000000028757b1:1:19:9223372036854775807: ++%*lli:+0X80000000028757b1:0:19: ++%lli:+0x80000000028757B1:1:19:9223372036854775807: ++%*lli:+0x80000000028757B1:0:19: ++%lli:+01000000000000241653661:1:24:9223372036854775807: ++%*lli:+01000000000000241653661:0:24: ++%lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%1lli::0:-1: ++%*1lli::0:-1: ++%1lli:-9223372036867121486:0:-1: ++%*1lli:-9223372036867121486:0:-1: ++%1lli:-0X8000000000bc614e:0:-1: ++%*1lli:-0X8000000000bc614e:0:-1: ++%1lli:-0x8000000000BC614E:0:-1: ++%*1lli:-0x8000000000BC614E:0:-1: ++%1lli:-01000000000000057060516:0:-1: ++%*1lli:-01000000000000057060516:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1lli:-9223372036854775809:0:-1: ++%*1lli:-9223372036854775809:0:-1: ++%1lli:-0X8000000000000001:0:-1: ++%*1lli:-0X8000000000000001:0:-1: ++%1lli:-0x8000000000000001:0:-1: ++%*1lli:-0x8000000000000001:0:-1: ++%1lli:-01000000000000000000001:0:-1: ++%*1lli:-01000000000000000000001:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1lli:-9223372036854775808:0:-1: ++%*1lli:-9223372036854775808:0:-1: ++%1lli:-0X8000000000000000:0:-1: ++%*1lli:-0X8000000000000000:0:-1: ++%1lli:-0x8000000000000000:0:-1: ++%*1lli:-0x8000000000000000:0:-1: ++%1lli:-01000000000000000000000:0:-1: ++%*1lli:-01000000000000000000000:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:-123:0:-1: ++%*1lli:-123:0:-1: ++%1lli:-0X7b:0:-1: ++%*1lli:-0X7b:0:-1: ++%1lli:-0x7B:0:-1: ++%*1lli:-0x7B:0:-1: ++%1lli:-0173:0:-1: ++%*1lli:-0173:0:-1: ++%1lli:-0B1111011:0:-1: ++%*1lli:-0B1111011:0:-1: ++%1lli:-0b1111011:0:-1: ++%*1lli:-0b1111011:0:-1: ++%1lli:-1:0:-1: ++%*1lli:-1:0:-1: ++%1lli:-0X1:0:-1: ++%*1lli:-0X1:0:-1: ++%1lli:-0x1:0:-1: ++%*1lli:-0x1:0:-1: ++%1lli:-01:0:-1: ++%*1lli:-01:0:-1: ++%1lli:-0B1:0:-1: ++%*1lli:-0B1:0:-1: ++%1lli:-0b1:0:-1: ++%*1lli:-0b1:0:-1: ++%1lli:-0:0:-1: ++%*1lli:-0:0:-1: ++%1lli:-0X0:0:-1: ++%*1lli:-0X0:0:-1: ++%1lli:-0x0:0:-1: ++%*1lli:-0x0:0:-1: ++%1lli:-00:0:-1: ++%*1lli:-00:0:-1: ++%1lli:-0B0:0:-1: ++%*1lli:-0B0:0:-1: ++%1lli:-0b0:0:-1: ++%*1lli:-0b0:0:-1: ++%1lli:0:1:1:0: ++%*1lli:0:0:1: ++%1lli:0X0:1:1:0: ++%*1lli:0X0:0:1: ++%1lli:0x0:1:1:0: ++%*1lli:0x0:0:1: ++%1lli:00:1:1:0: ++%*1lli:00:0:1: ++%1lli:0B0:1:1:0: ++%*1lli:0B0:0:1: ++%1lli:0b0:1:1:0: ++%*1lli:0b0:0:1: ++%1lli:1:1:1:1: ++%*1lli:1:0:1: ++%1lli:0X1:1:1:0: ++%*1lli:0X1:0:1: ++%1lli:0x1:1:1:0: ++%*1lli:0x1:0:1: ++%1lli:01:1:1:0: ++%*1lli:01:0:1: ++%1lli:0B1:1:1:0: ++%*1lli:0B1:0:1: ++%1lli:0b1:1:1:0: ++%*1lli:0b1:0:1: ++%1lli:42:1:1:4: ++%*1lli:42:0:1: ++%1lli:0X2a:1:1:0: ++%*1lli:0X2a:0:1: ++%1lli:0x2A:1:1:0: ++%*1lli:0x2A:0:1: ++%1lli:052:1:1:0: ++%*1lli:052:0:1: ++%1lli:0B101010:1:1:0: ++%*1lli:0B101010:0:1: ++%1lli:0b101010:1:1:0: ++%*1lli:0b101010:0:1: ++%1lli:9223372036854775807:1:1:9: ++%*1lli:9223372036854775807:0:1: ++%1lli:0X7fffffffffffffff:1:1:0: ++%*1lli:0X7fffffffffffffff:0:1: ++%1lli:0x7FFFFFFFFFFFFFFF:1:1:0: ++%*1lli:0x7FFFFFFFFFFFFFFF:0:1: ++%1lli:0777777777777777777777:1:1:0: ++%*1lli:0777777777777777777777:0:1: ++%1lli:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lli:0B111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lli:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lli:0b111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lli:9223372036854775808:1:1:9: ++%*1lli:9223372036854775808:0:1: ++%1lli:0X8000000000000000:1:1:0: ++%*1lli:0X8000000000000000:0:1: ++%1lli:0x8000000000000000:1:1:0: ++%*1lli:0x8000000000000000:0:1: ++%1lli:01000000000000000000000:1:1:0: ++%*1lli:01000000000000000000000:0:1: ++%1lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lli:9223372036897200049:1:1:9: ++%*1lli:9223372036897200049:0:1: ++%1lli:0X80000000028757b1:1:1:0: ++%*1lli:0X80000000028757b1:0:1: ++%1lli:0x80000000028757B1:1:1:0: ++%*1lli:0x80000000028757B1:0:1: ++%1lli:01000000000000241653661:1:1:0: ++%*1lli:01000000000000241653661:0:1: ++%1lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lli:+0:0:-1: ++%*1lli:+0:0:-1: ++%1lli:+0X0:0:-1: ++%*1lli:+0X0:0:-1: ++%1lli:+0x0:0:-1: ++%*1lli:+0x0:0:-1: ++%1lli:+00:0:-1: ++%*1lli:+00:0:-1: ++%1lli:+0B0:0:-1: ++%*1lli:+0B0:0:-1: ++%1lli:+0b0:0:-1: ++%*1lli:+0b0:0:-1: ++%1lli:+1:0:-1: ++%*1lli:+1:0:-1: ++%1lli:+0X1:0:-1: ++%*1lli:+0X1:0:-1: ++%1lli:+0x1:0:-1: ++%*1lli:+0x1:0:-1: ++%1lli:+01:0:-1: ++%*1lli:+01:0:-1: ++%1lli:+0B1:0:-1: ++%*1lli:+0B1:0:-1: ++%1lli:+0b1:0:-1: ++%*1lli:+0b1:0:-1: ++%1lli:+42:0:-1: ++%*1lli:+42:0:-1: ++%1lli:+0X2a:0:-1: ++%*1lli:+0X2a:0:-1: ++%1lli:+0x2A:0:-1: ++%*1lli:+0x2A:0:-1: ++%1lli:+052:0:-1: ++%*1lli:+052:0:-1: ++%1lli:+0B101010:0:-1: ++%*1lli:+0B101010:0:-1: ++%1lli:+0b101010:0:-1: ++%*1lli:+0b101010:0:-1: ++%1lli:+9223372036854775807:0:-1: ++%*1lli:+9223372036854775807:0:-1: ++%1lli:+0X7fffffffffffffff:0:-1: ++%*1lli:+0X7fffffffffffffff:0:-1: ++%1lli:+0x7FFFFFFFFFFFFFFF:0:-1: ++%*1lli:+0x7FFFFFFFFFFFFFFF:0:-1: ++%1lli:+0777777777777777777777:0:-1: ++%*1lli:+0777777777777777777777:0:-1: ++%1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lli:+9223372036854775808:0:-1: ++%*1lli:+9223372036854775808:0:-1: ++%1lli:+0X8000000000000000:0:-1: ++%*1lli:+0X8000000000000000:0:-1: ++%1lli:+0x8000000000000000:0:-1: ++%*1lli:+0x8000000000000000:0:-1: ++%1lli:+01000000000000000000000:0:-1: ++%*1lli:+01000000000000000000000:0:-1: ++%1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:+9223372036897200049:0:-1: ++%*1lli:+9223372036897200049:0:-1: ++%1lli:+0X80000000028757b1:0:-1: ++%*1lli:+0X80000000028757b1:0:-1: ++%1lli:+0x80000000028757B1:0:-1: ++%*1lli:+0x80000000028757B1:0:-1: ++%1lli:+01000000000000241653661:0:-1: ++%*1lli:+01000000000000241653661:0:-1: ++%1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli::0:-1: ++%*2lli::0:-1: ++%2lli:-9223372036867121486:1:2:-9: ++%*2lli:-9223372036867121486:0:2: ++%2lli:-0X8000000000bc614e:1:2:0: ++%*2lli:-0X8000000000bc614e:0:2: ++%2lli:-0x8000000000BC614E:1:2:0: ++%*2lli:-0x8000000000BC614E:0:2: ++%2lli:-01000000000000057060516:1:2:0: ++%*2lli:-01000000000000057060516:0:2: ++%2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2lli:-9223372036854775809:1:2:-9: ++%*2lli:-9223372036854775809:0:2: ++%2lli:-0X8000000000000001:1:2:0: ++%*2lli:-0X8000000000000001:0:2: ++%2lli:-0x8000000000000001:1:2:0: ++%*2lli:-0x8000000000000001:0:2: ++%2lli:-01000000000000000000001:1:2:0: ++%*2lli:-01000000000000000000001:0:2: ++%2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2lli:-9223372036854775808:1:2:-9: ++%*2lli:-9223372036854775808:0:2: ++%2lli:-0X8000000000000000:1:2:0: ++%*2lli:-0X8000000000000000:0:2: ++%2lli:-0x8000000000000000:1:2:0: ++%*2lli:-0x8000000000000000:0:2: ++%2lli:-01000000000000000000000:1:2:0: ++%*2lli:-01000000000000000000000:0:2: ++%2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:-123:1:2:-1: ++%*2lli:-123:0:2: ++%2lli:-0X7b:1:2:0: ++%*2lli:-0X7b:0:2: ++%2lli:-0x7B:1:2:0: ++%*2lli:-0x7B:0:2: ++%2lli:-0173:1:2:0: ++%*2lli:-0173:0:2: ++%2lli:-0B1111011:1:2:0: ++%*2lli:-0B1111011:0:2: ++%2lli:-0b1111011:1:2:0: ++%*2lli:-0b1111011:0:2: ++%2lli:-1:1:2:-1: ++%*2lli:-1:0:2: ++%2lli:-0X1:1:2:0: ++%*2lli:-0X1:0:2: ++%2lli:-0x1:1:2:0: ++%*2lli:-0x1:0:2: ++%2lli:-01:1:2:0: ++%*2lli:-01:0:2: ++%2lli:-0B1:1:2:0: ++%*2lli:-0B1:0:2: ++%2lli:-0b1:1:2:0: ++%*2lli:-0b1:0:2: ++%2lli:-0:1:2:0: ++%*2lli:-0:0:2: ++%2lli:-0X0:1:2:0: ++%*2lli:-0X0:0:2: ++%2lli:-0x0:1:2:0: ++%*2lli:-0x0:0:2: ++%2lli:-00:1:2:0: ++%*2lli:-00:0:2: ++%2lli:-0B0:1:2:0: ++%*2lli:-0B0:0:2: ++%2lli:-0b0:1:2:0: ++%*2lli:-0b0:0:2: ++%2lli:0:1:1:0: ++%*2lli:0:0:1: ++# BZ12701 %2lli:0X0:0:-1: ++# BZ12701 %*2lli:0X0:0:-1: ++# BZ12701 %2lli:0x0:0:-1: ++# BZ12701 %*2lli:0x0:0:-1: ++%2lli:00:1:2:0: ++%*2lli:00:0:2: ++# BZ12701 %2lli:0B0:0:-1: ++# BZ12701 %*2lli:0B0:0:-1: ++# BZ12701 %2lli:0b0:0:-1: ++# BZ12701 %*2lli:0b0:0:-1: ++%2lli:1:1:1:1: ++%*2lli:1:0:1: ++# BZ12701 %2lli:0X1:0:-1: ++# BZ12701 %*2lli:0X1:0:-1: ++# BZ12701 %2lli:0x1:0:-1: ++# BZ12701 %*2lli:0x1:0:-1: ++%2lli:01:1:2:1: ++%*2lli:01:0:2: ++# BZ12701 %2lli:0B1:0:-1: ++# BZ12701 %*2lli:0B1:0:-1: ++# BZ12701 %2lli:0b1:0:-1: ++# BZ12701 %*2lli:0b1:0:-1: ++%2lli:42:1:2:42: ++%*2lli:42:0:2: ++# BZ12701 %2lli:0X2a:0:-1: ++# BZ12701 %*2lli:0X2a:0:-1: ++# BZ12701 %2lli:0x2A:0:-1: ++# BZ12701 %*2lli:0x2A:0:-1: ++%2lli:052:1:2:5: ++%*2lli:052:0:2: ++# BZ12701 %2lli:0B101010:0:-1: ++# BZ12701 %*2lli:0B101010:0:-1: ++# BZ12701 %2lli:0b101010:0:-1: ++# BZ12701 %*2lli:0b101010:0:-1: ++%2lli:9223372036854775807:1:2:92: ++%*2lli:9223372036854775807:0:2: ++# BZ12701 %2lli:0X7fffffffffffffff:0:-1: ++# BZ12701 %*2lli:0X7fffffffffffffff:0:-1: ++# BZ12701 %2lli:0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lli:0x7FFFFFFFFFFFFFFF:0:-1: ++%2lli:0777777777777777777777:1:2:7: ++%*2lli:0777777777777777777777:0:2: ++# BZ12701 %2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lli:9223372036854775808:1:2:92: ++%*2lli:9223372036854775808:0:2: ++# BZ12701 %2lli:0X8000000000000000:0:-1: ++# BZ12701 %*2lli:0X8000000000000000:0:-1: ++# BZ12701 %2lli:0x8000000000000000:0:-1: ++# BZ12701 %*2lli:0x8000000000000000:0:-1: ++%2lli:01000000000000000000000:1:2:1: ++%*2lli:01000000000000000000000:0:2: ++# BZ12701 %2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lli:9223372036897200049:1:2:92: ++%*2lli:9223372036897200049:0:2: ++# BZ12701 %2lli:0X80000000028757b1:0:-1: ++# BZ12701 %*2lli:0X80000000028757b1:0:-1: ++# BZ12701 %2lli:0x80000000028757B1:0:-1: ++# BZ12701 %*2lli:0x80000000028757B1:0:-1: ++%2lli:01000000000000241653661:1:2:1: ++%*2lli:01000000000000241653661:0:2: ++# BZ12701 %2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli:+0:1:2:0: ++%*2lli:+0:0:2: ++%2lli:+0X0:1:2:0: ++%*2lli:+0X0:0:2: ++%2lli:+0x0:1:2:0: ++%*2lli:+0x0:0:2: ++%2lli:+00:1:2:0: ++%*2lli:+00:0:2: ++%2lli:+0B0:1:2:0: ++%*2lli:+0B0:0:2: ++%2lli:+0b0:1:2:0: ++%*2lli:+0b0:0:2: ++%2lli:+1:1:2:1: ++%*2lli:+1:0:2: ++%2lli:+0X1:1:2:0: ++%*2lli:+0X1:0:2: ++%2lli:+0x1:1:2:0: ++%*2lli:+0x1:0:2: ++%2lli:+01:1:2:0: ++%*2lli:+01:0:2: ++%2lli:+0B1:1:2:0: ++%*2lli:+0B1:0:2: ++%2lli:+0b1:1:2:0: ++%*2lli:+0b1:0:2: ++%2lli:+42:1:2:4: ++%*2lli:+42:0:2: ++%2lli:+0X2a:1:2:0: ++%*2lli:+0X2a:0:2: ++%2lli:+0x2A:1:2:0: ++%*2lli:+0x2A:0:2: ++%2lli:+052:1:2:0: ++%*2lli:+052:0:2: ++%2lli:+0B101010:1:2:0: ++%*2lli:+0B101010:0:2: ++%2lli:+0b101010:1:2:0: ++%*2lli:+0b101010:0:2: ++%2lli:+9223372036854775807:1:2:9: ++%*2lli:+9223372036854775807:0:2: ++%2lli:+0X7fffffffffffffff:1:2:0: ++%*2lli:+0X7fffffffffffffff:0:2: ++%2lli:+0x7FFFFFFFFFFFFFFF:1:2:0: ++%*2lli:+0x7FFFFFFFFFFFFFFF:0:2: ++%2lli:+0777777777777777777777:1:2:0: ++%*2lli:+0777777777777777777777:0:2: ++%2lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lli:+9223372036854775808:1:2:9: ++%*2lli:+9223372036854775808:0:2: ++%2lli:+0X8000000000000000:1:2:0: ++%*2lli:+0X8000000000000000:0:2: ++%2lli:+0x8000000000000000:1:2:0: ++%*2lli:+0x8000000000000000:0:2: ++%2lli:+01000000000000000000000:1:2:0: ++%*2lli:+01000000000000000000000:0:2: ++%2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:+9223372036897200049:1:2:9: ++%*2lli:+9223372036897200049:0:2: ++%2lli:+0X80000000028757b1:1:2:0: ++%*2lli:+0X80000000028757b1:0:2: ++%2lli:+0x80000000028757B1:1:2:0: ++%*2lli:+0x80000000028757B1:0:2: ++%2lli:+01000000000000241653661:1:2:0: ++%*2lli:+01000000000000241653661:0:2: ++%2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15lli::0:-1: ++%*15lli::0:-1: ++%15lli:-9223372036867121486:1:15:-92233720368671: ++%*15lli:-9223372036867121486:0:15: ++%15lli:-0X8000000000bc614e:1:15:-140737488355516: ++%*15lli:-0X8000000000bc614e:0:15: ++%15lli:-0x8000000000BC614E:1:15:-140737488355516: ++%*15lli:-0x8000000000BC614E:0:15: ++%15lli:-01000000000000057060516:1:15:-68719476736: ++%*15lli:-01000000000000057060516:0:15: ++%15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15lli:-9223372036854775809:1:15:-92233720368547: ++%*15lli:-9223372036854775809:0:15: ++%15lli:-0X8000000000000001:1:15:-140737488355328: ++%*15lli:-0X8000000000000001:0:15: ++%15lli:-0x8000000000000001:1:15:-140737488355328: ++%*15lli:-0x8000000000000001:0:15: ++%15lli:-01000000000000000000001:1:15:-68719476736: ++%*15lli:-01000000000000000000001:0:15: ++%15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15lli:-9223372036854775808:1:15:-92233720368547: ++%*15lli:-9223372036854775808:0:15: ++%15lli:-0X8000000000000000:1:15:-140737488355328: ++%*15lli:-0X8000000000000000:0:15: ++%15lli:-0x8000000000000000:1:15:-140737488355328: ++%*15lli:-0x8000000000000000:0:15: ++%15lli:-01000000000000000000000:1:15:-68719476736: ++%*15lli:-01000000000000000000000:0:15: ++%15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:-123:1:4:-123: ++%*15lli:-123:0:4: ++%15lli:-0X7b:1:5:-123: ++%*15lli:-0X7b:0:5: ++%15lli:-0x7B:1:5:-123: ++%*15lli:-0x7B:0:5: ++%15lli:-0173:1:5:-123: ++%*15lli:-0173:0:5: ++%15lli:-0B1111011:1:10:-123: ++%*15lli:-0B1111011:0:10: ++%15lli:-0b1111011:1:10:-123: ++%*15lli:-0b1111011:0:10: ++%15lli:-1:1:2:-1: ++%*15lli:-1:0:2: ++%15lli:-0X1:1:4:-1: ++%*15lli:-0X1:0:4: ++%15lli:-0x1:1:4:-1: ++%*15lli:-0x1:0:4: ++%15lli:-01:1:3:-1: ++%*15lli:-01:0:3: ++%15lli:-0B1:1:4:-1: ++%*15lli:-0B1:0:4: ++%15lli:-0b1:1:4:-1: ++%*15lli:-0b1:0:4: ++%15lli:-0:1:2:0: ++%*15lli:-0:0:2: ++%15lli:-0X0:1:4:0: ++%*15lli:-0X0:0:4: ++%15lli:-0x0:1:4:0: ++%*15lli:-0x0:0:4: ++%15lli:-00:1:3:0: ++%*15lli:-00:0:3: ++%15lli:-0B0:1:4:0: ++%*15lli:-0B0:0:4: ++%15lli:-0b0:1:4:0: ++%*15lli:-0b0:0:4: ++%15lli:0:1:1:0: ++%*15lli:0:0:1: ++%15lli:0X0:1:3:0: ++%*15lli:0X0:0:3: ++%15lli:0x0:1:3:0: ++%*15lli:0x0:0:3: ++%15lli:00:1:2:0: ++%*15lli:00:0:2: ++%15lli:0B0:1:3:0: ++%*15lli:0B0:0:3: ++%15lli:0b0:1:3:0: ++%*15lli:0b0:0:3: ++%15lli:1:1:1:1: ++%*15lli:1:0:1: ++%15lli:0X1:1:3:1: ++%*15lli:0X1:0:3: ++%15lli:0x1:1:3:1: ++%*15lli:0x1:0:3: ++%15lli:01:1:2:1: ++%*15lli:01:0:2: ++%15lli:0B1:1:3:1: ++%*15lli:0B1:0:3: ++%15lli:0b1:1:3:1: ++%*15lli:0b1:0:3: ++%15lli:42:1:2:42: ++%*15lli:42:0:2: ++%15lli:0X2a:1:4:42: ++%*15lli:0X2a:0:4: ++%15lli:0x2A:1:4:42: ++%*15lli:0x2A:0:4: ++%15lli:052:1:3:42: ++%*15lli:052:0:3: ++%15lli:0B101010:1:8:42: ++%*15lli:0B101010:0:8: ++%15lli:0b101010:1:8:42: ++%*15lli:0b101010:0:8: ++%15lli:9223372036854775807:1:15:922337203685477: ++%*15lli:9223372036854775807:0:15: ++%15lli:0X7fffffffffffffff:1:15:2251799813685247: ++%*15lli:0X7fffffffffffffff:0:15: ++%15lli:0x7FFFFFFFFFFFFFFF:1:15:2251799813685247: ++%*15lli:0x7FFFFFFFFFFFFFFF:0:15: ++%15lli:0777777777777777777777:1:15:4398046511103: ++%*15lli:0777777777777777777777:0:15: ++%15lli:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lli:0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lli:0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:9223372036854775808:1:15:922337203685477: ++%*15lli:9223372036854775808:0:15: ++%15lli:0X8000000000000000:1:15:2251799813685248: ++%*15lli:0X8000000000000000:0:15: ++%15lli:0x8000000000000000:1:15:2251799813685248: ++%*15lli:0x8000000000000000:0:15: ++%15lli:01000000000000000000000:1:15:549755813888: ++%*15lli:01000000000000000000000:0:15: ++%15lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:9223372036897200049:1:15:922337203689720: ++%*15lli:9223372036897200049:0:15: ++%15lli:0X80000000028757b1:1:15:2251799813695605: ++%*15lli:0X80000000028757b1:0:15: ++%15lli:0x80000000028757B1:1:15:2251799813695605: ++%*15lli:0x80000000028757B1:0:15: ++%15lli:01000000000000241653661:1:15:549755813890: ++%*15lli:01000000000000241653661:0:15: ++%15lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:+0:1:2:0: ++%*15lli:+0:0:2: ++%15lli:+0X0:1:4:0: ++%*15lli:+0X0:0:4: ++%15lli:+0x0:1:4:0: ++%*15lli:+0x0:0:4: ++%15lli:+00:1:3:0: ++%*15lli:+00:0:3: ++%15lli:+0B0:1:4:0: ++%*15lli:+0B0:0:4: ++%15lli:+0b0:1:4:0: ++%*15lli:+0b0:0:4: ++%15lli:+1:1:2:1: ++%*15lli:+1:0:2: ++%15lli:+0X1:1:4:1: ++%*15lli:+0X1:0:4: ++%15lli:+0x1:1:4:1: ++%*15lli:+0x1:0:4: ++%15lli:+01:1:3:1: ++%*15lli:+01:0:3: ++%15lli:+0B1:1:4:1: ++%*15lli:+0B1:0:4: ++%15lli:+0b1:1:4:1: ++%*15lli:+0b1:0:4: ++%15lli:+42:1:3:42: ++%*15lli:+42:0:3: ++%15lli:+0X2a:1:5:42: ++%*15lli:+0X2a:0:5: ++%15lli:+0x2A:1:5:42: ++%*15lli:+0x2A:0:5: ++%15lli:+052:1:4:42: ++%*15lli:+052:0:4: ++%15lli:+0B101010:1:9:42: ++%*15lli:+0B101010:0:9: ++%15lli:+0b101010:1:9:42: ++%*15lli:+0b101010:0:9: ++%15lli:+9223372036854775807:1:15:92233720368547: ++%*15lli:+9223372036854775807:0:15: ++%15lli:+0X7fffffffffffffff:1:15:140737488355327: ++%*15lli:+0X7fffffffffffffff:0:15: ++%15lli:+0x7FFFFFFFFFFFFFFF:1:15:140737488355327: ++%*15lli:+0x7FFFFFFFFFFFFFFF:0:15: ++%15lli:+0777777777777777777777:1:15:549755813887: ++%*15lli:+0777777777777777777777:0:15: ++%15lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:+9223372036854775808:1:15:92233720368547: ++%*15lli:+9223372036854775808:0:15: ++%15lli:+0X8000000000000000:1:15:140737488355328: ++%*15lli:+0X8000000000000000:0:15: ++%15lli:+0x8000000000000000:1:15:140737488355328: ++%*15lli:+0x8000000000000000:0:15: ++%15lli:+01000000000000000000000:1:15:68719476736: ++%*15lli:+01000000000000000000000:0:15: ++%15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:+9223372036897200049:1:15:92233720368972: ++%*15lli:+9223372036897200049:0:15: ++%15lli:+0X80000000028757b1:1:15:140737488355975: ++%*15lli:+0X80000000028757b1:0:15: ++%15lli:+0x80000000028757B1:1:15:140737488355975: ++%*15lli:+0x80000000028757B1:0:15: ++%15lli:+01000000000000241653661:1:15:68719476736: ++%*15lli:+01000000000000241653661:0:15: ++%15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25lli::0:-1: ++%*25lli::0:-1: ++%25lli:-9223372036867121486:1:20:-9223372036854775808: ++%*25lli:-9223372036867121486:0:20: ++%25lli:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*25lli:-0X8000000000bc614e:0:19: ++%25lli:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*25lli:-0x8000000000BC614E:0:19: ++%25lli:-01000000000000057060516:1:24:-9223372036854775808: ++%*25lli:-01000000000000057060516:0:24: ++%25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25lli:-9223372036854775809:1:20:-9223372036854775808: ++%*25lli:-9223372036854775809:0:20: ++%25lli:-0X8000000000000001:1:19:-9223372036854775808: ++%*25lli:-0X8000000000000001:0:19: ++%25lli:-0x8000000000000001:1:19:-9223372036854775808: ++%*25lli:-0x8000000000000001:0:19: ++%25lli:-01000000000000000000001:1:24:-9223372036854775808: ++%*25lli:-01000000000000000000001:0:24: ++%25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25lli:-9223372036854775808:1:20:-9223372036854775808: ++%*25lli:-9223372036854775808:0:20: ++%25lli:-0X8000000000000000:1:19:-9223372036854775808: ++%*25lli:-0X8000000000000000:0:19: ++%25lli:-0x8000000000000000:1:19:-9223372036854775808: ++%*25lli:-0x8000000000000000:0:19: ++%25lli:-01000000000000000000000:1:24:-9223372036854775808: ++%*25lli:-01000000000000000000000:0:24: ++%25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:-123:1:4:-123: ++%*25lli:-123:0:4: ++%25lli:-0X7b:1:5:-123: ++%*25lli:-0X7b:0:5: ++%25lli:-0x7B:1:5:-123: ++%*25lli:-0x7B:0:5: ++%25lli:-0173:1:5:-123: ++%*25lli:-0173:0:5: ++%25lli:-0B1111011:1:10:-123: ++%*25lli:-0B1111011:0:10: ++%25lli:-0b1111011:1:10:-123: ++%*25lli:-0b1111011:0:10: ++%25lli:-1:1:2:-1: ++%*25lli:-1:0:2: ++%25lli:-0X1:1:4:-1: ++%*25lli:-0X1:0:4: ++%25lli:-0x1:1:4:-1: ++%*25lli:-0x1:0:4: ++%25lli:-01:1:3:-1: ++%*25lli:-01:0:3: ++%25lli:-0B1:1:4:-1: ++%*25lli:-0B1:0:4: ++%25lli:-0b1:1:4:-1: ++%*25lli:-0b1:0:4: ++%25lli:-0:1:2:0: ++%*25lli:-0:0:2: ++%25lli:-0X0:1:4:0: ++%*25lli:-0X0:0:4: ++%25lli:-0x0:1:4:0: ++%*25lli:-0x0:0:4: ++%25lli:-00:1:3:0: ++%*25lli:-00:0:3: ++%25lli:-0B0:1:4:0: ++%*25lli:-0B0:0:4: ++%25lli:-0b0:1:4:0: ++%*25lli:-0b0:0:4: ++%25lli:0:1:1:0: ++%*25lli:0:0:1: ++%25lli:0X0:1:3:0: ++%*25lli:0X0:0:3: ++%25lli:0x0:1:3:0: ++%*25lli:0x0:0:3: ++%25lli:00:1:2:0: ++%*25lli:00:0:2: ++%25lli:0B0:1:3:0: ++%*25lli:0B0:0:3: ++%25lli:0b0:1:3:0: ++%*25lli:0b0:0:3: ++%25lli:1:1:1:1: ++%*25lli:1:0:1: ++%25lli:0X1:1:3:1: ++%*25lli:0X1:0:3: ++%25lli:0x1:1:3:1: ++%*25lli:0x1:0:3: ++%25lli:01:1:2:1: ++%*25lli:01:0:2: ++%25lli:0B1:1:3:1: ++%*25lli:0B1:0:3: ++%25lli:0b1:1:3:1: ++%*25lli:0b1:0:3: ++%25lli:42:1:2:42: ++%*25lli:42:0:2: ++%25lli:0X2a:1:4:42: ++%*25lli:0X2a:0:4: ++%25lli:0x2A:1:4:42: ++%*25lli:0x2A:0:4: ++%25lli:052:1:3:42: ++%*25lli:052:0:3: ++%25lli:0B101010:1:8:42: ++%*25lli:0B101010:0:8: ++%25lli:0b101010:1:8:42: ++%*25lli:0b101010:0:8: ++%25lli:9223372036854775807:1:19:9223372036854775807: ++%*25lli:9223372036854775807:0:19: ++%25lli:0X7fffffffffffffff:1:18:9223372036854775807: ++%*25lli:0X7fffffffffffffff:0:18: ++%25lli:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*25lli:0x7FFFFFFFFFFFFFFF:0:18: ++%25lli:0777777777777777777777:1:22:9223372036854775807: ++%*25lli:0777777777777777777777:0:22: ++%25lli:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lli:0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lli:0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:9223372036854775808:1:19:9223372036854775807: ++%*25lli:9223372036854775808:0:19: ++%25lli:0X8000000000000000:1:18:9223372036854775807: ++%*25lli:0X8000000000000000:0:18: ++%25lli:0x8000000000000000:1:18:9223372036854775807: ++%*25lli:0x8000000000000000:0:18: ++%25lli:01000000000000000000000:1:23:9223372036854775807: ++%*25lli:01000000000000000000000:0:23: ++%25lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:9223372036897200049:1:19:9223372036854775807: ++%*25lli:9223372036897200049:0:19: ++%25lli:0X80000000028757b1:1:18:9223372036854775807: ++%*25lli:0X80000000028757b1:0:18: ++%25lli:0x80000000028757B1:1:18:9223372036854775807: ++%*25lli:0x80000000028757B1:0:18: ++%25lli:01000000000000241653661:1:23:9223372036854775807: ++%*25lli:01000000000000241653661:0:23: ++%25lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:+0:1:2:0: ++%*25lli:+0:0:2: ++%25lli:+0X0:1:4:0: ++%*25lli:+0X0:0:4: ++%25lli:+0x0:1:4:0: ++%*25lli:+0x0:0:4: ++%25lli:+00:1:3:0: ++%*25lli:+00:0:3: ++%25lli:+0B0:1:4:0: ++%*25lli:+0B0:0:4: ++%25lli:+0b0:1:4:0: ++%*25lli:+0b0:0:4: ++%25lli:+1:1:2:1: ++%*25lli:+1:0:2: ++%25lli:+0X1:1:4:1: ++%*25lli:+0X1:0:4: ++%25lli:+0x1:1:4:1: ++%*25lli:+0x1:0:4: ++%25lli:+01:1:3:1: ++%*25lli:+01:0:3: ++%25lli:+0B1:1:4:1: ++%*25lli:+0B1:0:4: ++%25lli:+0b1:1:4:1: ++%*25lli:+0b1:0:4: ++%25lli:+42:1:3:42: ++%*25lli:+42:0:3: ++%25lli:+0X2a:1:5:42: ++%*25lli:+0X2a:0:5: ++%25lli:+0x2A:1:5:42: ++%*25lli:+0x2A:0:5: ++%25lli:+052:1:4:42: ++%*25lli:+052:0:4: ++%25lli:+0B101010:1:9:42: ++%*25lli:+0B101010:0:9: ++%25lli:+0b101010:1:9:42: ++%*25lli:+0b101010:0:9: ++%25lli:+9223372036854775807:1:20:9223372036854775807: ++%*25lli:+9223372036854775807:0:20: ++%25lli:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*25lli:+0X7fffffffffffffff:0:19: ++%25lli:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25lli:+0x7FFFFFFFFFFFFFFF:0:19: ++%25lli:+0777777777777777777777:1:23:9223372036854775807: ++%*25lli:+0777777777777777777777:0:23: ++%25lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:+9223372036854775808:1:20:9223372036854775807: ++%*25lli:+9223372036854775808:0:20: ++%25lli:+0X8000000000000000:1:19:9223372036854775807: ++%*25lli:+0X8000000000000000:0:19: ++%25lli:+0x8000000000000000:1:19:9223372036854775807: ++%*25lli:+0x8000000000000000:0:19: ++%25lli:+01000000000000000000000:1:24:9223372036854775807: ++%*25lli:+01000000000000000000000:0:24: ++%25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:+9223372036897200049:1:20:9223372036854775807: ++%*25lli:+9223372036897200049:0:20: ++%25lli:+0X80000000028757b1:1:19:9223372036854775807: ++%*25lli:+0X80000000028757b1:0:19: ++%25lli:+0x80000000028757B1:1:19:9223372036854775807: ++%*25lli:+0x80000000028757B1:0:19: ++%25lli:+01000000000000241653661:1:24:9223372036854775807: ++%*25lli:+01000000000000241653661:0:24: ++%25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2lli: :0:-1: ++%*2lli: :0:-1: ++%2lli: -9223372036867121486:1:3:-9: ++%*2lli: -9223372036867121486:0:3: ++%2lli: -0X8000000000bc614e:1:3:0: ++%*2lli: -0X8000000000bc614e:0:3: ++%2lli: -0x8000000000BC614E:1:3:0: ++%*2lli: -0x8000000000BC614E:0:3: ++%2lli: -01000000000000057060516:1:3:0: ++%*2lli: -01000000000000057060516:0:3: ++%2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2lli: -9223372036854775809:1:3:-9: ++%*2lli: -9223372036854775809:0:3: ++%2lli: -0X8000000000000001:1:3:0: ++%*2lli: -0X8000000000000001:0:3: ++%2lli: -0x8000000000000001:1:3:0: ++%*2lli: -0x8000000000000001:0:3: ++%2lli: -01000000000000000000001:1:3:0: ++%*2lli: -01000000000000000000001:0:3: ++%2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2lli: -9223372036854775808:1:3:-9: ++%*2lli: -9223372036854775808:0:3: ++%2lli: -0X8000000000000000:1:3:0: ++%*2lli: -0X8000000000000000:0:3: ++%2lli: -0x8000000000000000:1:3:0: ++%*2lli: -0x8000000000000000:0:3: ++%2lli: -01000000000000000000000:1:3:0: ++%*2lli: -01000000000000000000000:0:3: ++%2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: -123:1:3:-1: ++%*2lli: -123:0:3: ++%2lli: -0X7b:1:3:0: ++%*2lli: -0X7b:0:3: ++%2lli: -0x7B:1:3:0: ++%*2lli: -0x7B:0:3: ++%2lli: -0173:1:3:0: ++%*2lli: -0173:0:3: ++%2lli: -0B1111011:1:3:0: ++%*2lli: -0B1111011:0:3: ++%2lli: -0b1111011:1:3:0: ++%*2lli: -0b1111011:0:3: ++%2lli: -1:1:3:-1: ++%*2lli: -1:0:3: ++%2lli: -0X1:1:3:0: ++%*2lli: -0X1:0:3: ++%2lli: -0x1:1:3:0: ++%*2lli: -0x1:0:3: ++%2lli: -01:1:3:0: ++%*2lli: -01:0:3: ++%2lli: -0B1:1:3:0: ++%*2lli: -0B1:0:3: ++%2lli: -0b1:1:3:0: ++%*2lli: -0b1:0:3: ++%2lli: -0:1:3:0: ++%*2lli: -0:0:3: ++%2lli: -0X0:1:3:0: ++%*2lli: -0X0:0:3: ++%2lli: -0x0:1:3:0: ++%*2lli: -0x0:0:3: ++%2lli: -00:1:3:0: ++%*2lli: -00:0:3: ++%2lli: -0B0:1:3:0: ++%*2lli: -0B0:0:3: ++%2lli: -0b0:1:3:0: ++%*2lli: -0b0:0:3: ++%2lli: 0:1:2:0: ++%*2lli: 0:0:2: ++# BZ12701 %2lli: 0X0:0:-1: ++# BZ12701 %*2lli: 0X0:0:-1: ++# BZ12701 %2lli: 0x0:0:-1: ++# BZ12701 %*2lli: 0x0:0:-1: ++%2lli: 00:1:3:0: ++%*2lli: 00:0:3: ++# BZ12701 %2lli: 0B0:0:-1: ++# BZ12701 %*2lli: 0B0:0:-1: ++# BZ12701 %2lli: 0b0:0:-1: ++# BZ12701 %*2lli: 0b0:0:-1: ++%2lli: 1:1:2:1: ++%*2lli: 1:0:2: ++# BZ12701 %2lli: 0X1:0:-1: ++# BZ12701 %*2lli: 0X1:0:-1: ++# BZ12701 %2lli: 0x1:0:-1: ++# BZ12701 %*2lli: 0x1:0:-1: ++%2lli: 01:1:3:1: ++%*2lli: 01:0:3: ++# BZ12701 %2lli: 0B1:0:-1: ++# BZ12701 %*2lli: 0B1:0:-1: ++# BZ12701 %2lli: 0b1:0:-1: ++# BZ12701 %*2lli: 0b1:0:-1: ++%2lli: 42:1:3:42: ++%*2lli: 42:0:3: ++# BZ12701 %2lli: 0X2a:0:-1: ++# BZ12701 %*2lli: 0X2a:0:-1: ++# BZ12701 %2lli: 0x2A:0:-1: ++# BZ12701 %*2lli: 0x2A:0:-1: ++%2lli: 052:1:3:5: ++%*2lli: 052:0:3: ++# BZ12701 %2lli: 0B101010:0:-1: ++# BZ12701 %*2lli: 0B101010:0:-1: ++# BZ12701 %2lli: 0b101010:0:-1: ++# BZ12701 %*2lli: 0b101010:0:-1: ++%2lli: 9223372036854775807:1:3:92: ++%*2lli: 9223372036854775807:0:3: ++# BZ12701 %2lli: 0X7fffffffffffffff:0:-1: ++# BZ12701 %*2lli: 0X7fffffffffffffff:0:-1: ++# BZ12701 %2lli: 0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lli: 0x7FFFFFFFFFFFFFFF:0:-1: ++%2lli: 0777777777777777777777:1:3:7: ++%*2lli: 0777777777777777777777:0:3: ++# BZ12701 %2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lli: 9223372036854775808:1:3:92: ++%*2lli: 9223372036854775808:0:3: ++# BZ12701 %2lli: 0X8000000000000000:0:-1: ++# BZ12701 %*2lli: 0X8000000000000000:0:-1: ++# BZ12701 %2lli: 0x8000000000000000:0:-1: ++# BZ12701 %*2lli: 0x8000000000000000:0:-1: ++%2lli: 01000000000000000000000:1:3:1: ++%*2lli: 01000000000000000000000:0:3: ++# BZ12701 %2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lli: 9223372036897200049:1:3:92: ++%*2lli: 9223372036897200049:0:3: ++# BZ12701 %2lli: 0X80000000028757b1:0:-1: ++# BZ12701 %*2lli: 0X80000000028757b1:0:-1: ++# BZ12701 %2lli: 0x80000000028757B1:0:-1: ++# BZ12701 %*2lli: 0x80000000028757B1:0:-1: ++%2lli: 01000000000000241653661:1:3:1: ++%*2lli: 01000000000000241653661:0:3: ++# BZ12701 %2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli: +0:1:3:0: ++%*2lli: +0:0:3: ++%2lli: +0X0:1:3:0: ++%*2lli: +0X0:0:3: ++%2lli: +0x0:1:3:0: ++%*2lli: +0x0:0:3: ++%2lli: +00:1:3:0: ++%*2lli: +00:0:3: ++%2lli: +0B0:1:3:0: ++%*2lli: +0B0:0:3: ++%2lli: +0b0:1:3:0: ++%*2lli: +0b0:0:3: ++%2lli: +1:1:3:1: ++%*2lli: +1:0:3: ++%2lli: +0X1:1:3:0: ++%*2lli: +0X1:0:3: ++%2lli: +0x1:1:3:0: ++%*2lli: +0x1:0:3: ++%2lli: +01:1:3:0: ++%*2lli: +01:0:3: ++%2lli: +0B1:1:3:0: ++%*2lli: +0B1:0:3: ++%2lli: +0b1:1:3:0: ++%*2lli: +0b1:0:3: ++%2lli: +42:1:3:4: ++%*2lli: +42:0:3: ++%2lli: +0X2a:1:3:0: ++%*2lli: +0X2a:0:3: ++%2lli: +0x2A:1:3:0: ++%*2lli: +0x2A:0:3: ++%2lli: +052:1:3:0: ++%*2lli: +052:0:3: ++%2lli: +0B101010:1:3:0: ++%*2lli: +0B101010:0:3: ++%2lli: +0b101010:1:3:0: ++%*2lli: +0b101010:0:3: ++%2lli: +9223372036854775807:1:3:9: ++%*2lli: +9223372036854775807:0:3: ++%2lli: +0X7fffffffffffffff:1:3:0: ++%*2lli: +0X7fffffffffffffff:0:3: ++%2lli: +0x7FFFFFFFFFFFFFFF:1:3:0: ++%*2lli: +0x7FFFFFFFFFFFFFFF:0:3: ++%2lli: +0777777777777777777777:1:3:0: ++%*2lli: +0777777777777777777777:0:3: ++%2lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lli: +9223372036854775808:1:3:9: ++%*2lli: +9223372036854775808:0:3: ++%2lli: +0X8000000000000000:1:3:0: ++%*2lli: +0X8000000000000000:0:3: ++%2lli: +0x8000000000000000:1:3:0: ++%*2lli: +0x8000000000000000:0:3: ++%2lli: +01000000000000000000000:1:3:0: ++%*2lli: +01000000000000000000000:0:3: ++%2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: +9223372036897200049:1:3:9: ++%*2lli: +9223372036897200049:0:3: ++%2lli: +0X80000000028757b1:1:3:0: ++%*2lli: +0X80000000028757b1:0:3: ++%2lli: +0x80000000028757B1:1:3:0: ++%*2lli: +0x80000000028757B1:0:3: ++%2lli: +01000000000000241653661:1:3:0: ++%*2lli: +01000000000000241653661:0:3: ++%2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25lli: :0:-1: ++%*25lli: :0:-1: ++%25lli: -9223372036867121486:1:21:-9223372036854775808: ++%*25lli: -9223372036867121486:0:21: ++%25lli: -0X8000000000bc614e:1:20:-9223372036854775808: ++%*25lli: -0X8000000000bc614e:0:20: ++%25lli: -0x8000000000BC614E:1:20:-9223372036854775808: ++%*25lli: -0x8000000000BC614E:0:20: ++%25lli: -01000000000000057060516:1:25:-9223372036854775808: ++%*25lli: -01000000000000057060516:0:25: ++%25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25lli: -9223372036854775809:1:21:-9223372036854775808: ++%*25lli: -9223372036854775809:0:21: ++%25lli: -0X8000000000000001:1:20:-9223372036854775808: ++%*25lli: -0X8000000000000001:0:20: ++%25lli: -0x8000000000000001:1:20:-9223372036854775808: ++%*25lli: -0x8000000000000001:0:20: ++%25lli: -01000000000000000000001:1:25:-9223372036854775808: ++%*25lli: -01000000000000000000001:0:25: ++%25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25lli: -9223372036854775808:1:21:-9223372036854775808: ++%*25lli: -9223372036854775808:0:21: ++%25lli: -0X8000000000000000:1:20:-9223372036854775808: ++%*25lli: -0X8000000000000000:0:20: ++%25lli: -0x8000000000000000:1:20:-9223372036854775808: ++%*25lli: -0x8000000000000000:0:20: ++%25lli: -01000000000000000000000:1:25:-9223372036854775808: ++%*25lli: -01000000000000000000000:0:25: ++%25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: -123:1:5:-123: ++%*25lli: -123:0:5: ++%25lli: -0X7b:1:6:-123: ++%*25lli: -0X7b:0:6: ++%25lli: -0x7B:1:6:-123: ++%*25lli: -0x7B:0:6: ++%25lli: -0173:1:6:-123: ++%*25lli: -0173:0:6: ++%25lli: -0B1111011:1:11:-123: ++%*25lli: -0B1111011:0:11: ++%25lli: -0b1111011:1:11:-123: ++%*25lli: -0b1111011:0:11: ++%25lli: -1:1:3:-1: ++%*25lli: -1:0:3: ++%25lli: -0X1:1:5:-1: ++%*25lli: -0X1:0:5: ++%25lli: -0x1:1:5:-1: ++%*25lli: -0x1:0:5: ++%25lli: -01:1:4:-1: ++%*25lli: -01:0:4: ++%25lli: -0B1:1:5:-1: ++%*25lli: -0B1:0:5: ++%25lli: -0b1:1:5:-1: ++%*25lli: -0b1:0:5: ++%25lli: -0:1:3:0: ++%*25lli: -0:0:3: ++%25lli: -0X0:1:5:0: ++%*25lli: -0X0:0:5: ++%25lli: -0x0:1:5:0: ++%*25lli: -0x0:0:5: ++%25lli: -00:1:4:0: ++%*25lli: -00:0:4: ++%25lli: -0B0:1:5:0: ++%*25lli: -0B0:0:5: ++%25lli: -0b0:1:5:0: ++%*25lli: -0b0:0:5: ++%25lli: 0:1:2:0: ++%*25lli: 0:0:2: ++%25lli: 0X0:1:4:0: ++%*25lli: 0X0:0:4: ++%25lli: 0x0:1:4:0: ++%*25lli: 0x0:0:4: ++%25lli: 00:1:3:0: ++%*25lli: 00:0:3: ++%25lli: 0B0:1:4:0: ++%*25lli: 0B0:0:4: ++%25lli: 0b0:1:4:0: ++%*25lli: 0b0:0:4: ++%25lli: 1:1:2:1: ++%*25lli: 1:0:2: ++%25lli: 0X1:1:4:1: ++%*25lli: 0X1:0:4: ++%25lli: 0x1:1:4:1: ++%*25lli: 0x1:0:4: ++%25lli: 01:1:3:1: ++%*25lli: 01:0:3: ++%25lli: 0B1:1:4:1: ++%*25lli: 0B1:0:4: ++%25lli: 0b1:1:4:1: ++%*25lli: 0b1:0:4: ++%25lli: 42:1:3:42: ++%*25lli: 42:0:3: ++%25lli: 0X2a:1:5:42: ++%*25lli: 0X2a:0:5: ++%25lli: 0x2A:1:5:42: ++%*25lli: 0x2A:0:5: ++%25lli: 052:1:4:42: ++%*25lli: 052:0:4: ++%25lli: 0B101010:1:9:42: ++%*25lli: 0B101010:0:9: ++%25lli: 0b101010:1:9:42: ++%*25lli: 0b101010:0:9: ++%25lli: 9223372036854775807:1:20:9223372036854775807: ++%*25lli: 9223372036854775807:0:20: ++%25lli: 0X7fffffffffffffff:1:19:9223372036854775807: ++%*25lli: 0X7fffffffffffffff:0:19: ++%25lli: 0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25lli: 0x7FFFFFFFFFFFFFFF:0:19: ++%25lli: 0777777777777777777777:1:23:9223372036854775807: ++%*25lli: 0777777777777777777777:0:23: ++%25lli: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: 9223372036854775808:1:20:9223372036854775807: ++%*25lli: 9223372036854775808:0:20: ++%25lli: 0X8000000000000000:1:19:9223372036854775807: ++%*25lli: 0X8000000000000000:0:19: ++%25lli: 0x8000000000000000:1:19:9223372036854775807: ++%*25lli: 0x8000000000000000:0:19: ++%25lli: 01000000000000000000000:1:24:9223372036854775807: ++%*25lli: 01000000000000000000000:0:24: ++%25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: 9223372036897200049:1:20:9223372036854775807: ++%*25lli: 9223372036897200049:0:20: ++%25lli: 0X80000000028757b1:1:19:9223372036854775807: ++%*25lli: 0X80000000028757b1:0:19: ++%25lli: 0x80000000028757B1:1:19:9223372036854775807: ++%*25lli: 0x80000000028757B1:0:19: ++%25lli: 01000000000000241653661:1:24:9223372036854775807: ++%*25lli: 01000000000000241653661:0:24: ++%25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: +0:1:3:0: ++%*25lli: +0:0:3: ++%25lli: +0X0:1:5:0: ++%*25lli: +0X0:0:5: ++%25lli: +0x0:1:5:0: ++%*25lli: +0x0:0:5: ++%25lli: +00:1:4:0: ++%*25lli: +00:0:4: ++%25lli: +0B0:1:5:0: ++%*25lli: +0B0:0:5: ++%25lli: +0b0:1:5:0: ++%*25lli: +0b0:0:5: ++%25lli: +1:1:3:1: ++%*25lli: +1:0:3: ++%25lli: +0X1:1:5:1: ++%*25lli: +0X1:0:5: ++%25lli: +0x1:1:5:1: ++%*25lli: +0x1:0:5: ++%25lli: +01:1:4:1: ++%*25lli: +01:0:4: ++%25lli: +0B1:1:5:1: ++%*25lli: +0B1:0:5: ++%25lli: +0b1:1:5:1: ++%*25lli: +0b1:0:5: ++%25lli: +42:1:4:42: ++%*25lli: +42:0:4: ++%25lli: +0X2a:1:6:42: ++%*25lli: +0X2a:0:6: ++%25lli: +0x2A:1:6:42: ++%*25lli: +0x2A:0:6: ++%25lli: +052:1:5:42: ++%*25lli: +052:0:5: ++%25lli: +0B101010:1:10:42: ++%*25lli: +0B101010:0:10: ++%25lli: +0b101010:1:10:42: ++%*25lli: +0b101010:0:10: ++%25lli: +9223372036854775807:1:21:9223372036854775807: ++%*25lli: +9223372036854775807:0:21: ++%25lli: +0X7fffffffffffffff:1:20:9223372036854775807: ++%*25lli: +0X7fffffffffffffff:0:20: ++%25lli: +0x7FFFFFFFFFFFFFFF:1:20:9223372036854775807: ++%*25lli: +0x7FFFFFFFFFFFFFFF:0:20: ++%25lli: +0777777777777777777777:1:24:9223372036854775807: ++%*25lli: +0777777777777777777777:0:24: ++%25lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: +9223372036854775808:1:21:9223372036854775807: ++%*25lli: +9223372036854775808:0:21: ++%25lli: +0X8000000000000000:1:20:9223372036854775807: ++%*25lli: +0X8000000000000000:0:20: ++%25lli: +0x8000000000000000:1:20:9223372036854775807: ++%*25lli: +0x8000000000000000:0:20: ++%25lli: +01000000000000000000000:1:25:9223372036854775807: ++%*25lli: +01000000000000000000000:0:25: ++%25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: +9223372036897200049:1:21:9223372036854775807: ++%*25lli: +9223372036897200049:0:21: ++%25lli: +0X80000000028757b1:1:20:9223372036854775807: ++%*25lli: +0X80000000028757b1:0:20: ++%25lli: +0x80000000028757B1:1:20:9223372036854775807: ++%*25lli: +0x80000000028757B1:0:20: ++%25lli: +01000000000000241653661:1:25:9223372036854775807: ++%*25lli: +01000000000000241653661:0:25: ++%25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-real.h b/stdio-common/tst-scanf-format-real.h +new file mode 100644 +index 0000000000000000..639ac749735886a2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-real.h +@@ -0,0 +1,363 @@ ++/* Test feature wrapper for formatted real input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* Reference data is a case-inensitive signed datum, which is either a ++ hexadecimal floating constant or a literal representing infinity or ++ NaN data in any of the forms accepted by 'strtod' family functions, ++ whose binary representation is to match against byte-wise. ++ ++ We need to be careful with parsing reference data in the handling of ++ the sign as with the IBM long double binary format unary negation ++ of a positive value whose lower-magnitude part is zero produces a ++ bit pattern that is different from one produced by initialization or ++ conversions made by functions such as 'scanf' or 'strtod' from the ++ complementing negative value. The difference is in the sign of zero ++ held in the lower-magnitude part and therefore the bit patterns are ++ arithmetically equivalent, but they do not match byte-wise. ++ ++ Therefore we set the sign with the initial value of the significand, ++ either -0.0 or 0.0, which sets the sign of both parts according to ++ what 'scanf' does, and never negate it afterwards. ++ ++ Additionally the Intel long double binary format uses only 80 bits ++ out of 96 that the data type occupies. Therefore preinitialize the ++ reference value with the same 0xa5 bit pattern that the value under ++ test has been so that the byte-wise comparison matches as well for ++ the unused parts of the two data pieces. ++ ++ We use 'ldexp' to assemble the significand with the exponent, which ++ does not compromise verification, because internally this exercises ++ a code path different from one used by 'scanf' family functions for ++ this purpose. Specifically 'ldexp' uses 'scalbn', whereas 'scanf' ++ defers to 'strtod' which uses '__mpn_construct_double'. Analogously ++ for the remaining floating-point data types. */ ++ ++#define nan(v, x) \ ++ _Generic((v), float: nanf, double: nan, long double: nanl) (x) ++ ++#define pointer_to_value(val) (&(val)) ++ ++#define initialize_value(val) \ ++ memset (&val, 0xa5, sizeof (val)) ++ ++#define compare_real(x, y) \ ++ (memcmp (&(x), &(y), sizeof (y)) == 0) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out; \ ++ bool match = true; \ ++ int err = 0; \ ++ type_t v; \ ++ \ ++ initialize_value (v); \ ++ /* Make sure it's been committed. */ \ ++ __asm__ ("" : : : "memory"); \ ++ v = read_real (&err); \ ++ if (err < 0) \ ++ goto out; \ ++ match = compare_real (val, v); \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ union \ ++ { \ ++ type_t v; \ ++ unsigned char x[sizeof (type_t)]; \ ++ } \ ++ uv = { .v = v }, ui = { .v = val }; \ ++ \ ++ printf ("error: %s:%d: input buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j < sizeof (ui.x); j++) \ ++ printf ("%02hhx", ui.x[j]); \ ++ printf ("'\n"); \ ++ printf ("error: %s:%d: value buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j < sizeof (uv.x); j++) \ ++ printf ("%02hhx", uv.x[j]); \ ++ printf ("'\n"); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) ++ ++#define read_real(errp) \ ++({ \ ++ __label__ out; \ ++ bool m = false; \ ++ int err = 0; \ ++ type_t v; \ ++ int ch; \ ++ \ ++ ch = read_input (); \ ++ if (ch == '-' || ch == '+') \ ++ { \ ++ m = ch == '-'; \ ++ ch = read_input (); \ ++ } \ ++ \ ++ switch (ch) \ ++ { \ ++ case '0': \ ++ break; \ ++ case 'I': \ ++ case 'i': \ ++ { \ ++ static const char unf[] = { 'N', 'F' }; \ ++ static const char lnf[] = { 'n', 'f' }; \ ++ size_t i; \ ++ \ ++ for (i = 0; i < sizeof (unf); i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch != unf[i] && ch != lnf[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -INFINITY : +INFINITY; \ ++ goto out; \ ++ } \ ++ \ ++ static const char uinity[] = { 'I', 'N', 'I', 'T', 'Y' }; \ ++ static const char linity[] = { 'i', 'n', 'i', 't', 'y' }; \ ++ \ ++ for (i = 0; i < sizeof (uinity); i++) \ ++ { \ ++ if (ch != uinity[i] && ch != linity[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ ch = read_input (); \ ++ } \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -INFINITY : +INFINITY; \ ++ goto out; \ ++ } \ ++ } \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ \ ++ case 'N': \ ++ case 'n': \ ++ { \ ++ static const char uan[] = { 'A', 'N' }; \ ++ static const char lan[] = { 'a', 'n' }; \ ++ size_t i; \ ++ \ ++ for (i = 0; i < sizeof (uan); i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch != uan[i] && ch != lan[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -nan (v, ".") : nan (v, "."); \ ++ goto out; \ ++ } \ ++ \ ++ size_t seq_size = 0; \ ++ char *seq = NULL; \ ++ i = 0; \ ++ if (ch == '(') \ ++ while (1) \ ++ { \ ++ ch = read_input (); \ ++ if (ch == ')') \ ++ break; \ ++ if (ch != '_' && !isdigit (ch) \ ++ && !(ch >= 'A' && ch <= 'Z') \ ++ && !(ch >= 'a' && ch <= 'z')) \ ++ { \ ++ free (seq); \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ if (i == seq_size) \ ++ { \ ++ seq_size += SIZE_CHUNK; \ ++ seq = xrealloc (seq, seq_size); \ ++ } \ ++ seq[i++] = ch; \ ++ } \ ++ seq[i] = '\0'; \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -nan (v, seq) : nan (v, seq); \ ++ free (seq); \ ++ goto out; \ ++ } \ ++ free (seq); \ ++ } \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch != 'X' && ch != 'x') \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ type_t f = m ? -1.0 : 1.0; \ ++ v = m ? -0.0 : 0.0; \ ++ int i = 0; \ ++ do \ ++ { \ ++ int d = 0; \ ++ \ ++ ch = read_input (); \ ++ \ ++ if (i == 1) \ ++ switch (ch) \ ++ { \ ++ case '.': \ ++ i++; \ ++ continue; \ ++ \ ++ case ':': \ ++ case 'P': \ ++ case 'p': \ ++ break; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ switch (ch) \ ++ { \ ++ case '0': \ ++ case '1': \ ++ case '2': \ ++ case '3': \ ++ case '4': \ ++ case '5': \ ++ case '6': \ ++ case '7': \ ++ case '8': \ ++ case '9': \ ++ d = ch - '0'; \ ++ break; \ ++ \ ++ case 'A': \ ++ case 'B': \ ++ case 'C': \ ++ case 'D': \ ++ case 'E': \ ++ case 'F': \ ++ d = ch - 'A' + 10; \ ++ break; \ ++ \ ++ case 'a': \ ++ case 'b': \ ++ case 'c': \ ++ case 'd': \ ++ case 'e': \ ++ case 'f': \ ++ d = ch - 'a' + 10; \ ++ break; \ ++ \ ++ case ':': \ ++ case 'P': \ ++ case 'p': \ ++ if (i == 0) \ ++ { \ ++ err = INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ break; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ v += f * d; \ ++ f /= 16.0l; \ ++ i++; \ ++ } \ ++ while (ch != ':' && ch != 'P' && ch != 'p'); \ ++ \ ++ long long exp = 0; \ ++ if (ch == 'P' || ch == 'p') \ ++ { \ ++ exp = read_integer (&err); \ ++ if (err) \ ++ { \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ errno = 0; \ ++ v = ldexp (v, exp); \ ++ if ((v == HUGE_VALL || v == -HUGE_VALL) && errno != 0) \ ++ { \ ++ err = INPUT_OVERFLOW; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++out: \ ++ *errp = err; \ ++ v; \ ++}) +diff --git a/stdio-common/tst-scanf-format-s-c.c b/stdio-common/tst-scanf-format-s-c.c +new file mode 100644 +index 0000000000000000..bbfc0000ff582801 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-character.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-char.c b/stdio-common/tst-scanf-format-s-char.c +new file mode 100644 +index 0000000000000000..c13527deb87fe7c9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-double.c b/stdio-common/tst-scanf-format-s-double.c +new file mode 100644 +index 0000000000000000..4baad01d51cb376f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-float.c b/stdio-common/tst-scanf-format-s-float.c +new file mode 100644 +index 0000000000000000..301b2621e9112e26 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-int.c b/stdio-common/tst-scanf-format-s-int.c +new file mode 100644 +index 0000000000000000..e176fe9df4b0464f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ldouble.c b/stdio-common/tst-scanf-format-s-ldouble.c +new file mode 100644 +index 0000000000000000..dbb007ce93559ccf +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-llong.c b/stdio-common/tst-scanf-format-s-llong.c +new file mode 100644 +index 0000000000000000..fe3d11a982c319c7 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-long.c b/stdio-common/tst-scanf-format-s-long.c +new file mode 100644 +index 0000000000000000..415e5fae2cdf6d58 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-short.c b/stdio-common/tst-scanf-format-s-short.c +new file mode 100644 +index 0000000000000000..d545ee26d7e8367e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-uchar.c b/stdio-common/tst-scanf-format-s-uchar.c +new file mode 100644 +index 0000000000000000..a1a7f73f84efa642 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-uint.c b/stdio-common/tst-scanf-format-s-uint.c +new file mode 100644 +index 0000000000000000..27b0f4af5a26ec30 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ullong.c b/stdio-common/tst-scanf-format-s-ullong.c +new file mode 100644 +index 0000000000000000..9cc45b4257120ddb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ulong.c b/stdio-common/tst-scanf-format-s-ulong.c +new file mode 100644 +index 0000000000000000..9c5543e5edffb1ac +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ushort.c b/stdio-common/tst-scanf-format-s-ushort.c +new file mode 100644 +index 0000000000000000..052a1caa7b35b495 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s.h b/stdio-common/tst-scanf-format-s.h +new file mode 100644 +index 0000000000000000..dec38afd11bc26b6 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'scanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define scanf_under_test(...) \ ++({ \ ++ int result = scanf (__VA_ARGS__); \ ++ if (ferror (stdin)) \ ++ result = INPUT_ERROR; \ ++ else if (result == EOF) \ ++ result = INPUT_EOF; \ ++ result; \ ++}) +diff --git a/stdio-common/tst-scanf-format-short-d.input b/stdio-common/tst-scanf-format-short-d.input +new file mode 100644 +index 0000000000000000..5d009324926e1f8d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-short-d.input +@@ -0,0 +1,266 @@ ++%hd::0:-1: ++%*hd::0:-1: ++%hd:-32891:1:6:32645: ++%*hd:-32891:0:6: ++%hd:-32769:1:6:32767: ++%*hd:-32769:0:6: ++%hd:-32768:1:6:-32768: ++%*hd:-32768:0:6: ++%hd:-123:1:4:-123: ++%*hd:-123:0:4: ++%hd:-1:1:2:-1: ++%*hd:-1:0:2: ++%hd:-0:1:2:0: ++%*hd:-0:0:2: ++%hd:0:1:1:0: ++%*hd:0:0:1: ++%hd:1:1:1:1: ++%*hd:1:0:1: ++%hd:42:1:2:42: ++%*hd:42:0:2: ++%hd:32767:1:5:32767: ++%*hd:32767:0:5: ++%hd:32768:1:5:-32768: ++%*hd:32768:0:5: ++%hd:32809:1:5:-32727: ++%*hd:32809:0:5: ++%hd:+0:1:2:0: ++%*hd:+0:0:2: ++%hd:+1:1:2:1: ++%*hd:+1:0:2: ++%hd:+42:1:3:42: ++%*hd:+42:0:3: ++%hd:+32767:1:6:32767: ++%*hd:+32767:0:6: ++%hd:+32768:1:6:-32768: ++%*hd:+32768:0:6: ++%hd:+32809:1:6:-32727: ++%*hd:+32809:0:6: ++%1hd::0:-1: ++%*1hd::0:-1: ++%1hd:-32891:0:-1: ++%*1hd:-32891:0:-1: ++%1hd:-32769:0:-1: ++%*1hd:-32769:0:-1: ++%1hd:-32768:0:-1: ++%*1hd:-32768:0:-1: ++%1hd:-123:0:-1: ++%*1hd:-123:0:-1: ++%1hd:-1:0:-1: ++%*1hd:-1:0:-1: ++%1hd:-0:0:-1: ++%*1hd:-0:0:-1: ++%1hd:0:1:1:0: ++%*1hd:0:0:1: ++%1hd:1:1:1:1: ++%*1hd:1:0:1: ++%1hd:42:1:1:4: ++%*1hd:42:0:1: ++%1hd:32767:1:1:3: ++%*1hd:32767:0:1: ++%1hd:32768:1:1:3: ++%*1hd:32768:0:1: ++%1hd:32809:1:1:3: ++%*1hd:32809:0:1: ++%1hd:+0:0:-1: ++%*1hd:+0:0:-1: ++%1hd:+1:0:-1: ++%*1hd:+1:0:-1: ++%1hd:+42:0:-1: ++%*1hd:+42:0:-1: ++%1hd:+32767:0:-1: ++%*1hd:+32767:0:-1: ++%1hd:+32768:0:-1: ++%*1hd:+32768:0:-1: ++%1hd:+32809:0:-1: ++%*1hd:+32809:0:-1: ++%2hd::0:-1: ++%*2hd::0:-1: ++%2hd:-32891:1:2:-3: ++%*2hd:-32891:0:2: ++%2hd:-32769:1:2:-3: ++%*2hd:-32769:0:2: ++%2hd:-32768:1:2:-3: ++%*2hd:-32768:0:2: ++%2hd:-123:1:2:-1: ++%*2hd:-123:0:2: ++%2hd:-1:1:2:-1: ++%*2hd:-1:0:2: ++%2hd:-0:1:2:0: ++%*2hd:-0:0:2: ++%2hd:0:1:1:0: ++%*2hd:0:0:1: ++%2hd:1:1:1:1: ++%*2hd:1:0:1: ++%2hd:42:1:2:42: ++%*2hd:42:0:2: ++%2hd:32767:1:2:32: ++%*2hd:32767:0:2: ++%2hd:32768:1:2:32: ++%*2hd:32768:0:2: ++%2hd:32809:1:2:32: ++%*2hd:32809:0:2: ++%2hd:+0:1:2:0: ++%*2hd:+0:0:2: ++%2hd:+1:1:2:1: ++%*2hd:+1:0:2: ++%2hd:+42:1:2:4: ++%*2hd:+42:0:2: ++%2hd:+32767:1:2:3: ++%*2hd:+32767:0:2: ++%2hd:+32768:1:2:3: ++%*2hd:+32768:0:2: ++%2hd:+32809:1:2:3: ++%*2hd:+32809:0:2: ++%4hd::0:-1: ++%*4hd::0:-1: ++%4hd:-32891:1:4:-328: ++%*4hd:-32891:0:4: ++%4hd:-32769:1:4:-327: ++%*4hd:-32769:0:4: ++%4hd:-32768:1:4:-327: ++%*4hd:-32768:0:4: ++%4hd:-123:1:4:-123: ++%*4hd:-123:0:4: ++%4hd:-1:1:2:-1: ++%*4hd:-1:0:2: ++%4hd:-0:1:2:0: ++%*4hd:-0:0:2: ++%4hd:0:1:1:0: ++%*4hd:0:0:1: ++%4hd:1:1:1:1: ++%*4hd:1:0:1: ++%4hd:42:1:2:42: ++%*4hd:42:0:2: ++%4hd:32767:1:4:3276: ++%*4hd:32767:0:4: ++%4hd:32768:1:4:3276: ++%*4hd:32768:0:4: ++%4hd:32809:1:4:3280: ++%*4hd:32809:0:4: ++%4hd:+0:1:2:0: ++%*4hd:+0:0:2: ++%4hd:+1:1:2:1: ++%*4hd:+1:0:2: ++%4hd:+42:1:3:42: ++%*4hd:+42:0:3: ++%4hd:+32767:1:4:327: ++%*4hd:+32767:0:4: ++%4hd:+32768:1:4:327: ++%*4hd:+32768:0:4: ++%4hd:+32809:1:4:328: ++%*4hd:+32809:0:4: ++%7hd::0:-1: ++%*7hd::0:-1: ++%7hd:-32891:1:6:32645: ++%*7hd:-32891:0:6: ++%7hd:-32769:1:6:32767: ++%*7hd:-32769:0:6: ++%7hd:-32768:1:6:-32768: ++%*7hd:-32768:0:6: ++%7hd:-123:1:4:-123: ++%*7hd:-123:0:4: ++%7hd:-1:1:2:-1: ++%*7hd:-1:0:2: ++%7hd:-0:1:2:0: ++%*7hd:-0:0:2: ++%7hd:0:1:1:0: ++%*7hd:0:0:1: ++%7hd:1:1:1:1: ++%*7hd:1:0:1: ++%7hd:42:1:2:42: ++%*7hd:42:0:2: ++%7hd:32767:1:5:32767: ++%*7hd:32767:0:5: ++%7hd:32768:1:5:-32768: ++%*7hd:32768:0:5: ++%7hd:32809:1:5:-32727: ++%*7hd:32809:0:5: ++%7hd:+0:1:2:0: ++%*7hd:+0:0:2: ++%7hd:+1:1:2:1: ++%*7hd:+1:0:2: ++%7hd:+42:1:3:42: ++%*7hd:+42:0:3: ++%7hd:+32767:1:6:32767: ++%*7hd:+32767:0:6: ++%7hd:+32768:1:6:-32768: ++%*7hd:+32768:0:6: ++%7hd:+32809:1:6:-32727: ++%*7hd:+32809:0:6: ++%2hd: :0:-1: ++%*2hd: :0:-1: ++%2hd: -32891:1:3:-3: ++%*2hd: -32891:0:3: ++%2hd: -32769:1:3:-3: ++%*2hd: -32769:0:3: ++%2hd: -32768:1:3:-3: ++%*2hd: -32768:0:3: ++%2hd: -123:1:3:-1: ++%*2hd: -123:0:3: ++%2hd: -1:1:3:-1: ++%*2hd: -1:0:3: ++%2hd: -0:1:3:0: ++%*2hd: -0:0:3: ++%2hd: 0:1:2:0: ++%*2hd: 0:0:2: ++%2hd: 1:1:2:1: ++%*2hd: 1:0:2: ++%2hd: 42:1:3:42: ++%*2hd: 42:0:3: ++%2hd: 32767:1:3:32: ++%*2hd: 32767:0:3: ++%2hd: 32768:1:3:32: ++%*2hd: 32768:0:3: ++%2hd: 32809:1:3:32: ++%*2hd: 32809:0:3: ++%2hd: +0:1:3:0: ++%*2hd: +0:0:3: ++%2hd: +1:1:3:1: ++%*2hd: +1:0:3: ++%2hd: +42:1:3:4: ++%*2hd: +42:0:3: ++%2hd: +32767:1:3:3: ++%*2hd: +32767:0:3: ++%2hd: +32768:1:3:3: ++%*2hd: +32768:0:3: ++%2hd: +32809:1:3:3: ++%*2hd: +32809:0:3: ++%7hd: :0:-1: ++%*7hd: :0:-1: ++%7hd: -32891:1:7:32645: ++%*7hd: -32891:0:7: ++%7hd: -32769:1:7:32767: ++%*7hd: -32769:0:7: ++%7hd: -32768:1:7:-32768: ++%*7hd: -32768:0:7: ++%7hd: -123:1:5:-123: ++%*7hd: -123:0:5: ++%7hd: -1:1:3:-1: ++%*7hd: -1:0:3: ++%7hd: -0:1:3:0: ++%*7hd: -0:0:3: ++%7hd: 0:1:2:0: ++%*7hd: 0:0:2: ++%7hd: 1:1:2:1: ++%*7hd: 1:0:2: ++%7hd: 42:1:3:42: ++%*7hd: 42:0:3: ++%7hd: 32767:1:6:32767: ++%*7hd: 32767:0:6: ++%7hd: 32768:1:6:-32768: ++%*7hd: 32768:0:6: ++%7hd: 32809:1:6:-32727: ++%*7hd: 32809:0:6: ++%7hd: +0:1:3:0: ++%*7hd: +0:0:3: ++%7hd: +1:1:3:1: ++%*7hd: +1:0:3: ++%7hd: +42:1:4:42: ++%*7hd: +42:0:4: ++%7hd: +32767:1:7:32767: ++%*7hd: +32767:0:7: ++%7hd: +32768:1:7:-32768: ++%*7hd: +32768:0:7: ++%7hd: +32809:1:7:-32727: ++%*7hd: +32809:0:7: +diff --git a/stdio-common/tst-scanf-format-short-i.input b/stdio-common/tst-scanf-format-short-i.input +new file mode 100644 +index 0000000000000000..5beae7bbb4ef0197 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-short-i.input +@@ -0,0 +1,1526 @@ ++%hi::0:-1: ++%*hi::0:-1: ++%hi:-32891:1:6:32645: ++%*hi:-32891:0:6: ++%hi:-0X807b:1:7:32645: ++%*hi:-0X807b:0:7: ++%hi:-0x807B:1:7:32645: ++%*hi:-0x807B:0:7: ++%hi:-0100173:1:8:32645: ++%*hi:-0100173:0:8: ++%hi:-0B1000000001111011:1:19:32645: ++%*hi:-0B1000000001111011:0:19: ++%hi:-0b1000000001111011:1:19:32645: ++%*hi:-0b1000000001111011:0:19: ++%hi:-32769:1:6:32767: ++%*hi:-32769:0:6: ++%hi:-0X8001:1:7:32767: ++%*hi:-0X8001:0:7: ++%hi:-0x8001:1:7:32767: ++%*hi:-0x8001:0:7: ++%hi:-0100001:1:8:32767: ++%*hi:-0100001:0:8: ++%hi:-0B1000000000000001:1:19:32767: ++%*hi:-0B1000000000000001:0:19: ++%hi:-0b1000000000000001:1:19:32767: ++%*hi:-0b1000000000000001:0:19: ++%hi:-32768:1:6:-32768: ++%*hi:-32768:0:6: ++%hi:-0X8000:1:7:-32768: ++%*hi:-0X8000:0:7: ++%hi:-0x8000:1:7:-32768: ++%*hi:-0x8000:0:7: ++%hi:-0100000:1:8:-32768: ++%*hi:-0100000:0:8: ++%hi:-0B1000000000000000:1:19:-32768: ++%*hi:-0B1000000000000000:0:19: ++%hi:-0b1000000000000000:1:19:-32768: ++%*hi:-0b1000000000000000:0:19: ++%hi:-123:1:4:-123: ++%*hi:-123:0:4: ++%hi:-0X7b:1:5:-123: ++%*hi:-0X7b:0:5: ++%hi:-0x7B:1:5:-123: ++%*hi:-0x7B:0:5: ++%hi:-0173:1:5:-123: ++%*hi:-0173:0:5: ++%hi:-0B1111011:1:10:-123: ++%*hi:-0B1111011:0:10: ++%hi:-0b1111011:1:10:-123: ++%*hi:-0b1111011:0:10: ++%hi:-1:1:2:-1: ++%*hi:-1:0:2: ++%hi:-0X1:1:4:-1: ++%*hi:-0X1:0:4: ++%hi:-0x1:1:4:-1: ++%*hi:-0x1:0:4: ++%hi:-01:1:3:-1: ++%*hi:-01:0:3: ++%hi:-0B1:1:4:-1: ++%*hi:-0B1:0:4: ++%hi:-0b1:1:4:-1: ++%*hi:-0b1:0:4: ++%hi:-0:1:2:0: ++%*hi:-0:0:2: ++%hi:-0X0:1:4:0: ++%*hi:-0X0:0:4: ++%hi:-0x0:1:4:0: ++%*hi:-0x0:0:4: ++%hi:-00:1:3:0: ++%*hi:-00:0:3: ++%hi:-0B0:1:4:0: ++%*hi:-0B0:0:4: ++%hi:-0b0:1:4:0: ++%*hi:-0b0:0:4: ++%hi:0:1:1:0: ++%*hi:0:0:1: ++%hi:0X0:1:3:0: ++%*hi:0X0:0:3: ++%hi:0x0:1:3:0: ++%*hi:0x0:0:3: ++%hi:00:1:2:0: ++%*hi:00:0:2: ++%hi:0B0:1:3:0: ++%*hi:0B0:0:3: ++%hi:0b0:1:3:0: ++%*hi:0b0:0:3: ++%hi:1:1:1:1: ++%*hi:1:0:1: ++%hi:0X1:1:3:1: ++%*hi:0X1:0:3: ++%hi:0x1:1:3:1: ++%*hi:0x1:0:3: ++%hi:01:1:2:1: ++%*hi:01:0:2: ++%hi:0B1:1:3:1: ++%*hi:0B1:0:3: ++%hi:0b1:1:3:1: ++%*hi:0b1:0:3: ++%hi:42:1:2:42: ++%*hi:42:0:2: ++%hi:0X2a:1:4:42: ++%*hi:0X2a:0:4: ++%hi:0x2A:1:4:42: ++%*hi:0x2A:0:4: ++%hi:052:1:3:42: ++%*hi:052:0:3: ++%hi:0B101010:1:8:42: ++%*hi:0B101010:0:8: ++%hi:0b101010:1:8:42: ++%*hi:0b101010:0:8: ++%hi:32767:1:5:32767: ++%*hi:32767:0:5: ++%hi:0X7fff:1:6:32767: ++%*hi:0X7fff:0:6: ++%hi:0x7FFF:1:6:32767: ++%*hi:0x7FFF:0:6: ++%hi:077777:1:6:32767: ++%*hi:077777:0:6: ++%hi:0B111111111111111:1:17:32767: ++%*hi:0B111111111111111:0:17: ++%hi:0b111111111111111:1:17:32767: ++%*hi:0b111111111111111:0:17: ++%hi:32768:1:5:-32768: ++%*hi:32768:0:5: ++%hi:0X8000:1:6:-32768: ++%*hi:0X8000:0:6: ++%hi:0x8000:1:6:-32768: ++%*hi:0x8000:0:6: ++%hi:0100000:1:7:-32768: ++%*hi:0100000:0:7: ++%hi:0B1000000000000000:1:18:-32768: ++%*hi:0B1000000000000000:0:18: ++%hi:0b1000000000000000:1:18:-32768: ++%*hi:0b1000000000000000:0:18: ++%hi:32809:1:5:-32727: ++%*hi:32809:0:5: ++%hi:0X8029:1:6:-32727: ++%*hi:0X8029:0:6: ++%hi:0x8029:1:6:-32727: ++%*hi:0x8029:0:6: ++%hi:0100051:1:7:-32727: ++%*hi:0100051:0:7: ++%hi:0B1000000000101001:1:18:-32727: ++%*hi:0B1000000000101001:0:18: ++%hi:0b1000000000101001:1:18:-32727: ++%*hi:0b1000000000101001:0:18: ++%hi:+0:1:2:0: ++%*hi:+0:0:2: ++%hi:+0X0:1:4:0: ++%*hi:+0X0:0:4: ++%hi:+0x0:1:4:0: ++%*hi:+0x0:0:4: ++%hi:+00:1:3:0: ++%*hi:+00:0:3: ++%hi:+0B0:1:4:0: ++%*hi:+0B0:0:4: ++%hi:+0b0:1:4:0: ++%*hi:+0b0:0:4: ++%hi:+1:1:2:1: ++%*hi:+1:0:2: ++%hi:+0X1:1:4:1: ++%*hi:+0X1:0:4: ++%hi:+0x1:1:4:1: ++%*hi:+0x1:0:4: ++%hi:+01:1:3:1: ++%*hi:+01:0:3: ++%hi:+0B1:1:4:1: ++%*hi:+0B1:0:4: ++%hi:+0b1:1:4:1: ++%*hi:+0b1:0:4: ++%hi:+42:1:3:42: ++%*hi:+42:0:3: ++%hi:+0X2a:1:5:42: ++%*hi:+0X2a:0:5: ++%hi:+0x2A:1:5:42: ++%*hi:+0x2A:0:5: ++%hi:+052:1:4:42: ++%*hi:+052:0:4: ++%hi:+0B101010:1:9:42: ++%*hi:+0B101010:0:9: ++%hi:+0b101010:1:9:42: ++%*hi:+0b101010:0:9: ++%hi:+32767:1:6:32767: ++%*hi:+32767:0:6: ++%hi:+0X7fff:1:7:32767: ++%*hi:+0X7fff:0:7: ++%hi:+0x7FFF:1:7:32767: ++%*hi:+0x7FFF:0:7: ++%hi:+077777:1:7:32767: ++%*hi:+077777:0:7: ++%hi:+0B111111111111111:1:18:32767: ++%*hi:+0B111111111111111:0:18: ++%hi:+0b111111111111111:1:18:32767: ++%*hi:+0b111111111111111:0:18: ++%hi:+32768:1:6:-32768: ++%*hi:+32768:0:6: ++%hi:+0X8000:1:7:-32768: ++%*hi:+0X8000:0:7: ++%hi:+0x8000:1:7:-32768: ++%*hi:+0x8000:0:7: ++%hi:+0100000:1:8:-32768: ++%*hi:+0100000:0:8: ++%hi:+0B1000000000000000:1:19:-32768: ++%*hi:+0B1000000000000000:0:19: ++%hi:+0b1000000000000000:1:19:-32768: ++%*hi:+0b1000000000000000:0:19: ++%hi:+32809:1:6:-32727: ++%*hi:+32809:0:6: ++%hi:+0X8029:1:7:-32727: ++%*hi:+0X8029:0:7: ++%hi:+0x8029:1:7:-32727: ++%*hi:+0x8029:0:7: ++%hi:+0100051:1:8:-32727: ++%*hi:+0100051:0:8: ++%hi:+0B1000000000101001:1:19:-32727: ++%*hi:+0B1000000000101001:0:19: ++%hi:+0b1000000000101001:1:19:-32727: ++%*hi:+0b1000000000101001:0:19: ++%1hi::0:-1: ++%*1hi::0:-1: ++%1hi:-32891:0:-1: ++%*1hi:-32891:0:-1: ++%1hi:-0X807b:0:-1: ++%*1hi:-0X807b:0:-1: ++%1hi:-0x807B:0:-1: ++%*1hi:-0x807B:0:-1: ++%1hi:-0100173:0:-1: ++%*1hi:-0100173:0:-1: ++%1hi:-0B1000000001111011:0:-1: ++%*1hi:-0B1000000001111011:0:-1: ++%1hi:-0b1000000001111011:0:-1: ++%*1hi:-0b1000000001111011:0:-1: ++%1hi:-32769:0:-1: ++%*1hi:-32769:0:-1: ++%1hi:-0X8001:0:-1: ++%*1hi:-0X8001:0:-1: ++%1hi:-0x8001:0:-1: ++%*1hi:-0x8001:0:-1: ++%1hi:-0100001:0:-1: ++%*1hi:-0100001:0:-1: ++%1hi:-0B1000000000000001:0:-1: ++%*1hi:-0B1000000000000001:0:-1: ++%1hi:-0b1000000000000001:0:-1: ++%*1hi:-0b1000000000000001:0:-1: ++%1hi:-32768:0:-1: ++%*1hi:-32768:0:-1: ++%1hi:-0X8000:0:-1: ++%*1hi:-0X8000:0:-1: ++%1hi:-0x8000:0:-1: ++%*1hi:-0x8000:0:-1: ++%1hi:-0100000:0:-1: ++%*1hi:-0100000:0:-1: ++%1hi:-0B1000000000000000:0:-1: ++%*1hi:-0B1000000000000000:0:-1: ++%1hi:-0b1000000000000000:0:-1: ++%*1hi:-0b1000000000000000:0:-1: ++%1hi:-123:0:-1: ++%*1hi:-123:0:-1: ++%1hi:-0X7b:0:-1: ++%*1hi:-0X7b:0:-1: ++%1hi:-0x7B:0:-1: ++%*1hi:-0x7B:0:-1: ++%1hi:-0173:0:-1: ++%*1hi:-0173:0:-1: ++%1hi:-0B1111011:0:-1: ++%*1hi:-0B1111011:0:-1: ++%1hi:-0b1111011:0:-1: ++%*1hi:-0b1111011:0:-1: ++%1hi:-1:0:-1: ++%*1hi:-1:0:-1: ++%1hi:-0X1:0:-1: ++%*1hi:-0X1:0:-1: ++%1hi:-0x1:0:-1: ++%*1hi:-0x1:0:-1: ++%1hi:-01:0:-1: ++%*1hi:-01:0:-1: ++%1hi:-0B1:0:-1: ++%*1hi:-0B1:0:-1: ++%1hi:-0b1:0:-1: ++%*1hi:-0b1:0:-1: ++%1hi:-0:0:-1: ++%*1hi:-0:0:-1: ++%1hi:-0X0:0:-1: ++%*1hi:-0X0:0:-1: ++%1hi:-0x0:0:-1: ++%*1hi:-0x0:0:-1: ++%1hi:-00:0:-1: ++%*1hi:-00:0:-1: ++%1hi:-0B0:0:-1: ++%*1hi:-0B0:0:-1: ++%1hi:-0b0:0:-1: ++%*1hi:-0b0:0:-1: ++%1hi:0:1:1:0: ++%*1hi:0:0:1: ++%1hi:0X0:1:1:0: ++%*1hi:0X0:0:1: ++%1hi:0x0:1:1:0: ++%*1hi:0x0:0:1: ++%1hi:00:1:1:0: ++%*1hi:00:0:1: ++%1hi:0B0:1:1:0: ++%*1hi:0B0:0:1: ++%1hi:0b0:1:1:0: ++%*1hi:0b0:0:1: ++%1hi:1:1:1:1: ++%*1hi:1:0:1: ++%1hi:0X1:1:1:0: ++%*1hi:0X1:0:1: ++%1hi:0x1:1:1:0: ++%*1hi:0x1:0:1: ++%1hi:01:1:1:0: ++%*1hi:01:0:1: ++%1hi:0B1:1:1:0: ++%*1hi:0B1:0:1: ++%1hi:0b1:1:1:0: ++%*1hi:0b1:0:1: ++%1hi:42:1:1:4: ++%*1hi:42:0:1: ++%1hi:0X2a:1:1:0: ++%*1hi:0X2a:0:1: ++%1hi:0x2A:1:1:0: ++%*1hi:0x2A:0:1: ++%1hi:052:1:1:0: ++%*1hi:052:0:1: ++%1hi:0B101010:1:1:0: ++%*1hi:0B101010:0:1: ++%1hi:0b101010:1:1:0: ++%*1hi:0b101010:0:1: ++%1hi:32767:1:1:3: ++%*1hi:32767:0:1: ++%1hi:0X7fff:1:1:0: ++%*1hi:0X7fff:0:1: ++%1hi:0x7FFF:1:1:0: ++%*1hi:0x7FFF:0:1: ++%1hi:077777:1:1:0: ++%*1hi:077777:0:1: ++%1hi:0B111111111111111:1:1:0: ++%*1hi:0B111111111111111:0:1: ++%1hi:0b111111111111111:1:1:0: ++%*1hi:0b111111111111111:0:1: ++%1hi:32768:1:1:3: ++%*1hi:32768:0:1: ++%1hi:0X8000:1:1:0: ++%*1hi:0X8000:0:1: ++%1hi:0x8000:1:1:0: ++%*1hi:0x8000:0:1: ++%1hi:0100000:1:1:0: ++%*1hi:0100000:0:1: ++%1hi:0B1000000000000000:1:1:0: ++%*1hi:0B1000000000000000:0:1: ++%1hi:0b1000000000000000:1:1:0: ++%*1hi:0b1000000000000000:0:1: ++%1hi:32809:1:1:3: ++%*1hi:32809:0:1: ++%1hi:0X8029:1:1:0: ++%*1hi:0X8029:0:1: ++%1hi:0x8029:1:1:0: ++%*1hi:0x8029:0:1: ++%1hi:0100051:1:1:0: ++%*1hi:0100051:0:1: ++%1hi:0B1000000000101001:1:1:0: ++%*1hi:0B1000000000101001:0:1: ++%1hi:0b1000000000101001:1:1:0: ++%*1hi:0b1000000000101001:0:1: ++%1hi:+0:0:-1: ++%*1hi:+0:0:-1: ++%1hi:+0X0:0:-1: ++%*1hi:+0X0:0:-1: ++%1hi:+0x0:0:-1: ++%*1hi:+0x0:0:-1: ++%1hi:+00:0:-1: ++%*1hi:+00:0:-1: ++%1hi:+0B0:0:-1: ++%*1hi:+0B0:0:-1: ++%1hi:+0b0:0:-1: ++%*1hi:+0b0:0:-1: ++%1hi:+1:0:-1: ++%*1hi:+1:0:-1: ++%1hi:+0X1:0:-1: ++%*1hi:+0X1:0:-1: ++%1hi:+0x1:0:-1: ++%*1hi:+0x1:0:-1: ++%1hi:+01:0:-1: ++%*1hi:+01:0:-1: ++%1hi:+0B1:0:-1: ++%*1hi:+0B1:0:-1: ++%1hi:+0b1:0:-1: ++%*1hi:+0b1:0:-1: ++%1hi:+42:0:-1: ++%*1hi:+42:0:-1: ++%1hi:+0X2a:0:-1: ++%*1hi:+0X2a:0:-1: ++%1hi:+0x2A:0:-1: ++%*1hi:+0x2A:0:-1: ++%1hi:+052:0:-1: ++%*1hi:+052:0:-1: ++%1hi:+0B101010:0:-1: ++%*1hi:+0B101010:0:-1: ++%1hi:+0b101010:0:-1: ++%*1hi:+0b101010:0:-1: ++%1hi:+32767:0:-1: ++%*1hi:+32767:0:-1: ++%1hi:+0X7fff:0:-1: ++%*1hi:+0X7fff:0:-1: ++%1hi:+0x7FFF:0:-1: ++%*1hi:+0x7FFF:0:-1: ++%1hi:+077777:0:-1: ++%*1hi:+077777:0:-1: ++%1hi:+0B111111111111111:0:-1: ++%*1hi:+0B111111111111111:0:-1: ++%1hi:+0b111111111111111:0:-1: ++%*1hi:+0b111111111111111:0:-1: ++%1hi:+32768:0:-1: ++%*1hi:+32768:0:-1: ++%1hi:+0X8000:0:-1: ++%*1hi:+0X8000:0:-1: ++%1hi:+0x8000:0:-1: ++%*1hi:+0x8000:0:-1: ++%1hi:+0100000:0:-1: ++%*1hi:+0100000:0:-1: ++%1hi:+0B1000000000000000:0:-1: ++%*1hi:+0B1000000000000000:0:-1: ++%1hi:+0b1000000000000000:0:-1: ++%*1hi:+0b1000000000000000:0:-1: ++%1hi:+32809:0:-1: ++%*1hi:+32809:0:-1: ++%1hi:+0X8029:0:-1: ++%*1hi:+0X8029:0:-1: ++%1hi:+0x8029:0:-1: ++%*1hi:+0x8029:0:-1: ++%1hi:+0100051:0:-1: ++%*1hi:+0100051:0:-1: ++%1hi:+0B1000000000101001:0:-1: ++%*1hi:+0B1000000000101001:0:-1: ++%1hi:+0b1000000000101001:0:-1: ++%*1hi:+0b1000000000101001:0:-1: ++%2hi::0:-1: ++%*2hi::0:-1: ++%2hi:-32891:1:2:-3: ++%*2hi:-32891:0:2: ++%2hi:-0X807b:1:2:0: ++%*2hi:-0X807b:0:2: ++%2hi:-0x807B:1:2:0: ++%*2hi:-0x807B:0:2: ++%2hi:-0100173:1:2:0: ++%*2hi:-0100173:0:2: ++%2hi:-0B1000000001111011:1:2:0: ++%*2hi:-0B1000000001111011:0:2: ++%2hi:-0b1000000001111011:1:2:0: ++%*2hi:-0b1000000001111011:0:2: ++%2hi:-32769:1:2:-3: ++%*2hi:-32769:0:2: ++%2hi:-0X8001:1:2:0: ++%*2hi:-0X8001:0:2: ++%2hi:-0x8001:1:2:0: ++%*2hi:-0x8001:0:2: ++%2hi:-0100001:1:2:0: ++%*2hi:-0100001:0:2: ++%2hi:-0B1000000000000001:1:2:0: ++%*2hi:-0B1000000000000001:0:2: ++%2hi:-0b1000000000000001:1:2:0: ++%*2hi:-0b1000000000000001:0:2: ++%2hi:-32768:1:2:-3: ++%*2hi:-32768:0:2: ++%2hi:-0X8000:1:2:0: ++%*2hi:-0X8000:0:2: ++%2hi:-0x8000:1:2:0: ++%*2hi:-0x8000:0:2: ++%2hi:-0100000:1:2:0: ++%*2hi:-0100000:0:2: ++%2hi:-0B1000000000000000:1:2:0: ++%*2hi:-0B1000000000000000:0:2: ++%2hi:-0b1000000000000000:1:2:0: ++%*2hi:-0b1000000000000000:0:2: ++%2hi:-123:1:2:-1: ++%*2hi:-123:0:2: ++%2hi:-0X7b:1:2:0: ++%*2hi:-0X7b:0:2: ++%2hi:-0x7B:1:2:0: ++%*2hi:-0x7B:0:2: ++%2hi:-0173:1:2:0: ++%*2hi:-0173:0:2: ++%2hi:-0B1111011:1:2:0: ++%*2hi:-0B1111011:0:2: ++%2hi:-0b1111011:1:2:0: ++%*2hi:-0b1111011:0:2: ++%2hi:-1:1:2:-1: ++%*2hi:-1:0:2: ++%2hi:-0X1:1:2:0: ++%*2hi:-0X1:0:2: ++%2hi:-0x1:1:2:0: ++%*2hi:-0x1:0:2: ++%2hi:-01:1:2:0: ++%*2hi:-01:0:2: ++%2hi:-0B1:1:2:0: ++%*2hi:-0B1:0:2: ++%2hi:-0b1:1:2:0: ++%*2hi:-0b1:0:2: ++%2hi:-0:1:2:0: ++%*2hi:-0:0:2: ++%2hi:-0X0:1:2:0: ++%*2hi:-0X0:0:2: ++%2hi:-0x0:1:2:0: ++%*2hi:-0x0:0:2: ++%2hi:-00:1:2:0: ++%*2hi:-00:0:2: ++%2hi:-0B0:1:2:0: ++%*2hi:-0B0:0:2: ++%2hi:-0b0:1:2:0: ++%*2hi:-0b0:0:2: ++%2hi:0:1:1:0: ++%*2hi:0:0:1: ++# BZ12701 %2hi:0X0:0:-1: ++# BZ12701 %*2hi:0X0:0:-1: ++# BZ12701 %2hi:0x0:0:-1: ++# BZ12701 %*2hi:0x0:0:-1: ++%2hi:00:1:2:0: ++%*2hi:00:0:2: ++# BZ12701 %2hi:0B0:0:-1: ++# BZ12701 %*2hi:0B0:0:-1: ++# BZ12701 %2hi:0b0:0:-1: ++# BZ12701 %*2hi:0b0:0:-1: ++%2hi:1:1:1:1: ++%*2hi:1:0:1: ++# BZ12701 %2hi:0X1:0:-1: ++# BZ12701 %*2hi:0X1:0:-1: ++# BZ12701 %2hi:0x1:0:-1: ++# BZ12701 %*2hi:0x1:0:-1: ++%2hi:01:1:2:1: ++%*2hi:01:0:2: ++# BZ12701 %2hi:0B1:0:-1: ++# BZ12701 %*2hi:0B1:0:-1: ++# BZ12701 %2hi:0b1:0:-1: ++# BZ12701 %*2hi:0b1:0:-1: ++%2hi:42:1:2:42: ++%*2hi:42:0:2: ++# BZ12701 %2hi:0X2a:0:-1: ++# BZ12701 %*2hi:0X2a:0:-1: ++# BZ12701 %2hi:0x2A:0:-1: ++# BZ12701 %*2hi:0x2A:0:-1: ++%2hi:052:1:2:5: ++%*2hi:052:0:2: ++# BZ12701 %2hi:0B101010:0:-1: ++# BZ12701 %*2hi:0B101010:0:-1: ++# BZ12701 %2hi:0b101010:0:-1: ++# BZ12701 %*2hi:0b101010:0:-1: ++%2hi:32767:1:2:32: ++%*2hi:32767:0:2: ++# BZ12701 %2hi:0X7fff:0:-1: ++# BZ12701 %*2hi:0X7fff:0:-1: ++# BZ12701 %2hi:0x7FFF:0:-1: ++# BZ12701 %*2hi:0x7FFF:0:-1: ++%2hi:077777:1:2:7: ++%*2hi:077777:0:2: ++# BZ12701 %2hi:0B111111111111111:0:-1: ++# BZ12701 %*2hi:0B111111111111111:0:-1: ++# BZ12701 %2hi:0b111111111111111:0:-1: ++# BZ12701 %*2hi:0b111111111111111:0:-1: ++%2hi:32768:1:2:32: ++%*2hi:32768:0:2: ++# BZ12701 %2hi:0X8000:0:-1: ++# BZ12701 %*2hi:0X8000:0:-1: ++# BZ12701 %2hi:0x8000:0:-1: ++# BZ12701 %*2hi:0x8000:0:-1: ++%2hi:0100000:1:2:1: ++%*2hi:0100000:0:2: ++# BZ12701 %2hi:0B1000000000000000:0:-1: ++# BZ12701 %*2hi:0B1000000000000000:0:-1: ++# BZ12701 %2hi:0b1000000000000000:0:-1: ++# BZ12701 %*2hi:0b1000000000000000:0:-1: ++%2hi:32809:1:2:32: ++%*2hi:32809:0:2: ++# BZ12701 %2hi:0X8029:0:-1: ++# BZ12701 %*2hi:0X8029:0:-1: ++# BZ12701 %2hi:0x8029:0:-1: ++# BZ12701 %*2hi:0x8029:0:-1: ++%2hi:0100051:1:2:1: ++%*2hi:0100051:0:2: ++# BZ12701 %2hi:0B1000000000101001:0:-1: ++# BZ12701 %*2hi:0B1000000000101001:0:-1: ++# BZ12701 %2hi:0b1000000000101001:0:-1: ++# BZ12701 %*2hi:0b1000000000101001:0:-1: ++%2hi:+0:1:2:0: ++%*2hi:+0:0:2: ++%2hi:+0X0:1:2:0: ++%*2hi:+0X0:0:2: ++%2hi:+0x0:1:2:0: ++%*2hi:+0x0:0:2: ++%2hi:+00:1:2:0: ++%*2hi:+00:0:2: ++%2hi:+0B0:1:2:0: ++%*2hi:+0B0:0:2: ++%2hi:+0b0:1:2:0: ++%*2hi:+0b0:0:2: ++%2hi:+1:1:2:1: ++%*2hi:+1:0:2: ++%2hi:+0X1:1:2:0: ++%*2hi:+0X1:0:2: ++%2hi:+0x1:1:2:0: ++%*2hi:+0x1:0:2: ++%2hi:+01:1:2:0: ++%*2hi:+01:0:2: ++%2hi:+0B1:1:2:0: ++%*2hi:+0B1:0:2: ++%2hi:+0b1:1:2:0: ++%*2hi:+0b1:0:2: ++%2hi:+42:1:2:4: ++%*2hi:+42:0:2: ++%2hi:+0X2a:1:2:0: ++%*2hi:+0X2a:0:2: ++%2hi:+0x2A:1:2:0: ++%*2hi:+0x2A:0:2: ++%2hi:+052:1:2:0: ++%*2hi:+052:0:2: ++%2hi:+0B101010:1:2:0: ++%*2hi:+0B101010:0:2: ++%2hi:+0b101010:1:2:0: ++%*2hi:+0b101010:0:2: ++%2hi:+32767:1:2:3: ++%*2hi:+32767:0:2: ++%2hi:+0X7fff:1:2:0: ++%*2hi:+0X7fff:0:2: ++%2hi:+0x7FFF:1:2:0: ++%*2hi:+0x7FFF:0:2: ++%2hi:+077777:1:2:0: ++%*2hi:+077777:0:2: ++%2hi:+0B111111111111111:1:2:0: ++%*2hi:+0B111111111111111:0:2: ++%2hi:+0b111111111111111:1:2:0: ++%*2hi:+0b111111111111111:0:2: ++%2hi:+32768:1:2:3: ++%*2hi:+32768:0:2: ++%2hi:+0X8000:1:2:0: ++%*2hi:+0X8000:0:2: ++%2hi:+0x8000:1:2:0: ++%*2hi:+0x8000:0:2: ++%2hi:+0100000:1:2:0: ++%*2hi:+0100000:0:2: ++%2hi:+0B1000000000000000:1:2:0: ++%*2hi:+0B1000000000000000:0:2: ++%2hi:+0b1000000000000000:1:2:0: ++%*2hi:+0b1000000000000000:0:2: ++%2hi:+32809:1:2:3: ++%*2hi:+32809:0:2: ++%2hi:+0X8029:1:2:0: ++%*2hi:+0X8029:0:2: ++%2hi:+0x8029:1:2:0: ++%*2hi:+0x8029:0:2: ++%2hi:+0100051:1:2:0: ++%*2hi:+0100051:0:2: ++%2hi:+0B1000000000101001:1:2:0: ++%*2hi:+0B1000000000101001:0:2: ++%2hi:+0b1000000000101001:1:2:0: ++%*2hi:+0b1000000000101001:0:2: ++%4hi::0:-1: ++%*4hi::0:-1: ++%4hi:-32891:1:4:-328: ++%*4hi:-32891:0:4: ++%4hi:-0X807b:1:4:-8: ++%*4hi:-0X807b:0:4: ++%4hi:-0x807B:1:4:-8: ++%*4hi:-0x807B:0:4: ++%4hi:-0100173:1:4:-8: ++%*4hi:-0100173:0:4: ++%4hi:-0B1000000001111011:1:4:-1: ++%*4hi:-0B1000000001111011:0:4: ++%4hi:-0b1000000001111011:1:4:-1: ++%*4hi:-0b1000000001111011:0:4: ++%4hi:-32769:1:4:-327: ++%*4hi:-32769:0:4: ++%4hi:-0X8001:1:4:-8: ++%*4hi:-0X8001:0:4: ++%4hi:-0x8001:1:4:-8: ++%*4hi:-0x8001:0:4: ++%4hi:-0100001:1:4:-8: ++%*4hi:-0100001:0:4: ++%4hi:-0B1000000000000001:1:4:-1: ++%*4hi:-0B1000000000000001:0:4: ++%4hi:-0b1000000000000001:1:4:-1: ++%*4hi:-0b1000000000000001:0:4: ++%4hi:-32768:1:4:-327: ++%*4hi:-32768:0:4: ++%4hi:-0X8000:1:4:-8: ++%*4hi:-0X8000:0:4: ++%4hi:-0x8000:1:4:-8: ++%*4hi:-0x8000:0:4: ++%4hi:-0100000:1:4:-8: ++%*4hi:-0100000:0:4: ++%4hi:-0B1000000000000000:1:4:-1: ++%*4hi:-0B1000000000000000:0:4: ++%4hi:-0b1000000000000000:1:4:-1: ++%*4hi:-0b1000000000000000:0:4: ++%4hi:-123:1:4:-123: ++%*4hi:-123:0:4: ++%4hi:-0X7b:1:4:-7: ++%*4hi:-0X7b:0:4: ++%4hi:-0x7B:1:4:-7: ++%*4hi:-0x7B:0:4: ++%4hi:-0173:1:4:-15: ++%*4hi:-0173:0:4: ++%4hi:-0B1111011:1:4:-1: ++%*4hi:-0B1111011:0:4: ++%4hi:-0b1111011:1:4:-1: ++%*4hi:-0b1111011:0:4: ++%4hi:-1:1:2:-1: ++%*4hi:-1:0:2: ++%4hi:-0X1:1:4:-1: ++%*4hi:-0X1:0:4: ++%4hi:-0x1:1:4:-1: ++%*4hi:-0x1:0:4: ++%4hi:-01:1:3:-1: ++%*4hi:-01:0:3: ++%4hi:-0B1:1:4:-1: ++%*4hi:-0B1:0:4: ++%4hi:-0b1:1:4:-1: ++%*4hi:-0b1:0:4: ++%4hi:-0:1:2:0: ++%*4hi:-0:0:2: ++%4hi:-0X0:1:4:0: ++%*4hi:-0X0:0:4: ++%4hi:-0x0:1:4:0: ++%*4hi:-0x0:0:4: ++%4hi:-00:1:3:0: ++%*4hi:-00:0:3: ++%4hi:-0B0:1:4:0: ++%*4hi:-0B0:0:4: ++%4hi:-0b0:1:4:0: ++%*4hi:-0b0:0:4: ++%4hi:0:1:1:0: ++%*4hi:0:0:1: ++%4hi:0X0:1:3:0: ++%*4hi:0X0:0:3: ++%4hi:0x0:1:3:0: ++%*4hi:0x0:0:3: ++%4hi:00:1:2:0: ++%*4hi:00:0:2: ++%4hi:0B0:1:3:0: ++%*4hi:0B0:0:3: ++%4hi:0b0:1:3:0: ++%*4hi:0b0:0:3: ++%4hi:1:1:1:1: ++%*4hi:1:0:1: ++%4hi:0X1:1:3:1: ++%*4hi:0X1:0:3: ++%4hi:0x1:1:3:1: ++%*4hi:0x1:0:3: ++%4hi:01:1:2:1: ++%*4hi:01:0:2: ++%4hi:0B1:1:3:1: ++%*4hi:0B1:0:3: ++%4hi:0b1:1:3:1: ++%*4hi:0b1:0:3: ++%4hi:42:1:2:42: ++%*4hi:42:0:2: ++%4hi:0X2a:1:4:42: ++%*4hi:0X2a:0:4: ++%4hi:0x2A:1:4:42: ++%*4hi:0x2A:0:4: ++%4hi:052:1:3:42: ++%*4hi:052:0:3: ++%4hi:0B101010:1:4:2: ++%*4hi:0B101010:0:4: ++%4hi:0b101010:1:4:2: ++%*4hi:0b101010:0:4: ++%4hi:32767:1:4:3276: ++%*4hi:32767:0:4: ++%4hi:0X7fff:1:4:127: ++%*4hi:0X7fff:0:4: ++%4hi:0x7FFF:1:4:127: ++%*4hi:0x7FFF:0:4: ++%4hi:077777:1:4:511: ++%*4hi:077777:0:4: ++%4hi:0B111111111111111:1:4:3: ++%*4hi:0B111111111111111:0:4: ++%4hi:0b111111111111111:1:4:3: ++%*4hi:0b111111111111111:0:4: ++%4hi:32768:1:4:3276: ++%*4hi:32768:0:4: ++%4hi:0X8000:1:4:128: ++%*4hi:0X8000:0:4: ++%4hi:0x8000:1:4:128: ++%*4hi:0x8000:0:4: ++%4hi:0100000:1:4:64: ++%*4hi:0100000:0:4: ++%4hi:0B1000000000000000:1:4:2: ++%*4hi:0B1000000000000000:0:4: ++%4hi:0b1000000000000000:1:4:2: ++%*4hi:0b1000000000000000:0:4: ++%4hi:32809:1:4:3280: ++%*4hi:32809:0:4: ++%4hi:0X8029:1:4:128: ++%*4hi:0X8029:0:4: ++%4hi:0x8029:1:4:128: ++%*4hi:0x8029:0:4: ++%4hi:0100051:1:4:64: ++%*4hi:0100051:0:4: ++%4hi:0B1000000000101001:1:4:2: ++%*4hi:0B1000000000101001:0:4: ++%4hi:0b1000000000101001:1:4:2: ++%*4hi:0b1000000000101001:0:4: ++%4hi:+0:1:2:0: ++%*4hi:+0:0:2: ++%4hi:+0X0:1:4:0: ++%*4hi:+0X0:0:4: ++%4hi:+0x0:1:4:0: ++%*4hi:+0x0:0:4: ++%4hi:+00:1:3:0: ++%*4hi:+00:0:3: ++%4hi:+0B0:1:4:0: ++%*4hi:+0B0:0:4: ++%4hi:+0b0:1:4:0: ++%*4hi:+0b0:0:4: ++%4hi:+1:1:2:1: ++%*4hi:+1:0:2: ++%4hi:+0X1:1:4:1: ++%*4hi:+0X1:0:4: ++%4hi:+0x1:1:4:1: ++%*4hi:+0x1:0:4: ++%4hi:+01:1:3:1: ++%*4hi:+01:0:3: ++%4hi:+0B1:1:4:1: ++%*4hi:+0B1:0:4: ++%4hi:+0b1:1:4:1: ++%*4hi:+0b1:0:4: ++%4hi:+42:1:3:42: ++%*4hi:+42:0:3: ++%4hi:+0X2a:1:4:2: ++%*4hi:+0X2a:0:4: ++%4hi:+0x2A:1:4:2: ++%*4hi:+0x2A:0:4: ++%4hi:+052:1:4:42: ++%*4hi:+052:0:4: ++%4hi:+0B101010:1:4:1: ++%*4hi:+0B101010:0:4: ++%4hi:+0b101010:1:4:1: ++%*4hi:+0b101010:0:4: ++%4hi:+32767:1:4:327: ++%*4hi:+32767:0:4: ++%4hi:+0X7fff:1:4:7: ++%*4hi:+0X7fff:0:4: ++%4hi:+0x7FFF:1:4:7: ++%*4hi:+0x7FFF:0:4: ++%4hi:+077777:1:4:63: ++%*4hi:+077777:0:4: ++%4hi:+0B111111111111111:1:4:1: ++%*4hi:+0B111111111111111:0:4: ++%4hi:+0b111111111111111:1:4:1: ++%*4hi:+0b111111111111111:0:4: ++%4hi:+32768:1:4:327: ++%*4hi:+32768:0:4: ++%4hi:+0X8000:1:4:8: ++%*4hi:+0X8000:0:4: ++%4hi:+0x8000:1:4:8: ++%*4hi:+0x8000:0:4: ++%4hi:+0100000:1:4:8: ++%*4hi:+0100000:0:4: ++%4hi:+0B1000000000000000:1:4:1: ++%*4hi:+0B1000000000000000:0:4: ++%4hi:+0b1000000000000000:1:4:1: ++%*4hi:+0b1000000000000000:0:4: ++%4hi:+32809:1:4:328: ++%*4hi:+32809:0:4: ++%4hi:+0X8029:1:4:8: ++%*4hi:+0X8029:0:4: ++%4hi:+0x8029:1:4:8: ++%*4hi:+0x8029:0:4: ++%4hi:+0100051:1:4:8: ++%*4hi:+0100051:0:4: ++%4hi:+0B1000000000101001:1:4:1: ++%*4hi:+0B1000000000101001:0:4: ++%4hi:+0b1000000000101001:1:4:1: ++%*4hi:+0b1000000000101001:0:4: ++%7hi::0:-1: ++%*7hi::0:-1: ++%7hi:-32891:1:6:32645: ++%*7hi:-32891:0:6: ++%7hi:-0X807b:1:7:32645: ++%*7hi:-0X807b:0:7: ++%7hi:-0x807B:1:7:32645: ++%*7hi:-0x807B:0:7: ++%7hi:-0100173:1:7:-4111: ++%*7hi:-0100173:0:7: ++%7hi:-0B1000000001111011:1:7:-8: ++%*7hi:-0B1000000001111011:0:7: ++%7hi:-0b1000000001111011:1:7:-8: ++%*7hi:-0b1000000001111011:0:7: ++%7hi:-32769:1:6:32767: ++%*7hi:-32769:0:6: ++%7hi:-0X8001:1:7:32767: ++%*7hi:-0X8001:0:7: ++%7hi:-0x8001:1:7:32767: ++%*7hi:-0x8001:0:7: ++%7hi:-0100001:1:7:-4096: ++%*7hi:-0100001:0:7: ++%7hi:-0B1000000000000001:1:7:-8: ++%*7hi:-0B1000000000000001:0:7: ++%7hi:-0b1000000000000001:1:7:-8: ++%*7hi:-0b1000000000000001:0:7: ++%7hi:-32768:1:6:-32768: ++%*7hi:-32768:0:6: ++%7hi:-0X8000:1:7:-32768: ++%*7hi:-0X8000:0:7: ++%7hi:-0x8000:1:7:-32768: ++%*7hi:-0x8000:0:7: ++%7hi:-0100000:1:7:-4096: ++%*7hi:-0100000:0:7: ++%7hi:-0B1000000000000000:1:7:-8: ++%*7hi:-0B1000000000000000:0:7: ++%7hi:-0b1000000000000000:1:7:-8: ++%*7hi:-0b1000000000000000:0:7: ++%7hi:-123:1:4:-123: ++%*7hi:-123:0:4: ++%7hi:-0X7b:1:5:-123: ++%*7hi:-0X7b:0:5: ++%7hi:-0x7B:1:5:-123: ++%*7hi:-0x7B:0:5: ++%7hi:-0173:1:5:-123: ++%*7hi:-0173:0:5: ++%7hi:-0B1111011:1:7:-15: ++%*7hi:-0B1111011:0:7: ++%7hi:-0b1111011:1:7:-15: ++%*7hi:-0b1111011:0:7: ++%7hi:-1:1:2:-1: ++%*7hi:-1:0:2: ++%7hi:-0X1:1:4:-1: ++%*7hi:-0X1:0:4: ++%7hi:-0x1:1:4:-1: ++%*7hi:-0x1:0:4: ++%7hi:-01:1:3:-1: ++%*7hi:-01:0:3: ++%7hi:-0B1:1:4:-1: ++%*7hi:-0B1:0:4: ++%7hi:-0b1:1:4:-1: ++%*7hi:-0b1:0:4: ++%7hi:-0:1:2:0: ++%*7hi:-0:0:2: ++%7hi:-0X0:1:4:0: ++%*7hi:-0X0:0:4: ++%7hi:-0x0:1:4:0: ++%*7hi:-0x0:0:4: ++%7hi:-00:1:3:0: ++%*7hi:-00:0:3: ++%7hi:-0B0:1:4:0: ++%*7hi:-0B0:0:4: ++%7hi:-0b0:1:4:0: ++%*7hi:-0b0:0:4: ++%7hi:0:1:1:0: ++%*7hi:0:0:1: ++%7hi:0X0:1:3:0: ++%*7hi:0X0:0:3: ++%7hi:0x0:1:3:0: ++%*7hi:0x0:0:3: ++%7hi:00:1:2:0: ++%*7hi:00:0:2: ++%7hi:0B0:1:3:0: ++%*7hi:0B0:0:3: ++%7hi:0b0:1:3:0: ++%*7hi:0b0:0:3: ++%7hi:1:1:1:1: ++%*7hi:1:0:1: ++%7hi:0X1:1:3:1: ++%*7hi:0X1:0:3: ++%7hi:0x1:1:3:1: ++%*7hi:0x1:0:3: ++%7hi:01:1:2:1: ++%*7hi:01:0:2: ++%7hi:0B1:1:3:1: ++%*7hi:0B1:0:3: ++%7hi:0b1:1:3:1: ++%*7hi:0b1:0:3: ++%7hi:42:1:2:42: ++%*7hi:42:0:2: ++%7hi:0X2a:1:4:42: ++%*7hi:0X2a:0:4: ++%7hi:0x2A:1:4:42: ++%*7hi:0x2A:0:4: ++%7hi:052:1:3:42: ++%*7hi:052:0:3: ++%7hi:0B101010:1:7:21: ++%*7hi:0B101010:0:7: ++%7hi:0b101010:1:7:21: ++%*7hi:0b101010:0:7: ++%7hi:32767:1:5:32767: ++%*7hi:32767:0:5: ++%7hi:0X7fff:1:6:32767: ++%*7hi:0X7fff:0:6: ++%7hi:0x7FFF:1:6:32767: ++%*7hi:0x7FFF:0:6: ++%7hi:077777:1:6:32767: ++%*7hi:077777:0:6: ++%7hi:0B111111111111111:1:7:31: ++%*7hi:0B111111111111111:0:7: ++%7hi:0b111111111111111:1:7:31: ++%*7hi:0b111111111111111:0:7: ++%7hi:32768:1:5:-32768: ++%*7hi:32768:0:5: ++%7hi:0X8000:1:6:-32768: ++%*7hi:0X8000:0:6: ++%7hi:0x8000:1:6:-32768: ++%*7hi:0x8000:0:6: ++%7hi:0100000:1:7:-32768: ++%*7hi:0100000:0:7: ++%7hi:0B1000000000000000:1:7:16: ++%*7hi:0B1000000000000000:0:7: ++%7hi:0b1000000000000000:1:7:16: ++%*7hi:0b1000000000000000:0:7: ++%7hi:32809:1:5:-32727: ++%*7hi:32809:0:5: ++%7hi:0X8029:1:6:-32727: ++%*7hi:0X8029:0:6: ++%7hi:0x8029:1:6:-32727: ++%*7hi:0x8029:0:6: ++%7hi:0100051:1:7:-32727: ++%*7hi:0100051:0:7: ++%7hi:0B1000000000101001:1:7:16: ++%*7hi:0B1000000000101001:0:7: ++%7hi:0b1000000000101001:1:7:16: ++%*7hi:0b1000000000101001:0:7: ++%7hi:+0:1:2:0: ++%*7hi:+0:0:2: ++%7hi:+0X0:1:4:0: ++%*7hi:+0X0:0:4: ++%7hi:+0x0:1:4:0: ++%*7hi:+0x0:0:4: ++%7hi:+00:1:3:0: ++%*7hi:+00:0:3: ++%7hi:+0B0:1:4:0: ++%*7hi:+0B0:0:4: ++%7hi:+0b0:1:4:0: ++%*7hi:+0b0:0:4: ++%7hi:+1:1:2:1: ++%*7hi:+1:0:2: ++%7hi:+0X1:1:4:1: ++%*7hi:+0X1:0:4: ++%7hi:+0x1:1:4:1: ++%*7hi:+0x1:0:4: ++%7hi:+01:1:3:1: ++%*7hi:+01:0:3: ++%7hi:+0B1:1:4:1: ++%*7hi:+0B1:0:4: ++%7hi:+0b1:1:4:1: ++%*7hi:+0b1:0:4: ++%7hi:+42:1:3:42: ++%*7hi:+42:0:3: ++%7hi:+0X2a:1:5:42: ++%*7hi:+0X2a:0:5: ++%7hi:+0x2A:1:5:42: ++%*7hi:+0x2A:0:5: ++%7hi:+052:1:4:42: ++%*7hi:+052:0:4: ++%7hi:+0B101010:1:7:10: ++%*7hi:+0B101010:0:7: ++%7hi:+0b101010:1:7:10: ++%*7hi:+0b101010:0:7: ++%7hi:+32767:1:6:32767: ++%*7hi:+32767:0:6: ++%7hi:+0X7fff:1:7:32767: ++%*7hi:+0X7fff:0:7: ++%7hi:+0x7FFF:1:7:32767: ++%*7hi:+0x7FFF:0:7: ++%7hi:+077777:1:7:32767: ++%*7hi:+077777:0:7: ++%7hi:+0B111111111111111:1:7:15: ++%*7hi:+0B111111111111111:0:7: ++%7hi:+0b111111111111111:1:7:15: ++%*7hi:+0b111111111111111:0:7: ++%7hi:+32768:1:6:-32768: ++%*7hi:+32768:0:6: ++%7hi:+0X8000:1:7:-32768: ++%*7hi:+0X8000:0:7: ++%7hi:+0x8000:1:7:-32768: ++%*7hi:+0x8000:0:7: ++%7hi:+0100000:1:7:4096: ++%*7hi:+0100000:0:7: ++%7hi:+0B1000000000000000:1:7:8: ++%*7hi:+0B1000000000000000:0:7: ++%7hi:+0b1000000000000000:1:7:8: ++%*7hi:+0b1000000000000000:0:7: ++%7hi:+32809:1:6:-32727: ++%*7hi:+32809:0:6: ++%7hi:+0X8029:1:7:-32727: ++%*7hi:+0X8029:0:7: ++%7hi:+0x8029:1:7:-32727: ++%*7hi:+0x8029:0:7: ++%7hi:+0100051:1:7:4101: ++%*7hi:+0100051:0:7: ++%7hi:+0B1000000000101001:1:7:8: ++%*7hi:+0B1000000000101001:0:7: ++%7hi:+0b1000000000101001:1:7:8: ++%*7hi:+0b1000000000101001:0:7: ++%2hi: :0:-1: ++%*2hi: :0:-1: ++%2hi: -32891:1:3:-3: ++%*2hi: -32891:0:3: ++%2hi: -0X807b:1:3:0: ++%*2hi: -0X807b:0:3: ++%2hi: -0x807B:1:3:0: ++%*2hi: -0x807B:0:3: ++%2hi: -0100173:1:3:0: ++%*2hi: -0100173:0:3: ++%2hi: -0B1000000001111011:1:3:0: ++%*2hi: -0B1000000001111011:0:3: ++%2hi: -0b1000000001111011:1:3:0: ++%*2hi: -0b1000000001111011:0:3: ++%2hi: -32769:1:3:-3: ++%*2hi: -32769:0:3: ++%2hi: -0X8001:1:3:0: ++%*2hi: -0X8001:0:3: ++%2hi: -0x8001:1:3:0: ++%*2hi: -0x8001:0:3: ++%2hi: -0100001:1:3:0: ++%*2hi: -0100001:0:3: ++%2hi: -0B1000000000000001:1:3:0: ++%*2hi: -0B1000000000000001:0:3: ++%2hi: -0b1000000000000001:1:3:0: ++%*2hi: -0b1000000000000001:0:3: ++%2hi: -32768:1:3:-3: ++%*2hi: -32768:0:3: ++%2hi: -0X8000:1:3:0: ++%*2hi: -0X8000:0:3: ++%2hi: -0x8000:1:3:0: ++%*2hi: -0x8000:0:3: ++%2hi: -0100000:1:3:0: ++%*2hi: -0100000:0:3: ++%2hi: -0B1000000000000000:1:3:0: ++%*2hi: -0B1000000000000000:0:3: ++%2hi: -0b1000000000000000:1:3:0: ++%*2hi: -0b1000000000000000:0:3: ++%2hi: -123:1:3:-1: ++%*2hi: -123:0:3: ++%2hi: -0X7b:1:3:0: ++%*2hi: -0X7b:0:3: ++%2hi: -0x7B:1:3:0: ++%*2hi: -0x7B:0:3: ++%2hi: -0173:1:3:0: ++%*2hi: -0173:0:3: ++%2hi: -0B1111011:1:3:0: ++%*2hi: -0B1111011:0:3: ++%2hi: -0b1111011:1:3:0: ++%*2hi: -0b1111011:0:3: ++%2hi: -1:1:3:-1: ++%*2hi: -1:0:3: ++%2hi: -0X1:1:3:0: ++%*2hi: -0X1:0:3: ++%2hi: -0x1:1:3:0: ++%*2hi: -0x1:0:3: ++%2hi: -01:1:3:0: ++%*2hi: -01:0:3: ++%2hi: -0B1:1:3:0: ++%*2hi: -0B1:0:3: ++%2hi: -0b1:1:3:0: ++%*2hi: -0b1:0:3: ++%2hi: -0:1:3:0: ++%*2hi: -0:0:3: ++%2hi: -0X0:1:3:0: ++%*2hi: -0X0:0:3: ++%2hi: -0x0:1:3:0: ++%*2hi: -0x0:0:3: ++%2hi: -00:1:3:0: ++%*2hi: -00:0:3: ++%2hi: -0B0:1:3:0: ++%*2hi: -0B0:0:3: ++%2hi: -0b0:1:3:0: ++%*2hi: -0b0:0:3: ++%2hi: 0:1:2:0: ++%*2hi: 0:0:2: ++# BZ12701 %2hi: 0X0:0:-1: ++# BZ12701 %*2hi: 0X0:0:-1: ++# BZ12701 %2hi: 0x0:0:-1: ++# BZ12701 %*2hi: 0x0:0:-1: ++%2hi: 00:1:3:0: ++%*2hi: 00:0:3: ++# BZ12701 %2hi: 0B0:0:-1: ++# BZ12701 %*2hi: 0B0:0:-1: ++# BZ12701 %2hi: 0b0:0:-1: ++# BZ12701 %*2hi: 0b0:0:-1: ++%2hi: 1:1:2:1: ++%*2hi: 1:0:2: ++# BZ12701 %2hi: 0X1:0:-1: ++# BZ12701 %*2hi: 0X1:0:-1: ++# BZ12701 %2hi: 0x1:0:-1: ++# BZ12701 %*2hi: 0x1:0:-1: ++%2hi: 01:1:3:1: ++%*2hi: 01:0:3: ++# BZ12701 %2hi: 0B1:0:-1: ++# BZ12701 %*2hi: 0B1:0:-1: ++# BZ12701 %2hi: 0b1:0:-1: ++# BZ12701 %*2hi: 0b1:0:-1: ++%2hi: 42:1:3:42: ++%*2hi: 42:0:3: ++# BZ12701 %2hi: 0X2a:0:-1: ++# BZ12701 %*2hi: 0X2a:0:-1: ++# BZ12701 %2hi: 0x2A:0:-1: ++# BZ12701 %*2hi: 0x2A:0:-1: ++%2hi: 052:1:3:5: ++%*2hi: 052:0:3: ++# BZ12701 %2hi: 0B101010:0:-1: ++# BZ12701 %*2hi: 0B101010:0:-1: ++# BZ12701 %2hi: 0b101010:0:-1: ++# BZ12701 %*2hi: 0b101010:0:-1: ++%2hi: 32767:1:3:32: ++%*2hi: 32767:0:3: ++# BZ12701 %2hi: 0X7fff:0:-1: ++# BZ12701 %*2hi: 0X7fff:0:-1: ++# BZ12701 %2hi: 0x7FFF:0:-1: ++# BZ12701 %*2hi: 0x7FFF:0:-1: ++%2hi: 077777:1:3:7: ++%*2hi: 077777:0:3: ++# BZ12701 %2hi: 0B111111111111111:0:-1: ++# BZ12701 %*2hi: 0B111111111111111:0:-1: ++# BZ12701 %2hi: 0b111111111111111:0:-1: ++# BZ12701 %*2hi: 0b111111111111111:0:-1: ++%2hi: 32768:1:3:32: ++%*2hi: 32768:0:3: ++# BZ12701 %2hi: 0X8000:0:-1: ++# BZ12701 %*2hi: 0X8000:0:-1: ++# BZ12701 %2hi: 0x8000:0:-1: ++# BZ12701 %*2hi: 0x8000:0:-1: ++%2hi: 0100000:1:3:1: ++%*2hi: 0100000:0:3: ++# BZ12701 %2hi: 0B1000000000000000:0:-1: ++# BZ12701 %*2hi: 0B1000000000000000:0:-1: ++# BZ12701 %2hi: 0b1000000000000000:0:-1: ++# BZ12701 %*2hi: 0b1000000000000000:0:-1: ++%2hi: 32809:1:3:32: ++%*2hi: 32809:0:3: ++# BZ12701 %2hi: 0X8029:0:-1: ++# BZ12701 %*2hi: 0X8029:0:-1: ++# BZ12701 %2hi: 0x8029:0:-1: ++# BZ12701 %*2hi: 0x8029:0:-1: ++%2hi: 0100051:1:3:1: ++%*2hi: 0100051:0:3: ++# BZ12701 %2hi: 0B1000000000101001:0:-1: ++# BZ12701 %*2hi: 0B1000000000101001:0:-1: ++# BZ12701 %2hi: 0b1000000000101001:0:-1: ++# BZ12701 %*2hi: 0b1000000000101001:0:-1: ++%2hi: +0:1:3:0: ++%*2hi: +0:0:3: ++%2hi: +0X0:1:3:0: ++%*2hi: +0X0:0:3: ++%2hi: +0x0:1:3:0: ++%*2hi: +0x0:0:3: ++%2hi: +00:1:3:0: ++%*2hi: +00:0:3: ++%2hi: +0B0:1:3:0: ++%*2hi: +0B0:0:3: ++%2hi: +0b0:1:3:0: ++%*2hi: +0b0:0:3: ++%2hi: +1:1:3:1: ++%*2hi: +1:0:3: ++%2hi: +0X1:1:3:0: ++%*2hi: +0X1:0:3: ++%2hi: +0x1:1:3:0: ++%*2hi: +0x1:0:3: ++%2hi: +01:1:3:0: ++%*2hi: +01:0:3: ++%2hi: +0B1:1:3:0: ++%*2hi: +0B1:0:3: ++%2hi: +0b1:1:3:0: ++%*2hi: +0b1:0:3: ++%2hi: +42:1:3:4: ++%*2hi: +42:0:3: ++%2hi: +0X2a:1:3:0: ++%*2hi: +0X2a:0:3: ++%2hi: +0x2A:1:3:0: ++%*2hi: +0x2A:0:3: ++%2hi: +052:1:3:0: ++%*2hi: +052:0:3: ++%2hi: +0B101010:1:3:0: ++%*2hi: +0B101010:0:3: ++%2hi: +0b101010:1:3:0: ++%*2hi: +0b101010:0:3: ++%2hi: +32767:1:3:3: ++%*2hi: +32767:0:3: ++%2hi: +0X7fff:1:3:0: ++%*2hi: +0X7fff:0:3: ++%2hi: +0x7FFF:1:3:0: ++%*2hi: +0x7FFF:0:3: ++%2hi: +077777:1:3:0: ++%*2hi: +077777:0:3: ++%2hi: +0B111111111111111:1:3:0: ++%*2hi: +0B111111111111111:0:3: ++%2hi: +0b111111111111111:1:3:0: ++%*2hi: +0b111111111111111:0:3: ++%2hi: +32768:1:3:3: ++%*2hi: +32768:0:3: ++%2hi: +0X8000:1:3:0: ++%*2hi: +0X8000:0:3: ++%2hi: +0x8000:1:3:0: ++%*2hi: +0x8000:0:3: ++%2hi: +0100000:1:3:0: ++%*2hi: +0100000:0:3: ++%2hi: +0B1000000000000000:1:3:0: ++%*2hi: +0B1000000000000000:0:3: ++%2hi: +0b1000000000000000:1:3:0: ++%*2hi: +0b1000000000000000:0:3: ++%2hi: +32809:1:3:3: ++%*2hi: +32809:0:3: ++%2hi: +0X8029:1:3:0: ++%*2hi: +0X8029:0:3: ++%2hi: +0x8029:1:3:0: ++%*2hi: +0x8029:0:3: ++%2hi: +0100051:1:3:0: ++%*2hi: +0100051:0:3: ++%2hi: +0B1000000000101001:1:3:0: ++%*2hi: +0B1000000000101001:0:3: ++%2hi: +0b1000000000101001:1:3:0: ++%*2hi: +0b1000000000101001:0:3: ++%7hi: :0:-1: ++%*7hi: :0:-1: ++%7hi: -32891:1:7:32645: ++%*7hi: -32891:0:7: ++%7hi: -0X807b:1:8:32645: ++%*7hi: -0X807b:0:8: ++%7hi: -0x807B:1:8:32645: ++%*7hi: -0x807B:0:8: ++%7hi: -0100173:1:8:-4111: ++%*7hi: -0100173:0:8: ++%7hi: -0B1000000001111011:1:8:-8: ++%*7hi: -0B1000000001111011:0:8: ++%7hi: -0b1000000001111011:1:8:-8: ++%*7hi: -0b1000000001111011:0:8: ++%7hi: -32769:1:7:32767: ++%*7hi: -32769:0:7: ++%7hi: -0X8001:1:8:32767: ++%*7hi: -0X8001:0:8: ++%7hi: -0x8001:1:8:32767: ++%*7hi: -0x8001:0:8: ++%7hi: -0100001:1:8:-4096: ++%*7hi: -0100001:0:8: ++%7hi: -0B1000000000000001:1:8:-8: ++%*7hi: -0B1000000000000001:0:8: ++%7hi: -0b1000000000000001:1:8:-8: ++%*7hi: -0b1000000000000001:0:8: ++%7hi: -32768:1:7:-32768: ++%*7hi: -32768:0:7: ++%7hi: -0X8000:1:8:-32768: ++%*7hi: -0X8000:0:8: ++%7hi: -0x8000:1:8:-32768: ++%*7hi: -0x8000:0:8: ++%7hi: -0100000:1:8:-4096: ++%*7hi: -0100000:0:8: ++%7hi: -0B1000000000000000:1:8:-8: ++%*7hi: -0B1000000000000000:0:8: ++%7hi: -0b1000000000000000:1:8:-8: ++%*7hi: -0b1000000000000000:0:8: ++%7hi: -123:1:5:-123: ++%*7hi: -123:0:5: ++%7hi: -0X7b:1:6:-123: ++%*7hi: -0X7b:0:6: ++%7hi: -0x7B:1:6:-123: ++%*7hi: -0x7B:0:6: ++%7hi: -0173:1:6:-123: ++%*7hi: -0173:0:6: ++%7hi: -0B1111011:1:8:-15: ++%*7hi: -0B1111011:0:8: ++%7hi: -0b1111011:1:8:-15: ++%*7hi: -0b1111011:0:8: ++%7hi: -1:1:3:-1: ++%*7hi: -1:0:3: ++%7hi: -0X1:1:5:-1: ++%*7hi: -0X1:0:5: ++%7hi: -0x1:1:5:-1: ++%*7hi: -0x1:0:5: ++%7hi: -01:1:4:-1: ++%*7hi: -01:0:4: ++%7hi: -0B1:1:5:-1: ++%*7hi: -0B1:0:5: ++%7hi: -0b1:1:5:-1: ++%*7hi: -0b1:0:5: ++%7hi: -0:1:3:0: ++%*7hi: -0:0:3: ++%7hi: -0X0:1:5:0: ++%*7hi: -0X0:0:5: ++%7hi: -0x0:1:5:0: ++%*7hi: -0x0:0:5: ++%7hi: -00:1:4:0: ++%*7hi: -00:0:4: ++%7hi: -0B0:1:5:0: ++%*7hi: -0B0:0:5: ++%7hi: -0b0:1:5:0: ++%*7hi: -0b0:0:5: ++%7hi: 0:1:2:0: ++%*7hi: 0:0:2: ++%7hi: 0X0:1:4:0: ++%*7hi: 0X0:0:4: ++%7hi: 0x0:1:4:0: ++%*7hi: 0x0:0:4: ++%7hi: 00:1:3:0: ++%*7hi: 00:0:3: ++%7hi: 0B0:1:4:0: ++%*7hi: 0B0:0:4: ++%7hi: 0b0:1:4:0: ++%*7hi: 0b0:0:4: ++%7hi: 1:1:2:1: ++%*7hi: 1:0:2: ++%7hi: 0X1:1:4:1: ++%*7hi: 0X1:0:4: ++%7hi: 0x1:1:4:1: ++%*7hi: 0x1:0:4: ++%7hi: 01:1:3:1: ++%*7hi: 01:0:3: ++%7hi: 0B1:1:4:1: ++%*7hi: 0B1:0:4: ++%7hi: 0b1:1:4:1: ++%*7hi: 0b1:0:4: ++%7hi: 42:1:3:42: ++%*7hi: 42:0:3: ++%7hi: 0X2a:1:5:42: ++%*7hi: 0X2a:0:5: ++%7hi: 0x2A:1:5:42: ++%*7hi: 0x2A:0:5: ++%7hi: 052:1:4:42: ++%*7hi: 052:0:4: ++%7hi: 0B101010:1:8:21: ++%*7hi: 0B101010:0:8: ++%7hi: 0b101010:1:8:21: ++%*7hi: 0b101010:0:8: ++%7hi: 32767:1:6:32767: ++%*7hi: 32767:0:6: ++%7hi: 0X7fff:1:7:32767: ++%*7hi: 0X7fff:0:7: ++%7hi: 0x7FFF:1:7:32767: ++%*7hi: 0x7FFF:0:7: ++%7hi: 077777:1:7:32767: ++%*7hi: 077777:0:7: ++%7hi: 0B111111111111111:1:8:31: ++%*7hi: 0B111111111111111:0:8: ++%7hi: 0b111111111111111:1:8:31: ++%*7hi: 0b111111111111111:0:8: ++%7hi: 32768:1:6:-32768: ++%*7hi: 32768:0:6: ++%7hi: 0X8000:1:7:-32768: ++%*7hi: 0X8000:0:7: ++%7hi: 0x8000:1:7:-32768: ++%*7hi: 0x8000:0:7: ++%7hi: 0100000:1:8:-32768: ++%*7hi: 0100000:0:8: ++%7hi: 0B1000000000000000:1:8:16: ++%*7hi: 0B1000000000000000:0:8: ++%7hi: 0b1000000000000000:1:8:16: ++%*7hi: 0b1000000000000000:0:8: ++%7hi: 32809:1:6:-32727: ++%*7hi: 32809:0:6: ++%7hi: 0X8029:1:7:-32727: ++%*7hi: 0X8029:0:7: ++%7hi: 0x8029:1:7:-32727: ++%*7hi: 0x8029:0:7: ++%7hi: 0100051:1:8:-32727: ++%*7hi: 0100051:0:8: ++%7hi: 0B1000000000101001:1:8:16: ++%*7hi: 0B1000000000101001:0:8: ++%7hi: 0b1000000000101001:1:8:16: ++%*7hi: 0b1000000000101001:0:8: ++%7hi: +0:1:3:0: ++%*7hi: +0:0:3: ++%7hi: +0X0:1:5:0: ++%*7hi: +0X0:0:5: ++%7hi: +0x0:1:5:0: ++%*7hi: +0x0:0:5: ++%7hi: +00:1:4:0: ++%*7hi: +00:0:4: ++%7hi: +0B0:1:5:0: ++%*7hi: +0B0:0:5: ++%7hi: +0b0:1:5:0: ++%*7hi: +0b0:0:5: ++%7hi: +1:1:3:1: ++%*7hi: +1:0:3: ++%7hi: +0X1:1:5:1: ++%*7hi: +0X1:0:5: ++%7hi: +0x1:1:5:1: ++%*7hi: +0x1:0:5: ++%7hi: +01:1:4:1: ++%*7hi: +01:0:4: ++%7hi: +0B1:1:5:1: ++%*7hi: +0B1:0:5: ++%7hi: +0b1:1:5:1: ++%*7hi: +0b1:0:5: ++%7hi: +42:1:4:42: ++%*7hi: +42:0:4: ++%7hi: +0X2a:1:6:42: ++%*7hi: +0X2a:0:6: ++%7hi: +0x2A:1:6:42: ++%*7hi: +0x2A:0:6: ++%7hi: +052:1:5:42: ++%*7hi: +052:0:5: ++%7hi: +0B101010:1:8:10: ++%*7hi: +0B101010:0:8: ++%7hi: +0b101010:1:8:10: ++%*7hi: +0b101010:0:8: ++%7hi: +32767:1:7:32767: ++%*7hi: +32767:0:7: ++%7hi: +0X7fff:1:8:32767: ++%*7hi: +0X7fff:0:8: ++%7hi: +0x7FFF:1:8:32767: ++%*7hi: +0x7FFF:0:8: ++%7hi: +077777:1:8:32767: ++%*7hi: +077777:0:8: ++%7hi: +0B111111111111111:1:8:15: ++%*7hi: +0B111111111111111:0:8: ++%7hi: +0b111111111111111:1:8:15: ++%*7hi: +0b111111111111111:0:8: ++%7hi: +32768:1:7:-32768: ++%*7hi: +32768:0:7: ++%7hi: +0X8000:1:8:-32768: ++%*7hi: +0X8000:0:8: ++%7hi: +0x8000:1:8:-32768: ++%*7hi: +0x8000:0:8: ++%7hi: +0100000:1:8:4096: ++%*7hi: +0100000:0:8: ++%7hi: +0B1000000000000000:1:8:8: ++%*7hi: +0B1000000000000000:0:8: ++%7hi: +0b1000000000000000:1:8:8: ++%*7hi: +0b1000000000000000:0:8: ++%7hi: +32809:1:7:-32727: ++%*7hi: +32809:0:7: ++%7hi: +0X8029:1:8:-32727: ++%*7hi: +0X8029:0:8: ++%7hi: +0x8029:1:8:-32727: ++%*7hi: +0x8029:0:8: ++%7hi: +0100051:1:8:4101: ++%*7hi: +0100051:0:8: ++%7hi: +0B1000000000101001:1:8:8: ++%*7hi: +0B1000000000101001:0:8: ++%7hi: +0b1000000000101001:1:8:8: ++%*7hi: +0b1000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-skeleton-c.c b/stdio-common/tst-scanf-format-skeleton-c.c +new file mode 100644 +index 0000000000000000..181077fb38959d2d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-c.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef char *type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-char.c b/stdio-common/tst-scanf-format-skeleton-char.c +new file mode 100644 +index 0000000000000000..a694de4892396e11 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-char.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef signed char type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-double.c b/stdio-common/tst-scanf-format-skeleton-double.c +new file mode 100644 +index 0000000000000000..502f2ad3f7d1aef2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-double.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef double type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-float.c b/stdio-common/tst-scanf-format-skeleton-float.c +new file mode 100644 +index 0000000000000000..2104c0f6c913f502 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-float.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef float type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-int.c b/stdio-common/tst-scanf-format-skeleton-int.c +new file mode 100644 +index 0000000000000000..eb4e9de2db796311 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-int.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ldouble.c b/stdio-common/tst-scanf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..3649110ed36c4ef5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ldouble.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef long double type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-llong.c b/stdio-common/tst-scanf-format-skeleton-llong.c +new file mode 100644 +index 0000000000000000..8b8324e99fb95121 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-llong.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef long long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-long.c b/stdio-common/tst-scanf-format-skeleton-long.c +new file mode 100644 +index 0000000000000000..91aa0913fdfe77a9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-long.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-short.c b/stdio-common/tst-scanf-format-skeleton-short.c +new file mode 100644 +index 0000000000000000..ca51a2533c7e198e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-short.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++typedef short int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-uchar.c b/stdio-common/tst-scanf-format-skeleton-uchar.c +new file mode 100644 +index 0000000000000000..6be8917e3bb9edee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-uchar.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned char type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-uint.c b/stdio-common/tst-scanf-format-skeleton-uint.c +new file mode 100644 +index 0000000000000000..1508dc39198c5464 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-uint.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ullong.c b/stdio-common/tst-scanf-format-skeleton-ullong.c +new file mode 100644 +index 0000000000000000..b0b8050e2d33e195 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ullong.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned long long int convs. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned long long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ulong.c b/stdio-common/tst-scanf-format-skeleton-ulong.c +new file mode 100644 +index 0000000000000000..319882511e7c7a64 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ulong.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned long int convs. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ushort.c b/stdio-common/tst-scanf-format-skeleton-ushort.c +new file mode 100644 +index 0000000000000000..2b710c5eca6d75d0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ushort.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned short int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton.c b/stdio-common/tst-scanf-format-skeleton.c +new file mode 100644 +index 0000000000000000..bf1129b7f4f217cd +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton.c +@@ -0,0 +1,373 @@ ++/* Test skeleton for formatted scanf input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The following definitions have to be supplied by the source including ++ this skeleton: ++ ++ Macros: ++ TYPE_T_UNSIGNED_P [optional] Set to 1 if handling an unsigned ++ integer conversion. ++ ++ Typedefs: ++ type_t Type to hold data produced by the conversion ++ handled. ++ ++ Callable objects: ++ scanf_under_test Wrapper for the 'scanf' family feature to be ++ tested. ++ verify_input Verifier called to determine whether there is a ++ match between the data retrieved by the feature ++ tested and MATCH reference data supplied by input. ++ pointer_to_value Converter making a pointer suitable for the ++ feature tested from the data holding type. ++ initialize_value Initializer for the data holder to use ahead of ++ each call to the feature tested. ++ ++ It is up to the source including this skeleton whether the individual ++ callable objects are going to be macros or actual functions. ++ ++ See tst-*scanf-format-*.c for usage examples. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* Tweak our environment according to any TYPE_T_UNSIGNED_P setting ++ supplied by the individual test case. */ ++#ifndef TYPE_T_UNSIGNED_P ++# define TYPE_T_UNSIGNED_P 0 ++#endif ++#if TYPE_T_UNSIGNED_P ++# define UNSIGNED unsigned ++#else ++# define UNSIGNED ++#endif ++ ++/* Read and return a single character from standard input, returning ++ end-of-file or error status indication where applicable. */ ++ ++static int ++read_input (void) ++{ ++ int c = getchar (); ++ if (ferror (stdin)) ++ c = INPUT_ERROR; ++ else if (feof (stdin)) ++ c = INPUT_EOF; ++ return c; ++} ++ ++/* Consume a signed decimal integer supplied by READ_INPUT above, up to ++ the following ':' field separator which is removed from input, making ++ sure the value requested does not overflow the range of the data type ++ according to TYPE_T_UNSIGNED_P. ++ ++ Return the value retrieved and set ERRP to zero on success, otherwise ++ set ERRP to the error code. */ ++ ++static long long ++read_integer (int *errp) ++{ ++ bool m = false; ++ int ch; ++ ++ ch = read_input (); ++ if (ch == '-' || ch == '+') ++ { ++ m = ch == '-'; ++ ch = read_input (); ++ } ++ ++ if (ch == ':') ++ { ++ *errp = INPUT_FORMAT; ++ return 0; ++ } ++ ++ unsigned long long v = 0; ++ while (1) ++ { ++ unsigned long long v0 = v; ++ ++ if (isdigit (ch)) ++ { ++ v = 10 * v + (ch - '0'); ++ if (!(TYPE_T_UNSIGNED_P ++ || (v & ~((~0ULL) >> 1)) == 0 ++ || (m && v == ~((~0ULL) >> 1))) ++ || v < v0) ++ { ++ *errp = INPUT_OVERFLOW; ++ return 0; ++ } ++ } ++ else if (ch < 0) ++ { ++ *errp = ch; ++ return 0; ++ } ++ else if (ch != ':') ++ { ++ *errp = INPUT_FORMAT; ++ return 0; ++ } ++ else ++ break; ++ ++ ch = read_input (); ++ } ++ ++ *errp = 0; ++ return m ? -v : v; ++} ++ ++/* Return an error message corresponding to ERR. */ ++ ++static const char * ++get_error_message (int err) ++{ ++ switch (err) ++ { ++ case INPUT_EOF: ++ return "input line %zi: premature end of input"; ++ case INPUT_ERROR: ++ return "input line %zi: error reading input data: %m"; ++ case INPUT_FORMAT: ++ return "input line %zi: input data format error"; ++ case INPUT_OVERFLOW: ++ return "input line %zi: input data arithmetic overflow"; ++ case OUTPUT_TERM: ++ return "input line %zi: string termination missing from output"; ++ case OUTPUT_OVERRUN: ++ return "input line %zi: output data overrun"; ++ default: ++ return "input line %zi: internal test error"; ++ } ++} ++ ++/* Consume a record supplied by READ_INPUT above, according to '%' and ++ any assignment-suppressing character '*', followed by any width W, ++ any length modifier L, and conversion C, all already provided in FMT ++ (along with trailing "%lln" implicitly appended by the caller) and ++ removed from input along with the following ':' field separator. ++ For convenience the last character of conversion C is supplied as ++ the F parameter. ++ ++ Record formats consumed: ++ ++ %*:::: ++ %*:::: ++ %:::: ++ %:::: ++ %*:::: ++ %*:::: ++ %::::: ++ %::::: ++ ++ Verify that the 'scanf' family function under test returned RESULT, ++ that the "%lln" conversion recorded COUNT characters or has not been ++ executed leaving the value at -1 as applicable, and where executed ++ that the conversion requested produced output matching MATCH. ++ ++ Return 0 on success, -1 on failure. */ ++ ++static int ++do_scanf (char f, char *fmt) ++{ ++ bool value_match = true; ++ bool count_match = true; ++ long long count = -1; ++ bool match = true; ++ long long result; ++ long long r; ++ long long c; ++ type_t val; ++ int err; ++ int ch; ++ ++ initialize_value (val); ++ /* Make sure it's been committed. */ ++ __asm__ ("" : : : "memory"); ++ ++ if (fmt[1] == '*') ++ result = scanf_under_test (fmt, &count); ++ else ++ result = scanf_under_test (fmt, pointer_to_value (val), &count); ++ if (result < 0) ++ FAIL_RET (get_error_message (result), line); ++ ++ do ++ ch = read_input (); ++ while (ch != ':' && ch != INPUT_ERROR && ch != INPUT_EOF); ++ if (ch != ':') ++ FAIL_RET (get_error_message (ch), line); ++ ++ r = read_integer (&err); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ match &= r == result; ++ ++ c = read_integer (&err); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ match &= (count_match = c == count); ++ ++ if (r > 0) ++ { ++ match &= (value_match = verify_input (f, val, count, &err)); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ } ++ ++ ch = read_input (); ++ if (ch != '\n') ++ FAIL_RET (get_error_message (ch == INPUT_ERROR || ch == INPUT_EOF ++ ? ch : INPUT_FORMAT), line); ++ ++ if (!match) ++ { ++ if (r != result) ++ FAIL ("input line %zi: input assignment count mismatch: %lli", ++ line, result); ++ if (!count_match) ++ FAIL ("input line %zi: input character count mismatch: %lli", ++ line, count); ++ if (!value_match) ++ FAIL ("input line %zi: input value mismatch", line); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++/* Consume a list of input records line by line supplied by READ_INPUT ++ above, discarding any that begin with the '#' line comment designator ++ and interpreting the initial part of the remaining ones from leading ++ '%' up to the first ':' field separator, which is removed from input, ++ by appending "%lln" to the part retrieved and handing over along with ++ the rest of input line to read to DO_SCANF above. Terminate upon the ++ end of input or the first processing error encountered. ++ ++ See the top of this file for the definitions that have to be ++ provided by the source including this skeleton. */ ++ ++int ++do_test (void) ++{ ++ size_t fmt_size = 0; ++ char *fmt = NULL; ++ ++ mtrace (); ++ ++ int result = 0; ++ do ++ { ++ size_t i = 0; ++ int ch = 0; ++ char f; ++ ++ line++; ++ do ++ { ++ f = ch; ++ ch = read_input (); ++ if ((i == 0 && ch == '#') || ch == INPUT_EOF || ch == INPUT_ERROR) ++ break; ++ if (i == fmt_size) ++ { ++ fmt_size += SIZE_CHUNK; ++ fmt = xrealloc (fmt, fmt_size); ++ } ++ fmt[i++] = ch; ++ } ++ while (ch != ':'); ++ if (ch == INPUT_EOF && i == 0) ++ { ++ if (line == 1) ++ { ++ FAIL ("input line %zi: empty input", line); ++ result = -1; ++ } ++ break; ++ } ++ if (ch == INPUT_ERROR) ++ { ++ FAIL ("input line %zi: error reading format string: %m", line); ++ result = -1; ++ break; ++ } ++ if (ch == '#') ++ { ++ do ++ ch = read_input (); ++ while (ch != '\n' && ch != INPUT_EOF && ch != INPUT_ERROR); ++ if (ch == '\n') ++ continue; ++ ++ if (ch == INPUT_EOF) ++ FAIL ("input line %zi: premature end of input reading comment", ++ line); ++ else ++ FAIL ("input line %zi: error reading comment: %m", line); ++ result = -1; ++ break; ++ } ++ if (ch != ':' || i < 3 || fmt[0] != '%') ++ { ++ FAIL ("input line %zi: format string format error: \"%.*s\"", line, ++ (int) (i - 1), fmt); ++ result = -1; ++ break; ++ } ++ ++ if (i + 4 > fmt_size) ++ { ++ fmt_size += SIZE_CHUNK; ++ fmt = xrealloc (fmt, fmt_size); ++ } ++ fmt[i - 1] = '%'; ++ fmt[i++] = 'l'; ++ fmt[i++] = 'l'; ++ fmt[i++] = 'n'; ++ fmt[i++] = '\0'; ++ ++ result = do_scanf (f, fmt); ++ } ++ while (result == 0); ++ ++ free (fmt); ++ return result == 0 ? EXIT_SUCCESS : EXIT_FAILURE; ++} ++ ++/* Interpose 'dladdr' with a stub to speed up malloc tracing. */ ++ ++int ++dladdr (const void *addr, Dl_info *info) ++{ ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-scanf-format-skeleton.h b/stdio-common/tst-scanf-format-skeleton.h +new file mode 100644 +index 0000000000000000..a34429f5815488f8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton.h +@@ -0,0 +1,40 @@ ++/* Test skeleton declarations for formatted scanf input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++/* Amount dynamic memory allocations are increased by. */ ++#define SIZE_CHUNK 32 ++ ++/* Error codes for use by the tests. */ ++enum ++{ ++ INPUT_EOF = -1, /* Premature end of input. */ ++ INPUT_ERROR = -2, /* System error reading input data. */ ++ INPUT_FORMAT = -3, /* Input data format error. */ ++ INPUT_OVERFLOW = -4, /* Input data arithmetic overflow. */ ++ OUTPUT_TERM = -5, /* String termination missing from output. */ ++ OUTPUT_OVERRUN = -6 /* Output data overrun. */ ++}; ++ ++/* Input data retrieval handlers made available to individual tests. */ ++static long long read_integer (int *); ++static int read_input (void); ++ ++/* Input data line number tracker. */ ++static size_t line; +diff --git a/stdio-common/tst-scanf-format-uchar-b.input b/stdio-common/tst-scanf-format-uchar-b.input +new file mode 100644 +index 0000000000000000..e4074425ef8f088c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-b.input +@@ -0,0 +1,644 @@ ++%hhb::0:-1: ++%*hhb::0:-1: ++%hhb:-1111011:1:8:133: ++%*hhb:-1111011:0:8: ++%hhb:-0B1111011:1:10:133: ++%*hhb:-0B1111011:0:10: ++%hhb:-0b1111011:1:10:133: ++%*hhb:-0b1111011:0:10: ++%hhb:-1:1:2:255: ++%*hhb:-1:0:2: ++%hhb:-0B1:1:4:255: ++%*hhb:-0B1:0:4: ++%hhb:-0b1:1:4:255: ++%*hhb:-0b1:0:4: ++%hhb:-0:1:2:0: ++%*hhb:-0:0:2: ++%hhb:-0B0:1:4:0: ++%*hhb:-0B0:0:4: ++%hhb:-0b0:1:4:0: ++%*hhb:-0b0:0:4: ++%hhb:0:1:1:0: ++%*hhb:0:0:1: ++%hhb:0B0:1:3:0: ++%*hhb:0B0:0:3: ++%hhb:0b0:1:3:0: ++%*hhb:0b0:0:3: ++%hhb:1:1:1:1: ++%*hhb:1:0:1: ++%hhb:0B1:1:3:1: ++%*hhb:0B1:0:3: ++%hhb:0b1:1:3:1: ++%*hhb:0b1:0:3: ++%hhb:101010:1:6:42: ++%*hhb:101010:0:6: ++%hhb:0B101010:1:8:42: ++%*hhb:0B101010:0:8: ++%hhb:0b101010:1:8:42: ++%*hhb:0b101010:0:8: ++%hhb:11111111:1:8:255: ++%*hhb:11111111:0:8: ++%hhb:0B11111111:1:10:255: ++%*hhb:0B11111111:0:10: ++%hhb:0b11111111:1:10:255: ++%*hhb:0b11111111:0:10: ++%hhb:100000000:1:9:0: ++%*hhb:100000000:0:9: ++%hhb:0B100000000:1:11:0: ++%*hhb:0B100000000:0:11: ++%hhb:0b100000000:1:11:0: ++%*hhb:0b100000000:0:11: ++%hhb:100101001:1:9:41: ++%*hhb:100101001:0:9: ++%hhb:0B100101001:1:11:41: ++%*hhb:0B100101001:0:11: ++%hhb:0b100101001:1:11:41: ++%*hhb:0b100101001:0:11: ++%hhb:+0:1:2:0: ++%*hhb:+0:0:2: ++%hhb:+0B0:1:4:0: ++%*hhb:+0B0:0:4: ++%hhb:+0b0:1:4:0: ++%*hhb:+0b0:0:4: ++%hhb:+1:1:2:1: ++%*hhb:+1:0:2: ++%hhb:+0B1:1:4:1: ++%*hhb:+0B1:0:4: ++%hhb:+0b1:1:4:1: ++%*hhb:+0b1:0:4: ++%hhb:+101010:1:7:42: ++%*hhb:+101010:0:7: ++%hhb:+0B101010:1:9:42: ++%*hhb:+0B101010:0:9: ++%hhb:+0b101010:1:9:42: ++%*hhb:+0b101010:0:9: ++%hhb:+11111111:1:9:255: ++%*hhb:+11111111:0:9: ++%hhb:+0B11111111:1:11:255: ++%*hhb:+0B11111111:0:11: ++%hhb:+0b11111111:1:11:255: ++%*hhb:+0b11111111:0:11: ++%hhb:+100000000:1:10:0: ++%*hhb:+100000000:0:10: ++%hhb:+0B100000000:1:12:0: ++%*hhb:+0B100000000:0:12: ++%hhb:+0b100000000:1:12:0: ++%*hhb:+0b100000000:0:12: ++%hhb:+100101001:1:10:41: ++%*hhb:+100101001:0:10: ++%hhb:+0B100101001:1:12:41: ++%*hhb:+0B100101001:0:12: ++%hhb:+0b100101001:1:12:41: ++%*hhb:+0b100101001:0:12: ++%1hhb::0:-1: ++%*1hhb::0:-1: ++%1hhb:-1111011:0:-1: ++%*1hhb:-1111011:0:-1: ++%1hhb:-0B1111011:0:-1: ++%*1hhb:-0B1111011:0:-1: ++%1hhb:-0b1111011:0:-1: ++%*1hhb:-0b1111011:0:-1: ++%1hhb:-1:0:-1: ++%*1hhb:-1:0:-1: ++%1hhb:-0B1:0:-1: ++%*1hhb:-0B1:0:-1: ++%1hhb:-0b1:0:-1: ++%*1hhb:-0b1:0:-1: ++%1hhb:-0:0:-1: ++%*1hhb:-0:0:-1: ++%1hhb:-0B0:0:-1: ++%*1hhb:-0B0:0:-1: ++%1hhb:-0b0:0:-1: ++%*1hhb:-0b0:0:-1: ++%1hhb:0:1:1:0: ++%*1hhb:0:0:1: ++%1hhb:0B0:1:1:0: ++%*1hhb:0B0:0:1: ++%1hhb:0b0:1:1:0: ++%*1hhb:0b0:0:1: ++%1hhb:1:1:1:1: ++%*1hhb:1:0:1: ++%1hhb:0B1:1:1:0: ++%*1hhb:0B1:0:1: ++%1hhb:0b1:1:1:0: ++%*1hhb:0b1:0:1: ++%1hhb:101010:1:1:1: ++%*1hhb:101010:0:1: ++%1hhb:0B101010:1:1:0: ++%*1hhb:0B101010:0:1: ++%1hhb:0b101010:1:1:0: ++%*1hhb:0b101010:0:1: ++%1hhb:11111111:1:1:1: ++%*1hhb:11111111:0:1: ++%1hhb:0B11111111:1:1:0: ++%*1hhb:0B11111111:0:1: ++%1hhb:0b11111111:1:1:0: ++%*1hhb:0b11111111:0:1: ++%1hhb:100000000:1:1:1: ++%*1hhb:100000000:0:1: ++%1hhb:0B100000000:1:1:0: ++%*1hhb:0B100000000:0:1: ++%1hhb:0b100000000:1:1:0: ++%*1hhb:0b100000000:0:1: ++%1hhb:100101001:1:1:1: ++%*1hhb:100101001:0:1: ++%1hhb:0B100101001:1:1:0: ++%*1hhb:0B100101001:0:1: ++%1hhb:0b100101001:1:1:0: ++%*1hhb:0b100101001:0:1: ++%1hhb:+0:0:-1: ++%*1hhb:+0:0:-1: ++%1hhb:+0B0:0:-1: ++%*1hhb:+0B0:0:-1: ++%1hhb:+0b0:0:-1: ++%*1hhb:+0b0:0:-1: ++%1hhb:+1:0:-1: ++%*1hhb:+1:0:-1: ++%1hhb:+0B1:0:-1: ++%*1hhb:+0B1:0:-1: ++%1hhb:+0b1:0:-1: ++%*1hhb:+0b1:0:-1: ++%1hhb:+101010:0:-1: ++%*1hhb:+101010:0:-1: ++%1hhb:+0B101010:0:-1: ++%*1hhb:+0B101010:0:-1: ++%1hhb:+0b101010:0:-1: ++%*1hhb:+0b101010:0:-1: ++%1hhb:+11111111:0:-1: ++%*1hhb:+11111111:0:-1: ++%1hhb:+0B11111111:0:-1: ++%*1hhb:+0B11111111:0:-1: ++%1hhb:+0b11111111:0:-1: ++%*1hhb:+0b11111111:0:-1: ++%1hhb:+100000000:0:-1: ++%*1hhb:+100000000:0:-1: ++%1hhb:+0B100000000:0:-1: ++%*1hhb:+0B100000000:0:-1: ++%1hhb:+0b100000000:0:-1: ++%*1hhb:+0b100000000:0:-1: ++%1hhb:+100101001:0:-1: ++%*1hhb:+100101001:0:-1: ++%1hhb:+0B100101001:0:-1: ++%*1hhb:+0B100101001:0:-1: ++%1hhb:+0b100101001:0:-1: ++%*1hhb:+0b100101001:0:-1: ++%2hhb::0:-1: ++%*2hhb::0:-1: ++%2hhb:-1111011:1:2:255: ++%*2hhb:-1111011:0:2: ++%2hhb:-0B1111011:1:2:0: ++%*2hhb:-0B1111011:0:2: ++%2hhb:-0b1111011:1:2:0: ++%*2hhb:-0b1111011:0:2: ++%2hhb:-1:1:2:255: ++%*2hhb:-1:0:2: ++%2hhb:-0B1:1:2:0: ++%*2hhb:-0B1:0:2: ++%2hhb:-0b1:1:2:0: ++%*2hhb:-0b1:0:2: ++%2hhb:-0:1:2:0: ++%*2hhb:-0:0:2: ++%2hhb:-0B0:1:2:0: ++%*2hhb:-0B0:0:2: ++%2hhb:-0b0:1:2:0: ++%*2hhb:-0b0:0:2: ++%2hhb:0:1:1:0: ++%*2hhb:0:0:1: ++# BZ12701 %2hhb:0B0:0:-1: ++# BZ12701 %*2hhb:0B0:0:-1: ++# BZ12701 %2hhb:0b0:0:-1: ++# BZ12701 %*2hhb:0b0:0:-1: ++%2hhb:1:1:1:1: ++%*2hhb:1:0:1: ++# BZ12701 %2hhb:0B1:0:-1: ++# BZ12701 %*2hhb:0B1:0:-1: ++# BZ12701 %2hhb:0b1:0:-1: ++# BZ12701 %*2hhb:0b1:0:-1: ++%2hhb:101010:1:2:2: ++%*2hhb:101010:0:2: ++# BZ12701 %2hhb:0B101010:0:-1: ++# BZ12701 %*2hhb:0B101010:0:-1: ++# BZ12701 %2hhb:0b101010:0:-1: ++# BZ12701 %*2hhb:0b101010:0:-1: ++%2hhb:11111111:1:2:3: ++%*2hhb:11111111:0:2: ++# BZ12701 %2hhb:0B11111111:0:-1: ++# BZ12701 %*2hhb:0B11111111:0:-1: ++# BZ12701 %2hhb:0b11111111:0:-1: ++# BZ12701 %*2hhb:0b11111111:0:-1: ++%2hhb:100000000:1:2:2: ++%*2hhb:100000000:0:2: ++# BZ12701 %2hhb:0B100000000:0:-1: ++# BZ12701 %*2hhb:0B100000000:0:-1: ++# BZ12701 %2hhb:0b100000000:0:-1: ++# BZ12701 %*2hhb:0b100000000:0:-1: ++%2hhb:100101001:1:2:2: ++%*2hhb:100101001:0:2: ++# BZ12701 %2hhb:0B100101001:0:-1: ++# BZ12701 %*2hhb:0B100101001:0:-1: ++# BZ12701 %2hhb:0b100101001:0:-1: ++# BZ12701 %*2hhb:0b100101001:0:-1: ++%2hhb:+0:1:2:0: ++%*2hhb:+0:0:2: ++%2hhb:+0B0:1:2:0: ++%*2hhb:+0B0:0:2: ++%2hhb:+0b0:1:2:0: ++%*2hhb:+0b0:0:2: ++%2hhb:+1:1:2:1: ++%*2hhb:+1:0:2: ++%2hhb:+0B1:1:2:0: ++%*2hhb:+0B1:0:2: ++%2hhb:+0b1:1:2:0: ++%*2hhb:+0b1:0:2: ++%2hhb:+101010:1:2:1: ++%*2hhb:+101010:0:2: ++%2hhb:+0B101010:1:2:0: ++%*2hhb:+0B101010:0:2: ++%2hhb:+0b101010:1:2:0: ++%*2hhb:+0b101010:0:2: ++%2hhb:+11111111:1:2:1: ++%*2hhb:+11111111:0:2: ++%2hhb:+0B11111111:1:2:0: ++%*2hhb:+0B11111111:0:2: ++%2hhb:+0b11111111:1:2:0: ++%*2hhb:+0b11111111:0:2: ++%2hhb:+100000000:1:2:1: ++%*2hhb:+100000000:0:2: ++%2hhb:+0B100000000:1:2:0: ++%*2hhb:+0B100000000:0:2: ++%2hhb:+0b100000000:1:2:0: ++%*2hhb:+0b100000000:0:2: ++%2hhb:+100101001:1:2:1: ++%*2hhb:+100101001:0:2: ++%2hhb:+0B100101001:1:2:0: ++%*2hhb:+0B100101001:0:2: ++%2hhb:+0b100101001:1:2:0: ++%*2hhb:+0b100101001:0:2: ++%3hhb::0:-1: ++%*3hhb::0:-1: ++%3hhb:-1111011:1:3:253: ++%*3hhb:-1111011:0:3: ++# BZ12701 %3hhb:-0B1111011:0:-1: ++# BZ12701 %*3hhb:-0B1111011:0:-1: ++# BZ12701 %3hhb:-0b1111011:0:-1: ++# BZ12701 %*3hhb:-0b1111011:0:-1: ++%3hhb:-1:1:2:255: ++%*3hhb:-1:0:2: ++# BZ12701 %3hhb:-0B1:0:-1: ++# BZ12701 %*3hhb:-0B1:0:-1: ++# BZ12701 %3hhb:-0b1:0:-1: ++# BZ12701 %*3hhb:-0b1:0:-1: ++%3hhb:-0:1:2:0: ++%*3hhb:-0:0:2: ++# BZ12701 %3hhb:-0B0:0:-1: ++# BZ12701 %*3hhb:-0B0:0:-1: ++# BZ12701 %3hhb:-0b0:0:-1: ++# BZ12701 %*3hhb:-0b0:0:-1: ++%3hhb:0:1:1:0: ++%*3hhb:0:0:1: ++%3hhb:0B0:1:3:0: ++%*3hhb:0B0:0:3: ++%3hhb:0b0:1:3:0: ++%*3hhb:0b0:0:3: ++%3hhb:1:1:1:1: ++%*3hhb:1:0:1: ++%3hhb:0B1:1:3:1: ++%*3hhb:0B1:0:3: ++%3hhb:0b1:1:3:1: ++%*3hhb:0b1:0:3: ++%3hhb:101010:1:3:5: ++%*3hhb:101010:0:3: ++%3hhb:0B101010:1:3:1: ++%*3hhb:0B101010:0:3: ++%3hhb:0b101010:1:3:1: ++%*3hhb:0b101010:0:3: ++%3hhb:11111111:1:3:7: ++%*3hhb:11111111:0:3: ++%3hhb:0B11111111:1:3:1: ++%*3hhb:0B11111111:0:3: ++%3hhb:0b11111111:1:3:1: ++%*3hhb:0b11111111:0:3: ++%3hhb:100000000:1:3:4: ++%*3hhb:100000000:0:3: ++%3hhb:0B100000000:1:3:1: ++%*3hhb:0B100000000:0:3: ++%3hhb:0b100000000:1:3:1: ++%*3hhb:0b100000000:0:3: ++%3hhb:100101001:1:3:4: ++%*3hhb:100101001:0:3: ++%3hhb:0B100101001:1:3:1: ++%*3hhb:0B100101001:0:3: ++%3hhb:0b100101001:1:3:1: ++%*3hhb:0b100101001:0:3: ++%3hhb:+0:1:2:0: ++%*3hhb:+0:0:2: ++# BZ12701 %3hhb:+0B0:0:-1: ++# BZ12701 %*3hhb:+0B0:0:-1: ++# BZ12701 %3hhb:+0b0:0:-1: ++# BZ12701 %*3hhb:+0b0:0:-1: ++%3hhb:+1:1:2:1: ++%*3hhb:+1:0:2: ++# BZ12701 %3hhb:+0B1:0:-1: ++# BZ12701 %*3hhb:+0B1:0:-1: ++# BZ12701 %3hhb:+0b1:0:-1: ++# BZ12701 %*3hhb:+0b1:0:-1: ++%3hhb:+101010:1:3:2: ++%*3hhb:+101010:0:3: ++# BZ12701 %3hhb:+0B101010:0:-1: ++# BZ12701 %*3hhb:+0B101010:0:-1: ++# BZ12701 %3hhb:+0b101010:0:-1: ++# BZ12701 %*3hhb:+0b101010:0:-1: ++%3hhb:+11111111:1:3:3: ++%*3hhb:+11111111:0:3: ++# BZ12701 %3hhb:+0B11111111:0:-1: ++# BZ12701 %*3hhb:+0B11111111:0:-1: ++# BZ12701 %3hhb:+0b11111111:0:-1: ++# BZ12701 %*3hhb:+0b11111111:0:-1: ++%3hhb:+100000000:1:3:2: ++%*3hhb:+100000000:0:3: ++# BZ12701 %3hhb:+0B100000000:0:-1: ++# BZ12701 %*3hhb:+0B100000000:0:-1: ++# BZ12701 %3hhb:+0b100000000:0:-1: ++# BZ12701 %*3hhb:+0b100000000:0:-1: ++%3hhb:+100101001:1:3:2: ++%*3hhb:+100101001:0:3: ++# BZ12701 %3hhb:+0B100101001:0:-1: ++# BZ12701 %*3hhb:+0B100101001:0:-1: ++# BZ12701 %3hhb:+0b100101001:0:-1: ++# BZ12701 %*3hhb:+0b100101001:0:-1: ++%5hhb::0:-1: ++%*5hhb::0:-1: ++%5hhb:-1111011:1:5:241: ++%*5hhb:-1111011:0:5: ++%5hhb:-0B1111011:1:5:253: ++%*5hhb:-0B1111011:0:5: ++%5hhb:-0b1111011:1:5:253: ++%*5hhb:-0b1111011:0:5: ++%5hhb:-1:1:2:255: ++%*5hhb:-1:0:2: ++%5hhb:-0B1:1:4:255: ++%*5hhb:-0B1:0:4: ++%5hhb:-0b1:1:4:255: ++%*5hhb:-0b1:0:4: ++%5hhb:-0:1:2:0: ++%*5hhb:-0:0:2: ++%5hhb:-0B0:1:4:0: ++%*5hhb:-0B0:0:4: ++%5hhb:-0b0:1:4:0: ++%*5hhb:-0b0:0:4: ++%5hhb:0:1:1:0: ++%*5hhb:0:0:1: ++%5hhb:0B0:1:3:0: ++%*5hhb:0B0:0:3: ++%5hhb:0b0:1:3:0: ++%*5hhb:0b0:0:3: ++%5hhb:1:1:1:1: ++%*5hhb:1:0:1: ++%5hhb:0B1:1:3:1: ++%*5hhb:0B1:0:3: ++%5hhb:0b1:1:3:1: ++%*5hhb:0b1:0:3: ++%5hhb:101010:1:5:21: ++%*5hhb:101010:0:5: ++%5hhb:0B101010:1:5:5: ++%*5hhb:0B101010:0:5: ++%5hhb:0b101010:1:5:5: ++%*5hhb:0b101010:0:5: ++%5hhb:11111111:1:5:31: ++%*5hhb:11111111:0:5: ++%5hhb:0B11111111:1:5:7: ++%*5hhb:0B11111111:0:5: ++%5hhb:0b11111111:1:5:7: ++%*5hhb:0b11111111:0:5: ++%5hhb:100000000:1:5:16: ++%*5hhb:100000000:0:5: ++%5hhb:0B100000000:1:5:4: ++%*5hhb:0B100000000:0:5: ++%5hhb:0b100000000:1:5:4: ++%*5hhb:0b100000000:0:5: ++%5hhb:100101001:1:5:18: ++%*5hhb:100101001:0:5: ++%5hhb:0B100101001:1:5:4: ++%*5hhb:0B100101001:0:5: ++%5hhb:0b100101001:1:5:4: ++%*5hhb:0b100101001:0:5: ++%5hhb:+0:1:2:0: ++%*5hhb:+0:0:2: ++%5hhb:+0B0:1:4:0: ++%*5hhb:+0B0:0:4: ++%5hhb:+0b0:1:4:0: ++%*5hhb:+0b0:0:4: ++%5hhb:+1:1:2:1: ++%*5hhb:+1:0:2: ++%5hhb:+0B1:1:4:1: ++%*5hhb:+0B1:0:4: ++%5hhb:+0b1:1:4:1: ++%*5hhb:+0b1:0:4: ++%5hhb:+101010:1:5:10: ++%*5hhb:+101010:0:5: ++%5hhb:+0B101010:1:5:2: ++%*5hhb:+0B101010:0:5: ++%5hhb:+0b101010:1:5:2: ++%*5hhb:+0b101010:0:5: ++%5hhb:+11111111:1:5:15: ++%*5hhb:+11111111:0:5: ++%5hhb:+0B11111111:1:5:3: ++%*5hhb:+0B11111111:0:5: ++%5hhb:+0b11111111:1:5:3: ++%*5hhb:+0b11111111:0:5: ++%5hhb:+100000000:1:5:8: ++%*5hhb:+100000000:0:5: ++%5hhb:+0B100000000:1:5:2: ++%*5hhb:+0B100000000:0:5: ++%5hhb:+0b100000000:1:5:2: ++%*5hhb:+0b100000000:0:5: ++%5hhb:+100101001:1:5:9: ++%*5hhb:+100101001:0:5: ++%5hhb:+0B100101001:1:5:2: ++%*5hhb:+0B100101001:0:5: ++%5hhb:+0b100101001:1:5:2: ++%*5hhb:+0b100101001:0:5: ++%2hhb: :0:-1: ++%*2hhb: :0:-1: ++%2hhb: -1111011:1:3:255: ++%*2hhb: -1111011:0:3: ++%2hhb: -0B1111011:1:3:0: ++%*2hhb: -0B1111011:0:3: ++%2hhb: -0b1111011:1:3:0: ++%*2hhb: -0b1111011:0:3: ++%2hhb: -1:1:3:255: ++%*2hhb: -1:0:3: ++%2hhb: -0B1:1:3:0: ++%*2hhb: -0B1:0:3: ++%2hhb: -0b1:1:3:0: ++%*2hhb: -0b1:0:3: ++%2hhb: -0:1:3:0: ++%*2hhb: -0:0:3: ++%2hhb: -0B0:1:3:0: ++%*2hhb: -0B0:0:3: ++%2hhb: -0b0:1:3:0: ++%*2hhb: -0b0:0:3: ++%2hhb: 0:1:2:0: ++%*2hhb: 0:0:2: ++# BZ12701 %2hhb: 0B0:0:-1: ++# BZ12701 %*2hhb: 0B0:0:-1: ++# BZ12701 %2hhb: 0b0:0:-1: ++# BZ12701 %*2hhb: 0b0:0:-1: ++%2hhb: 1:1:2:1: ++%*2hhb: 1:0:2: ++# BZ12701 %2hhb: 0B1:0:-1: ++# BZ12701 %*2hhb: 0B1:0:-1: ++# BZ12701 %2hhb: 0b1:0:-1: ++# BZ12701 %*2hhb: 0b1:0:-1: ++%2hhb: 101010:1:3:2: ++%*2hhb: 101010:0:3: ++# BZ12701 %2hhb: 0B101010:0:-1: ++# BZ12701 %*2hhb: 0B101010:0:-1: ++# BZ12701 %2hhb: 0b101010:0:-1: ++# BZ12701 %*2hhb: 0b101010:0:-1: ++%2hhb: 11111111:1:3:3: ++%*2hhb: 11111111:0:3: ++# BZ12701 %2hhb: 0B11111111:0:-1: ++# BZ12701 %*2hhb: 0B11111111:0:-1: ++# BZ12701 %2hhb: 0b11111111:0:-1: ++# BZ12701 %*2hhb: 0b11111111:0:-1: ++%2hhb: 100000000:1:3:2: ++%*2hhb: 100000000:0:3: ++# BZ12701 %2hhb: 0B100000000:0:-1: ++# BZ12701 %*2hhb: 0B100000000:0:-1: ++# BZ12701 %2hhb: 0b100000000:0:-1: ++# BZ12701 %*2hhb: 0b100000000:0:-1: ++%2hhb: 100101001:1:3:2: ++%*2hhb: 100101001:0:3: ++# BZ12701 %2hhb: 0B100101001:0:-1: ++# BZ12701 %*2hhb: 0B100101001:0:-1: ++# BZ12701 %2hhb: 0b100101001:0:-1: ++# BZ12701 %*2hhb: 0b100101001:0:-1: ++%2hhb: +0:1:3:0: ++%*2hhb: +0:0:3: ++%2hhb: +0B0:1:3:0: ++%*2hhb: +0B0:0:3: ++%2hhb: +0b0:1:3:0: ++%*2hhb: +0b0:0:3: ++%2hhb: +1:1:3:1: ++%*2hhb: +1:0:3: ++%2hhb: +0B1:1:3:0: ++%*2hhb: +0B1:0:3: ++%2hhb: +0b1:1:3:0: ++%*2hhb: +0b1:0:3: ++%2hhb: +101010:1:3:1: ++%*2hhb: +101010:0:3: ++%2hhb: +0B101010:1:3:0: ++%*2hhb: +0B101010:0:3: ++%2hhb: +0b101010:1:3:0: ++%*2hhb: +0b101010:0:3: ++%2hhb: +11111111:1:3:1: ++%*2hhb: +11111111:0:3: ++%2hhb: +0B11111111:1:3:0: ++%*2hhb: +0B11111111:0:3: ++%2hhb: +0b11111111:1:3:0: ++%*2hhb: +0b11111111:0:3: ++%2hhb: +100000000:1:3:1: ++%*2hhb: +100000000:0:3: ++%2hhb: +0B100000000:1:3:0: ++%*2hhb: +0B100000000:0:3: ++%2hhb: +0b100000000:1:3:0: ++%*2hhb: +0b100000000:0:3: ++%2hhb: +100101001:1:3:1: ++%*2hhb: +100101001:0:3: ++%2hhb: +0B100101001:1:3:0: ++%*2hhb: +0B100101001:0:3: ++%2hhb: +0b100101001:1:3:0: ++%*2hhb: +0b100101001:0:3: ++%5hhb: :0:-1: ++%*5hhb: :0:-1: ++%5hhb: -1111011:1:6:241: ++%*5hhb: -1111011:0:6: ++%5hhb: -0B1111011:1:6:253: ++%*5hhb: -0B1111011:0:6: ++%5hhb: -0b1111011:1:6:253: ++%*5hhb: -0b1111011:0:6: ++%5hhb: -1:1:3:255: ++%*5hhb: -1:0:3: ++%5hhb: -0B1:1:5:255: ++%*5hhb: -0B1:0:5: ++%5hhb: -0b1:1:5:255: ++%*5hhb: -0b1:0:5: ++%5hhb: -0:1:3:0: ++%*5hhb: -0:0:3: ++%5hhb: -0B0:1:5:0: ++%*5hhb: -0B0:0:5: ++%5hhb: -0b0:1:5:0: ++%*5hhb: -0b0:0:5: ++%5hhb: 0:1:2:0: ++%*5hhb: 0:0:2: ++%5hhb: 0B0:1:4:0: ++%*5hhb: 0B0:0:4: ++%5hhb: 0b0:1:4:0: ++%*5hhb: 0b0:0:4: ++%5hhb: 1:1:2:1: ++%*5hhb: 1:0:2: ++%5hhb: 0B1:1:4:1: ++%*5hhb: 0B1:0:4: ++%5hhb: 0b1:1:4:1: ++%*5hhb: 0b1:0:4: ++%5hhb: 101010:1:6:21: ++%*5hhb: 101010:0:6: ++%5hhb: 0B101010:1:6:5: ++%*5hhb: 0B101010:0:6: ++%5hhb: 0b101010:1:6:5: ++%*5hhb: 0b101010:0:6: ++%5hhb: 11111111:1:6:31: ++%*5hhb: 11111111:0:6: ++%5hhb: 0B11111111:1:6:7: ++%*5hhb: 0B11111111:0:6: ++%5hhb: 0b11111111:1:6:7: ++%*5hhb: 0b11111111:0:6: ++%5hhb: 100000000:1:6:16: ++%*5hhb: 100000000:0:6: ++%5hhb: 0B100000000:1:6:4: ++%*5hhb: 0B100000000:0:6: ++%5hhb: 0b100000000:1:6:4: ++%*5hhb: 0b100000000:0:6: ++%5hhb: 100101001:1:6:18: ++%*5hhb: 100101001:0:6: ++%5hhb: 0B100101001:1:6:4: ++%*5hhb: 0B100101001:0:6: ++%5hhb: 0b100101001:1:6:4: ++%*5hhb: 0b100101001:0:6: ++%5hhb: +0:1:3:0: ++%*5hhb: +0:0:3: ++%5hhb: +0B0:1:5:0: ++%*5hhb: +0B0:0:5: ++%5hhb: +0b0:1:5:0: ++%*5hhb: +0b0:0:5: ++%5hhb: +1:1:3:1: ++%*5hhb: +1:0:3: ++%5hhb: +0B1:1:5:1: ++%*5hhb: +0B1:0:5: ++%5hhb: +0b1:1:5:1: ++%*5hhb: +0b1:0:5: ++%5hhb: +101010:1:6:10: ++%*5hhb: +101010:0:6: ++%5hhb: +0B101010:1:6:2: ++%*5hhb: +0B101010:0:6: ++%5hhb: +0b101010:1:6:2: ++%*5hhb: +0b101010:0:6: ++%5hhb: +11111111:1:6:15: ++%*5hhb: +11111111:0:6: ++%5hhb: +0B11111111:1:6:3: ++%*5hhb: +0B11111111:0:6: ++%5hhb: +0b11111111:1:6:3: ++%*5hhb: +0b11111111:0:6: ++%5hhb: +100000000:1:6:8: ++%*5hhb: +100000000:0:6: ++%5hhb: +0B100000000:1:6:2: ++%*5hhb: +0B100000000:0:6: ++%5hhb: +0b100000000:1:6:2: ++%*5hhb: +0b100000000:0:6: ++%5hhb: +100101001:1:6:9: ++%*5hhb: +100101001:0:6: ++%5hhb: +0B100101001:1:6:2: ++%*5hhb: +0B100101001:0:6: ++%5hhb: +0b100101001:1:6:2: ++%*5hhb: +0b100101001:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-o.input b/stdio-common/tst-scanf-format-uchar-o.input +new file mode 100644 +index 0000000000000000..904665f5ef1ca5ec +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-o.input +@@ -0,0 +1,434 @@ ++%hho::0:-1: ++%*hho::0:-1: ++%hho:-173:1:4:133: ++%*hho:-173:0:4: ++%hho:-0173:1:5:133: ++%*hho:-0173:0:5: ++%hho:-1:1:2:255: ++%*hho:-1:0:2: ++%hho:-01:1:3:255: ++%*hho:-01:0:3: ++%hho:-0:1:2:0: ++%*hho:-0:0:2: ++%hho:-00:1:3:0: ++%*hho:-00:0:3: ++%hho:0:1:1:0: ++%*hho:0:0:1: ++%hho:00:1:2:0: ++%*hho:00:0:2: ++%hho:1:1:1:1: ++%*hho:1:0:1: ++%hho:01:1:2:1: ++%*hho:01:0:2: ++%hho:52:1:2:42: ++%*hho:52:0:2: ++%hho:052:1:3:42: ++%*hho:052:0:3: ++%hho:377:1:3:255: ++%*hho:377:0:3: ++%hho:0377:1:4:255: ++%*hho:0377:0:4: ++%hho:400:1:3:0: ++%*hho:400:0:3: ++%hho:0400:1:4:0: ++%*hho:0400:0:4: ++%hho:451:1:3:41: ++%*hho:451:0:3: ++%hho:0451:1:4:41: ++%*hho:0451:0:4: ++%hho:+0:1:2:0: ++%*hho:+0:0:2: ++%hho:+00:1:3:0: ++%*hho:+00:0:3: ++%hho:+1:1:2:1: ++%*hho:+1:0:2: ++%hho:+01:1:3:1: ++%*hho:+01:0:3: ++%hho:+52:1:3:42: ++%*hho:+52:0:3: ++%hho:+052:1:4:42: ++%*hho:+052:0:4: ++%hho:+377:1:4:255: ++%*hho:+377:0:4: ++%hho:+0377:1:5:255: ++%*hho:+0377:0:5: ++%hho:+400:1:4:0: ++%*hho:+400:0:4: ++%hho:+0400:1:5:0: ++%*hho:+0400:0:5: ++%hho:+451:1:4:41: ++%*hho:+451:0:4: ++%hho:+0451:1:5:41: ++%*hho:+0451:0:5: ++%1hho::0:-1: ++%*1hho::0:-1: ++%1hho:-173:0:-1: ++%*1hho:-173:0:-1: ++%1hho:-0173:0:-1: ++%*1hho:-0173:0:-1: ++%1hho:-1:0:-1: ++%*1hho:-1:0:-1: ++%1hho:-01:0:-1: ++%*1hho:-01:0:-1: ++%1hho:-0:0:-1: ++%*1hho:-0:0:-1: ++%1hho:-00:0:-1: ++%*1hho:-00:0:-1: ++%1hho:0:1:1:0: ++%*1hho:0:0:1: ++%1hho:00:1:1:0: ++%*1hho:00:0:1: ++%1hho:1:1:1:1: ++%*1hho:1:0:1: ++%1hho:01:1:1:0: ++%*1hho:01:0:1: ++%1hho:52:1:1:5: ++%*1hho:52:0:1: ++%1hho:052:1:1:0: ++%*1hho:052:0:1: ++%1hho:377:1:1:3: ++%*1hho:377:0:1: ++%1hho:0377:1:1:0: ++%*1hho:0377:0:1: ++%1hho:400:1:1:4: ++%*1hho:400:0:1: ++%1hho:0400:1:1:0: ++%*1hho:0400:0:1: ++%1hho:451:1:1:4: ++%*1hho:451:0:1: ++%1hho:0451:1:1:0: ++%*1hho:0451:0:1: ++%1hho:+0:0:-1: ++%*1hho:+0:0:-1: ++%1hho:+00:0:-1: ++%*1hho:+00:0:-1: ++%1hho:+1:0:-1: ++%*1hho:+1:0:-1: ++%1hho:+01:0:-1: ++%*1hho:+01:0:-1: ++%1hho:+52:0:-1: ++%*1hho:+52:0:-1: ++%1hho:+052:0:-1: ++%*1hho:+052:0:-1: ++%1hho:+377:0:-1: ++%*1hho:+377:0:-1: ++%1hho:+0377:0:-1: ++%*1hho:+0377:0:-1: ++%1hho:+400:0:-1: ++%*1hho:+400:0:-1: ++%1hho:+0400:0:-1: ++%*1hho:+0400:0:-1: ++%1hho:+451:0:-1: ++%*1hho:+451:0:-1: ++%1hho:+0451:0:-1: ++%*1hho:+0451:0:-1: ++%2hho::0:-1: ++%*2hho::0:-1: ++%2hho:-173:1:2:255: ++%*2hho:-173:0:2: ++%2hho:-0173:1:2:0: ++%*2hho:-0173:0:2: ++%2hho:-1:1:2:255: ++%*2hho:-1:0:2: ++%2hho:-01:1:2:0: ++%*2hho:-01:0:2: ++%2hho:-0:1:2:0: ++%*2hho:-0:0:2: ++%2hho:-00:1:2:0: ++%*2hho:-00:0:2: ++%2hho:0:1:1:0: ++%*2hho:0:0:1: ++%2hho:00:1:2:0: ++%*2hho:00:0:2: ++%2hho:1:1:1:1: ++%*2hho:1:0:1: ++%2hho:01:1:2:1: ++%*2hho:01:0:2: ++%2hho:52:1:2:42: ++%*2hho:52:0:2: ++%2hho:052:1:2:5: ++%*2hho:052:0:2: ++%2hho:377:1:2:31: ++%*2hho:377:0:2: ++%2hho:0377:1:2:3: ++%*2hho:0377:0:2: ++%2hho:400:1:2:32: ++%*2hho:400:0:2: ++%2hho:0400:1:2:4: ++%*2hho:0400:0:2: ++%2hho:451:1:2:37: ++%*2hho:451:0:2: ++%2hho:0451:1:2:4: ++%*2hho:0451:0:2: ++%2hho:+0:1:2:0: ++%*2hho:+0:0:2: ++%2hho:+00:1:2:0: ++%*2hho:+00:0:2: ++%2hho:+1:1:2:1: ++%*2hho:+1:0:2: ++%2hho:+01:1:2:0: ++%*2hho:+01:0:2: ++%2hho:+52:1:2:5: ++%*2hho:+52:0:2: ++%2hho:+052:1:2:0: ++%*2hho:+052:0:2: ++%2hho:+377:1:2:3: ++%*2hho:+377:0:2: ++%2hho:+0377:1:2:0: ++%*2hho:+0377:0:2: ++%2hho:+400:1:2:4: ++%*2hho:+400:0:2: ++%2hho:+0400:1:2:0: ++%*2hho:+0400:0:2: ++%2hho:+451:1:2:4: ++%*2hho:+451:0:2: ++%2hho:+0451:1:2:0: ++%*2hho:+0451:0:2: ++%3hho::0:-1: ++%*3hho::0:-1: ++%3hho:-173:1:3:241: ++%*3hho:-173:0:3: ++%3hho:-0173:1:3:255: ++%*3hho:-0173:0:3: ++%3hho:-1:1:2:255: ++%*3hho:-1:0:2: ++%3hho:-01:1:3:255: ++%*3hho:-01:0:3: ++%3hho:-0:1:2:0: ++%*3hho:-0:0:2: ++%3hho:-00:1:3:0: ++%*3hho:-00:0:3: ++%3hho:0:1:1:0: ++%*3hho:0:0:1: ++%3hho:00:1:2:0: ++%*3hho:00:0:2: ++%3hho:1:1:1:1: ++%*3hho:1:0:1: ++%3hho:01:1:2:1: ++%*3hho:01:0:2: ++%3hho:52:1:2:42: ++%*3hho:52:0:2: ++%3hho:052:1:3:42: ++%*3hho:052:0:3: ++%3hho:377:1:3:255: ++%*3hho:377:0:3: ++%3hho:0377:1:3:31: ++%*3hho:0377:0:3: ++%3hho:400:1:3:0: ++%*3hho:400:0:3: ++%3hho:0400:1:3:32: ++%*3hho:0400:0:3: ++%3hho:451:1:3:41: ++%*3hho:451:0:3: ++%3hho:0451:1:3:37: ++%*3hho:0451:0:3: ++%3hho:+0:1:2:0: ++%*3hho:+0:0:2: ++%3hho:+00:1:3:0: ++%*3hho:+00:0:3: ++%3hho:+1:1:2:1: ++%*3hho:+1:0:2: ++%3hho:+01:1:3:1: ++%*3hho:+01:0:3: ++%3hho:+52:1:3:42: ++%*3hho:+52:0:3: ++%3hho:+052:1:3:5: ++%*3hho:+052:0:3: ++%3hho:+377:1:3:31: ++%*3hho:+377:0:3: ++%3hho:+0377:1:3:3: ++%*3hho:+0377:0:3: ++%3hho:+400:1:3:32: ++%*3hho:+400:0:3: ++%3hho:+0400:1:3:4: ++%*3hho:+0400:0:3: ++%3hho:+451:1:3:37: ++%*3hho:+451:0:3: ++%3hho:+0451:1:3:4: ++%*3hho:+0451:0:3: ++%5hho::0:-1: ++%*5hho::0:-1: ++%5hho:-173:1:4:133: ++%*5hho:-173:0:4: ++%5hho:-0173:1:5:133: ++%*5hho:-0173:0:5: ++%5hho:-1:1:2:255: ++%*5hho:-1:0:2: ++%5hho:-01:1:3:255: ++%*5hho:-01:0:3: ++%5hho:-0:1:2:0: ++%*5hho:-0:0:2: ++%5hho:-00:1:3:0: ++%*5hho:-00:0:3: ++%5hho:0:1:1:0: ++%*5hho:0:0:1: ++%5hho:00:1:2:0: ++%*5hho:00:0:2: ++%5hho:1:1:1:1: ++%*5hho:1:0:1: ++%5hho:01:1:2:1: ++%*5hho:01:0:2: ++%5hho:52:1:2:42: ++%*5hho:52:0:2: ++%5hho:052:1:3:42: ++%*5hho:052:0:3: ++%5hho:377:1:3:255: ++%*5hho:377:0:3: ++%5hho:0377:1:4:255: ++%*5hho:0377:0:4: ++%5hho:400:1:3:0: ++%*5hho:400:0:3: ++%5hho:0400:1:4:0: ++%*5hho:0400:0:4: ++%5hho:451:1:3:41: ++%*5hho:451:0:3: ++%5hho:0451:1:4:41: ++%*5hho:0451:0:4: ++%5hho:+0:1:2:0: ++%*5hho:+0:0:2: ++%5hho:+00:1:3:0: ++%*5hho:+00:0:3: ++%5hho:+1:1:2:1: ++%*5hho:+1:0:2: ++%5hho:+01:1:3:1: ++%*5hho:+01:0:3: ++%5hho:+52:1:3:42: ++%*5hho:+52:0:3: ++%5hho:+052:1:4:42: ++%*5hho:+052:0:4: ++%5hho:+377:1:4:255: ++%*5hho:+377:0:4: ++%5hho:+0377:1:5:255: ++%*5hho:+0377:0:5: ++%5hho:+400:1:4:0: ++%*5hho:+400:0:4: ++%5hho:+0400:1:5:0: ++%*5hho:+0400:0:5: ++%5hho:+451:1:4:41: ++%*5hho:+451:0:4: ++%5hho:+0451:1:5:41: ++%*5hho:+0451:0:5: ++%2hho: :0:-1: ++%*2hho: :0:-1: ++%2hho: -173:1:3:255: ++%*2hho: -173:0:3: ++%2hho: -0173:1:3:0: ++%*2hho: -0173:0:3: ++%2hho: -1:1:3:255: ++%*2hho: -1:0:3: ++%2hho: -01:1:3:0: ++%*2hho: -01:0:3: ++%2hho: -0:1:3:0: ++%*2hho: -0:0:3: ++%2hho: -00:1:3:0: ++%*2hho: -00:0:3: ++%2hho: 0:1:2:0: ++%*2hho: 0:0:2: ++%2hho: 00:1:3:0: ++%*2hho: 00:0:3: ++%2hho: 1:1:2:1: ++%*2hho: 1:0:2: ++%2hho: 01:1:3:1: ++%*2hho: 01:0:3: ++%2hho: 52:1:3:42: ++%*2hho: 52:0:3: ++%2hho: 052:1:3:5: ++%*2hho: 052:0:3: ++%2hho: 377:1:3:31: ++%*2hho: 377:0:3: ++%2hho: 0377:1:3:3: ++%*2hho: 0377:0:3: ++%2hho: 400:1:3:32: ++%*2hho: 400:0:3: ++%2hho: 0400:1:3:4: ++%*2hho: 0400:0:3: ++%2hho: 451:1:3:37: ++%*2hho: 451:0:3: ++%2hho: 0451:1:3:4: ++%*2hho: 0451:0:3: ++%2hho: +0:1:3:0: ++%*2hho: +0:0:3: ++%2hho: +00:1:3:0: ++%*2hho: +00:0:3: ++%2hho: +1:1:3:1: ++%*2hho: +1:0:3: ++%2hho: +01:1:3:0: ++%*2hho: +01:0:3: ++%2hho: +52:1:3:5: ++%*2hho: +52:0:3: ++%2hho: +052:1:3:0: ++%*2hho: +052:0:3: ++%2hho: +377:1:3:3: ++%*2hho: +377:0:3: ++%2hho: +0377:1:3:0: ++%*2hho: +0377:0:3: ++%2hho: +400:1:3:4: ++%*2hho: +400:0:3: ++%2hho: +0400:1:3:0: ++%*2hho: +0400:0:3: ++%2hho: +451:1:3:4: ++%*2hho: +451:0:3: ++%2hho: +0451:1:3:0: ++%*2hho: +0451:0:3: ++%5hho: :0:-1: ++%*5hho: :0:-1: ++%5hho: -173:1:5:133: ++%*5hho: -173:0:5: ++%5hho: -0173:1:6:133: ++%*5hho: -0173:0:6: ++%5hho: -1:1:3:255: ++%*5hho: -1:0:3: ++%5hho: -01:1:4:255: ++%*5hho: -01:0:4: ++%5hho: -0:1:3:0: ++%*5hho: -0:0:3: ++%5hho: -00:1:4:0: ++%*5hho: -00:0:4: ++%5hho: 0:1:2:0: ++%*5hho: 0:0:2: ++%5hho: 00:1:3:0: ++%*5hho: 00:0:3: ++%5hho: 1:1:2:1: ++%*5hho: 1:0:2: ++%5hho: 01:1:3:1: ++%*5hho: 01:0:3: ++%5hho: 52:1:3:42: ++%*5hho: 52:0:3: ++%5hho: 052:1:4:42: ++%*5hho: 052:0:4: ++%5hho: 377:1:4:255: ++%*5hho: 377:0:4: ++%5hho: 0377:1:5:255: ++%*5hho: 0377:0:5: ++%5hho: 400:1:4:0: ++%*5hho: 400:0:4: ++%5hho: 0400:1:5:0: ++%*5hho: 0400:0:5: ++%5hho: 451:1:4:41: ++%*5hho: 451:0:4: ++%5hho: 0451:1:5:41: ++%*5hho: 0451:0:5: ++%5hho: +0:1:3:0: ++%*5hho: +0:0:3: ++%5hho: +00:1:4:0: ++%*5hho: +00:0:4: ++%5hho: +1:1:3:1: ++%*5hho: +1:0:3: ++%5hho: +01:1:4:1: ++%*5hho: +01:0:4: ++%5hho: +52:1:4:42: ++%*5hho: +52:0:4: ++%5hho: +052:1:5:42: ++%*5hho: +052:0:5: ++%5hho: +377:1:5:255: ++%*5hho: +377:0:5: ++%5hho: +0377:1:6:255: ++%*5hho: +0377:0:6: ++%5hho: +400:1:5:0: ++%*5hho: +400:0:5: ++%5hho: +0400:1:6:0: ++%*5hho: +0400:0:6: ++%5hho: +451:1:5:41: ++%*5hho: +451:0:5: ++%5hho: +0451:1:6:41: ++%*5hho: +0451:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-u.input b/stdio-common/tst-scanf-format-uchar-u.input +new file mode 100644 +index 0000000000000000..f392aa55a8c9138d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-u.input +@@ -0,0 +1,224 @@ ++%hhu::0:-1: ++%*hhu::0:-1: ++%hhu:-123:1:4:133: ++%*hhu:-123:0:4: ++%hhu:-1:1:2:255: ++%*hhu:-1:0:2: ++%hhu:-0:1:2:0: ++%*hhu:-0:0:2: ++%hhu:0:1:1:0: ++%*hhu:0:0:1: ++%hhu:1:1:1:1: ++%*hhu:1:0:1: ++%hhu:42:1:2:42: ++%*hhu:42:0:2: ++%hhu:255:1:3:255: ++%*hhu:255:0:3: ++%hhu:256:1:3:0: ++%*hhu:256:0:3: ++%hhu:297:1:3:41: ++%*hhu:297:0:3: ++%hhu:+0:1:2:0: ++%*hhu:+0:0:2: ++%hhu:+1:1:2:1: ++%*hhu:+1:0:2: ++%hhu:+42:1:3:42: ++%*hhu:+42:0:3: ++%hhu:+255:1:4:255: ++%*hhu:+255:0:4: ++%hhu:+256:1:4:0: ++%*hhu:+256:0:4: ++%hhu:+297:1:4:41: ++%*hhu:+297:0:4: ++%1hhu::0:-1: ++%*1hhu::0:-1: ++%1hhu:-123:0:-1: ++%*1hhu:-123:0:-1: ++%1hhu:-1:0:-1: ++%*1hhu:-1:0:-1: ++%1hhu:-0:0:-1: ++%*1hhu:-0:0:-1: ++%1hhu:0:1:1:0: ++%*1hhu:0:0:1: ++%1hhu:1:1:1:1: ++%*1hhu:1:0:1: ++%1hhu:42:1:1:4: ++%*1hhu:42:0:1: ++%1hhu:255:1:1:2: ++%*1hhu:255:0:1: ++%1hhu:256:1:1:2: ++%*1hhu:256:0:1: ++%1hhu:297:1:1:2: ++%*1hhu:297:0:1: ++%1hhu:+0:0:-1: ++%*1hhu:+0:0:-1: ++%1hhu:+1:0:-1: ++%*1hhu:+1:0:-1: ++%1hhu:+42:0:-1: ++%*1hhu:+42:0:-1: ++%1hhu:+255:0:-1: ++%*1hhu:+255:0:-1: ++%1hhu:+256:0:-1: ++%*1hhu:+256:0:-1: ++%1hhu:+297:0:-1: ++%*1hhu:+297:0:-1: ++%2hhu::0:-1: ++%*2hhu::0:-1: ++%2hhu:-123:1:2:255: ++%*2hhu:-123:0:2: ++%2hhu:-1:1:2:255: ++%*2hhu:-1:0:2: ++%2hhu:-0:1:2:0: ++%*2hhu:-0:0:2: ++%2hhu:0:1:1:0: ++%*2hhu:0:0:1: ++%2hhu:1:1:1:1: ++%*2hhu:1:0:1: ++%2hhu:42:1:2:42: ++%*2hhu:42:0:2: ++%2hhu:255:1:2:25: ++%*2hhu:255:0:2: ++%2hhu:256:1:2:25: ++%*2hhu:256:0:2: ++%2hhu:297:1:2:29: ++%*2hhu:297:0:2: ++%2hhu:+0:1:2:0: ++%*2hhu:+0:0:2: ++%2hhu:+1:1:2:1: ++%*2hhu:+1:0:2: ++%2hhu:+42:1:2:4: ++%*2hhu:+42:0:2: ++%2hhu:+255:1:2:2: ++%*2hhu:+255:0:2: ++%2hhu:+256:1:2:2: ++%*2hhu:+256:0:2: ++%2hhu:+297:1:2:2: ++%*2hhu:+297:0:2: ++%3hhu::0:-1: ++%*3hhu::0:-1: ++%3hhu:-123:1:3:244: ++%*3hhu:-123:0:3: ++%3hhu:-1:1:2:255: ++%*3hhu:-1:0:2: ++%3hhu:-0:1:2:0: ++%*3hhu:-0:0:2: ++%3hhu:0:1:1:0: ++%*3hhu:0:0:1: ++%3hhu:1:1:1:1: ++%*3hhu:1:0:1: ++%3hhu:42:1:2:42: ++%*3hhu:42:0:2: ++%3hhu:255:1:3:255: ++%*3hhu:255:0:3: ++%3hhu:256:1:3:0: ++%*3hhu:256:0:3: ++%3hhu:297:1:3:41: ++%*3hhu:297:0:3: ++%3hhu:+0:1:2:0: ++%*3hhu:+0:0:2: ++%3hhu:+1:1:2:1: ++%*3hhu:+1:0:2: ++%3hhu:+42:1:3:42: ++%*3hhu:+42:0:3: ++%3hhu:+255:1:3:25: ++%*3hhu:+255:0:3: ++%3hhu:+256:1:3:25: ++%*3hhu:+256:0:3: ++%3hhu:+297:1:3:29: ++%*3hhu:+297:0:3: ++%5hhu::0:-1: ++%*5hhu::0:-1: ++%5hhu:-123:1:4:133: ++%*5hhu:-123:0:4: ++%5hhu:-1:1:2:255: ++%*5hhu:-1:0:2: ++%5hhu:-0:1:2:0: ++%*5hhu:-0:0:2: ++%5hhu:0:1:1:0: ++%*5hhu:0:0:1: ++%5hhu:1:1:1:1: ++%*5hhu:1:0:1: ++%5hhu:42:1:2:42: ++%*5hhu:42:0:2: ++%5hhu:255:1:3:255: ++%*5hhu:255:0:3: ++%5hhu:256:1:3:0: ++%*5hhu:256:0:3: ++%5hhu:297:1:3:41: ++%*5hhu:297:0:3: ++%5hhu:+0:1:2:0: ++%*5hhu:+0:0:2: ++%5hhu:+1:1:2:1: ++%*5hhu:+1:0:2: ++%5hhu:+42:1:3:42: ++%*5hhu:+42:0:3: ++%5hhu:+255:1:4:255: ++%*5hhu:+255:0:4: ++%5hhu:+256:1:4:0: ++%*5hhu:+256:0:4: ++%5hhu:+297:1:4:41: ++%*5hhu:+297:0:4: ++%2hhu: :0:-1: ++%*2hhu: :0:-1: ++%2hhu: -123:1:3:255: ++%*2hhu: -123:0:3: ++%2hhu: -1:1:3:255: ++%*2hhu: -1:0:3: ++%2hhu: -0:1:3:0: ++%*2hhu: -0:0:3: ++%2hhu: 0:1:2:0: ++%*2hhu: 0:0:2: ++%2hhu: 1:1:2:1: ++%*2hhu: 1:0:2: ++%2hhu: 42:1:3:42: ++%*2hhu: 42:0:3: ++%2hhu: 255:1:3:25: ++%*2hhu: 255:0:3: ++%2hhu: 256:1:3:25: ++%*2hhu: 256:0:3: ++%2hhu: 297:1:3:29: ++%*2hhu: 297:0:3: ++%2hhu: +0:1:3:0: ++%*2hhu: +0:0:3: ++%2hhu: +1:1:3:1: ++%*2hhu: +1:0:3: ++%2hhu: +42:1:3:4: ++%*2hhu: +42:0:3: ++%2hhu: +255:1:3:2: ++%*2hhu: +255:0:3: ++%2hhu: +256:1:3:2: ++%*2hhu: +256:0:3: ++%2hhu: +297:1:3:2: ++%*2hhu: +297:0:3: ++%5hhu: :0:-1: ++%*5hhu: :0:-1: ++%5hhu: -123:1:5:133: ++%*5hhu: -123:0:5: ++%5hhu: -1:1:3:255: ++%*5hhu: -1:0:3: ++%5hhu: -0:1:3:0: ++%*5hhu: -0:0:3: ++%5hhu: 0:1:2:0: ++%*5hhu: 0:0:2: ++%5hhu: 1:1:2:1: ++%*5hhu: 1:0:2: ++%5hhu: 42:1:3:42: ++%*5hhu: 42:0:3: ++%5hhu: 255:1:4:255: ++%*5hhu: 255:0:4: ++%5hhu: 256:1:4:0: ++%*5hhu: 256:0:4: ++%5hhu: 297:1:4:41: ++%*5hhu: 297:0:4: ++%5hhu: +0:1:3:0: ++%*5hhu: +0:0:3: ++%5hhu: +1:1:3:1: ++%*5hhu: +1:0:3: ++%5hhu: +42:1:4:42: ++%*5hhu: +42:0:4: ++%5hhu: +255:1:5:255: ++%*5hhu: +255:0:5: ++%5hhu: +256:1:5:0: ++%*5hhu: +256:0:5: ++%5hhu: +297:1:5:41: ++%*5hhu: +297:0:5: +diff --git a/stdio-common/tst-scanf-format-uchar-x.input b/stdio-common/tst-scanf-format-uchar-x.input +new file mode 100644 +index 0000000000000000..d4e637c0c919e747 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-x.input +@@ -0,0 +1,710 @@ ++%hhx::0:-1: ++%*hhx::0:-1: ++%hhx:-7b:1:3:133: ++%*hhx:-7b:0:3: ++%hhx:-7B:1:3:133: ++%*hhx:-7B:0:3: ++%hhx:-0X7b:1:5:133: ++%*hhx:-0X7b:0:5: ++%hhx:-0x7B:1:5:133: ++%*hhx:-0x7B:0:5: ++%hhx:-1:1:2:255: ++%*hhx:-1:0:2: ++%hhx:-0X1:1:4:255: ++%*hhx:-0X1:0:4: ++%hhx:-0x1:1:4:255: ++%*hhx:-0x1:0:4: ++%hhx:-0:1:2:0: ++%*hhx:-0:0:2: ++%hhx:-0X0:1:4:0: ++%*hhx:-0X0:0:4: ++%hhx:-0x0:1:4:0: ++%*hhx:-0x0:0:4: ++%hhx:0:1:1:0: ++%*hhx:0:0:1: ++%hhx:0X0:1:3:0: ++%*hhx:0X0:0:3: ++%hhx:0x0:1:3:0: ++%*hhx:0x0:0:3: ++%hhx:1:1:1:1: ++%*hhx:1:0:1: ++%hhx:0X1:1:3:1: ++%*hhx:0X1:0:3: ++%hhx:0x1:1:3:1: ++%*hhx:0x1:0:3: ++%hhx:2a:1:2:42: ++%*hhx:2a:0:2: ++%hhx:2A:1:2:42: ++%*hhx:2A:0:2: ++%hhx:0X2a:1:4:42: ++%*hhx:0X2a:0:4: ++%hhx:0x2A:1:4:42: ++%*hhx:0x2A:0:4: ++%hhx:ff:1:2:255: ++%*hhx:ff:0:2: ++%hhx:FF:1:2:255: ++%*hhx:FF:0:2: ++%hhx:0xFF:1:4:255: ++%*hhx:0xFF:0:4: ++%hhx:100:1:3:0: ++%*hhx:100:0:3: ++%hhx:0X100:1:5:0: ++%*hhx:0X100:0:5: ++%hhx:0x100:1:5:0: ++%*hhx:0x100:0:5: ++%hhx:129:1:3:41: ++%*hhx:129:0:3: ++%hhx:0X129:1:5:41: ++%*hhx:0X129:0:5: ++%hhx:0x129:1:5:41: ++%*hhx:0x129:0:5: ++%hhx:+0:1:2:0: ++%*hhx:+0:0:2: ++%hhx:+0X0:1:4:0: ++%*hhx:+0X0:0:4: ++%hhx:+0x0:1:4:0: ++%*hhx:+0x0:0:4: ++%hhx:+1:1:2:1: ++%*hhx:+1:0:2: ++%hhx:+0X1:1:4:1: ++%*hhx:+0X1:0:4: ++%hhx:+0x1:1:4:1: ++%*hhx:+0x1:0:4: ++%hhx:+2a:1:3:42: ++%*hhx:+2a:0:3: ++%hhx:+2A:1:3:42: ++%*hhx:+2A:0:3: ++%hhx:+0X2a:1:5:42: ++%*hhx:+0X2a:0:5: ++%hhx:+0x2A:1:5:42: ++%*hhx:+0x2A:0:5: ++%hhx:+ff:1:3:255: ++%*hhx:+ff:0:3: ++%hhx:+FF:1:3:255: ++%*hhx:+FF:0:3: ++%hhx:+0Xff:1:5:255: ++%*hhx:+0Xff:0:5: ++%hhx:+0xFF:1:5:255: ++%*hhx:+0xFF:0:5: ++%hhx:+100:1:4:0: ++%*hhx:+100:0:4: ++%hhx:+0X100:1:6:0: ++%*hhx:+0X100:0:6: ++%hhx:+0x100:1:6:0: ++%*hhx:+0x100:0:6: ++%hhx:+129:1:4:41: ++%*hhx:+129:0:4: ++%hhx:+0X129:1:6:41: ++%*hhx:+0X129:0:6: ++%hhx:+0x129:1:6:41: ++%*hhx:+0x129:0:6: ++%1hhx::0:-1: ++%*1hhx::0:-1: ++%1hhx:-7b:0:-1: ++%*1hhx:-7b:0:-1: ++%1hhx:-7B:0:-1: ++%*1hhx:-7B:0:-1: ++%1hhx:-0X7b:0:-1: ++%*1hhx:-0X7b:0:-1: ++%1hhx:-0x7B:0:-1: ++%*1hhx:-0x7B:0:-1: ++%1hhx:-1:0:-1: ++%*1hhx:-1:0:-1: ++%1hhx:-0X1:0:-1: ++%*1hhx:-0X1:0:-1: ++%1hhx:-0x1:0:-1: ++%*1hhx:-0x1:0:-1: ++%1hhx:-0:0:-1: ++%*1hhx:-0:0:-1: ++%1hhx:-0X0:0:-1: ++%*1hhx:-0X0:0:-1: ++%1hhx:-0x0:0:-1: ++%*1hhx:-0x0:0:-1: ++%1hhx:0:1:1:0: ++%*1hhx:0:0:1: ++%1hhx:0X0:1:1:0: ++%*1hhx:0X0:0:1: ++%1hhx:0x0:1:1:0: ++%*1hhx:0x0:0:1: ++%1hhx:1:1:1:1: ++%*1hhx:1:0:1: ++%1hhx:0X1:1:1:0: ++%*1hhx:0X1:0:1: ++%1hhx:0x1:1:1:0: ++%*1hhx:0x1:0:1: ++%1hhx:2a:1:1:2: ++%*1hhx:2a:0:1: ++%1hhx:2A:1:1:2: ++%*1hhx:2A:0:1: ++%1hhx:0X2a:1:1:0: ++%*1hhx:0X2a:0:1: ++%1hhx:0x2A:1:1:0: ++%*1hhx:0x2A:0:1: ++%1hhx:ff:1:1:15: ++%*1hhx:ff:0:1: ++%1hhx:FF:1:1:15: ++%*1hhx:FF:0:1: ++%1hhx:0xFF:1:1:0: ++%*1hhx:0xFF:0:1: ++%1hhx:100:1:1:1: ++%*1hhx:100:0:1: ++%1hhx:0X100:1:1:0: ++%*1hhx:0X100:0:1: ++%1hhx:0x100:1:1:0: ++%*1hhx:0x100:0:1: ++%1hhx:129:1:1:1: ++%*1hhx:129:0:1: ++%1hhx:0X129:1:1:0: ++%*1hhx:0X129:0:1: ++%1hhx:0x129:1:1:0: ++%*1hhx:0x129:0:1: ++%1hhx:+0:0:-1: ++%*1hhx:+0:0:-1: ++%1hhx:+0X0:0:-1: ++%*1hhx:+0X0:0:-1: ++%1hhx:+0x0:0:-1: ++%*1hhx:+0x0:0:-1: ++%1hhx:+1:0:-1: ++%*1hhx:+1:0:-1: ++%1hhx:+0X1:0:-1: ++%*1hhx:+0X1:0:-1: ++%1hhx:+0x1:0:-1: ++%*1hhx:+0x1:0:-1: ++%1hhx:+2a:0:-1: ++%*1hhx:+2a:0:-1: ++%1hhx:+2A:0:-1: ++%*1hhx:+2A:0:-1: ++%1hhx:+0X2a:0:-1: ++%*1hhx:+0X2a:0:-1: ++%1hhx:+0x2A:0:-1: ++%*1hhx:+0x2A:0:-1: ++%1hhx:+ff:0:-1: ++%*1hhx:+ff:0:-1: ++%1hhx:+FF:0:-1: ++%*1hhx:+FF:0:-1: ++%1hhx:+0Xff:0:-1: ++%*1hhx:+0Xff:0:-1: ++%1hhx:+0xFF:0:-1: ++%*1hhx:+0xFF:0:-1: ++%1hhx:+100:0:-1: ++%*1hhx:+100:0:-1: ++%1hhx:+0X100:0:-1: ++%*1hhx:+0X100:0:-1: ++%1hhx:+0x100:0:-1: ++%*1hhx:+0x100:0:-1: ++%1hhx:+129:0:-1: ++%*1hhx:+129:0:-1: ++%1hhx:+0X129:0:-1: ++%*1hhx:+0X129:0:-1: ++%1hhx:+0x129:0:-1: ++%*1hhx:+0x129:0:-1: ++%2hhx::0:-1: ++%*2hhx::0:-1: ++%2hhx:-7b:1:2:249: ++%*2hhx:-7b:0:2: ++%2hhx:-7B:1:2:249: ++%*2hhx:-7B:0:2: ++%2hhx:-0X7b:1:2:0: ++%*2hhx:-0X7b:0:2: ++%2hhx:-0x7B:1:2:0: ++%*2hhx:-0x7B:0:2: ++%2hhx:-1:1:2:255: ++%*2hhx:-1:0:2: ++%2hhx:-0X1:1:2:0: ++%*2hhx:-0X1:0:2: ++%2hhx:-0x1:1:2:0: ++%*2hhx:-0x1:0:2: ++%2hhx:-0:1:2:0: ++%*2hhx:-0:0:2: ++%2hhx:-0X0:1:2:0: ++%*2hhx:-0X0:0:2: ++%2hhx:-0x0:1:2:0: ++%*2hhx:-0x0:0:2: ++%2hhx:0:1:1:0: ++%*2hhx:0:0:1: ++# BZ12701 %2hhx:0X0:0:-1: ++# BZ12701 %*2hhx:0X0:0:-1: ++# BZ12701 %2hhx:0x0:0:-1: ++# BZ12701 %*2hhx:0x0:0:-1: ++%2hhx:1:1:1:1: ++%*2hhx:1:0:1: ++# BZ12701 %2hhx:0X1:0:-1: ++# BZ12701 %*2hhx:0X1:0:-1: ++# BZ12701 %2hhx:0x1:0:-1: ++# BZ12701 %*2hhx:0x1:0:-1: ++%2hhx:2a:1:2:42: ++%*2hhx:2a:0:2: ++%2hhx:2A:1:2:42: ++%*2hhx:2A:0:2: ++# BZ12701 %2hhx:0X2a:0:-1: ++# BZ12701 %*2hhx:0X2a:0:-1: ++# BZ12701 %2hhx:0x2A:0:-1: ++# BZ12701 %*2hhx:0x2A:0:-1: ++%2hhx:ff:1:2:255: ++%*2hhx:ff:0:2: ++%2hhx:FF:1:2:255: ++%*2hhx:FF:0:2: ++# BZ12701 %2hhx:0Xff:0:-1: ++# BZ12701 %*2hhx:0Xff:0:-1: ++# BZ12701 %2hhx:0xFF:0:-1: ++# BZ12701 %*2hhx:0xFF:0:-1: ++%2hhx:100:1:2:16: ++%*2hhx:100:0:2: ++# BZ12701 %2hhx:0X100:0:-1: ++# BZ12701 %*2hhx:0X100:0:-1: ++# BZ12701 %2hhx:0x100:0:-1: ++# BZ12701 %*2hhx:0x100:0:-1: ++%2hhx:129:1:2:18: ++%*2hhx:129:0:2: ++# BZ12701 %2hhx:0X129:0:-1: ++# BZ12701 %*2hhx:0X129:0:-1: ++# BZ12701 %2hhx:0x129:0:-1: ++# BZ12701 %*2hhx:0x129:0:-1: ++%2hhx:+0:1:2:0: ++%*2hhx:+0:0:2: ++%2hhx:+0X0:1:2:0: ++%*2hhx:+0X0:0:2: ++%2hhx:+0x0:1:2:0: ++%*2hhx:+0x0:0:2: ++%2hhx:+1:1:2:1: ++%*2hhx:+1:0:2: ++%2hhx:+0X1:1:2:0: ++%*2hhx:+0X1:0:2: ++%2hhx:+0x1:1:2:0: ++%*2hhx:+0x1:0:2: ++%2hhx:+2a:1:2:2: ++%*2hhx:+2a:0:2: ++%2hhx:+2A:1:2:2: ++%*2hhx:+2A:0:2: ++%2hhx:+0X2a:1:2:0: ++%*2hhx:+0X2a:0:2: ++%2hhx:+0x2A:1:2:0: ++%*2hhx:+0x2A:0:2: ++%2hhx:+ff:1:2:15: ++%*2hhx:+ff:0:2: ++%2hhx:+FF:1:2:15: ++%*2hhx:+FF:0:2: ++%2hhx:+0Xff:1:2:0: ++%*2hhx:+0Xff:0:2: ++%2hhx:+0xFF:1:2:0: ++%*2hhx:+0xFF:0:2: ++%2hhx:+100:1:2:1: ++%*2hhx:+100:0:2: ++%2hhx:+0X100:1:2:0: ++%*2hhx:+0X100:0:2: ++%2hhx:+0x100:1:2:0: ++%*2hhx:+0x100:0:2: ++%2hhx:+129:1:2:1: ++%*2hhx:+129:0:2: ++%2hhx:+0X129:1:2:0: ++%*2hhx:+0X129:0:2: ++%2hhx:+0x129:1:2:0: ++%*2hhx:+0x129:0:2: ++%3hhx::0:-1: ++%*3hhx::0:-1: ++%3hhx:-7b:1:3:133: ++%*3hhx:-7b:0:3: ++%3hhx:-7B:1:3:133: ++%*3hhx:-7B:0:3: ++# BZ12701 %3hhx:-0X7b:0:-1: ++# BZ12701 %*3hhx:-0X7b:0:-1: ++# BZ12701 %3hhx:-0x7B:0:-1: ++# BZ12701 %*3hhx:-0x7B:0:-1: ++%3hhx:-1:1:2:255: ++%*3hhx:-1:0:2: ++# BZ12701 %3hhx:-0X1:0:-1: ++# BZ12701 %*3hhx:-0X1:0:-1: ++# BZ12701 %3hhx:-0x1:0:-1: ++# BZ12701 %*3hhx:-0x1:0:-1: ++%3hhx:-0:1:2:0: ++%*3hhx:-0:0:2: ++# BZ12701 %3hhx:-0X0:0:-1: ++# BZ12701 %*3hhx:-0X0:0:-1: ++# BZ12701 %3hhx:-0x0:0:-1: ++# BZ12701 %*3hhx:-0x0:0:-1: ++%3hhx:0:1:1:0: ++%*3hhx:0:0:1: ++%3hhx:0X0:1:3:0: ++%*3hhx:0X0:0:3: ++%3hhx:0x0:1:3:0: ++%*3hhx:0x0:0:3: ++%3hhx:1:1:1:1: ++%*3hhx:1:0:1: ++%3hhx:0X1:1:3:1: ++%*3hhx:0X1:0:3: ++%3hhx:0x1:1:3:1: ++%*3hhx:0x1:0:3: ++%3hhx:2a:1:2:42: ++%*3hhx:2a:0:2: ++%3hhx:2A:1:2:42: ++%*3hhx:2A:0:2: ++%3hhx:0X2a:1:3:2: ++%*3hhx:0X2a:0:3: ++%3hhx:0x2A:1:3:2: ++%*3hhx:0x2A:0:3: ++%3hhx:ff:1:2:255: ++%*3hhx:ff:0:2: ++%3hhx:FF:1:2:255: ++%*3hhx:FF:0:2: ++%3hhx:0Xff:1:3:15: ++%*3hhx:0Xff:0:3: ++%3hhx:0xFF:1:3:15: ++%*3hhx:0xFF:0:3: ++%3hhx:100:1:3:0: ++%*3hhx:100:0:3: ++%3hhx:0X100:1:3:1: ++%*3hhx:0X100:0:3: ++%3hhx:0x100:1:3:1: ++%*3hhx:0x100:0:3: ++%3hhx:129:1:3:41: ++%*3hhx:129:0:3: ++%3hhx:0X129:1:3:1: ++%*3hhx:0X129:0:3: ++%3hhx:0x129:1:3:1: ++%*3hhx:0x129:0:3: ++%3hhx:+0:1:2:0: ++%*3hhx:+0:0:2: ++# BZ12701 %3hhx:+0X0:0:-1: ++# BZ12701 %*3hhx:+0X0:0:-1: ++# BZ12701 %3hhx:+0x0:0:-1: ++# BZ12701 %*3hhx:+0x0:0:-1: ++%3hhx:+1:1:2:1: ++%*3hhx:+1:0:2: ++# BZ12701 %3hhx:+0X1:0:-1: ++# BZ12701 %*3hhx:+0X1:0:-1: ++# BZ12701 %3hhx:+0x1:0:-1: ++# BZ12701 %*3hhx:+0x1:0:-1: ++%3hhx:+2a:1:3:42: ++%*3hhx:+2a:0:3: ++%3hhx:+2A:1:3:42: ++%*3hhx:+2A:0:3: ++# BZ12701 %3hhx:+0X2a:0:-1: ++# BZ12701 %*3hhx:+0X2a:0:-1: ++# BZ12701 %3hhx:+0x2A:0:-1: ++# BZ12701 %*3hhx:+0x2A:0:-1: ++%3hhx:+ff:1:3:255: ++%*3hhx:+ff:0:3: ++%3hhx:+FF:1:3:255: ++%*3hhx:+FF:0:3: ++# BZ12701 %3hhx:+0Xff:0:-1: ++# BZ12701 %*3hhx:+0Xff:0:-1: ++# BZ12701 %3hhx:+0xFF:0:-1: ++# BZ12701 %*3hhx:+0xFF:0:-1: ++%3hhx:+100:1:3:16: ++%*3hhx:+100:0:3: ++# BZ12701 %3hhx:+0X100:0:-1: ++# BZ12701 %*3hhx:+0X100:0:-1: ++# BZ12701 %3hhx:+0x100:0:-1: ++# BZ12701 %*3hhx:+0x100:0:-1: ++%3hhx:+129:1:3:18: ++%*3hhx:+129:0:3: ++# BZ12701 %3hhx:+0X129:0:-1: ++# BZ12701 %*3hhx:+0X129:0:-1: ++# BZ12701 %3hhx:+0x129:0:-1: ++# BZ12701 %*3hhx:+0x129:0:-1: ++%5hhx::0:-1: ++%*5hhx::0:-1: ++%5hhx:-7b:1:3:133: ++%*5hhx:-7b:0:3: ++%5hhx:-7B:1:3:133: ++%*5hhx:-7B:0:3: ++%5hhx:-0X7b:1:5:133: ++%*5hhx:-0X7b:0:5: ++%5hhx:-0x7B:1:5:133: ++%*5hhx:-0x7B:0:5: ++%5hhx:-1:1:2:255: ++%*5hhx:-1:0:2: ++%5hhx:-0X1:1:4:255: ++%*5hhx:-0X1:0:4: ++%5hhx:-0x1:1:4:255: ++%*5hhx:-0x1:0:4: ++%5hhx:-0:1:2:0: ++%*5hhx:-0:0:2: ++%5hhx:-0X0:1:4:0: ++%*5hhx:-0X0:0:4: ++%5hhx:-0x0:1:4:0: ++%*5hhx:-0x0:0:4: ++%5hhx:0:1:1:0: ++%*5hhx:0:0:1: ++%5hhx:0X0:1:3:0: ++%*5hhx:0X0:0:3: ++%5hhx:0x0:1:3:0: ++%*5hhx:0x0:0:3: ++%5hhx:1:1:1:1: ++%*5hhx:1:0:1: ++%5hhx:0X1:1:3:1: ++%*5hhx:0X1:0:3: ++%5hhx:0x1:1:3:1: ++%*5hhx:0x1:0:3: ++%5hhx:2a:1:2:42: ++%*5hhx:2a:0:2: ++%5hhx:2A:1:2:42: ++%*5hhx:2A:0:2: ++%5hhx:0X2a:1:4:42: ++%*5hhx:0X2a:0:4: ++%5hhx:0x2A:1:4:42: ++%*5hhx:0x2A:0:4: ++%5hhx:ff:1:2:255: ++%*5hhx:ff:0:2: ++%5hhx:FF:1:2:255: ++%*5hhx:FF:0:2: ++%5hhx:0Xff:1:4:255: ++%*5hhx:0Xff:0:4: ++%5hhx:0xFF:1:4:255: ++%*5hhx:0xFF:0:4: ++%5hhx:100:1:3:0: ++%*5hhx:100:0:3: ++%5hhx:0X100:1:5:0: ++%*5hhx:0X100:0:5: ++%5hhx:0x100:1:5:0: ++%*5hhx:0x100:0:5: ++%5hhx:129:1:3:41: ++%*5hhx:129:0:3: ++%5hhx:0X129:1:5:41: ++%*5hhx:0X129:0:5: ++%5hhx:0x129:1:5:41: ++%*5hhx:0x129:0:5: ++%5hhx:+0:1:2:0: ++%*5hhx:+0:0:2: ++%5hhx:+0X0:1:4:0: ++%*5hhx:+0X0:0:4: ++%5hhx:+0x0:1:4:0: ++%*5hhx:+0x0:0:4: ++%5hhx:+1:1:2:1: ++%*5hhx:+1:0:2: ++%5hhx:+0X1:1:4:1: ++%*5hhx:+0X1:0:4: ++%5hhx:+0x1:1:4:1: ++%*5hhx:+0x1:0:4: ++%5hhx:+2a:1:3:42: ++%*5hhx:+2a:0:3: ++%5hhx:+2A:1:3:42: ++%*5hhx:+2A:0:3: ++%5hhx:+0X2a:1:5:42: ++%*5hhx:+0X2a:0:5: ++%5hhx:+0x2A:1:5:42: ++%*5hhx:+0x2A:0:5: ++%5hhx:+ff:1:3:255: ++%*5hhx:+ff:0:3: ++%5hhx:+FF:1:3:255: ++%*5hhx:+FF:0:3: ++%5hhx:+0Xff:1:5:255: ++%*5hhx:+0Xff:0:5: ++%5hhx:+0xFF:1:5:255: ++%*5hhx:+0xFF:0:5: ++%5hhx:+100:1:4:0: ++%*5hhx:+100:0:4: ++%5hhx:+0X100:1:5:16: ++%*5hhx:+0X100:0:5: ++%5hhx:+0x100:1:5:16: ++%*5hhx:+0x100:0:5: ++%5hhx:+129:1:4:41: ++%*5hhx:+129:0:4: ++%5hhx:+0X129:1:5:18: ++%*5hhx:+0X129:0:5: ++%5hhx:+0x129:1:5:18: ++%*5hhx:+0x129:0:5: ++%2hhx: :0:-1: ++%*2hhx: :0:-1: ++%2hhx: -7b:1:3:249: ++%*2hhx: -7b:0:3: ++%2hhx: -7B:1:3:249: ++%*2hhx: -7B:0:3: ++%2hhx: -0X7b:1:3:0: ++%*2hhx: -0X7b:0:3: ++%2hhx: -0x7B:1:3:0: ++%*2hhx: -0x7B:0:3: ++%2hhx: -1:1:3:255: ++%*2hhx: -1:0:3: ++%2hhx: -0X1:1:3:0: ++%*2hhx: -0X1:0:3: ++%2hhx: -0x1:1:3:0: ++%*2hhx: -0x1:0:3: ++%2hhx: -0:1:3:0: ++%*2hhx: -0:0:3: ++%2hhx: -0X0:1:3:0: ++%*2hhx: -0X0:0:3: ++%2hhx: -0x0:1:3:0: ++%*2hhx: -0x0:0:3: ++%2hhx: 0:1:2:0: ++%*2hhx: 0:0:2: ++# BZ12701 %2hhx: 0X0:0:-1: ++# BZ12701 %*2hhx: 0X0:0:-1: ++# BZ12701 %2hhx: 0x0:0:-1: ++# BZ12701 %*2hhx: 0x0:0:-1: ++%2hhx: 1:1:2:1: ++%*2hhx: 1:0:2: ++# BZ12701 %2hhx: 0X1:0:-1: ++# BZ12701 %*2hhx: 0X1:0:-1: ++# BZ12701 %2hhx: 0x1:0:-1: ++# BZ12701 %*2hhx: 0x1:0:-1: ++%2hhx: 2a:1:3:42: ++%*2hhx: 2a:0:3: ++%2hhx: 2A:1:3:42: ++%*2hhx: 2A:0:3: ++# BZ12701 %2hhx: 0X2a:0:-1: ++# BZ12701 %*2hhx: 0X2a:0:-1: ++# BZ12701 %2hhx: 0x2A:0:-1: ++# BZ12701 %*2hhx: 0x2A:0:-1: ++%2hhx: ff:1:3:255: ++%*2hhx: ff:0:3: ++%2hhx: FF:1:3:255: ++%*2hhx: FF:0:3: ++# BZ12701 %2hhx: 0Xff:0:-1: ++# BZ12701 %*2hhx: 0Xff:0:-1: ++# BZ12701 %2hhx: 0xFF:0:-1: ++# BZ12701 %*2hhx: 0xFF:0:-1: ++%2hhx: 100:1:3:16: ++%*2hhx: 100:0:3: ++# BZ12701 %2hhx: 0X100:0:-1: ++# BZ12701 %*2hhx: 0X100:0:-1: ++# BZ12701 %2hhx: 0x100:0:-1: ++# BZ12701 %*2hhx: 0x100:0:-1: ++%2hhx: 129:1:3:18: ++%*2hhx: 129:0:3: ++# BZ12701 %2hhx: 0X129:0:-1: ++# BZ12701 %*2hhx: 0X129:0:-1: ++# BZ12701 %2hhx: 0x129:0:-1: ++# BZ12701 %*2hhx: 0x129:0:-1: ++%2hhx: +0:1:3:0: ++%*2hhx: +0:0:3: ++%2hhx: +0X0:1:3:0: ++%*2hhx: +0X0:0:3: ++%2hhx: +0x0:1:3:0: ++%*2hhx: +0x0:0:3: ++%2hhx: +1:1:3:1: ++%*2hhx: +1:0:3: ++%2hhx: +0X1:1:3:0: ++%*2hhx: +0X1:0:3: ++%2hhx: +0x1:1:3:0: ++%*2hhx: +0x1:0:3: ++%2hhx: +2a:1:3:2: ++%*2hhx: +2a:0:3: ++%2hhx: +2A:1:3:2: ++%*2hhx: +2A:0:3: ++%2hhx: +0X2a:1:3:0: ++%*2hhx: +0X2a:0:3: ++%2hhx: +0x2A:1:3:0: ++%*2hhx: +0x2A:0:3: ++%2hhx: +ff:1:3:15: ++%*2hhx: +ff:0:3: ++%2hhx: +FF:1:3:15: ++%*2hhx: +FF:0:3: ++%2hhx: +0Xff:1:3:0: ++%*2hhx: +0Xff:0:3: ++%2hhx: +0xFF:1:3:0: ++%*2hhx: +0xFF:0:3: ++%2hhx: +100:1:3:1: ++%*2hhx: +100:0:3: ++%2hhx: +0X100:1:3:0: ++%*2hhx: +0X100:0:3: ++%2hhx: +0x100:1:3:0: ++%*2hhx: +0x100:0:3: ++%2hhx: +129:1:3:1: ++%*2hhx: +129:0:3: ++%2hhx: +0X129:1:3:0: ++%*2hhx: +0X129:0:3: ++%2hhx: +0x129:1:3:0: ++%*2hhx: +0x129:0:3: ++%5hhx: :0:-1: ++%*5hhx: :0:-1: ++%5hhx: -7b:1:4:133: ++%*5hhx: -7b:0:4: ++%5hhx: -7B:1:4:133: ++%*5hhx: -7B:0:4: ++%5hhx: -0X7b:1:6:133: ++%*5hhx: -0X7b:0:6: ++%5hhx: -0x7B:1:6:133: ++%*5hhx: -0x7B:0:6: ++%5hhx: -1:1:3:255: ++%*5hhx: -1:0:3: ++%5hhx: -0X1:1:5:255: ++%*5hhx: -0X1:0:5: ++%5hhx: -0x1:1:5:255: ++%*5hhx: -0x1:0:5: ++%5hhx: -0:1:3:0: ++%*5hhx: -0:0:3: ++%5hhx: -0X0:1:5:0: ++%*5hhx: -0X0:0:5: ++%5hhx: -0x0:1:5:0: ++%*5hhx: -0x0:0:5: ++%5hhx: 0:1:2:0: ++%*5hhx: 0:0:2: ++%5hhx: 0X0:1:4:0: ++%*5hhx: 0X0:0:4: ++%5hhx: 0x0:1:4:0: ++%*5hhx: 0x0:0:4: ++%5hhx: 1:1:2:1: ++%*5hhx: 1:0:2: ++%5hhx: 0X1:1:4:1: ++%*5hhx: 0X1:0:4: ++%5hhx: 0x1:1:4:1: ++%*5hhx: 0x1:0:4: ++%5hhx: 2a:1:3:42: ++%*5hhx: 2a:0:3: ++%5hhx: 2A:1:3:42: ++%*5hhx: 2A:0:3: ++%5hhx: 0X2a:1:5:42: ++%*5hhx: 0X2a:0:5: ++%5hhx: 0x2A:1:5:42: ++%*5hhx: 0x2A:0:5: ++%5hhx: ff:1:3:255: ++%*5hhx: ff:0:3: ++%5hhx: FF:1:3:255: ++%*5hhx: FF:0:3: ++%5hhx: 0Xff:1:5:255: ++%*5hhx: 0Xff:0:5: ++%5hhx: 0xFF:1:5:255: ++%*5hhx: 0xFF:0:5: ++%5hhx: 100:1:4:0: ++%*5hhx: 100:0:4: ++%5hhx: 0X100:1:6:0: ++%*5hhx: 0X100:0:6: ++%5hhx: 0x100:1:6:0: ++%*5hhx: 0x100:0:6: ++%5hhx: 129:1:4:41: ++%*5hhx: 129:0:4: ++%5hhx: 0X129:1:6:41: ++%*5hhx: 0X129:0:6: ++%5hhx: 0x129:1:6:41: ++%*5hhx: 0x129:0:6: ++%5hhx: +0:1:3:0: ++%*5hhx: +0:0:3: ++%5hhx: +0X0:1:5:0: ++%*5hhx: +0X0:0:5: ++%5hhx: +0x0:1:5:0: ++%*5hhx: +0x0:0:5: ++%5hhx: +1:1:3:1: ++%*5hhx: +1:0:3: ++%5hhx: +0X1:1:5:1: ++%*5hhx: +0X1:0:5: ++%5hhx: +0x1:1:5:1: ++%*5hhx: +0x1:0:5: ++%5hhx: +2a:1:4:42: ++%*5hhx: +2a:0:4: ++%5hhx: +2A:1:4:42: ++%*5hhx: +2A:0:4: ++%5hhx: +0X2a:1:6:42: ++%*5hhx: +0X2a:0:6: ++%5hhx: +0x2A:1:6:42: ++%*5hhx: +0x2A:0:6: ++%5hhx: +ff:1:4:255: ++%*5hhx: +ff:0:4: ++%5hhx: +FF:1:4:255: ++%*5hhx: +FF:0:4: ++%5hhx: +0Xff:1:6:255: ++%*5hhx: +0Xff:0:6: ++%5hhx: +0xFF:1:6:255: ++%*5hhx: +0xFF:0:6: ++%5hhx: +100:1:5:0: ++%*5hhx: +100:0:5: ++%5hhx: +0X100:1:6:16: ++%*5hhx: +0X100:0:6: ++%5hhx: +0x100:1:6:16: ++%*5hhx: +0x100:0:6: ++%5hhx: +129:1:5:41: ++%*5hhx: +129:0:5: ++%5hhx: +0X129:1:6:18: ++%*5hhx: +0X129:0:6: ++%5hhx: +0x129:1:6:18: ++%*5hhx: +0x129:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-xx.input b/stdio-common/tst-scanf-format-uchar-xx.input +new file mode 100644 +index 0000000000000000..3e3af63b68918705 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-xx.input +@@ -0,0 +1,710 @@ ++%hhX::0:-1: ++%*hhX::0:-1: ++%hhX:-7b:1:3:133: ++%*hhX:-7b:0:3: ++%hhX:-7B:1:3:133: ++%*hhX:-7B:0:3: ++%hhX:-0X7b:1:5:133: ++%*hhX:-0X7b:0:5: ++%hhX:-0x7B:1:5:133: ++%*hhX:-0x7B:0:5: ++%hhX:-1:1:2:255: ++%*hhX:-1:0:2: ++%hhX:-0X1:1:4:255: ++%*hhX:-0X1:0:4: ++%hhX:-0x1:1:4:255: ++%*hhX:-0x1:0:4: ++%hhX:-0:1:2:0: ++%*hhX:-0:0:2: ++%hhX:-0X0:1:4:0: ++%*hhX:-0X0:0:4: ++%hhX:-0x0:1:4:0: ++%*hhX:-0x0:0:4: ++%hhX:0:1:1:0: ++%*hhX:0:0:1: ++%hhX:0X0:1:3:0: ++%*hhX:0X0:0:3: ++%hhX:0x0:1:3:0: ++%*hhX:0x0:0:3: ++%hhX:1:1:1:1: ++%*hhX:1:0:1: ++%hhX:0X1:1:3:1: ++%*hhX:0X1:0:3: ++%hhX:0x1:1:3:1: ++%*hhX:0x1:0:3: ++%hhX:2a:1:2:42: ++%*hhX:2a:0:2: ++%hhX:2A:1:2:42: ++%*hhX:2A:0:2: ++%hhX:0X2a:1:4:42: ++%*hhX:0X2a:0:4: ++%hhX:0x2A:1:4:42: ++%*hhX:0x2A:0:4: ++%hhX:ff:1:2:255: ++%*hhX:ff:0:2: ++%hhX:FF:1:2:255: ++%*hhX:FF:0:2: ++%hhX:0xFF:1:4:255: ++%*hhX:0xFF:0:4: ++%hhX:100:1:3:0: ++%*hhX:100:0:3: ++%hhX:0X100:1:5:0: ++%*hhX:0X100:0:5: ++%hhX:0x100:1:5:0: ++%*hhX:0x100:0:5: ++%hhX:129:1:3:41: ++%*hhX:129:0:3: ++%hhX:0X129:1:5:41: ++%*hhX:0X129:0:5: ++%hhX:0x129:1:5:41: ++%*hhX:0x129:0:5: ++%hhX:+0:1:2:0: ++%*hhX:+0:0:2: ++%hhX:+0X0:1:4:0: ++%*hhX:+0X0:0:4: ++%hhX:+0x0:1:4:0: ++%*hhX:+0x0:0:4: ++%hhX:+1:1:2:1: ++%*hhX:+1:0:2: ++%hhX:+0X1:1:4:1: ++%*hhX:+0X1:0:4: ++%hhX:+0x1:1:4:1: ++%*hhX:+0x1:0:4: ++%hhX:+2a:1:3:42: ++%*hhX:+2a:0:3: ++%hhX:+2A:1:3:42: ++%*hhX:+2A:0:3: ++%hhX:+0X2a:1:5:42: ++%*hhX:+0X2a:0:5: ++%hhX:+0x2A:1:5:42: ++%*hhX:+0x2A:0:5: ++%hhX:+ff:1:3:255: ++%*hhX:+ff:0:3: ++%hhX:+FF:1:3:255: ++%*hhX:+FF:0:3: ++%hhX:+0Xff:1:5:255: ++%*hhX:+0Xff:0:5: ++%hhX:+0xFF:1:5:255: ++%*hhX:+0xFF:0:5: ++%hhX:+100:1:4:0: ++%*hhX:+100:0:4: ++%hhX:+0X100:1:6:0: ++%*hhX:+0X100:0:6: ++%hhX:+0x100:1:6:0: ++%*hhX:+0x100:0:6: ++%hhX:+129:1:4:41: ++%*hhX:+129:0:4: ++%hhX:+0X129:1:6:41: ++%*hhX:+0X129:0:6: ++%hhX:+0x129:1:6:41: ++%*hhX:+0x129:0:6: ++%1hhX::0:-1: ++%*1hhX::0:-1: ++%1hhX:-7b:0:-1: ++%*1hhX:-7b:0:-1: ++%1hhX:-7B:0:-1: ++%*1hhX:-7B:0:-1: ++%1hhX:-0X7b:0:-1: ++%*1hhX:-0X7b:0:-1: ++%1hhX:-0x7B:0:-1: ++%*1hhX:-0x7B:0:-1: ++%1hhX:-1:0:-1: ++%*1hhX:-1:0:-1: ++%1hhX:-0X1:0:-1: ++%*1hhX:-0X1:0:-1: ++%1hhX:-0x1:0:-1: ++%*1hhX:-0x1:0:-1: ++%1hhX:-0:0:-1: ++%*1hhX:-0:0:-1: ++%1hhX:-0X0:0:-1: ++%*1hhX:-0X0:0:-1: ++%1hhX:-0x0:0:-1: ++%*1hhX:-0x0:0:-1: ++%1hhX:0:1:1:0: ++%*1hhX:0:0:1: ++%1hhX:0X0:1:1:0: ++%*1hhX:0X0:0:1: ++%1hhX:0x0:1:1:0: ++%*1hhX:0x0:0:1: ++%1hhX:1:1:1:1: ++%*1hhX:1:0:1: ++%1hhX:0X1:1:1:0: ++%*1hhX:0X1:0:1: ++%1hhX:0x1:1:1:0: ++%*1hhX:0x1:0:1: ++%1hhX:2a:1:1:2: ++%*1hhX:2a:0:1: ++%1hhX:2A:1:1:2: ++%*1hhX:2A:0:1: ++%1hhX:0X2a:1:1:0: ++%*1hhX:0X2a:0:1: ++%1hhX:0x2A:1:1:0: ++%*1hhX:0x2A:0:1: ++%1hhX:ff:1:1:15: ++%*1hhX:ff:0:1: ++%1hhX:FF:1:1:15: ++%*1hhX:FF:0:1: ++%1hhX:0xFF:1:1:0: ++%*1hhX:0xFF:0:1: ++%1hhX:100:1:1:1: ++%*1hhX:100:0:1: ++%1hhX:0X100:1:1:0: ++%*1hhX:0X100:0:1: ++%1hhX:0x100:1:1:0: ++%*1hhX:0x100:0:1: ++%1hhX:129:1:1:1: ++%*1hhX:129:0:1: ++%1hhX:0X129:1:1:0: ++%*1hhX:0X129:0:1: ++%1hhX:0x129:1:1:0: ++%*1hhX:0x129:0:1: ++%1hhX:+0:0:-1: ++%*1hhX:+0:0:-1: ++%1hhX:+0X0:0:-1: ++%*1hhX:+0X0:0:-1: ++%1hhX:+0x0:0:-1: ++%*1hhX:+0x0:0:-1: ++%1hhX:+1:0:-1: ++%*1hhX:+1:0:-1: ++%1hhX:+0X1:0:-1: ++%*1hhX:+0X1:0:-1: ++%1hhX:+0x1:0:-1: ++%*1hhX:+0x1:0:-1: ++%1hhX:+2a:0:-1: ++%*1hhX:+2a:0:-1: ++%1hhX:+2A:0:-1: ++%*1hhX:+2A:0:-1: ++%1hhX:+0X2a:0:-1: ++%*1hhX:+0X2a:0:-1: ++%1hhX:+0x2A:0:-1: ++%*1hhX:+0x2A:0:-1: ++%1hhX:+ff:0:-1: ++%*1hhX:+ff:0:-1: ++%1hhX:+FF:0:-1: ++%*1hhX:+FF:0:-1: ++%1hhX:+0Xff:0:-1: ++%*1hhX:+0Xff:0:-1: ++%1hhX:+0xFF:0:-1: ++%*1hhX:+0xFF:0:-1: ++%1hhX:+100:0:-1: ++%*1hhX:+100:0:-1: ++%1hhX:+0X100:0:-1: ++%*1hhX:+0X100:0:-1: ++%1hhX:+0x100:0:-1: ++%*1hhX:+0x100:0:-1: ++%1hhX:+129:0:-1: ++%*1hhX:+129:0:-1: ++%1hhX:+0X129:0:-1: ++%*1hhX:+0X129:0:-1: ++%1hhX:+0x129:0:-1: ++%*1hhX:+0x129:0:-1: ++%2hhX::0:-1: ++%*2hhX::0:-1: ++%2hhX:-7b:1:2:249: ++%*2hhX:-7b:0:2: ++%2hhX:-7B:1:2:249: ++%*2hhX:-7B:0:2: ++%2hhX:-0X7b:1:2:0: ++%*2hhX:-0X7b:0:2: ++%2hhX:-0x7B:1:2:0: ++%*2hhX:-0x7B:0:2: ++%2hhX:-1:1:2:255: ++%*2hhX:-1:0:2: ++%2hhX:-0X1:1:2:0: ++%*2hhX:-0X1:0:2: ++%2hhX:-0x1:1:2:0: ++%*2hhX:-0x1:0:2: ++%2hhX:-0:1:2:0: ++%*2hhX:-0:0:2: ++%2hhX:-0X0:1:2:0: ++%*2hhX:-0X0:0:2: ++%2hhX:-0x0:1:2:0: ++%*2hhX:-0x0:0:2: ++%2hhX:0:1:1:0: ++%*2hhX:0:0:1: ++# BZ12701 %2hhX:0X0:0:-1: ++# BZ12701 %*2hhX:0X0:0:-1: ++# BZ12701 %2hhX:0x0:0:-1: ++# BZ12701 %*2hhX:0x0:0:-1: ++%2hhX:1:1:1:1: ++%*2hhX:1:0:1: ++# BZ12701 %2hhX:0X1:0:-1: ++# BZ12701 %*2hhX:0X1:0:-1: ++# BZ12701 %2hhX:0x1:0:-1: ++# BZ12701 %*2hhX:0x1:0:-1: ++%2hhX:2a:1:2:42: ++%*2hhX:2a:0:2: ++%2hhX:2A:1:2:42: ++%*2hhX:2A:0:2: ++# BZ12701 %2hhX:0X2a:0:-1: ++# BZ12701 %*2hhX:0X2a:0:-1: ++# BZ12701 %2hhX:0x2A:0:-1: ++# BZ12701 %*2hhX:0x2A:0:-1: ++%2hhX:ff:1:2:255: ++%*2hhX:ff:0:2: ++%2hhX:FF:1:2:255: ++%*2hhX:FF:0:2: ++# BZ12701 %2hhX:0Xff:0:-1: ++# BZ12701 %*2hhX:0Xff:0:-1: ++# BZ12701 %2hhX:0xFF:0:-1: ++# BZ12701 %*2hhX:0xFF:0:-1: ++%2hhX:100:1:2:16: ++%*2hhX:100:0:2: ++# BZ12701 %2hhX:0X100:0:-1: ++# BZ12701 %*2hhX:0X100:0:-1: ++# BZ12701 %2hhX:0x100:0:-1: ++# BZ12701 %*2hhX:0x100:0:-1: ++%2hhX:129:1:2:18: ++%*2hhX:129:0:2: ++# BZ12701 %2hhX:0X129:0:-1: ++# BZ12701 %*2hhX:0X129:0:-1: ++# BZ12701 %2hhX:0x129:0:-1: ++# BZ12701 %*2hhX:0x129:0:-1: ++%2hhX:+0:1:2:0: ++%*2hhX:+0:0:2: ++%2hhX:+0X0:1:2:0: ++%*2hhX:+0X0:0:2: ++%2hhX:+0x0:1:2:0: ++%*2hhX:+0x0:0:2: ++%2hhX:+1:1:2:1: ++%*2hhX:+1:0:2: ++%2hhX:+0X1:1:2:0: ++%*2hhX:+0X1:0:2: ++%2hhX:+0x1:1:2:0: ++%*2hhX:+0x1:0:2: ++%2hhX:+2a:1:2:2: ++%*2hhX:+2a:0:2: ++%2hhX:+2A:1:2:2: ++%*2hhX:+2A:0:2: ++%2hhX:+0X2a:1:2:0: ++%*2hhX:+0X2a:0:2: ++%2hhX:+0x2A:1:2:0: ++%*2hhX:+0x2A:0:2: ++%2hhX:+ff:1:2:15: ++%*2hhX:+ff:0:2: ++%2hhX:+FF:1:2:15: ++%*2hhX:+FF:0:2: ++%2hhX:+0Xff:1:2:0: ++%*2hhX:+0Xff:0:2: ++%2hhX:+0xFF:1:2:0: ++%*2hhX:+0xFF:0:2: ++%2hhX:+100:1:2:1: ++%*2hhX:+100:0:2: ++%2hhX:+0X100:1:2:0: ++%*2hhX:+0X100:0:2: ++%2hhX:+0x100:1:2:0: ++%*2hhX:+0x100:0:2: ++%2hhX:+129:1:2:1: ++%*2hhX:+129:0:2: ++%2hhX:+0X129:1:2:0: ++%*2hhX:+0X129:0:2: ++%2hhX:+0x129:1:2:0: ++%*2hhX:+0x129:0:2: ++%3hhX::0:-1: ++%*3hhX::0:-1: ++%3hhX:-7b:1:3:133: ++%*3hhX:-7b:0:3: ++%3hhX:-7B:1:3:133: ++%*3hhX:-7B:0:3: ++# BZ12701 %3hhX:-0X7b:0:-1: ++# BZ12701 %*3hhX:-0X7b:0:-1: ++# BZ12701 %3hhX:-0x7B:0:-1: ++# BZ12701 %*3hhX:-0x7B:0:-1: ++%3hhX:-1:1:2:255: ++%*3hhX:-1:0:2: ++# BZ12701 %3hhX:-0X1:0:-1: ++# BZ12701 %*3hhX:-0X1:0:-1: ++# BZ12701 %3hhX:-0x1:0:-1: ++# BZ12701 %*3hhX:-0x1:0:-1: ++%3hhX:-0:1:2:0: ++%*3hhX:-0:0:2: ++# BZ12701 %3hhX:-0X0:0:-1: ++# BZ12701 %*3hhX:-0X0:0:-1: ++# BZ12701 %3hhX:-0x0:0:-1: ++# BZ12701 %*3hhX:-0x0:0:-1: ++%3hhX:0:1:1:0: ++%*3hhX:0:0:1: ++%3hhX:0X0:1:3:0: ++%*3hhX:0X0:0:3: ++%3hhX:0x0:1:3:0: ++%*3hhX:0x0:0:3: ++%3hhX:1:1:1:1: ++%*3hhX:1:0:1: ++%3hhX:0X1:1:3:1: ++%*3hhX:0X1:0:3: ++%3hhX:0x1:1:3:1: ++%*3hhX:0x1:0:3: ++%3hhX:2a:1:2:42: ++%*3hhX:2a:0:2: ++%3hhX:2A:1:2:42: ++%*3hhX:2A:0:2: ++%3hhX:0X2a:1:3:2: ++%*3hhX:0X2a:0:3: ++%3hhX:0x2A:1:3:2: ++%*3hhX:0x2A:0:3: ++%3hhX:ff:1:2:255: ++%*3hhX:ff:0:2: ++%3hhX:FF:1:2:255: ++%*3hhX:FF:0:2: ++%3hhX:0Xff:1:3:15: ++%*3hhX:0Xff:0:3: ++%3hhX:0xFF:1:3:15: ++%*3hhX:0xFF:0:3: ++%3hhX:100:1:3:0: ++%*3hhX:100:0:3: ++%3hhX:0X100:1:3:1: ++%*3hhX:0X100:0:3: ++%3hhX:0x100:1:3:1: ++%*3hhX:0x100:0:3: ++%3hhX:129:1:3:41: ++%*3hhX:129:0:3: ++%3hhX:0X129:1:3:1: ++%*3hhX:0X129:0:3: ++%3hhX:0x129:1:3:1: ++%*3hhX:0x129:0:3: ++%3hhX:+0:1:2:0: ++%*3hhX:+0:0:2: ++# BZ12701 %3hhX:+0X0:0:-1: ++# BZ12701 %*3hhX:+0X0:0:-1: ++# BZ12701 %3hhX:+0x0:0:-1: ++# BZ12701 %*3hhX:+0x0:0:-1: ++%3hhX:+1:1:2:1: ++%*3hhX:+1:0:2: ++# BZ12701 %3hhX:+0X1:0:-1: ++# BZ12701 %*3hhX:+0X1:0:-1: ++# BZ12701 %3hhX:+0x1:0:-1: ++# BZ12701 %*3hhX:+0x1:0:-1: ++%3hhX:+2a:1:3:42: ++%*3hhX:+2a:0:3: ++%3hhX:+2A:1:3:42: ++%*3hhX:+2A:0:3: ++# BZ12701 %3hhX:+0X2a:0:-1: ++# BZ12701 %*3hhX:+0X2a:0:-1: ++# BZ12701 %3hhX:+0x2A:0:-1: ++# BZ12701 %*3hhX:+0x2A:0:-1: ++%3hhX:+ff:1:3:255: ++%*3hhX:+ff:0:3: ++%3hhX:+FF:1:3:255: ++%*3hhX:+FF:0:3: ++# BZ12701 %3hhX:+0Xff:0:-1: ++# BZ12701 %*3hhX:+0Xff:0:-1: ++# BZ12701 %3hhX:+0xFF:0:-1: ++# BZ12701 %*3hhX:+0xFF:0:-1: ++%3hhX:+100:1:3:16: ++%*3hhX:+100:0:3: ++# BZ12701 %3hhX:+0X100:0:-1: ++# BZ12701 %*3hhX:+0X100:0:-1: ++# BZ12701 %3hhX:+0x100:0:-1: ++# BZ12701 %*3hhX:+0x100:0:-1: ++%3hhX:+129:1:3:18: ++%*3hhX:+129:0:3: ++# BZ12701 %3hhX:+0X129:0:-1: ++# BZ12701 %*3hhX:+0X129:0:-1: ++# BZ12701 %3hhX:+0x129:0:-1: ++# BZ12701 %*3hhX:+0x129:0:-1: ++%5hhX::0:-1: ++%*5hhX::0:-1: ++%5hhX:-7b:1:3:133: ++%*5hhX:-7b:0:3: ++%5hhX:-7B:1:3:133: ++%*5hhX:-7B:0:3: ++%5hhX:-0X7b:1:5:133: ++%*5hhX:-0X7b:0:5: ++%5hhX:-0x7B:1:5:133: ++%*5hhX:-0x7B:0:5: ++%5hhX:-1:1:2:255: ++%*5hhX:-1:0:2: ++%5hhX:-0X1:1:4:255: ++%*5hhX:-0X1:0:4: ++%5hhX:-0x1:1:4:255: ++%*5hhX:-0x1:0:4: ++%5hhX:-0:1:2:0: ++%*5hhX:-0:0:2: ++%5hhX:-0X0:1:4:0: ++%*5hhX:-0X0:0:4: ++%5hhX:-0x0:1:4:0: ++%*5hhX:-0x0:0:4: ++%5hhX:0:1:1:0: ++%*5hhX:0:0:1: ++%5hhX:0X0:1:3:0: ++%*5hhX:0X0:0:3: ++%5hhX:0x0:1:3:0: ++%*5hhX:0x0:0:3: ++%5hhX:1:1:1:1: ++%*5hhX:1:0:1: ++%5hhX:0X1:1:3:1: ++%*5hhX:0X1:0:3: ++%5hhX:0x1:1:3:1: ++%*5hhX:0x1:0:3: ++%5hhX:2a:1:2:42: ++%*5hhX:2a:0:2: ++%5hhX:2A:1:2:42: ++%*5hhX:2A:0:2: ++%5hhX:0X2a:1:4:42: ++%*5hhX:0X2a:0:4: ++%5hhX:0x2A:1:4:42: ++%*5hhX:0x2A:0:4: ++%5hhX:ff:1:2:255: ++%*5hhX:ff:0:2: ++%5hhX:FF:1:2:255: ++%*5hhX:FF:0:2: ++%5hhX:0Xff:1:4:255: ++%*5hhX:0Xff:0:4: ++%5hhX:0xFF:1:4:255: ++%*5hhX:0xFF:0:4: ++%5hhX:100:1:3:0: ++%*5hhX:100:0:3: ++%5hhX:0X100:1:5:0: ++%*5hhX:0X100:0:5: ++%5hhX:0x100:1:5:0: ++%*5hhX:0x100:0:5: ++%5hhX:129:1:3:41: ++%*5hhX:129:0:3: ++%5hhX:0X129:1:5:41: ++%*5hhX:0X129:0:5: ++%5hhX:0x129:1:5:41: ++%*5hhX:0x129:0:5: ++%5hhX:+0:1:2:0: ++%*5hhX:+0:0:2: ++%5hhX:+0X0:1:4:0: ++%*5hhX:+0X0:0:4: ++%5hhX:+0x0:1:4:0: ++%*5hhX:+0x0:0:4: ++%5hhX:+1:1:2:1: ++%*5hhX:+1:0:2: ++%5hhX:+0X1:1:4:1: ++%*5hhX:+0X1:0:4: ++%5hhX:+0x1:1:4:1: ++%*5hhX:+0x1:0:4: ++%5hhX:+2a:1:3:42: ++%*5hhX:+2a:0:3: ++%5hhX:+2A:1:3:42: ++%*5hhX:+2A:0:3: ++%5hhX:+0X2a:1:5:42: ++%*5hhX:+0X2a:0:5: ++%5hhX:+0x2A:1:5:42: ++%*5hhX:+0x2A:0:5: ++%5hhX:+ff:1:3:255: ++%*5hhX:+ff:0:3: ++%5hhX:+FF:1:3:255: ++%*5hhX:+FF:0:3: ++%5hhX:+0Xff:1:5:255: ++%*5hhX:+0Xff:0:5: ++%5hhX:+0xFF:1:5:255: ++%*5hhX:+0xFF:0:5: ++%5hhX:+100:1:4:0: ++%*5hhX:+100:0:4: ++%5hhX:+0X100:1:5:16: ++%*5hhX:+0X100:0:5: ++%5hhX:+0x100:1:5:16: ++%*5hhX:+0x100:0:5: ++%5hhX:+129:1:4:41: ++%*5hhX:+129:0:4: ++%5hhX:+0X129:1:5:18: ++%*5hhX:+0X129:0:5: ++%5hhX:+0x129:1:5:18: ++%*5hhX:+0x129:0:5: ++%2hhX: :0:-1: ++%*2hhX: :0:-1: ++%2hhX: -7b:1:3:249: ++%*2hhX: -7b:0:3: ++%2hhX: -7B:1:3:249: ++%*2hhX: -7B:0:3: ++%2hhX: -0X7b:1:3:0: ++%*2hhX: -0X7b:0:3: ++%2hhX: -0x7B:1:3:0: ++%*2hhX: -0x7B:0:3: ++%2hhX: -1:1:3:255: ++%*2hhX: -1:0:3: ++%2hhX: -0X1:1:3:0: ++%*2hhX: -0X1:0:3: ++%2hhX: -0x1:1:3:0: ++%*2hhX: -0x1:0:3: ++%2hhX: -0:1:3:0: ++%*2hhX: -0:0:3: ++%2hhX: -0X0:1:3:0: ++%*2hhX: -0X0:0:3: ++%2hhX: -0x0:1:3:0: ++%*2hhX: -0x0:0:3: ++%2hhX: 0:1:2:0: ++%*2hhX: 0:0:2: ++# BZ12701 %2hhX: 0X0:0:-1: ++# BZ12701 %*2hhX: 0X0:0:-1: ++# BZ12701 %2hhX: 0x0:0:-1: ++# BZ12701 %*2hhX: 0x0:0:-1: ++%2hhX: 1:1:2:1: ++%*2hhX: 1:0:2: ++# BZ12701 %2hhX: 0X1:0:-1: ++# BZ12701 %*2hhX: 0X1:0:-1: ++# BZ12701 %2hhX: 0x1:0:-1: ++# BZ12701 %*2hhX: 0x1:0:-1: ++%2hhX: 2a:1:3:42: ++%*2hhX: 2a:0:3: ++%2hhX: 2A:1:3:42: ++%*2hhX: 2A:0:3: ++# BZ12701 %2hhX: 0X2a:0:-1: ++# BZ12701 %*2hhX: 0X2a:0:-1: ++# BZ12701 %2hhX: 0x2A:0:-1: ++# BZ12701 %*2hhX: 0x2A:0:-1: ++%2hhX: ff:1:3:255: ++%*2hhX: ff:0:3: ++%2hhX: FF:1:3:255: ++%*2hhX: FF:0:3: ++# BZ12701 %2hhX: 0Xff:0:-1: ++# BZ12701 %*2hhX: 0Xff:0:-1: ++# BZ12701 %2hhX: 0xFF:0:-1: ++# BZ12701 %*2hhX: 0xFF:0:-1: ++%2hhX: 100:1:3:16: ++%*2hhX: 100:0:3: ++# BZ12701 %2hhX: 0X100:0:-1: ++# BZ12701 %*2hhX: 0X100:0:-1: ++# BZ12701 %2hhX: 0x100:0:-1: ++# BZ12701 %*2hhX: 0x100:0:-1: ++%2hhX: 129:1:3:18: ++%*2hhX: 129:0:3: ++# BZ12701 %2hhX: 0X129:0:-1: ++# BZ12701 %*2hhX: 0X129:0:-1: ++# BZ12701 %2hhX: 0x129:0:-1: ++# BZ12701 %*2hhX: 0x129:0:-1: ++%2hhX: +0:1:3:0: ++%*2hhX: +0:0:3: ++%2hhX: +0X0:1:3:0: ++%*2hhX: +0X0:0:3: ++%2hhX: +0x0:1:3:0: ++%*2hhX: +0x0:0:3: ++%2hhX: +1:1:3:1: ++%*2hhX: +1:0:3: ++%2hhX: +0X1:1:3:0: ++%*2hhX: +0X1:0:3: ++%2hhX: +0x1:1:3:0: ++%*2hhX: +0x1:0:3: ++%2hhX: +2a:1:3:2: ++%*2hhX: +2a:0:3: ++%2hhX: +2A:1:3:2: ++%*2hhX: +2A:0:3: ++%2hhX: +0X2a:1:3:0: ++%*2hhX: +0X2a:0:3: ++%2hhX: +0x2A:1:3:0: ++%*2hhX: +0x2A:0:3: ++%2hhX: +ff:1:3:15: ++%*2hhX: +ff:0:3: ++%2hhX: +FF:1:3:15: ++%*2hhX: +FF:0:3: ++%2hhX: +0Xff:1:3:0: ++%*2hhX: +0Xff:0:3: ++%2hhX: +0xFF:1:3:0: ++%*2hhX: +0xFF:0:3: ++%2hhX: +100:1:3:1: ++%*2hhX: +100:0:3: ++%2hhX: +0X100:1:3:0: ++%*2hhX: +0X100:0:3: ++%2hhX: +0x100:1:3:0: ++%*2hhX: +0x100:0:3: ++%2hhX: +129:1:3:1: ++%*2hhX: +129:0:3: ++%2hhX: +0X129:1:3:0: ++%*2hhX: +0X129:0:3: ++%2hhX: +0x129:1:3:0: ++%*2hhX: +0x129:0:3: ++%5hhX: :0:-1: ++%*5hhX: :0:-1: ++%5hhX: -7b:1:4:133: ++%*5hhX: -7b:0:4: ++%5hhX: -7B:1:4:133: ++%*5hhX: -7B:0:4: ++%5hhX: -0X7b:1:6:133: ++%*5hhX: -0X7b:0:6: ++%5hhX: -0x7B:1:6:133: ++%*5hhX: -0x7B:0:6: ++%5hhX: -1:1:3:255: ++%*5hhX: -1:0:3: ++%5hhX: -0X1:1:5:255: ++%*5hhX: -0X1:0:5: ++%5hhX: -0x1:1:5:255: ++%*5hhX: -0x1:0:5: ++%5hhX: -0:1:3:0: ++%*5hhX: -0:0:3: ++%5hhX: -0X0:1:5:0: ++%*5hhX: -0X0:0:5: ++%5hhX: -0x0:1:5:0: ++%*5hhX: -0x0:0:5: ++%5hhX: 0:1:2:0: ++%*5hhX: 0:0:2: ++%5hhX: 0X0:1:4:0: ++%*5hhX: 0X0:0:4: ++%5hhX: 0x0:1:4:0: ++%*5hhX: 0x0:0:4: ++%5hhX: 1:1:2:1: ++%*5hhX: 1:0:2: ++%5hhX: 0X1:1:4:1: ++%*5hhX: 0X1:0:4: ++%5hhX: 0x1:1:4:1: ++%*5hhX: 0x1:0:4: ++%5hhX: 2a:1:3:42: ++%*5hhX: 2a:0:3: ++%5hhX: 2A:1:3:42: ++%*5hhX: 2A:0:3: ++%5hhX: 0X2a:1:5:42: ++%*5hhX: 0X2a:0:5: ++%5hhX: 0x2A:1:5:42: ++%*5hhX: 0x2A:0:5: ++%5hhX: ff:1:3:255: ++%*5hhX: ff:0:3: ++%5hhX: FF:1:3:255: ++%*5hhX: FF:0:3: ++%5hhX: 0Xff:1:5:255: ++%*5hhX: 0Xff:0:5: ++%5hhX: 0xFF:1:5:255: ++%*5hhX: 0xFF:0:5: ++%5hhX: 100:1:4:0: ++%*5hhX: 100:0:4: ++%5hhX: 0X100:1:6:0: ++%*5hhX: 0X100:0:6: ++%5hhX: 0x100:1:6:0: ++%*5hhX: 0x100:0:6: ++%5hhX: 129:1:4:41: ++%*5hhX: 129:0:4: ++%5hhX: 0X129:1:6:41: ++%*5hhX: 0X129:0:6: ++%5hhX: 0x129:1:6:41: ++%*5hhX: 0x129:0:6: ++%5hhX: +0:1:3:0: ++%*5hhX: +0:0:3: ++%5hhX: +0X0:1:5:0: ++%*5hhX: +0X0:0:5: ++%5hhX: +0x0:1:5:0: ++%*5hhX: +0x0:0:5: ++%5hhX: +1:1:3:1: ++%*5hhX: +1:0:3: ++%5hhX: +0X1:1:5:1: ++%*5hhX: +0X1:0:5: ++%5hhX: +0x1:1:5:1: ++%*5hhX: +0x1:0:5: ++%5hhX: +2a:1:4:42: ++%*5hhX: +2a:0:4: ++%5hhX: +2A:1:4:42: ++%*5hhX: +2A:0:4: ++%5hhX: +0X2a:1:6:42: ++%*5hhX: +0X2a:0:6: ++%5hhX: +0x2A:1:6:42: ++%*5hhX: +0x2A:0:6: ++%5hhX: +ff:1:4:255: ++%*5hhX: +ff:0:4: ++%5hhX: +FF:1:4:255: ++%*5hhX: +FF:0:4: ++%5hhX: +0Xff:1:6:255: ++%*5hhX: +0Xff:0:6: ++%5hhX: +0xFF:1:6:255: ++%*5hhX: +0xFF:0:6: ++%5hhX: +100:1:5:0: ++%*5hhX: +100:0:5: ++%5hhX: +0X100:1:6:16: ++%*5hhX: +0X100:0:6: ++%5hhX: +0x100:1:6:16: ++%*5hhX: +0x100:0:6: ++%5hhX: +129:1:5:41: ++%*5hhX: +129:0:5: ++%5hhX: +0X129:1:6:18: ++%*5hhX: +0X129:0:6: ++%5hhX: +0x129:1:6:18: ++%*5hhX: +0x129:0:6: +diff --git a/stdio-common/tst-scanf-format-ullong-b.input b/stdio-common/tst-scanf-format-ullong-b.input +new file mode 100644 +index 0000000000000000..57b83f01c2c91f7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-b.input +@@ -0,0 +1,644 @@ ++%llb::0:-1: ++%*llb::0:-1: ++%llb:-1111011:1:8:-123: ++%*llb:-1111011:0:8: ++%llb:-0B1111011:1:10:-123: ++%*llb:-0B1111011:0:10: ++%llb:-0b1111011:1:10:-123: ++%*llb:-0b1111011:0:10: ++%llb:-1:1:2:-1: ++%*llb:-1:0:2: ++%llb:-0B1:1:4:-1: ++%*llb:-0B1:0:4: ++%llb:-0b1:1:4:-1: ++%*llb:-0b1:0:4: ++%llb:-0:1:2:0: ++%*llb:-0:0:2: ++%llb:-0B0:1:4:0: ++%*llb:-0B0:0:4: ++%llb:-0b0:1:4:0: ++%*llb:-0b0:0:4: ++%llb:0:1:1:0: ++%*llb:0:0:1: ++%llb:0B0:1:3:0: ++%*llb:0B0:0:3: ++%llb:0b0:1:3:0: ++%*llb:0b0:0:3: ++%llb:1:1:1:1: ++%*llb:1:0:1: ++%llb:0B1:1:3:1: ++%*llb:0B1:0:3: ++%llb:0b1:1:3:1: ++%*llb:0b1:0:3: ++%llb:101010:1:6:42: ++%*llb:101010:0:6: ++%llb:0B101010:1:8:42: ++%*llb:0B101010:0:8: ++%llb:0b101010:1:8:42: ++%*llb:0b101010:0:8: ++%llb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: ++%*llb:1111111111111111111111111111111111111111111111111111111111111111:0:64: ++%llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%llb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: ++%*llb:10000000000000000000000000000000000000000000000000000000000000000:0:65: ++%llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%llb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: ++%*llb:10000000000000000000000000000000000000010100001110101011110110001:0:65: ++%llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%llb:+0:1:2:0: ++%*llb:+0:0:2: ++%llb:+0B0:1:4:0: ++%*llb:+0B0:0:4: ++%llb:+0b0:1:4:0: ++%*llb:+0b0:0:4: ++%llb:+1:1:2:1: ++%*llb:+1:0:2: ++%llb:+0B1:1:4:1: ++%*llb:+0B1:0:4: ++%llb:+0b1:1:4:1: ++%*llb:+0b1:0:4: ++%llb:+101010:1:7:42: ++%*llb:+101010:0:7: ++%llb:+0B101010:1:9:42: ++%*llb:+0B101010:0:9: ++%llb:+0b101010:1:9:42: ++%*llb:+0b101010:0:9: ++%llb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: ++%*llb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: ++%llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%llb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: ++%*llb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: ++%llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%llb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: ++%*llb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: ++%llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%1llb::0:-1: ++%*1llb::0:-1: ++%1llb:-1111011:0:-1: ++%*1llb:-1111011:0:-1: ++%1llb:-0B1111011:0:-1: ++%*1llb:-0B1111011:0:-1: ++%1llb:-0b1111011:0:-1: ++%*1llb:-0b1111011:0:-1: ++%1llb:-1:0:-1: ++%*1llb:-1:0:-1: ++%1llb:-0B1:0:-1: ++%*1llb:-0B1:0:-1: ++%1llb:-0b1:0:-1: ++%*1llb:-0b1:0:-1: ++%1llb:-0:0:-1: ++%*1llb:-0:0:-1: ++%1llb:-0B0:0:-1: ++%*1llb:-0B0:0:-1: ++%1llb:-0b0:0:-1: ++%*1llb:-0b0:0:-1: ++%1llb:0:1:1:0: ++%*1llb:0:0:1: ++%1llb:0B0:1:1:0: ++%*1llb:0B0:0:1: ++%1llb:0b0:1:1:0: ++%*1llb:0b0:0:1: ++%1llb:1:1:1:1: ++%*1llb:1:0:1: ++%1llb:0B1:1:1:0: ++%*1llb:0B1:0:1: ++%1llb:0b1:1:1:0: ++%*1llb:0b1:0:1: ++%1llb:101010:1:1:1: ++%*1llb:101010:0:1: ++%1llb:0B101010:1:1:0: ++%*1llb:0B101010:0:1: ++%1llb:0b101010:1:1:0: ++%*1llb:0b101010:0:1: ++%1llb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: ++%*1llb:1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: ++%*1llb:10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: ++%*1llb:10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:+0:0:-1: ++%*1llb:+0:0:-1: ++%1llb:+0B0:0:-1: ++%*1llb:+0B0:0:-1: ++%1llb:+0b0:0:-1: ++%*1llb:+0b0:0:-1: ++%1llb:+1:0:-1: ++%*1llb:+1:0:-1: ++%1llb:+0B1:0:-1: ++%*1llb:+0B1:0:-1: ++%1llb:+0b1:0:-1: ++%*1llb:+0b1:0:-1: ++%1llb:+101010:0:-1: ++%*1llb:+101010:0:-1: ++%1llb:+0B101010:0:-1: ++%*1llb:+0B101010:0:-1: ++%1llb:+0b101010:0:-1: ++%*1llb:+0b101010:0:-1: ++%1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb::0:-1: ++%*2llb::0:-1: ++%2llb:-1111011:1:2:-1: ++%*2llb:-1111011:0:2: ++%2llb:-0B1111011:1:2:0: ++%*2llb:-0B1111011:0:2: ++%2llb:-0b1111011:1:2:0: ++%*2llb:-0b1111011:0:2: ++%2llb:-1:1:2:-1: ++%*2llb:-1:0:2: ++%2llb:-0B1:1:2:0: ++%*2llb:-0B1:0:2: ++%2llb:-0b1:1:2:0: ++%*2llb:-0b1:0:2: ++%2llb:-0:1:2:0: ++%*2llb:-0:0:2: ++%2llb:-0B0:1:2:0: ++%*2llb:-0B0:0:2: ++%2llb:-0b0:1:2:0: ++%*2llb:-0b0:0:2: ++%2llb:0:1:1:0: ++%*2llb:0:0:1: ++# BZ12701 %2llb:0B0:0:-1: ++# BZ12701 %*2llb:0B0:0:-1: ++# BZ12701 %2llb:0b0:0:-1: ++# BZ12701 %*2llb:0b0:0:-1: ++%2llb:1:1:1:1: ++%*2llb:1:0:1: ++# BZ12701 %2llb:0B1:0:-1: ++# BZ12701 %*2llb:0B1:0:-1: ++# BZ12701 %2llb:0b1:0:-1: ++# BZ12701 %*2llb:0b1:0:-1: ++%2llb:101010:1:2:2: ++%*2llb:101010:0:2: ++# BZ12701 %2llb:0B101010:0:-1: ++# BZ12701 %*2llb:0B101010:0:-1: ++# BZ12701 %2llb:0b101010:0:-1: ++# BZ12701 %*2llb:0b101010:0:-1: ++%2llb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: ++%*2llb:1111111111111111111111111111111111111111111111111111111111111111:0:2: ++# BZ12701 %2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2llb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: ++%*2llb:10000000000000000000000000000000000000000000000000000000000000000:0:2: ++# BZ12701 %2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2llb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: ++%*2llb:10000000000000000000000000000000000000010100001110101011110110001:0:2: ++# BZ12701 %2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb:+0:1:2:0: ++%*2llb:+0:0:2: ++%2llb:+0B0:1:2:0: ++%*2llb:+0B0:0:2: ++%2llb:+0b0:1:2:0: ++%*2llb:+0b0:0:2: ++%2llb:+1:1:2:1: ++%*2llb:+1:0:2: ++%2llb:+0B1:1:2:0: ++%*2llb:+0B1:0:2: ++%2llb:+0b1:1:2:0: ++%*2llb:+0b1:0:2: ++%2llb:+101010:1:2:1: ++%*2llb:+101010:0:2: ++%2llb:+0B101010:1:2:0: ++%*2llb:+0B101010:0:2: ++%2llb:+0b101010:1:2:0: ++%*2llb:+0b101010:0:2: ++%2llb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: ++%*2llb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: ++%*2llb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: ++%*2llb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15llb::0:-1: ++%*15llb::0:-1: ++%15llb:-1111011:1:8:-123: ++%*15llb:-1111011:0:8: ++%15llb:-0B1111011:1:10:-123: ++%*15llb:-0B1111011:0:10: ++%15llb:-0b1111011:1:10:-123: ++%*15llb:-0b1111011:0:10: ++%15llb:-1:1:2:-1: ++%*15llb:-1:0:2: ++%15llb:-0B1:1:4:-1: ++%*15llb:-0B1:0:4: ++%15llb:-0b1:1:4:-1: ++%*15llb:-0b1:0:4: ++%15llb:-0:1:2:0: ++%*15llb:-0:0:2: ++%15llb:-0B0:1:4:0: ++%*15llb:-0B0:0:4: ++%15llb:-0b0:1:4:0: ++%*15llb:-0b0:0:4: ++%15llb:0:1:1:0: ++%*15llb:0:0:1: ++%15llb:0B0:1:3:0: ++%*15llb:0B0:0:3: ++%15llb:0b0:1:3:0: ++%*15llb:0b0:0:3: ++%15llb:1:1:1:1: ++%*15llb:1:0:1: ++%15llb:0B1:1:3:1: ++%*15llb:0B1:0:3: ++%15llb:0b1:1:3:1: ++%*15llb:0b1:0:3: ++%15llb:101010:1:6:42: ++%*15llb:101010:0:6: ++%15llb:0B101010:1:8:42: ++%*15llb:0B101010:0:8: ++%15llb:0b101010:1:8:42: ++%*15llb:0b101010:0:8: ++%15llb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: ++%*15llb:1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: ++%*15llb:10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: ++%*15llb:10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0:1:2:0: ++%*15llb:+0:0:2: ++%15llb:+0B0:1:4:0: ++%*15llb:+0B0:0:4: ++%15llb:+0b0:1:4:0: ++%*15llb:+0b0:0:4: ++%15llb:+1:1:2:1: ++%*15llb:+1:0:2: ++%15llb:+0B1:1:4:1: ++%*15llb:+0B1:0:4: ++%15llb:+0b1:1:4:1: ++%*15llb:+0b1:0:4: ++%15llb:+101010:1:7:42: ++%*15llb:+101010:0:7: ++%15llb:+0B101010:1:9:42: ++%*15llb:+0B101010:0:9: ++%15llb:+0b101010:1:9:42: ++%*15llb:+0b101010:0:9: ++%15llb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: ++%*15llb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: ++%*15llb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: ++%*15llb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25llb::0:-1: ++%*25llb::0:-1: ++%25llb:-1111011:1:8:-123: ++%*25llb:-1111011:0:8: ++%25llb:-0B1111011:1:10:-123: ++%*25llb:-0B1111011:0:10: ++%25llb:-0b1111011:1:10:-123: ++%*25llb:-0b1111011:0:10: ++%25llb:-1:1:2:-1: ++%*25llb:-1:0:2: ++%25llb:-0B1:1:4:-1: ++%*25llb:-0B1:0:4: ++%25llb:-0b1:1:4:-1: ++%*25llb:-0b1:0:4: ++%25llb:-0:1:2:0: ++%*25llb:-0:0:2: ++%25llb:-0B0:1:4:0: ++%*25llb:-0B0:0:4: ++%25llb:-0b0:1:4:0: ++%*25llb:-0b0:0:4: ++%25llb:0:1:1:0: ++%*25llb:0:0:1: ++%25llb:0B0:1:3:0: ++%*25llb:0B0:0:3: ++%25llb:0b0:1:3:0: ++%*25llb:0b0:0:3: ++%25llb:1:1:1:1: ++%*25llb:1:0:1: ++%25llb:0B1:1:3:1: ++%*25llb:0B1:0:3: ++%25llb:0b1:1:3:1: ++%*25llb:0b1:0:3: ++%25llb:101010:1:6:42: ++%*25llb:101010:0:6: ++%25llb:0B101010:1:8:42: ++%*25llb:0B101010:0:8: ++%25llb:0b101010:1:8:42: ++%*25llb:0b101010:0:8: ++%25llb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: ++%*25llb:1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: ++%*25llb:10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: ++%*25llb:10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0:1:2:0: ++%*25llb:+0:0:2: ++%25llb:+0B0:1:4:0: ++%*25llb:+0B0:0:4: ++%25llb:+0b0:1:4:0: ++%*25llb:+0b0:0:4: ++%25llb:+1:1:2:1: ++%*25llb:+1:0:2: ++%25llb:+0B1:1:4:1: ++%*25llb:+0B1:0:4: ++%25llb:+0b1:1:4:1: ++%*25llb:+0b1:0:4: ++%25llb:+101010:1:7:42: ++%*25llb:+101010:0:7: ++%25llb:+0B101010:1:9:42: ++%*25llb:+0B101010:0:9: ++%25llb:+0b101010:1:9:42: ++%*25llb:+0b101010:0:9: ++%25llb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: ++%*25llb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: ++%*25llb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: ++%*25llb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2llb: :0:-1: ++%*2llb: :0:-1: ++%2llb: -1111011:1:3:-1: ++%*2llb: -1111011:0:3: ++%2llb: -0B1111011:1:3:0: ++%*2llb: -0B1111011:0:3: ++%2llb: -0b1111011:1:3:0: ++%*2llb: -0b1111011:0:3: ++%2llb: -1:1:3:-1: ++%*2llb: -1:0:3: ++%2llb: -0B1:1:3:0: ++%*2llb: -0B1:0:3: ++%2llb: -0b1:1:3:0: ++%*2llb: -0b1:0:3: ++%2llb: -0:1:3:0: ++%*2llb: -0:0:3: ++%2llb: -0B0:1:3:0: ++%*2llb: -0B0:0:3: ++%2llb: -0b0:1:3:0: ++%*2llb: -0b0:0:3: ++%2llb: 0:1:2:0: ++%*2llb: 0:0:2: ++# BZ12701 %2llb: 0B0:0:-1: ++# BZ12701 %*2llb: 0B0:0:-1: ++# BZ12701 %2llb: 0b0:0:-1: ++# BZ12701 %*2llb: 0b0:0:-1: ++%2llb: 1:1:2:1: ++%*2llb: 1:0:2: ++# BZ12701 %2llb: 0B1:0:-1: ++# BZ12701 %*2llb: 0B1:0:-1: ++# BZ12701 %2llb: 0b1:0:-1: ++# BZ12701 %*2llb: 0b1:0:-1: ++%2llb: 101010:1:3:2: ++%*2llb: 101010:0:3: ++# BZ12701 %2llb: 0B101010:0:-1: ++# BZ12701 %*2llb: 0B101010:0:-1: ++# BZ12701 %2llb: 0b101010:0:-1: ++# BZ12701 %*2llb: 0b101010:0:-1: ++%2llb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: ++%*2llb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: ++# BZ12701 %2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2llb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: ++%*2llb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: ++# BZ12701 %2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2llb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: ++%*2llb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: ++# BZ12701 %2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb: +0:1:3:0: ++%*2llb: +0:0:3: ++%2llb: +0B0:1:3:0: ++%*2llb: +0B0:0:3: ++%2llb: +0b0:1:3:0: ++%*2llb: +0b0:0:3: ++%2llb: +1:1:3:1: ++%*2llb: +1:0:3: ++%2llb: +0B1:1:3:0: ++%*2llb: +0B1:0:3: ++%2llb: +0b1:1:3:0: ++%*2llb: +0b1:0:3: ++%2llb: +101010:1:3:1: ++%*2llb: +101010:0:3: ++%2llb: +0B101010:1:3:0: ++%*2llb: +0B101010:0:3: ++%2llb: +0b101010:1:3:0: ++%*2llb: +0b101010:0:3: ++%2llb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: ++%*2llb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: ++%*2llb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: ++%*2llb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25llb: :0:-1: ++%*25llb: :0:-1: ++%25llb: -1111011:1:9:-123: ++%*25llb: -1111011:0:9: ++%25llb: -0B1111011:1:11:-123: ++%*25llb: -0B1111011:0:11: ++%25llb: -0b1111011:1:11:-123: ++%*25llb: -0b1111011:0:11: ++%25llb: -1:1:3:-1: ++%*25llb: -1:0:3: ++%25llb: -0B1:1:5:-1: ++%*25llb: -0B1:0:5: ++%25llb: -0b1:1:5:-1: ++%*25llb: -0b1:0:5: ++%25llb: -0:1:3:0: ++%*25llb: -0:0:3: ++%25llb: -0B0:1:5:0: ++%*25llb: -0B0:0:5: ++%25llb: -0b0:1:5:0: ++%*25llb: -0b0:0:5: ++%25llb: 0:1:2:0: ++%*25llb: 0:0:2: ++%25llb: 0B0:1:4:0: ++%*25llb: 0B0:0:4: ++%25llb: 0b0:1:4:0: ++%*25llb: 0b0:0:4: ++%25llb: 1:1:2:1: ++%*25llb: 1:0:2: ++%25llb: 0B1:1:4:1: ++%*25llb: 0B1:0:4: ++%25llb: 0b1:1:4:1: ++%*25llb: 0b1:0:4: ++%25llb: 101010:1:7:42: ++%*25llb: 101010:0:7: ++%25llb: 0B101010:1:9:42: ++%*25llb: 0B101010:0:9: ++%25llb: 0b101010:1:9:42: ++%*25llb: 0b101010:0:9: ++%25llb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: ++%*25llb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: ++%*25llb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: ++%*25llb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0:1:3:0: ++%*25llb: +0:0:3: ++%25llb: +0B0:1:5:0: ++%*25llb: +0B0:0:5: ++%25llb: +0b0:1:5:0: ++%*25llb: +0b0:0:5: ++%25llb: +1:1:3:1: ++%*25llb: +1:0:3: ++%25llb: +0B1:1:5:1: ++%*25llb: +0B1:0:5: ++%25llb: +0b1:1:5:1: ++%*25llb: +0b1:0:5: ++%25llb: +101010:1:8:42: ++%*25llb: +101010:0:8: ++%25llb: +0B101010:1:10:42: ++%*25llb: +0B101010:0:10: ++%25llb: +0b101010:1:10:42: ++%*25llb: +0b101010:0:10: ++%25llb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: ++%*25llb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: ++%*25llb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: ++%*25llb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-ullong-o.input b/stdio-common/tst-scanf-format-ullong-o.input +new file mode 100644 +index 0000000000000000..98af9ced15bd9285 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-o.input +@@ -0,0 +1,434 @@ ++%llo::0:-1: ++%*llo::0:-1: ++%llo:-173:1:4:-123: ++%*llo:-173:0:4: ++%llo:-0173:1:5:-123: ++%*llo:-0173:0:5: ++%llo:-1:1:2:-1: ++%*llo:-1:0:2: ++%llo:-01:1:3:-1: ++%*llo:-01:0:3: ++%llo:-0:1:2:0: ++%*llo:-0:0:2: ++%llo:-00:1:3:0: ++%*llo:-00:0:3: ++%llo:0:1:1:0: ++%*llo:0:0:1: ++%llo:00:1:2:0: ++%*llo:00:0:2: ++%llo:1:1:1:1: ++%*llo:1:0:1: ++%llo:01:1:2:1: ++%*llo:01:0:2: ++%llo:52:1:2:42: ++%*llo:52:0:2: ++%llo:052:1:3:42: ++%*llo:052:0:3: ++%llo:1777777777777777777777:1:22:18446744073709551615: ++%*llo:1777777777777777777777:0:22: ++%llo:01777777777777777777777:1:23:18446744073709551615: ++%*llo:01777777777777777777777:0:23: ++%llo:2000000000000000000000:1:22:18446744073709551615: ++%*llo:2000000000000000000000:0:22: ++%llo:02000000000000000000000:1:23:18446744073709551615: ++%*llo:02000000000000000000000:0:23: ++%llo:2000000000000241653661:1:22:18446744073709551615: ++%*llo:2000000000000241653661:0:22: ++%llo:02000000000000241653661:1:23:18446744073709551615: ++%*llo:02000000000000241653661:0:23: ++%llo:+0:1:2:0: ++%*llo:+0:0:2: ++%llo:+00:1:3:0: ++%*llo:+00:0:3: ++%llo:+1:1:2:1: ++%*llo:+1:0:2: ++%llo:+01:1:3:1: ++%*llo:+01:0:3: ++%llo:+52:1:3:42: ++%*llo:+52:0:3: ++%llo:+052:1:4:42: ++%*llo:+052:0:4: ++%llo:+1777777777777777777777:1:23:18446744073709551615: ++%*llo:+1777777777777777777777:0:23: ++%llo:+01777777777777777777777:1:24:18446744073709551615: ++%*llo:+01777777777777777777777:0:24: ++%llo:+2000000000000000000000:1:23:18446744073709551615: ++%*llo:+2000000000000000000000:0:23: ++%llo:+02000000000000000000000:1:24:18446744073709551615: ++%*llo:+02000000000000000000000:0:24: ++%llo:+2000000000000241653661:1:23:18446744073709551615: ++%*llo:+2000000000000241653661:0:23: ++%llo:+02000000000000241653661:1:24:18446744073709551615: ++%*llo:+02000000000000241653661:0:24: ++%1llo::0:-1: ++%*1llo::0:-1: ++%1llo:-173:0:-1: ++%*1llo:-173:0:-1: ++%1llo:-0173:0:-1: ++%*1llo:-0173:0:-1: ++%1llo:-1:0:-1: ++%*1llo:-1:0:-1: ++%1llo:-01:0:-1: ++%*1llo:-01:0:-1: ++%1llo:-0:0:-1: ++%*1llo:-0:0:-1: ++%1llo:-00:0:-1: ++%*1llo:-00:0:-1: ++%1llo:0:1:1:0: ++%*1llo:0:0:1: ++%1llo:00:1:1:0: ++%*1llo:00:0:1: ++%1llo:1:1:1:1: ++%*1llo:1:0:1: ++%1llo:01:1:1:0: ++%*1llo:01:0:1: ++%1llo:52:1:1:5: ++%*1llo:52:0:1: ++%1llo:052:1:1:0: ++%*1llo:052:0:1: ++%1llo:1777777777777777777777:1:1:1: ++%*1llo:1777777777777777777777:0:1: ++%1llo:01777777777777777777777:1:1:0: ++%*1llo:01777777777777777777777:0:1: ++%1llo:2000000000000000000000:1:1:2: ++%*1llo:2000000000000000000000:0:1: ++%1llo:02000000000000000000000:1:1:0: ++%*1llo:02000000000000000000000:0:1: ++%1llo:2000000000000241653661:1:1:2: ++%*1llo:2000000000000241653661:0:1: ++%1llo:02000000000000241653661:1:1:0: ++%*1llo:02000000000000241653661:0:1: ++%1llo:+0:0:-1: ++%*1llo:+0:0:-1: ++%1llo:+00:0:-1: ++%*1llo:+00:0:-1: ++%1llo:+1:0:-1: ++%*1llo:+1:0:-1: ++%1llo:+01:0:-1: ++%*1llo:+01:0:-1: ++%1llo:+52:0:-1: ++%*1llo:+52:0:-1: ++%1llo:+052:0:-1: ++%*1llo:+052:0:-1: ++%1llo:+1777777777777777777777:0:-1: ++%*1llo:+1777777777777777777777:0:-1: ++%1llo:+01777777777777777777777:0:-1: ++%*1llo:+01777777777777777777777:0:-1: ++%1llo:+2000000000000000000000:0:-1: ++%*1llo:+2000000000000000000000:0:-1: ++%1llo:+02000000000000000000000:0:-1: ++%*1llo:+02000000000000000000000:0:-1: ++%1llo:+2000000000000241653661:0:-1: ++%*1llo:+2000000000000241653661:0:-1: ++%1llo:+02000000000000241653661:0:-1: ++%*1llo:+02000000000000241653661:0:-1: ++%2llo::0:-1: ++%*2llo::0:-1: ++%2llo:-173:1:2:-1: ++%*2llo:-173:0:2: ++%2llo:-0173:1:2:0: ++%*2llo:-0173:0:2: ++%2llo:-1:1:2:-1: ++%*2llo:-1:0:2: ++%2llo:-01:1:2:0: ++%*2llo:-01:0:2: ++%2llo:-0:1:2:0: ++%*2llo:-0:0:2: ++%2llo:-00:1:2:0: ++%*2llo:-00:0:2: ++%2llo:0:1:1:0: ++%*2llo:0:0:1: ++%2llo:00:1:2:0: ++%*2llo:00:0:2: ++%2llo:1:1:1:1: ++%*2llo:1:0:1: ++%2llo:01:1:2:1: ++%*2llo:01:0:2: ++%2llo:52:1:2:42: ++%*2llo:52:0:2: ++%2llo:052:1:2:5: ++%*2llo:052:0:2: ++%2llo:1777777777777777777777:1:2:15: ++%*2llo:1777777777777777777777:0:2: ++%2llo:01777777777777777777777:1:2:1: ++%*2llo:01777777777777777777777:0:2: ++%2llo:2000000000000000000000:1:2:16: ++%*2llo:2000000000000000000000:0:2: ++%2llo:02000000000000000000000:1:2:2: ++%*2llo:02000000000000000000000:0:2: ++%2llo:2000000000000241653661:1:2:16: ++%*2llo:2000000000000241653661:0:2: ++%2llo:02000000000000241653661:1:2:2: ++%*2llo:02000000000000241653661:0:2: ++%2llo:+0:1:2:0: ++%*2llo:+0:0:2: ++%2llo:+00:1:2:0: ++%*2llo:+00:0:2: ++%2llo:+1:1:2:1: ++%*2llo:+1:0:2: ++%2llo:+01:1:2:0: ++%*2llo:+01:0:2: ++%2llo:+52:1:2:5: ++%*2llo:+52:0:2: ++%2llo:+052:1:2:0: ++%*2llo:+052:0:2: ++%2llo:+1777777777777777777777:1:2:1: ++%*2llo:+1777777777777777777777:0:2: ++%2llo:+01777777777777777777777:1:2:0: ++%*2llo:+01777777777777777777777:0:2: ++%2llo:+2000000000000000000000:1:2:2: ++%*2llo:+2000000000000000000000:0:2: ++%2llo:+02000000000000000000000:1:2:0: ++%*2llo:+02000000000000000000000:0:2: ++%2llo:+2000000000000241653661:1:2:2: ++%*2llo:+2000000000000241653661:0:2: ++%2llo:+02000000000000241653661:1:2:0: ++%*2llo:+02000000000000241653661:0:2: ++%15llo::0:-1: ++%*15llo::0:-1: ++%15llo:-173:1:4:-123: ++%*15llo:-173:0:4: ++%15llo:-0173:1:5:-123: ++%*15llo:-0173:0:5: ++%15llo:-1:1:2:-1: ++%*15llo:-1:0:2: ++%15llo:-01:1:3:-1: ++%*15llo:-01:0:3: ++%15llo:-0:1:2:0: ++%*15llo:-0:0:2: ++%15llo:-00:1:3:0: ++%*15llo:-00:0:3: ++%15llo:0:1:1:0: ++%*15llo:0:0:1: ++%15llo:00:1:2:0: ++%*15llo:00:0:2: ++%15llo:1:1:1:1: ++%*15llo:1:0:1: ++%15llo:01:1:2:1: ++%*15llo:01:0:2: ++%15llo:52:1:2:42: ++%*15llo:52:0:2: ++%15llo:052:1:3:42: ++%*15llo:052:0:3: ++%15llo:1777777777777777777777:1:15:8796093022207: ++%*15llo:1777777777777777777777:0:15: ++%15llo:01777777777777777777777:1:15:1099511627775: ++%*15llo:01777777777777777777777:0:15: ++%15llo:2000000000000000000000:1:15:8796093022208: ++%*15llo:2000000000000000000000:0:15: ++%15llo:02000000000000000000000:1:15:1099511627776: ++%*15llo:02000000000000000000000:0:15: ++%15llo:2000000000000241653661:1:15:8796093022228: ++%*15llo:2000000000000241653661:0:15: ++%15llo:02000000000000241653661:1:15:1099511627778: ++%*15llo:02000000000000241653661:0:15: ++%15llo:+0:1:2:0: ++%*15llo:+0:0:2: ++%15llo:+00:1:3:0: ++%*15llo:+00:0:3: ++%15llo:+1:1:2:1: ++%*15llo:+1:0:2: ++%15llo:+01:1:3:1: ++%*15llo:+01:0:3: ++%15llo:+52:1:3:42: ++%*15llo:+52:0:3: ++%15llo:+052:1:4:42: ++%*15llo:+052:0:4: ++%15llo:+1777777777777777777777:1:15:1099511627775: ++%*15llo:+1777777777777777777777:0:15: ++%15llo:+01777777777777777777777:1:15:137438953471: ++%*15llo:+01777777777777777777777:0:15: ++%15llo:+2000000000000000000000:1:15:1099511627776: ++%*15llo:+2000000000000000000000:0:15: ++%15llo:+02000000000000000000000:1:15:137438953472: ++%*15llo:+02000000000000000000000:0:15: ++%15llo:+2000000000000241653661:1:15:1099511627778: ++%*15llo:+2000000000000241653661:0:15: ++%15llo:+02000000000000241653661:1:15:137438953472: ++%*15llo:+02000000000000241653661:0:15: ++%25llo::0:-1: ++%*25llo::0:-1: ++%25llo:-173:1:4:-123: ++%*25llo:-173:0:4: ++%25llo:-0173:1:5:-123: ++%*25llo:-0173:0:5: ++%25llo:-1:1:2:-1: ++%*25llo:-1:0:2: ++%25llo:-01:1:3:-1: ++%*25llo:-01:0:3: ++%25llo:-0:1:2:0: ++%*25llo:-0:0:2: ++%25llo:-00:1:3:0: ++%*25llo:-00:0:3: ++%25llo:0:1:1:0: ++%*25llo:0:0:1: ++%25llo:00:1:2:0: ++%*25llo:00:0:2: ++%25llo:1:1:1:1: ++%*25llo:1:0:1: ++%25llo:01:1:2:1: ++%*25llo:01:0:2: ++%25llo:52:1:2:42: ++%*25llo:52:0:2: ++%25llo:052:1:3:42: ++%*25llo:052:0:3: ++%25llo:1777777777777777777777:1:22:18446744073709551615: ++%*25llo:1777777777777777777777:0:22: ++%25llo:01777777777777777777777:1:23:18446744073709551615: ++%*25llo:01777777777777777777777:0:23: ++%25llo:2000000000000000000000:1:22:18446744073709551615: ++%*25llo:2000000000000000000000:0:22: ++%25llo:02000000000000000000000:1:23:18446744073709551615: ++%*25llo:02000000000000000000000:0:23: ++%25llo:2000000000000241653661:1:22:18446744073709551615: ++%*25llo:2000000000000241653661:0:22: ++%25llo:02000000000000241653661:1:23:18446744073709551615: ++%*25llo:02000000000000241653661:0:23: ++%25llo:+0:1:2:0: ++%*25llo:+0:0:2: ++%25llo:+00:1:3:0: ++%*25llo:+00:0:3: ++%25llo:+1:1:2:1: ++%*25llo:+1:0:2: ++%25llo:+01:1:3:1: ++%*25llo:+01:0:3: ++%25llo:+52:1:3:42: ++%*25llo:+52:0:3: ++%25llo:+052:1:4:42: ++%*25llo:+052:0:4: ++%25llo:+1777777777777777777777:1:23:18446744073709551615: ++%*25llo:+1777777777777777777777:0:23: ++%25llo:+01777777777777777777777:1:24:18446744073709551615: ++%*25llo:+01777777777777777777777:0:24: ++%25llo:+2000000000000000000000:1:23:18446744073709551615: ++%*25llo:+2000000000000000000000:0:23: ++%25llo:+02000000000000000000000:1:24:18446744073709551615: ++%*25llo:+02000000000000000000000:0:24: ++%25llo:+2000000000000241653661:1:23:18446744073709551615: ++%*25llo:+2000000000000241653661:0:23: ++%25llo:+02000000000000241653661:1:24:18446744073709551615: ++%*25llo:+02000000000000241653661:0:24: ++%2llo: :0:-1: ++%*2llo: :0:-1: ++%2llo: -173:1:3:-1: ++%*2llo: -173:0:3: ++%2llo: -0173:1:3:0: ++%*2llo: -0173:0:3: ++%2llo: -1:1:3:-1: ++%*2llo: -1:0:3: ++%2llo: -01:1:3:0: ++%*2llo: -01:0:3: ++%2llo: -0:1:3:0: ++%*2llo: -0:0:3: ++%2llo: -00:1:3:0: ++%*2llo: -00:0:3: ++%2llo: 0:1:2:0: ++%*2llo: 0:0:2: ++%2llo: 00:1:3:0: ++%*2llo: 00:0:3: ++%2llo: 1:1:2:1: ++%*2llo: 1:0:2: ++%2llo: 01:1:3:1: ++%*2llo: 01:0:3: ++%2llo: 52:1:3:42: ++%*2llo: 52:0:3: ++%2llo: 052:1:3:5: ++%*2llo: 052:0:3: ++%2llo: 1777777777777777777777:1:3:15: ++%*2llo: 1777777777777777777777:0:3: ++%2llo: 01777777777777777777777:1:3:1: ++%*2llo: 01777777777777777777777:0:3: ++%2llo: 2000000000000000000000:1:3:16: ++%*2llo: 2000000000000000000000:0:3: ++%2llo: 02000000000000000000000:1:3:2: ++%*2llo: 02000000000000000000000:0:3: ++%2llo: 2000000000000241653661:1:3:16: ++%*2llo: 2000000000000241653661:0:3: ++%2llo: 02000000000000241653661:1:3:2: ++%*2llo: 02000000000000241653661:0:3: ++%2llo: +0:1:3:0: ++%*2llo: +0:0:3: ++%2llo: +00:1:3:0: ++%*2llo: +00:0:3: ++%2llo: +1:1:3:1: ++%*2llo: +1:0:3: ++%2llo: +01:1:3:0: ++%*2llo: +01:0:3: ++%2llo: +52:1:3:5: ++%*2llo: +52:0:3: ++%2llo: +052:1:3:0: ++%*2llo: +052:0:3: ++%2llo: +1777777777777777777777:1:3:1: ++%*2llo: +1777777777777777777777:0:3: ++%2llo: +01777777777777777777777:1:3:0: ++%*2llo: +01777777777777777777777:0:3: ++%2llo: +2000000000000000000000:1:3:2: ++%*2llo: +2000000000000000000000:0:3: ++%2llo: +02000000000000000000000:1:3:0: ++%*2llo: +02000000000000000000000:0:3: ++%2llo: +2000000000000241653661:1:3:2: ++%*2llo: +2000000000000241653661:0:3: ++%2llo: +02000000000000241653661:1:3:0: ++%*2llo: +02000000000000241653661:0:3: ++%25llo: :0:-1: ++%*25llo: :0:-1: ++%25llo: -173:1:5:-123: ++%*25llo: -173:0:5: ++%25llo: -0173:1:6:-123: ++%*25llo: -0173:0:6: ++%25llo: -1:1:3:-1: ++%*25llo: -1:0:3: ++%25llo: -01:1:4:-1: ++%*25llo: -01:0:4: ++%25llo: -0:1:3:0: ++%*25llo: -0:0:3: ++%25llo: -00:1:4:0: ++%*25llo: -00:0:4: ++%25llo: 0:1:2:0: ++%*25llo: 0:0:2: ++%25llo: 00:1:3:0: ++%*25llo: 00:0:3: ++%25llo: 1:1:2:1: ++%*25llo: 1:0:2: ++%25llo: 01:1:3:1: ++%*25llo: 01:0:3: ++%25llo: 52:1:3:42: ++%*25llo: 52:0:3: ++%25llo: 052:1:4:42: ++%*25llo: 052:0:4: ++%25llo: 1777777777777777777777:1:23:18446744073709551615: ++%*25llo: 1777777777777777777777:0:23: ++%25llo: 01777777777777777777777:1:24:18446744073709551615: ++%*25llo: 01777777777777777777777:0:24: ++%25llo: 2000000000000000000000:1:23:18446744073709551615: ++%*25llo: 2000000000000000000000:0:23: ++%25llo: 02000000000000000000000:1:24:18446744073709551615: ++%*25llo: 02000000000000000000000:0:24: ++%25llo: 2000000000000241653661:1:23:18446744073709551615: ++%*25llo: 2000000000000241653661:0:23: ++%25llo: 02000000000000241653661:1:24:18446744073709551615: ++%*25llo: 02000000000000241653661:0:24: ++%25llo: +0:1:3:0: ++%*25llo: +0:0:3: ++%25llo: +00:1:4:0: ++%*25llo: +00:0:4: ++%25llo: +1:1:3:1: ++%*25llo: +1:0:3: ++%25llo: +01:1:4:1: ++%*25llo: +01:0:4: ++%25llo: +52:1:4:42: ++%*25llo: +52:0:4: ++%25llo: +052:1:5:42: ++%*25llo: +052:0:5: ++%25llo: +1777777777777777777777:1:24:18446744073709551615: ++%*25llo: +1777777777777777777777:0:24: ++%25llo: +01777777777777777777777:1:25:18446744073709551615: ++%*25llo: +01777777777777777777777:0:25: ++%25llo: +2000000000000000000000:1:24:18446744073709551615: ++%*25llo: +2000000000000000000000:0:24: ++%25llo: +02000000000000000000000:1:25:18446744073709551615: ++%*25llo: +02000000000000000000000:0:25: ++%25llo: +2000000000000241653661:1:24:18446744073709551615: ++%*25llo: +2000000000000241653661:0:24: ++%25llo: +02000000000000241653661:1:25:18446744073709551615: ++%*25llo: +02000000000000241653661:0:25: +diff --git a/stdio-common/tst-scanf-format-ullong-u.input b/stdio-common/tst-scanf-format-ullong-u.input +new file mode 100644 +index 0000000000000000..9260e70a5ffc93b7 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-u.input +@@ -0,0 +1,224 @@ ++%llu::0:-1: ++%*llu::0:-1: ++%llu:-123:1:4:18446744073709551493: ++%*llu:-123:0:4: ++%llu:-1:1:2:18446744073709551615: ++%*llu:-1:0:2: ++%llu:-0:1:2:0: ++%*llu:-0:0:2: ++%llu:0:1:1:0: ++%*llu:0:0:1: ++%llu:1:1:1:1: ++%*llu:1:0:1: ++%llu:42:1:2:42: ++%*llu:42:0:2: ++%llu:18446744073709551615:1:20:18446744073709551615: ++%*llu:18446744073709551615:0:20: ++%llu:18446744073709551616:1:20:18446744073709551615: ++%*llu:18446744073709551616:0:20: ++%llu:18446744073751975857:1:20:18446744073709551615: ++%*llu:18446744073751975857:0:20: ++%llu:+0:1:2:0: ++%*llu:+0:0:2: ++%llu:+1:1:2:1: ++%*llu:+1:0:2: ++%llu:+42:1:3:42: ++%*llu:+42:0:3: ++%llu:+18446744073709551615:1:21:18446744073709551615: ++%*llu:+18446744073709551615:0:21: ++%llu:+18446744073709551616:1:21:18446744073709551615: ++%*llu:+18446744073709551616:0:21: ++%llu:+18446744073751975857:1:21:18446744073709551615: ++%*llu:+18446744073751975857:0:21: ++%1llu::0:-1: ++%*1llu::0:-1: ++%1llu:-123:0:-1: ++%*1llu:-123:0:-1: ++%1llu:-1:0:-1: ++%*1llu:-1:0:-1: ++%1llu:-0:0:-1: ++%*1llu:-0:0:-1: ++%1llu:0:1:1:0: ++%*1llu:0:0:1: ++%1llu:1:1:1:1: ++%*1llu:1:0:1: ++%1llu:42:1:1:4: ++%*1llu:42:0:1: ++%1llu:18446744073709551615:1:1:1: ++%*1llu:18446744073709551615:0:1: ++%1llu:18446744073709551616:1:1:1: ++%*1llu:18446744073709551616:0:1: ++%1llu:18446744073751975857:1:1:1: ++%*1llu:18446744073751975857:0:1: ++%1llu:+0:0:-1: ++%*1llu:+0:0:-1: ++%1llu:+1:0:-1: ++%*1llu:+1:0:-1: ++%1llu:+42:0:-1: ++%*1llu:+42:0:-1: ++%1llu:+18446744073709551615:0:-1: ++%*1llu:+18446744073709551615:0:-1: ++%1llu:+18446744073709551616:0:-1: ++%*1llu:+18446744073709551616:0:-1: ++%1llu:+18446744073751975857:0:-1: ++%*1llu:+18446744073751975857:0:-1: ++%2llu::0:-1: ++%*2llu::0:-1: ++%2llu:-123:1:2:18446744073709551615: ++%*2llu:-123:0:2: ++%2llu:-1:1:2:18446744073709551615: ++%*2llu:-1:0:2: ++%2llu:-0:1:2:0: ++%*2llu:-0:0:2: ++%2llu:0:1:1:0: ++%*2llu:0:0:1: ++%2llu:1:1:1:1: ++%*2llu:1:0:1: ++%2llu:42:1:2:42: ++%*2llu:42:0:2: ++%2llu:18446744073709551615:1:2:18: ++%*2llu:18446744073709551615:0:2: ++%2llu:18446744073709551616:1:2:18: ++%*2llu:18446744073709551616:0:2: ++%2llu:18446744073751975857:1:2:18: ++%*2llu:18446744073751975857:0:2: ++%2llu:+0:1:2:0: ++%*2llu:+0:0:2: ++%2llu:+1:1:2:1: ++%*2llu:+1:0:2: ++%2llu:+42:1:2:4: ++%*2llu:+42:0:2: ++%2llu:+18446744073709551615:1:2:1: ++%*2llu:+18446744073709551615:0:2: ++%2llu:+18446744073709551616:1:2:1: ++%*2llu:+18446744073709551616:0:2: ++%2llu:+18446744073751975857:1:2:1: ++%*2llu:+18446744073751975857:0:2: ++%15llu::0:-1: ++%*15llu::0:-1: ++%15llu:-123:1:4:18446744073709551493: ++%*15llu:-123:0:4: ++%15llu:-1:1:2:18446744073709551615: ++%*15llu:-1:0:2: ++%15llu:-0:1:2:0: ++%*15llu:-0:0:2: ++%15llu:0:1:1:0: ++%*15llu:0:0:1: ++%15llu:1:1:1:1: ++%*15llu:1:0:1: ++%15llu:42:1:2:42: ++%*15llu:42:0:2: ++%15llu:18446744073709551615:1:15:184467440737095: ++%*15llu:18446744073709551615:0:15: ++%15llu:18446744073709551616:1:15:184467440737095: ++%*15llu:18446744073709551616:0:15: ++%15llu:18446744073751975857:1:15:184467440737519: ++%*15llu:18446744073751975857:0:15: ++%15llu:+0:1:2:0: ++%*15llu:+0:0:2: ++%15llu:+1:1:2:1: ++%*15llu:+1:0:2: ++%15llu:+42:1:3:42: ++%*15llu:+42:0:3: ++%15llu:+18446744073709551615:1:15:18446744073709: ++%*15llu:+18446744073709551615:0:15: ++%15llu:+18446744073709551616:1:15:18446744073709: ++%*15llu:+18446744073709551616:0:15: ++%15llu:+18446744073751975857:1:15:18446744073751: ++%*15llu:+18446744073751975857:0:15: ++%25llu::0:-1: ++%*25llu::0:-1: ++%25llu:-123:1:4:18446744073709551493: ++%*25llu:-123:0:4: ++%25llu:-1:1:2:18446744073709551615: ++%*25llu:-1:0:2: ++%25llu:-0:1:2:0: ++%*25llu:-0:0:2: ++%25llu:0:1:1:0: ++%*25llu:0:0:1: ++%25llu:1:1:1:1: ++%*25llu:1:0:1: ++%25llu:42:1:2:42: ++%*25llu:42:0:2: ++%25llu:18446744073709551615:1:20:18446744073709551615: ++%*25llu:18446744073709551615:0:20: ++%25llu:18446744073709551616:1:20:18446744073709551615: ++%*25llu:18446744073709551616:0:20: ++%25llu:18446744073751975857:1:20:18446744073709551615: ++%*25llu:18446744073751975857:0:20: ++%25llu:+0:1:2:0: ++%*25llu:+0:0:2: ++%25llu:+1:1:2:1: ++%*25llu:+1:0:2: ++%25llu:+42:1:3:42: ++%*25llu:+42:0:3: ++%25llu:+18446744073709551615:1:21:18446744073709551615: ++%*25llu:+18446744073709551615:0:21: ++%25llu:+18446744073709551616:1:21:18446744073709551615: ++%*25llu:+18446744073709551616:0:21: ++%25llu:+18446744073751975857:1:21:18446744073709551615: ++%*25llu:+18446744073751975857:0:21: ++%2llu: :0:-1: ++%*2llu: :0:-1: ++%2llu: -123:1:3:18446744073709551615: ++%*2llu: -123:0:3: ++%2llu: -1:1:3:18446744073709551615: ++%*2llu: -1:0:3: ++%2llu: -0:1:3:0: ++%*2llu: -0:0:3: ++%2llu: 0:1:2:0: ++%*2llu: 0:0:2: ++%2llu: 1:1:2:1: ++%*2llu: 1:0:2: ++%2llu: 42:1:3:42: ++%*2llu: 42:0:3: ++%2llu: 18446744073709551615:1:3:18: ++%*2llu: 18446744073709551615:0:3: ++%2llu: 18446744073709551616:1:3:18: ++%*2llu: 18446744073709551616:0:3: ++%2llu: 18446744073751975857:1:3:18: ++%*2llu: 18446744073751975857:0:3: ++%2llu: +0:1:3:0: ++%*2llu: +0:0:3: ++%2llu: +1:1:3:1: ++%*2llu: +1:0:3: ++%2llu: +42:1:3:4: ++%*2llu: +42:0:3: ++%2llu: +18446744073709551615:1:3:1: ++%*2llu: +18446744073709551615:0:3: ++%2llu: +18446744073709551616:1:3:1: ++%*2llu: +18446744073709551616:0:3: ++%2llu: +18446744073751975857:1:3:1: ++%*2llu: +18446744073751975857:0:3: ++%25llu: :0:-1: ++%*25llu: :0:-1: ++%25llu: -123:1:5:18446744073709551493: ++%*25llu: -123:0:5: ++%25llu: -1:1:3:18446744073709551615: ++%*25llu: -1:0:3: ++%25llu: -0:1:3:0: ++%*25llu: -0:0:3: ++%25llu: 0:1:2:0: ++%*25llu: 0:0:2: ++%25llu: 1:1:2:1: ++%*25llu: 1:0:2: ++%25llu: 42:1:3:42: ++%*25llu: 42:0:3: ++%25llu: 18446744073709551615:1:21:18446744073709551615: ++%*25llu: 18446744073709551615:0:21: ++%25llu: 18446744073709551616:1:21:18446744073709551615: ++%*25llu: 18446744073709551616:0:21: ++%25llu: 18446744073751975857:1:21:18446744073709551615: ++%*25llu: 18446744073751975857:0:21: ++%25llu: +0:1:3:0: ++%*25llu: +0:0:3: ++%25llu: +1:1:3:1: ++%*25llu: +1:0:3: ++%25llu: +42:1:4:42: ++%*25llu: +42:0:4: ++%25llu: +18446744073709551615:1:22:18446744073709551615: ++%*25llu: +18446744073709551615:0:22: ++%25llu: +18446744073709551616:1:22:18446744073709551615: ++%*25llu: +18446744073709551616:0:22: ++%25llu: +18446744073751975857:1:22:18446744073709551615: ++%*25llu: +18446744073751975857:0:22: +diff --git a/stdio-common/tst-scanf-format-ullong-x.input b/stdio-common/tst-scanf-format-ullong-x.input +new file mode 100644 +index 0000000000000000..5376bb858aa1532d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-x.input +@@ -0,0 +1,742 @@ ++%llx::0:-1: ++%*llx::0:-1: ++%llx:-7b:1:3:18446744073709551493: ++%*llx:-7b:0:3: ++%llx:-7B:1:3:18446744073709551493: ++%*llx:-7B:0:3: ++%llx:-0X7b:1:5:18446744073709551493: ++%*llx:-0X7b:0:5: ++%llx:-0x7B:1:5:18446744073709551493: ++%*llx:-0x7B:0:5: ++%llx:-1:1:2:18446744073709551615: ++%*llx:-1:0:2: ++%llx:-0X1:1:4:18446744073709551615: ++%*llx:-0X1:0:4: ++%llx:-0x1:1:4:18446744073709551615: ++%*llx:-0x1:0:4: ++%llx:-0:1:2:0: ++%*llx:-0:0:2: ++%llx:-0X0:1:4:0: ++%*llx:-0X0:0:4: ++%llx:-0x0:1:4:0: ++%*llx:-0x0:0:4: ++%llx:0:1:1:0: ++%*llx:0:0:1: ++%llx:0X0:1:3:0: ++%*llx:0X0:0:3: ++%llx:0x0:1:3:0: ++%*llx:0x0:0:3: ++%llx:1:1:1:1: ++%*llx:1:0:1: ++%llx:0X1:1:3:1: ++%*llx:0X1:0:3: ++%llx:0x1:1:3:1: ++%*llx:0x1:0:3: ++%llx:2a:1:2:42: ++%*llx:2a:0:2: ++%llx:2A:1:2:42: ++%*llx:2A:0:2: ++%llx:0X2a:1:4:42: ++%*llx:0X2a:0:4: ++%llx:0x2A:1:4:42: ++%*llx:0x2A:0:4: ++%llx:ffffffffffffffff:1:16:18446744073709551615: ++%*llx:ffffffffffffffff:0:16: ++%llx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*llx:FFFFFFFFFFFFFFFF:0:16: ++%llx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*llx:0Xffffffffffffffff:0:18: ++%llx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*llx:0xFFFFFFFFFFFFFFFF:0:18: ++%llx:10000000000000000:1:17:18446744073709551615: ++%*llx:10000000000000000:0:17: ++%llx:0X10000000000000000:1:19:18446744073709551615: ++%*llx:0X10000000000000000:0:19: ++%llx:0x10000000000000000:1:19:18446744073709551615: ++%*llx:0x10000000000000000:0:19: ++%llx:100000000028757b1:1:17:18446744073709551615: ++%*llx:100000000028757b1:0:17: ++%llx:100000000028757B1:1:17:18446744073709551615: ++%*llx:100000000028757B1:0:17: ++%llx:0X100000000028757b1:1:19:18446744073709551615: ++%*llx:0X100000000028757b1:0:19: ++%llx:0x100000000028757B1:1:19:18446744073709551615: ++%*llx:0x100000000028757B1:0:19: ++%llx:+0:1:2:0: ++%*llx:+0:0:2: ++%llx:+0X0:1:4:0: ++%*llx:+0X0:0:4: ++%llx:+0x0:1:4:0: ++%*llx:+0x0:0:4: ++%llx:+1:1:2:1: ++%*llx:+1:0:2: ++%llx:+0X1:1:4:1: ++%*llx:+0X1:0:4: ++%llx:+0x1:1:4:1: ++%*llx:+0x1:0:4: ++%llx:+2a:1:3:42: ++%*llx:+2a:0:3: ++%llx:+2A:1:3:42: ++%*llx:+2A:0:3: ++%llx:+0X2a:1:5:42: ++%*llx:+0X2a:0:5: ++%llx:+0x2A:1:5:42: ++%*llx:+0x2A:0:5: ++%llx:+ffffffffffffffff:1:17:18446744073709551615: ++%*llx:+ffffffffffffffff:0:17: ++%llx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*llx:+FFFFFFFFFFFFFFFF:0:17: ++%llx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*llx:+0Xffffffffffffffff:0:19: ++%llx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*llx:+0xFFFFFFFFFFFFFFFF:0:19: ++%llx:+10000000000000000:1:18:18446744073709551615: ++%*llx:+10000000000000000:0:18: ++%llx:+0X10000000000000000:1:20:18446744073709551615: ++%*llx:+0X10000000000000000:0:20: ++%llx:+0x10000000000000000:1:20:18446744073709551615: ++%*llx:+0x10000000000000000:0:20: ++%llx:+100000000028757b1:1:18:18446744073709551615: ++%*llx:+100000000028757b1:0:18: ++%llx:+100000000028757B1:1:18:18446744073709551615: ++%*llx:+100000000028757B1:0:18: ++%llx:+0X100000000028757b1:1:20:18446744073709551615: ++%*llx:+0X100000000028757b1:0:20: ++%llx:+0x100000000028757B1:1:20:18446744073709551615: ++%*llx:+0x100000000028757B1:0:20: ++%1llx::0:-1: ++%*1llx::0:-1: ++%1llx:-7b:0:-1: ++%*1llx:-7b:0:-1: ++%1llx:-7B:0:-1: ++%*1llx:-7B:0:-1: ++%1llx:-0X7b:0:-1: ++%*1llx:-0X7b:0:-1: ++%1llx:-0x7B:0:-1: ++%*1llx:-0x7B:0:-1: ++%1llx:-1:0:-1: ++%*1llx:-1:0:-1: ++%1llx:-0X1:0:-1: ++%*1llx:-0X1:0:-1: ++%1llx:-0x1:0:-1: ++%*1llx:-0x1:0:-1: ++%1llx:-0:0:-1: ++%*1llx:-0:0:-1: ++%1llx:-0X0:0:-1: ++%*1llx:-0X0:0:-1: ++%1llx:-0x0:0:-1: ++%*1llx:-0x0:0:-1: ++%1llx:0:1:1:0: ++%*1llx:0:0:1: ++%1llx:0X0:1:1:0: ++%*1llx:0X0:0:1: ++%1llx:0x0:1:1:0: ++%*1llx:0x0:0:1: ++%1llx:1:1:1:1: ++%*1llx:1:0:1: ++%1llx:0X1:1:1:0: ++%*1llx:0X1:0:1: ++%1llx:0x1:1:1:0: ++%*1llx:0x1:0:1: ++%1llx:2a:1:1:2: ++%*1llx:2a:0:1: ++%1llx:2A:1:1:2: ++%*1llx:2A:0:1: ++%1llx:0X2a:1:1:0: ++%*1llx:0X2a:0:1: ++%1llx:0x2A:1:1:0: ++%*1llx:0x2A:0:1: ++%1llx:ffffffffffffffff:1:1:15: ++%*1llx:ffffffffffffffff:0:1: ++%1llx:FFFFFFFFFFFFFFFF:1:1:15: ++%*1llx:FFFFFFFFFFFFFFFF:0:1: ++%1llx:0Xffffffffffffffff:1:1:0: ++%*1llx:0Xffffffffffffffff:0:1: ++%1llx:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1llx:0xFFFFFFFFFFFFFFFF:0:1: ++%1llx:10000000000000000:1:1:1: ++%*1llx:10000000000000000:0:1: ++%1llx:0X10000000000000000:1:1:0: ++%*1llx:0X10000000000000000:0:1: ++%1llx:0x10000000000000000:1:1:0: ++%*1llx:0x10000000000000000:0:1: ++%1llx:100000000028757b1:1:1:1: ++%*1llx:100000000028757b1:0:1: ++%1llx:100000000028757B1:1:1:1: ++%*1llx:100000000028757B1:0:1: ++%1llx:0X100000000028757b1:1:1:0: ++%*1llx:0X100000000028757b1:0:1: ++%1llx:0x100000000028757B1:1:1:0: ++%*1llx:0x100000000028757B1:0:1: ++%1llx:+0:0:-1: ++%*1llx:+0:0:-1: ++%1llx:+0X0:0:-1: ++%*1llx:+0X0:0:-1: ++%1llx:+0x0:0:-1: ++%*1llx:+0x0:0:-1: ++%1llx:+1:0:-1: ++%*1llx:+1:0:-1: ++%1llx:+0X1:0:-1: ++%*1llx:+0X1:0:-1: ++%1llx:+0x1:0:-1: ++%*1llx:+0x1:0:-1: ++%1llx:+2a:0:-1: ++%*1llx:+2a:0:-1: ++%1llx:+2A:0:-1: ++%*1llx:+2A:0:-1: ++%1llx:+0X2a:0:-1: ++%*1llx:+0X2a:0:-1: ++%1llx:+0x2A:0:-1: ++%*1llx:+0x2A:0:-1: ++%1llx:+ffffffffffffffff:0:-1: ++%*1llx:+ffffffffffffffff:0:-1: ++%1llx:+FFFFFFFFFFFFFFFF:0:-1: ++%*1llx:+FFFFFFFFFFFFFFFF:0:-1: ++%1llx:+0Xffffffffffffffff:0:-1: ++%*1llx:+0Xffffffffffffffff:0:-1: ++%1llx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1llx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1llx:+10000000000000000:0:-1: ++%*1llx:+10000000000000000:0:-1: ++%1llx:+0X10000000000000000:0:-1: ++%*1llx:+0X10000000000000000:0:-1: ++%1llx:+0x10000000000000000:0:-1: ++%*1llx:+0x10000000000000000:0:-1: ++%1llx:+100000000028757b1:0:-1: ++%*1llx:+100000000028757b1:0:-1: ++%1llx:+100000000028757B1:0:-1: ++%*1llx:+100000000028757B1:0:-1: ++%1llx:+0X100000000028757b1:0:-1: ++%*1llx:+0X100000000028757b1:0:-1: ++%1llx:+0x100000000028757B1:0:-1: ++%*1llx:+0x100000000028757B1:0:-1: ++%2llx::0:-1: ++%*2llx::0:-1: ++%2llx:-7b:1:2:18446744073709551609: ++%*2llx:-7b:0:2: ++%2llx:-7B:1:2:18446744073709551609: ++%*2llx:-7B:0:2: ++%2llx:-0X7b:1:2:0: ++%*2llx:-0X7b:0:2: ++%2llx:-0x7B:1:2:0: ++%*2llx:-0x7B:0:2: ++%2llx:-1:1:2:18446744073709551615: ++%*2llx:-1:0:2: ++%2llx:-0X1:1:2:0: ++%*2llx:-0X1:0:2: ++%2llx:-0x1:1:2:0: ++%*2llx:-0x1:0:2: ++%2llx:-0:1:2:0: ++%*2llx:-0:0:2: ++%2llx:-0X0:1:2:0: ++%*2llx:-0X0:0:2: ++%2llx:-0x0:1:2:0: ++%*2llx:-0x0:0:2: ++%2llx:0:1:1:0: ++%*2llx:0:0:1: ++# BZ12701 %2llx:0X0:0:-1: ++# BZ12701 %*2llx:0X0:0:-1: ++# BZ12701 %2llx:0x0:0:-1: ++# BZ12701 %*2llx:0x0:0:-1: ++%2llx:1:1:1:1: ++%*2llx:1:0:1: ++# BZ12701 %2llx:0X1:0:-1: ++# BZ12701 %*2llx:0X1:0:-1: ++# BZ12701 %2llx:0x1:0:-1: ++# BZ12701 %*2llx:0x1:0:-1: ++%2llx:2a:1:2:42: ++%*2llx:2a:0:2: ++%2llx:2A:1:2:42: ++%*2llx:2A:0:2: ++# BZ12701 %2llx:0X2a:0:-1: ++# BZ12701 %*2llx:0X2a:0:-1: ++# BZ12701 %2llx:0x2A:0:-1: ++# BZ12701 %*2llx:0x2A:0:-1: ++%2llx:ffffffffffffffff:1:2:255: ++%*2llx:ffffffffffffffff:0:2: ++%2llx:FFFFFFFFFFFFFFFF:1:2:255: ++%*2llx:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2llx:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llx:0Xffffffffffffffff:0:-1: ++# BZ12701 %2llx:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llx:0xFFFFFFFFFFFFFFFF:0:-1: ++%2llx:10000000000000000:1:2:16: ++%*2llx:10000000000000000:0:2: ++# BZ12701 %2llx:0X10000000000000000:0:-1: ++# BZ12701 %*2llx:0X10000000000000000:0:-1: ++# BZ12701 %2llx:0x10000000000000000:0:-1: ++# BZ12701 %*2llx:0x10000000000000000:0:-1: ++%2llx:100000000028757b1:1:2:16: ++%*2llx:100000000028757b1:0:2: ++%2llx:100000000028757B1:1:2:16: ++%*2llx:100000000028757B1:0:2: ++# BZ12701 %2llx:0X100000000028757b1:0:-1: ++# BZ12701 %*2llx:0X100000000028757b1:0:-1: ++# BZ12701 %2llx:0x100000000028757B1:0:-1: ++# BZ12701 %*2llx:0x100000000028757B1:0:-1: ++%2llx:+0:1:2:0: ++%*2llx:+0:0:2: ++%2llx:+0X0:1:2:0: ++%*2llx:+0X0:0:2: ++%2llx:+0x0:1:2:0: ++%*2llx:+0x0:0:2: ++%2llx:+1:1:2:1: ++%*2llx:+1:0:2: ++%2llx:+0X1:1:2:0: ++%*2llx:+0X1:0:2: ++%2llx:+0x1:1:2:0: ++%*2llx:+0x1:0:2: ++%2llx:+2a:1:2:2: ++%*2llx:+2a:0:2: ++%2llx:+2A:1:2:2: ++%*2llx:+2A:0:2: ++%2llx:+0X2a:1:2:0: ++%*2llx:+0X2a:0:2: ++%2llx:+0x2A:1:2:0: ++%*2llx:+0x2A:0:2: ++%2llx:+ffffffffffffffff:1:2:15: ++%*2llx:+ffffffffffffffff:0:2: ++%2llx:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2llx:+FFFFFFFFFFFFFFFF:0:2: ++%2llx:+0Xffffffffffffffff:1:2:0: ++%*2llx:+0Xffffffffffffffff:0:2: ++%2llx:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2llx:+0xFFFFFFFFFFFFFFFF:0:2: ++%2llx:+10000000000000000:1:2:1: ++%*2llx:+10000000000000000:0:2: ++%2llx:+0X10000000000000000:1:2:0: ++%*2llx:+0X10000000000000000:0:2: ++%2llx:+0x10000000000000000:1:2:0: ++%*2llx:+0x10000000000000000:0:2: ++%2llx:+100000000028757b1:1:2:1: ++%*2llx:+100000000028757b1:0:2: ++%2llx:+100000000028757B1:1:2:1: ++%*2llx:+100000000028757B1:0:2: ++%2llx:+0X100000000028757b1:1:2:0: ++%*2llx:+0X100000000028757b1:0:2: ++%2llx:+0x100000000028757B1:1:2:0: ++%*2llx:+0x100000000028757B1:0:2: ++%15llx::0:-1: ++%*15llx::0:-1: ++%15llx:-7b:1:3:18446744073709551493: ++%*15llx:-7b:0:3: ++%15llx:-7B:1:3:18446744073709551493: ++%*15llx:-7B:0:3: ++%15llx:-0X7b:1:5:18446744073709551493: ++%*15llx:-0X7b:0:5: ++%15llx:-0x7B:1:5:18446744073709551493: ++%*15llx:-0x7B:0:5: ++%15llx:-1:1:2:18446744073709551615: ++%*15llx:-1:0:2: ++%15llx:-0X1:1:4:18446744073709551615: ++%*15llx:-0X1:0:4: ++%15llx:-0x1:1:4:18446744073709551615: ++%*15llx:-0x1:0:4: ++%15llx:-0:1:2:0: ++%*15llx:-0:0:2: ++%15llx:-0X0:1:4:0: ++%*15llx:-0X0:0:4: ++%15llx:-0x0:1:4:0: ++%*15llx:-0x0:0:4: ++%15llx:0:1:1:0: ++%*15llx:0:0:1: ++%15llx:0X0:1:3:0: ++%*15llx:0X0:0:3: ++%15llx:0x0:1:3:0: ++%*15llx:0x0:0:3: ++%15llx:1:1:1:1: ++%*15llx:1:0:1: ++%15llx:0X1:1:3:1: ++%*15llx:0X1:0:3: ++%15llx:0x1:1:3:1: ++%*15llx:0x1:0:3: ++%15llx:2a:1:2:42: ++%*15llx:2a:0:2: ++%15llx:2A:1:2:42: ++%*15llx:2A:0:2: ++%15llx:0X2a:1:4:42: ++%*15llx:0X2a:0:4: ++%15llx:0x2A:1:4:42: ++%*15llx:0x2A:0:4: ++%15llx:ffffffffffffffff:1:15:1152921504606846975: ++%*15llx:ffffffffffffffff:0:15: ++%15llx:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15llx:FFFFFFFFFFFFFFFF:0:15: ++%15llx:0Xffffffffffffffff:1:15:4503599627370495: ++%*15llx:0Xffffffffffffffff:0:15: ++%15llx:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15llx:0xFFFFFFFFFFFFFFFF:0:15: ++%15llx:10000000000000000:1:15:72057594037927936: ++%*15llx:10000000000000000:0:15: ++%15llx:0X10000000000000000:1:15:281474976710656: ++%*15llx:0X10000000000000000:0:15: ++%15llx:0x10000000000000000:1:15:281474976710656: ++%*15llx:0x10000000000000000:0:15: ++%15llx:100000000028757b1:1:15:72057594038093655: ++%*15llx:100000000028757b1:0:15: ++%15llx:100000000028757B1:1:15:72057594038093655: ++%*15llx:100000000028757B1:0:15: ++%15llx:0X100000000028757b1:1:15:281474976711303: ++%*15llx:0X100000000028757b1:0:15: ++%15llx:0x100000000028757B1:1:15:281474976711303: ++%*15llx:0x100000000028757B1:0:15: ++%15llx:+0:1:2:0: ++%*15llx:+0:0:2: ++%15llx:+0X0:1:4:0: ++%*15llx:+0X0:0:4: ++%15llx:+0x0:1:4:0: ++%*15llx:+0x0:0:4: ++%15llx:+1:1:2:1: ++%*15llx:+1:0:2: ++%15llx:+0X1:1:4:1: ++%*15llx:+0X1:0:4: ++%15llx:+0x1:1:4:1: ++%*15llx:+0x1:0:4: ++%15llx:+2a:1:3:42: ++%*15llx:+2a:0:3: ++%15llx:+2A:1:3:42: ++%*15llx:+2A:0:3: ++%15llx:+0X2a:1:5:42: ++%*15llx:+0X2a:0:5: ++%15llx:+0x2A:1:5:42: ++%*15llx:+0x2A:0:5: ++%15llx:+ffffffffffffffff:1:15:72057594037927935: ++%*15llx:+ffffffffffffffff:0:15: ++%15llx:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15llx:+FFFFFFFFFFFFFFFF:0:15: ++%15llx:+0Xffffffffffffffff:1:15:281474976710655: ++%*15llx:+0Xffffffffffffffff:0:15: ++%15llx:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15llx:+0xFFFFFFFFFFFFFFFF:0:15: ++%15llx:+10000000000000000:1:15:4503599627370496: ++%*15llx:+10000000000000000:0:15: ++%15llx:+0X10000000000000000:1:15:17592186044416: ++%*15llx:+0X10000000000000000:0:15: ++%15llx:+0x10000000000000000:1:15:17592186044416: ++%*15llx:+0x10000000000000000:0:15: ++%15llx:+100000000028757b1:1:15:4503599627380853: ++%*15llx:+100000000028757b1:0:15: ++%15llx:+100000000028757B1:1:15:4503599627380853: ++%*15llx:+100000000028757B1:0:15: ++%15llx:+0X100000000028757b1:1:15:17592186044456: ++%*15llx:+0X100000000028757b1:0:15: ++%15llx:+0x100000000028757B1:1:15:17592186044456: ++%*15llx:+0x100000000028757B1:0:15: ++%25llx::0:-1: ++%*25llx::0:-1: ++%25llx:-7b:1:3:18446744073709551493: ++%*25llx:-7b:0:3: ++%25llx:-7B:1:3:18446744073709551493: ++%*25llx:-7B:0:3: ++%25llx:-0X7b:1:5:18446744073709551493: ++%*25llx:-0X7b:0:5: ++%25llx:-0x7B:1:5:18446744073709551493: ++%*25llx:-0x7B:0:5: ++%25llx:-1:1:2:18446744073709551615: ++%*25llx:-1:0:2: ++%25llx:-0X1:1:4:18446744073709551615: ++%*25llx:-0X1:0:4: ++%25llx:-0x1:1:4:18446744073709551615: ++%*25llx:-0x1:0:4: ++%25llx:-0:1:2:0: ++%*25llx:-0:0:2: ++%25llx:-0X0:1:4:0: ++%*25llx:-0X0:0:4: ++%25llx:-0x0:1:4:0: ++%*25llx:-0x0:0:4: ++%25llx:0:1:1:0: ++%*25llx:0:0:1: ++%25llx:0X0:1:3:0: ++%*25llx:0X0:0:3: ++%25llx:0x0:1:3:0: ++%*25llx:0x0:0:3: ++%25llx:1:1:1:1: ++%*25llx:1:0:1: ++%25llx:0X1:1:3:1: ++%*25llx:0X1:0:3: ++%25llx:0x1:1:3:1: ++%*25llx:0x1:0:3: ++%25llx:2a:1:2:42: ++%*25llx:2a:0:2: ++%25llx:2A:1:2:42: ++%*25llx:2A:0:2: ++%25llx:0X2a:1:4:42: ++%*25llx:0X2a:0:4: ++%25llx:0x2A:1:4:42: ++%*25llx:0x2A:0:4: ++%25llx:ffffffffffffffff:1:16:18446744073709551615: ++%*25llx:ffffffffffffffff:0:16: ++%25llx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25llx:FFFFFFFFFFFFFFFF:0:16: ++%25llx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25llx:0Xffffffffffffffff:0:18: ++%25llx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llx:0xFFFFFFFFFFFFFFFF:0:18: ++%25llx:10000000000000000:1:17:18446744073709551615: ++%*25llx:10000000000000000:0:17: ++%25llx:0X10000000000000000:1:19:18446744073709551615: ++%*25llx:0X10000000000000000:0:19: ++%25llx:0x10000000000000000:1:19:18446744073709551615: ++%*25llx:0x10000000000000000:0:19: ++%25llx:100000000028757b1:1:17:18446744073709551615: ++%*25llx:100000000028757b1:0:17: ++%25llx:100000000028757B1:1:17:18446744073709551615: ++%*25llx:100000000028757B1:0:17: ++%25llx:0X100000000028757b1:1:19:18446744073709551615: ++%*25llx:0X100000000028757b1:0:19: ++%25llx:0x100000000028757B1:1:19:18446744073709551615: ++%*25llx:0x100000000028757B1:0:19: ++%25llx:+0:1:2:0: ++%*25llx:+0:0:2: ++%25llx:+0X0:1:4:0: ++%*25llx:+0X0:0:4: ++%25llx:+0x0:1:4:0: ++%*25llx:+0x0:0:4: ++%25llx:+1:1:2:1: ++%*25llx:+1:0:2: ++%25llx:+0X1:1:4:1: ++%*25llx:+0X1:0:4: ++%25llx:+0x1:1:4:1: ++%*25llx:+0x1:0:4: ++%25llx:+2a:1:3:42: ++%*25llx:+2a:0:3: ++%25llx:+2A:1:3:42: ++%*25llx:+2A:0:3: ++%25llx:+0X2a:1:5:42: ++%*25llx:+0X2a:0:5: ++%25llx:+0x2A:1:5:42: ++%*25llx:+0x2A:0:5: ++%25llx:+ffffffffffffffff:1:17:18446744073709551615: ++%*25llx:+ffffffffffffffff:0:17: ++%25llx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llx:+FFFFFFFFFFFFFFFF:0:17: ++%25llx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llx:+0Xffffffffffffffff:0:19: ++%25llx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llx:+0xFFFFFFFFFFFFFFFF:0:19: ++%25llx:+10000000000000000:1:18:18446744073709551615: ++%*25llx:+10000000000000000:0:18: ++%25llx:+0X10000000000000000:1:20:18446744073709551615: ++%*25llx:+0X10000000000000000:0:20: ++%25llx:+0x10000000000000000:1:20:18446744073709551615: ++%*25llx:+0x10000000000000000:0:20: ++%25llx:+100000000028757b1:1:18:18446744073709551615: ++%*25llx:+100000000028757b1:0:18: ++%25llx:+100000000028757B1:1:18:18446744073709551615: ++%*25llx:+100000000028757B1:0:18: ++%25llx:+0X100000000028757b1:1:20:18446744073709551615: ++%*25llx:+0X100000000028757b1:0:20: ++%25llx:+0x100000000028757B1:1:20:18446744073709551615: ++%*25llx:+0x100000000028757B1:0:20: ++%2llx: :0:-1: ++%*2llx: :0:-1: ++%2llx: -7b:1:3:18446744073709551609: ++%*2llx: -7b:0:3: ++%2llx: -7B:1:3:18446744073709551609: ++%*2llx: -7B:0:3: ++%2llx: -0X7b:1:3:0: ++%*2llx: -0X7b:0:3: ++%2llx: -0x7B:1:3:0: ++%*2llx: -0x7B:0:3: ++%2llx: -1:1:3:18446744073709551615: ++%*2llx: -1:0:3: ++%2llx: -0X1:1:3:0: ++%*2llx: -0X1:0:3: ++%2llx: -0x1:1:3:0: ++%*2llx: -0x1:0:3: ++%2llx: -0:1:3:0: ++%*2llx: -0:0:3: ++%2llx: -0X0:1:3:0: ++%*2llx: -0X0:0:3: ++%2llx: -0x0:1:3:0: ++%*2llx: -0x0:0:3: ++%2llx: 0:1:2:0: ++%*2llx: 0:0:2: ++# BZ12701 %2llx: 0X0:0:-1: ++# BZ12701 %*2llx: 0X0:0:-1: ++# BZ12701 %2llx: 0x0:0:-1: ++# BZ12701 %*2llx: 0x0:0:-1: ++%2llx: 1:1:2:1: ++%*2llx: 1:0:2: ++# BZ12701 %2llx: 0X1:0:-1: ++# BZ12701 %*2llx: 0X1:0:-1: ++# BZ12701 %2llx: 0x1:0:-1: ++# BZ12701 %*2llx: 0x1:0:-1: ++%2llx: 2a:1:3:42: ++%*2llx: 2a:0:3: ++%2llx: 2A:1:3:42: ++%*2llx: 2A:0:3: ++# BZ12701 %2llx: 0X2a:0:-1: ++# BZ12701 %*2llx: 0X2a:0:-1: ++# BZ12701 %2llx: 0x2A:0:-1: ++# BZ12701 %*2llx: 0x2A:0:-1: ++%2llx: ffffffffffffffff:1:3:255: ++%*2llx: ffffffffffffffff:0:3: ++%2llx: FFFFFFFFFFFFFFFF:1:3:255: ++%*2llx: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2llx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2llx: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llx: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2llx: 10000000000000000:1:3:16: ++%*2llx: 10000000000000000:0:3: ++# BZ12701 %2llx: 0X10000000000000000:0:-1: ++# BZ12701 %*2llx: 0X10000000000000000:0:-1: ++# BZ12701 %2llx: 0x10000000000000000:0:-1: ++# BZ12701 %*2llx: 0x10000000000000000:0:-1: ++%2llx: 100000000028757b1:1:3:16: ++%*2llx: 100000000028757b1:0:3: ++%2llx: 100000000028757B1:1:3:16: ++%*2llx: 100000000028757B1:0:3: ++# BZ12701 %2llx: 0X100000000028757b1:0:-1: ++# BZ12701 %*2llx: 0X100000000028757b1:0:-1: ++# BZ12701 %2llx: 0x100000000028757B1:0:-1: ++# BZ12701 %*2llx: 0x100000000028757B1:0:-1: ++%2llx: +0:1:3:0: ++%*2llx: +0:0:3: ++%2llx: +0X0:1:3:0: ++%*2llx: +0X0:0:3: ++%2llx: +0x0:1:3:0: ++%*2llx: +0x0:0:3: ++%2llx: +1:1:3:1: ++%*2llx: +1:0:3: ++%2llx: +0X1:1:3:0: ++%*2llx: +0X1:0:3: ++%2llx: +0x1:1:3:0: ++%*2llx: +0x1:0:3: ++%2llx: +2a:1:3:2: ++%*2llx: +2a:0:3: ++%2llx: +2A:1:3:2: ++%*2llx: +2A:0:3: ++%2llx: +0X2a:1:3:0: ++%*2llx: +0X2a:0:3: ++%2llx: +0x2A:1:3:0: ++%*2llx: +0x2A:0:3: ++%2llx: +ffffffffffffffff:1:3:15: ++%*2llx: +ffffffffffffffff:0:3: ++%2llx: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2llx: +FFFFFFFFFFFFFFFF:0:3: ++%2llx: +0Xffffffffffffffff:1:3:0: ++%*2llx: +0Xffffffffffffffff:0:3: ++%2llx: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2llx: +0xFFFFFFFFFFFFFFFF:0:3: ++%2llx: +10000000000000000:1:3:1: ++%*2llx: +10000000000000000:0:3: ++%2llx: +0X10000000000000000:1:3:0: ++%*2llx: +0X10000000000000000:0:3: ++%2llx: +0x10000000000000000:1:3:0: ++%*2llx: +0x10000000000000000:0:3: ++%2llx: +100000000028757b1:1:3:1: ++%*2llx: +100000000028757b1:0:3: ++%2llx: +100000000028757B1:1:3:1: ++%*2llx: +100000000028757B1:0:3: ++%2llx: +0X100000000028757b1:1:3:0: ++%*2llx: +0X100000000028757b1:0:3: ++%2llx: +0x100000000028757B1:1:3:0: ++%*2llx: +0x100000000028757B1:0:3: ++%25llx: :0:-1: ++%*25llx: :0:-1: ++%25llx: -7b:1:4:18446744073709551493: ++%*25llx: -7b:0:4: ++%25llx: -7B:1:4:18446744073709551493: ++%*25llx: -7B:0:4: ++%25llx: -0X7b:1:6:18446744073709551493: ++%*25llx: -0X7b:0:6: ++%25llx: -0x7B:1:6:18446744073709551493: ++%*25llx: -0x7B:0:6: ++%25llx: -1:1:3:18446744073709551615: ++%*25llx: -1:0:3: ++%25llx: -0X1:1:5:18446744073709551615: ++%*25llx: -0X1:0:5: ++%25llx: -0x1:1:5:18446744073709551615: ++%*25llx: -0x1:0:5: ++%25llx: -0:1:3:0: ++%*25llx: -0:0:3: ++%25llx: -0X0:1:5:0: ++%*25llx: -0X0:0:5: ++%25llx: -0x0:1:5:0: ++%*25llx: -0x0:0:5: ++%25llx: 0:1:2:0: ++%*25llx: 0:0:2: ++%25llx: 0X0:1:4:0: ++%*25llx: 0X0:0:4: ++%25llx: 0x0:1:4:0: ++%*25llx: 0x0:0:4: ++%25llx: 1:1:2:1: ++%*25llx: 1:0:2: ++%25llx: 0X1:1:4:1: ++%*25llx: 0X1:0:4: ++%25llx: 0x1:1:4:1: ++%*25llx: 0x1:0:4: ++%25llx: 2a:1:3:42: ++%*25llx: 2a:0:3: ++%25llx: 2A:1:3:42: ++%*25llx: 2A:0:3: ++%25llx: 0X2a:1:5:42: ++%*25llx: 0X2a:0:5: ++%25llx: 0x2A:1:5:42: ++%*25llx: 0x2A:0:5: ++%25llx: ffffffffffffffff:1:17:18446744073709551615: ++%*25llx: ffffffffffffffff:0:17: ++%25llx: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llx: FFFFFFFFFFFFFFFF:0:17: ++%25llx: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llx: 0Xffffffffffffffff:0:19: ++%25llx: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llx: 0xFFFFFFFFFFFFFFFF:0:19: ++%25llx: 10000000000000000:1:18:18446744073709551615: ++%*25llx: 10000000000000000:0:18: ++%25llx: 0X10000000000000000:1:20:18446744073709551615: ++%*25llx: 0X10000000000000000:0:20: ++%25llx: 0x10000000000000000:1:20:18446744073709551615: ++%*25llx: 0x10000000000000000:0:20: ++%25llx: 100000000028757b1:1:18:18446744073709551615: ++%*25llx: 100000000028757b1:0:18: ++%25llx: 100000000028757B1:1:18:18446744073709551615: ++%*25llx: 100000000028757B1:0:18: ++%25llx: 0X100000000028757b1:1:20:18446744073709551615: ++%*25llx: 0X100000000028757b1:0:20: ++%25llx: 0x100000000028757B1:1:20:18446744073709551615: ++%*25llx: 0x100000000028757B1:0:20: ++%25llx: +0:1:3:0: ++%*25llx: +0:0:3: ++%25llx: +0X0:1:5:0: ++%*25llx: +0X0:0:5: ++%25llx: +0x0:1:5:0: ++%*25llx: +0x0:0:5: ++%25llx: +1:1:3:1: ++%*25llx: +1:0:3: ++%25llx: +0X1:1:5:1: ++%*25llx: +0X1:0:5: ++%25llx: +0x1:1:5:1: ++%*25llx: +0x1:0:5: ++%25llx: +2a:1:4:42: ++%*25llx: +2a:0:4: ++%25llx: +2A:1:4:42: ++%*25llx: +2A:0:4: ++%25llx: +0X2a:1:6:42: ++%*25llx: +0X2a:0:6: ++%25llx: +0x2A:1:6:42: ++%*25llx: +0x2A:0:6: ++%25llx: +ffffffffffffffff:1:18:18446744073709551615: ++%*25llx: +ffffffffffffffff:0:18: ++%25llx: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llx: +FFFFFFFFFFFFFFFF:0:18: ++%25llx: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25llx: +0Xffffffffffffffff:0:20: ++%25llx: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25llx: +0xFFFFFFFFFFFFFFFF:0:20: ++%25llx: +10000000000000000:1:19:18446744073709551615: ++%*25llx: +10000000000000000:0:19: ++%25llx: +0X10000000000000000:1:21:18446744073709551615: ++%*25llx: +0X10000000000000000:0:21: ++%25llx: +0x10000000000000000:1:21:18446744073709551615: ++%*25llx: +0x10000000000000000:0:21: ++%25llx: +100000000028757b1:1:19:18446744073709551615: ++%*25llx: +100000000028757b1:0:19: ++%25llx: +100000000028757B1:1:19:18446744073709551615: ++%*25llx: +100000000028757B1:0:19: ++%25llx: +0X100000000028757b1:1:21:18446744073709551615: ++%*25llx: +0X100000000028757b1:0:21: ++%25llx: +0x100000000028757B1:1:21:18446744073709551615: ++%*25llx: +0x100000000028757B1:0:21: +diff --git a/stdio-common/tst-scanf-format-ullong-xx.input b/stdio-common/tst-scanf-format-ullong-xx.input +new file mode 100644 +index 0000000000000000..0964651177a09563 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-xx.input +@@ -0,0 +1,742 @@ ++%llX::0:-1: ++%*llX::0:-1: ++%llX:-7b:1:3:18446744073709551493: ++%*llX:-7b:0:3: ++%llX:-7B:1:3:18446744073709551493: ++%*llX:-7B:0:3: ++%llX:-0X7b:1:5:18446744073709551493: ++%*llX:-0X7b:0:5: ++%llX:-0x7B:1:5:18446744073709551493: ++%*llX:-0x7B:0:5: ++%llX:-1:1:2:18446744073709551615: ++%*llX:-1:0:2: ++%llX:-0X1:1:4:18446744073709551615: ++%*llX:-0X1:0:4: ++%llX:-0x1:1:4:18446744073709551615: ++%*llX:-0x1:0:4: ++%llX:-0:1:2:0: ++%*llX:-0:0:2: ++%llX:-0X0:1:4:0: ++%*llX:-0X0:0:4: ++%llX:-0x0:1:4:0: ++%*llX:-0x0:0:4: ++%llX:0:1:1:0: ++%*llX:0:0:1: ++%llX:0X0:1:3:0: ++%*llX:0X0:0:3: ++%llX:0x0:1:3:0: ++%*llX:0x0:0:3: ++%llX:1:1:1:1: ++%*llX:1:0:1: ++%llX:0X1:1:3:1: ++%*llX:0X1:0:3: ++%llX:0x1:1:3:1: ++%*llX:0x1:0:3: ++%llX:2a:1:2:42: ++%*llX:2a:0:2: ++%llX:2A:1:2:42: ++%*llX:2A:0:2: ++%llX:0X2a:1:4:42: ++%*llX:0X2a:0:4: ++%llX:0x2A:1:4:42: ++%*llX:0x2A:0:4: ++%llX:ffffffffffffffff:1:16:18446744073709551615: ++%*llX:ffffffffffffffff:0:16: ++%llX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*llX:FFFFFFFFFFFFFFFF:0:16: ++%llX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*llX:0Xffffffffffffffff:0:18: ++%llX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*llX:0xFFFFFFFFFFFFFFFF:0:18: ++%llX:10000000000000000:1:17:18446744073709551615: ++%*llX:10000000000000000:0:17: ++%llX:0X10000000000000000:1:19:18446744073709551615: ++%*llX:0X10000000000000000:0:19: ++%llX:0x10000000000000000:1:19:18446744073709551615: ++%*llX:0x10000000000000000:0:19: ++%llX:100000000028757b1:1:17:18446744073709551615: ++%*llX:100000000028757b1:0:17: ++%llX:100000000028757B1:1:17:18446744073709551615: ++%*llX:100000000028757B1:0:17: ++%llX:0X100000000028757b1:1:19:18446744073709551615: ++%*llX:0X100000000028757b1:0:19: ++%llX:0x100000000028757B1:1:19:18446744073709551615: ++%*llX:0x100000000028757B1:0:19: ++%llX:+0:1:2:0: ++%*llX:+0:0:2: ++%llX:+0X0:1:4:0: ++%*llX:+0X0:0:4: ++%llX:+0x0:1:4:0: ++%*llX:+0x0:0:4: ++%llX:+1:1:2:1: ++%*llX:+1:0:2: ++%llX:+0X1:1:4:1: ++%*llX:+0X1:0:4: ++%llX:+0x1:1:4:1: ++%*llX:+0x1:0:4: ++%llX:+2a:1:3:42: ++%*llX:+2a:0:3: ++%llX:+2A:1:3:42: ++%*llX:+2A:0:3: ++%llX:+0X2a:1:5:42: ++%*llX:+0X2a:0:5: ++%llX:+0x2A:1:5:42: ++%*llX:+0x2A:0:5: ++%llX:+ffffffffffffffff:1:17:18446744073709551615: ++%*llX:+ffffffffffffffff:0:17: ++%llX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*llX:+FFFFFFFFFFFFFFFF:0:17: ++%llX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*llX:+0Xffffffffffffffff:0:19: ++%llX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*llX:+0xFFFFFFFFFFFFFFFF:0:19: ++%llX:+10000000000000000:1:18:18446744073709551615: ++%*llX:+10000000000000000:0:18: ++%llX:+0X10000000000000000:1:20:18446744073709551615: ++%*llX:+0X10000000000000000:0:20: ++%llX:+0x10000000000000000:1:20:18446744073709551615: ++%*llX:+0x10000000000000000:0:20: ++%llX:+100000000028757b1:1:18:18446744073709551615: ++%*llX:+100000000028757b1:0:18: ++%llX:+100000000028757B1:1:18:18446744073709551615: ++%*llX:+100000000028757B1:0:18: ++%llX:+0X100000000028757b1:1:20:18446744073709551615: ++%*llX:+0X100000000028757b1:0:20: ++%llX:+0x100000000028757B1:1:20:18446744073709551615: ++%*llX:+0x100000000028757B1:0:20: ++%1llX::0:-1: ++%*1llX::0:-1: ++%1llX:-7b:0:-1: ++%*1llX:-7b:0:-1: ++%1llX:-7B:0:-1: ++%*1llX:-7B:0:-1: ++%1llX:-0X7b:0:-1: ++%*1llX:-0X7b:0:-1: ++%1llX:-0x7B:0:-1: ++%*1llX:-0x7B:0:-1: ++%1llX:-1:0:-1: ++%*1llX:-1:0:-1: ++%1llX:-0X1:0:-1: ++%*1llX:-0X1:0:-1: ++%1llX:-0x1:0:-1: ++%*1llX:-0x1:0:-1: ++%1llX:-0:0:-1: ++%*1llX:-0:0:-1: ++%1llX:-0X0:0:-1: ++%*1llX:-0X0:0:-1: ++%1llX:-0x0:0:-1: ++%*1llX:-0x0:0:-1: ++%1llX:0:1:1:0: ++%*1llX:0:0:1: ++%1llX:0X0:1:1:0: ++%*1llX:0X0:0:1: ++%1llX:0x0:1:1:0: ++%*1llX:0x0:0:1: ++%1llX:1:1:1:1: ++%*1llX:1:0:1: ++%1llX:0X1:1:1:0: ++%*1llX:0X1:0:1: ++%1llX:0x1:1:1:0: ++%*1llX:0x1:0:1: ++%1llX:2a:1:1:2: ++%*1llX:2a:0:1: ++%1llX:2A:1:1:2: ++%*1llX:2A:0:1: ++%1llX:0X2a:1:1:0: ++%*1llX:0X2a:0:1: ++%1llX:0x2A:1:1:0: ++%*1llX:0x2A:0:1: ++%1llX:ffffffffffffffff:1:1:15: ++%*1llX:ffffffffffffffff:0:1: ++%1llX:FFFFFFFFFFFFFFFF:1:1:15: ++%*1llX:FFFFFFFFFFFFFFFF:0:1: ++%1llX:0Xffffffffffffffff:1:1:0: ++%*1llX:0Xffffffffffffffff:0:1: ++%1llX:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1llX:0xFFFFFFFFFFFFFFFF:0:1: ++%1llX:10000000000000000:1:1:1: ++%*1llX:10000000000000000:0:1: ++%1llX:0X10000000000000000:1:1:0: ++%*1llX:0X10000000000000000:0:1: ++%1llX:0x10000000000000000:1:1:0: ++%*1llX:0x10000000000000000:0:1: ++%1llX:100000000028757b1:1:1:1: ++%*1llX:100000000028757b1:0:1: ++%1llX:100000000028757B1:1:1:1: ++%*1llX:100000000028757B1:0:1: ++%1llX:0X100000000028757b1:1:1:0: ++%*1llX:0X100000000028757b1:0:1: ++%1llX:0x100000000028757B1:1:1:0: ++%*1llX:0x100000000028757B1:0:1: ++%1llX:+0:0:-1: ++%*1llX:+0:0:-1: ++%1llX:+0X0:0:-1: ++%*1llX:+0X0:0:-1: ++%1llX:+0x0:0:-1: ++%*1llX:+0x0:0:-1: ++%1llX:+1:0:-1: ++%*1llX:+1:0:-1: ++%1llX:+0X1:0:-1: ++%*1llX:+0X1:0:-1: ++%1llX:+0x1:0:-1: ++%*1llX:+0x1:0:-1: ++%1llX:+2a:0:-1: ++%*1llX:+2a:0:-1: ++%1llX:+2A:0:-1: ++%*1llX:+2A:0:-1: ++%1llX:+0X2a:0:-1: ++%*1llX:+0X2a:0:-1: ++%1llX:+0x2A:0:-1: ++%*1llX:+0x2A:0:-1: ++%1llX:+ffffffffffffffff:0:-1: ++%*1llX:+ffffffffffffffff:0:-1: ++%1llX:+FFFFFFFFFFFFFFFF:0:-1: ++%*1llX:+FFFFFFFFFFFFFFFF:0:-1: ++%1llX:+0Xffffffffffffffff:0:-1: ++%*1llX:+0Xffffffffffffffff:0:-1: ++%1llX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1llX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1llX:+10000000000000000:0:-1: ++%*1llX:+10000000000000000:0:-1: ++%1llX:+0X10000000000000000:0:-1: ++%*1llX:+0X10000000000000000:0:-1: ++%1llX:+0x10000000000000000:0:-1: ++%*1llX:+0x10000000000000000:0:-1: ++%1llX:+100000000028757b1:0:-1: ++%*1llX:+100000000028757b1:0:-1: ++%1llX:+100000000028757B1:0:-1: ++%*1llX:+100000000028757B1:0:-1: ++%1llX:+0X100000000028757b1:0:-1: ++%*1llX:+0X100000000028757b1:0:-1: ++%1llX:+0x100000000028757B1:0:-1: ++%*1llX:+0x100000000028757B1:0:-1: ++%2llX::0:-1: ++%*2llX::0:-1: ++%2llX:-7b:1:2:18446744073709551609: ++%*2llX:-7b:0:2: ++%2llX:-7B:1:2:18446744073709551609: ++%*2llX:-7B:0:2: ++%2llX:-0X7b:1:2:0: ++%*2llX:-0X7b:0:2: ++%2llX:-0x7B:1:2:0: ++%*2llX:-0x7B:0:2: ++%2llX:-1:1:2:18446744073709551615: ++%*2llX:-1:0:2: ++%2llX:-0X1:1:2:0: ++%*2llX:-0X1:0:2: ++%2llX:-0x1:1:2:0: ++%*2llX:-0x1:0:2: ++%2llX:-0:1:2:0: ++%*2llX:-0:0:2: ++%2llX:-0X0:1:2:0: ++%*2llX:-0X0:0:2: ++%2llX:-0x0:1:2:0: ++%*2llX:-0x0:0:2: ++%2llX:0:1:1:0: ++%*2llX:0:0:1: ++# BZ12701 %2llX:0X0:0:-1: ++# BZ12701 %*2llX:0X0:0:-1: ++# BZ12701 %2llX:0x0:0:-1: ++# BZ12701 %*2llX:0x0:0:-1: ++%2llX:1:1:1:1: ++%*2llX:1:0:1: ++# BZ12701 %2llX:0X1:0:-1: ++# BZ12701 %*2llX:0X1:0:-1: ++# BZ12701 %2llX:0x1:0:-1: ++# BZ12701 %*2llX:0x1:0:-1: ++%2llX:2a:1:2:42: ++%*2llX:2a:0:2: ++%2llX:2A:1:2:42: ++%*2llX:2A:0:2: ++# BZ12701 %2llX:0X2a:0:-1: ++# BZ12701 %*2llX:0X2a:0:-1: ++# BZ12701 %2llX:0x2A:0:-1: ++# BZ12701 %*2llX:0x2A:0:-1: ++%2llX:ffffffffffffffff:1:2:255: ++%*2llX:ffffffffffffffff:0:2: ++%2llX:FFFFFFFFFFFFFFFF:1:2:255: ++%*2llX:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2llX:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llX:0Xffffffffffffffff:0:-1: ++# BZ12701 %2llX:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llX:0xFFFFFFFFFFFFFFFF:0:-1: ++%2llX:10000000000000000:1:2:16: ++%*2llX:10000000000000000:0:2: ++# BZ12701 %2llX:0X10000000000000000:0:-1: ++# BZ12701 %*2llX:0X10000000000000000:0:-1: ++# BZ12701 %2llX:0x10000000000000000:0:-1: ++# BZ12701 %*2llX:0x10000000000000000:0:-1: ++%2llX:100000000028757b1:1:2:16: ++%*2llX:100000000028757b1:0:2: ++%2llX:100000000028757B1:1:2:16: ++%*2llX:100000000028757B1:0:2: ++# BZ12701 %2llX:0X100000000028757b1:0:-1: ++# BZ12701 %*2llX:0X100000000028757b1:0:-1: ++# BZ12701 %2llX:0x100000000028757B1:0:-1: ++# BZ12701 %*2llX:0x100000000028757B1:0:-1: ++%2llX:+0:1:2:0: ++%*2llX:+0:0:2: ++%2llX:+0X0:1:2:0: ++%*2llX:+0X0:0:2: ++%2llX:+0x0:1:2:0: ++%*2llX:+0x0:0:2: ++%2llX:+1:1:2:1: ++%*2llX:+1:0:2: ++%2llX:+0X1:1:2:0: ++%*2llX:+0X1:0:2: ++%2llX:+0x1:1:2:0: ++%*2llX:+0x1:0:2: ++%2llX:+2a:1:2:2: ++%*2llX:+2a:0:2: ++%2llX:+2A:1:2:2: ++%*2llX:+2A:0:2: ++%2llX:+0X2a:1:2:0: ++%*2llX:+0X2a:0:2: ++%2llX:+0x2A:1:2:0: ++%*2llX:+0x2A:0:2: ++%2llX:+ffffffffffffffff:1:2:15: ++%*2llX:+ffffffffffffffff:0:2: ++%2llX:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2llX:+FFFFFFFFFFFFFFFF:0:2: ++%2llX:+0Xffffffffffffffff:1:2:0: ++%*2llX:+0Xffffffffffffffff:0:2: ++%2llX:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2llX:+0xFFFFFFFFFFFFFFFF:0:2: ++%2llX:+10000000000000000:1:2:1: ++%*2llX:+10000000000000000:0:2: ++%2llX:+0X10000000000000000:1:2:0: ++%*2llX:+0X10000000000000000:0:2: ++%2llX:+0x10000000000000000:1:2:0: ++%*2llX:+0x10000000000000000:0:2: ++%2llX:+100000000028757b1:1:2:1: ++%*2llX:+100000000028757b1:0:2: ++%2llX:+100000000028757B1:1:2:1: ++%*2llX:+100000000028757B1:0:2: ++%2llX:+0X100000000028757b1:1:2:0: ++%*2llX:+0X100000000028757b1:0:2: ++%2llX:+0x100000000028757B1:1:2:0: ++%*2llX:+0x100000000028757B1:0:2: ++%15llX::0:-1: ++%*15llX::0:-1: ++%15llX:-7b:1:3:18446744073709551493: ++%*15llX:-7b:0:3: ++%15llX:-7B:1:3:18446744073709551493: ++%*15llX:-7B:0:3: ++%15llX:-0X7b:1:5:18446744073709551493: ++%*15llX:-0X7b:0:5: ++%15llX:-0x7B:1:5:18446744073709551493: ++%*15llX:-0x7B:0:5: ++%15llX:-1:1:2:18446744073709551615: ++%*15llX:-1:0:2: ++%15llX:-0X1:1:4:18446744073709551615: ++%*15llX:-0X1:0:4: ++%15llX:-0x1:1:4:18446744073709551615: ++%*15llX:-0x1:0:4: ++%15llX:-0:1:2:0: ++%*15llX:-0:0:2: ++%15llX:-0X0:1:4:0: ++%*15llX:-0X0:0:4: ++%15llX:-0x0:1:4:0: ++%*15llX:-0x0:0:4: ++%15llX:0:1:1:0: ++%*15llX:0:0:1: ++%15llX:0X0:1:3:0: ++%*15llX:0X0:0:3: ++%15llX:0x0:1:3:0: ++%*15llX:0x0:0:3: ++%15llX:1:1:1:1: ++%*15llX:1:0:1: ++%15llX:0X1:1:3:1: ++%*15llX:0X1:0:3: ++%15llX:0x1:1:3:1: ++%*15llX:0x1:0:3: ++%15llX:2a:1:2:42: ++%*15llX:2a:0:2: ++%15llX:2A:1:2:42: ++%*15llX:2A:0:2: ++%15llX:0X2a:1:4:42: ++%*15llX:0X2a:0:4: ++%15llX:0x2A:1:4:42: ++%*15llX:0x2A:0:4: ++%15llX:ffffffffffffffff:1:15:1152921504606846975: ++%*15llX:ffffffffffffffff:0:15: ++%15llX:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15llX:FFFFFFFFFFFFFFFF:0:15: ++%15llX:0Xffffffffffffffff:1:15:4503599627370495: ++%*15llX:0Xffffffffffffffff:0:15: ++%15llX:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15llX:0xFFFFFFFFFFFFFFFF:0:15: ++%15llX:10000000000000000:1:15:72057594037927936: ++%*15llX:10000000000000000:0:15: ++%15llX:0X10000000000000000:1:15:281474976710656: ++%*15llX:0X10000000000000000:0:15: ++%15llX:0x10000000000000000:1:15:281474976710656: ++%*15llX:0x10000000000000000:0:15: ++%15llX:100000000028757b1:1:15:72057594038093655: ++%*15llX:100000000028757b1:0:15: ++%15llX:100000000028757B1:1:15:72057594038093655: ++%*15llX:100000000028757B1:0:15: ++%15llX:0X100000000028757b1:1:15:281474976711303: ++%*15llX:0X100000000028757b1:0:15: ++%15llX:0x100000000028757B1:1:15:281474976711303: ++%*15llX:0x100000000028757B1:0:15: ++%15llX:+0:1:2:0: ++%*15llX:+0:0:2: ++%15llX:+0X0:1:4:0: ++%*15llX:+0X0:0:4: ++%15llX:+0x0:1:4:0: ++%*15llX:+0x0:0:4: ++%15llX:+1:1:2:1: ++%*15llX:+1:0:2: ++%15llX:+0X1:1:4:1: ++%*15llX:+0X1:0:4: ++%15llX:+0x1:1:4:1: ++%*15llX:+0x1:0:4: ++%15llX:+2a:1:3:42: ++%*15llX:+2a:0:3: ++%15llX:+2A:1:3:42: ++%*15llX:+2A:0:3: ++%15llX:+0X2a:1:5:42: ++%*15llX:+0X2a:0:5: ++%15llX:+0x2A:1:5:42: ++%*15llX:+0x2A:0:5: ++%15llX:+ffffffffffffffff:1:15:72057594037927935: ++%*15llX:+ffffffffffffffff:0:15: ++%15llX:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15llX:+FFFFFFFFFFFFFFFF:0:15: ++%15llX:+0Xffffffffffffffff:1:15:281474976710655: ++%*15llX:+0Xffffffffffffffff:0:15: ++%15llX:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15llX:+0xFFFFFFFFFFFFFFFF:0:15: ++%15llX:+10000000000000000:1:15:4503599627370496: ++%*15llX:+10000000000000000:0:15: ++%15llX:+0X10000000000000000:1:15:17592186044416: ++%*15llX:+0X10000000000000000:0:15: ++%15llX:+0x10000000000000000:1:15:17592186044416: ++%*15llX:+0x10000000000000000:0:15: ++%15llX:+100000000028757b1:1:15:4503599627380853: ++%*15llX:+100000000028757b1:0:15: ++%15llX:+100000000028757B1:1:15:4503599627380853: ++%*15llX:+100000000028757B1:0:15: ++%15llX:+0X100000000028757b1:1:15:17592186044456: ++%*15llX:+0X100000000028757b1:0:15: ++%15llX:+0x100000000028757B1:1:15:17592186044456: ++%*15llX:+0x100000000028757B1:0:15: ++%25llX::0:-1: ++%*25llX::0:-1: ++%25llX:-7b:1:3:18446744073709551493: ++%*25llX:-7b:0:3: ++%25llX:-7B:1:3:18446744073709551493: ++%*25llX:-7B:0:3: ++%25llX:-0X7b:1:5:18446744073709551493: ++%*25llX:-0X7b:0:5: ++%25llX:-0x7B:1:5:18446744073709551493: ++%*25llX:-0x7B:0:5: ++%25llX:-1:1:2:18446744073709551615: ++%*25llX:-1:0:2: ++%25llX:-0X1:1:4:18446744073709551615: ++%*25llX:-0X1:0:4: ++%25llX:-0x1:1:4:18446744073709551615: ++%*25llX:-0x1:0:4: ++%25llX:-0:1:2:0: ++%*25llX:-0:0:2: ++%25llX:-0X0:1:4:0: ++%*25llX:-0X0:0:4: ++%25llX:-0x0:1:4:0: ++%*25llX:-0x0:0:4: ++%25llX:0:1:1:0: ++%*25llX:0:0:1: ++%25llX:0X0:1:3:0: ++%*25llX:0X0:0:3: ++%25llX:0x0:1:3:0: ++%*25llX:0x0:0:3: ++%25llX:1:1:1:1: ++%*25llX:1:0:1: ++%25llX:0X1:1:3:1: ++%*25llX:0X1:0:3: ++%25llX:0x1:1:3:1: ++%*25llX:0x1:0:3: ++%25llX:2a:1:2:42: ++%*25llX:2a:0:2: ++%25llX:2A:1:2:42: ++%*25llX:2A:0:2: ++%25llX:0X2a:1:4:42: ++%*25llX:0X2a:0:4: ++%25llX:0x2A:1:4:42: ++%*25llX:0x2A:0:4: ++%25llX:ffffffffffffffff:1:16:18446744073709551615: ++%*25llX:ffffffffffffffff:0:16: ++%25llX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25llX:FFFFFFFFFFFFFFFF:0:16: ++%25llX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25llX:0Xffffffffffffffff:0:18: ++%25llX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llX:0xFFFFFFFFFFFFFFFF:0:18: ++%25llX:10000000000000000:1:17:18446744073709551615: ++%*25llX:10000000000000000:0:17: ++%25llX:0X10000000000000000:1:19:18446744073709551615: ++%*25llX:0X10000000000000000:0:19: ++%25llX:0x10000000000000000:1:19:18446744073709551615: ++%*25llX:0x10000000000000000:0:19: ++%25llX:100000000028757b1:1:17:18446744073709551615: ++%*25llX:100000000028757b1:0:17: ++%25llX:100000000028757B1:1:17:18446744073709551615: ++%*25llX:100000000028757B1:0:17: ++%25llX:0X100000000028757b1:1:19:18446744073709551615: ++%*25llX:0X100000000028757b1:0:19: ++%25llX:0x100000000028757B1:1:19:18446744073709551615: ++%*25llX:0x100000000028757B1:0:19: ++%25llX:+0:1:2:0: ++%*25llX:+0:0:2: ++%25llX:+0X0:1:4:0: ++%*25llX:+0X0:0:4: ++%25llX:+0x0:1:4:0: ++%*25llX:+0x0:0:4: ++%25llX:+1:1:2:1: ++%*25llX:+1:0:2: ++%25llX:+0X1:1:4:1: ++%*25llX:+0X1:0:4: ++%25llX:+0x1:1:4:1: ++%*25llX:+0x1:0:4: ++%25llX:+2a:1:3:42: ++%*25llX:+2a:0:3: ++%25llX:+2A:1:3:42: ++%*25llX:+2A:0:3: ++%25llX:+0X2a:1:5:42: ++%*25llX:+0X2a:0:5: ++%25llX:+0x2A:1:5:42: ++%*25llX:+0x2A:0:5: ++%25llX:+ffffffffffffffff:1:17:18446744073709551615: ++%*25llX:+ffffffffffffffff:0:17: ++%25llX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llX:+FFFFFFFFFFFFFFFF:0:17: ++%25llX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llX:+0Xffffffffffffffff:0:19: ++%25llX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llX:+0xFFFFFFFFFFFFFFFF:0:19: ++%25llX:+10000000000000000:1:18:18446744073709551615: ++%*25llX:+10000000000000000:0:18: ++%25llX:+0X10000000000000000:1:20:18446744073709551615: ++%*25llX:+0X10000000000000000:0:20: ++%25llX:+0x10000000000000000:1:20:18446744073709551615: ++%*25llX:+0x10000000000000000:0:20: ++%25llX:+100000000028757b1:1:18:18446744073709551615: ++%*25llX:+100000000028757b1:0:18: ++%25llX:+100000000028757B1:1:18:18446744073709551615: ++%*25llX:+100000000028757B1:0:18: ++%25llX:+0X100000000028757b1:1:20:18446744073709551615: ++%*25llX:+0X100000000028757b1:0:20: ++%25llX:+0x100000000028757B1:1:20:18446744073709551615: ++%*25llX:+0x100000000028757B1:0:20: ++%2llX: :0:-1: ++%*2llX: :0:-1: ++%2llX: -7b:1:3:18446744073709551609: ++%*2llX: -7b:0:3: ++%2llX: -7B:1:3:18446744073709551609: ++%*2llX: -7B:0:3: ++%2llX: -0X7b:1:3:0: ++%*2llX: -0X7b:0:3: ++%2llX: -0x7B:1:3:0: ++%*2llX: -0x7B:0:3: ++%2llX: -1:1:3:18446744073709551615: ++%*2llX: -1:0:3: ++%2llX: -0X1:1:3:0: ++%*2llX: -0X1:0:3: ++%2llX: -0x1:1:3:0: ++%*2llX: -0x1:0:3: ++%2llX: -0:1:3:0: ++%*2llX: -0:0:3: ++%2llX: -0X0:1:3:0: ++%*2llX: -0X0:0:3: ++%2llX: -0x0:1:3:0: ++%*2llX: -0x0:0:3: ++%2llX: 0:1:2:0: ++%*2llX: 0:0:2: ++# BZ12701 %2llX: 0X0:0:-1: ++# BZ12701 %*2llX: 0X0:0:-1: ++# BZ12701 %2llX: 0x0:0:-1: ++# BZ12701 %*2llX: 0x0:0:-1: ++%2llX: 1:1:2:1: ++%*2llX: 1:0:2: ++# BZ12701 %2llX: 0X1:0:-1: ++# BZ12701 %*2llX: 0X1:0:-1: ++# BZ12701 %2llX: 0x1:0:-1: ++# BZ12701 %*2llX: 0x1:0:-1: ++%2llX: 2a:1:3:42: ++%*2llX: 2a:0:3: ++%2llX: 2A:1:3:42: ++%*2llX: 2A:0:3: ++# BZ12701 %2llX: 0X2a:0:-1: ++# BZ12701 %*2llX: 0X2a:0:-1: ++# BZ12701 %2llX: 0x2A:0:-1: ++# BZ12701 %*2llX: 0x2A:0:-1: ++%2llX: ffffffffffffffff:1:3:255: ++%*2llX: ffffffffffffffff:0:3: ++%2llX: FFFFFFFFFFFFFFFF:1:3:255: ++%*2llX: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2llX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2llX: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llX: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2llX: 10000000000000000:1:3:16: ++%*2llX: 10000000000000000:0:3: ++# BZ12701 %2llX: 0X10000000000000000:0:-1: ++# BZ12701 %*2llX: 0X10000000000000000:0:-1: ++# BZ12701 %2llX: 0x10000000000000000:0:-1: ++# BZ12701 %*2llX: 0x10000000000000000:0:-1: ++%2llX: 100000000028757b1:1:3:16: ++%*2llX: 100000000028757b1:0:3: ++%2llX: 100000000028757B1:1:3:16: ++%*2llX: 100000000028757B1:0:3: ++# BZ12701 %2llX: 0X100000000028757b1:0:-1: ++# BZ12701 %*2llX: 0X100000000028757b1:0:-1: ++# BZ12701 %2llX: 0x100000000028757B1:0:-1: ++# BZ12701 %*2llX: 0x100000000028757B1:0:-1: ++%2llX: +0:1:3:0: ++%*2llX: +0:0:3: ++%2llX: +0X0:1:3:0: ++%*2llX: +0X0:0:3: ++%2llX: +0x0:1:3:0: ++%*2llX: +0x0:0:3: ++%2llX: +1:1:3:1: ++%*2llX: +1:0:3: ++%2llX: +0X1:1:3:0: ++%*2llX: +0X1:0:3: ++%2llX: +0x1:1:3:0: ++%*2llX: +0x1:0:3: ++%2llX: +2a:1:3:2: ++%*2llX: +2a:0:3: ++%2llX: +2A:1:3:2: ++%*2llX: +2A:0:3: ++%2llX: +0X2a:1:3:0: ++%*2llX: +0X2a:0:3: ++%2llX: +0x2A:1:3:0: ++%*2llX: +0x2A:0:3: ++%2llX: +ffffffffffffffff:1:3:15: ++%*2llX: +ffffffffffffffff:0:3: ++%2llX: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2llX: +FFFFFFFFFFFFFFFF:0:3: ++%2llX: +0Xffffffffffffffff:1:3:0: ++%*2llX: +0Xffffffffffffffff:0:3: ++%2llX: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2llX: +0xFFFFFFFFFFFFFFFF:0:3: ++%2llX: +10000000000000000:1:3:1: ++%*2llX: +10000000000000000:0:3: ++%2llX: +0X10000000000000000:1:3:0: ++%*2llX: +0X10000000000000000:0:3: ++%2llX: +0x10000000000000000:1:3:0: ++%*2llX: +0x10000000000000000:0:3: ++%2llX: +100000000028757b1:1:3:1: ++%*2llX: +100000000028757b1:0:3: ++%2llX: +100000000028757B1:1:3:1: ++%*2llX: +100000000028757B1:0:3: ++%2llX: +0X100000000028757b1:1:3:0: ++%*2llX: +0X100000000028757b1:0:3: ++%2llX: +0x100000000028757B1:1:3:0: ++%*2llX: +0x100000000028757B1:0:3: ++%25llX: :0:-1: ++%*25llX: :0:-1: ++%25llX: -7b:1:4:18446744073709551493: ++%*25llX: -7b:0:4: ++%25llX: -7B:1:4:18446744073709551493: ++%*25llX: -7B:0:4: ++%25llX: -0X7b:1:6:18446744073709551493: ++%*25llX: -0X7b:0:6: ++%25llX: -0x7B:1:6:18446744073709551493: ++%*25llX: -0x7B:0:6: ++%25llX: -1:1:3:18446744073709551615: ++%*25llX: -1:0:3: ++%25llX: -0X1:1:5:18446744073709551615: ++%*25llX: -0X1:0:5: ++%25llX: -0x1:1:5:18446744073709551615: ++%*25llX: -0x1:0:5: ++%25llX: -0:1:3:0: ++%*25llX: -0:0:3: ++%25llX: -0X0:1:5:0: ++%*25llX: -0X0:0:5: ++%25llX: -0x0:1:5:0: ++%*25llX: -0x0:0:5: ++%25llX: 0:1:2:0: ++%*25llX: 0:0:2: ++%25llX: 0X0:1:4:0: ++%*25llX: 0X0:0:4: ++%25llX: 0x0:1:4:0: ++%*25llX: 0x0:0:4: ++%25llX: 1:1:2:1: ++%*25llX: 1:0:2: ++%25llX: 0X1:1:4:1: ++%*25llX: 0X1:0:4: ++%25llX: 0x1:1:4:1: ++%*25llX: 0x1:0:4: ++%25llX: 2a:1:3:42: ++%*25llX: 2a:0:3: ++%25llX: 2A:1:3:42: ++%*25llX: 2A:0:3: ++%25llX: 0X2a:1:5:42: ++%*25llX: 0X2a:0:5: ++%25llX: 0x2A:1:5:42: ++%*25llX: 0x2A:0:5: ++%25llX: ffffffffffffffff:1:17:18446744073709551615: ++%*25llX: ffffffffffffffff:0:17: ++%25llX: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llX: FFFFFFFFFFFFFFFF:0:17: ++%25llX: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llX: 0Xffffffffffffffff:0:19: ++%25llX: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llX: 0xFFFFFFFFFFFFFFFF:0:19: ++%25llX: 10000000000000000:1:18:18446744073709551615: ++%*25llX: 10000000000000000:0:18: ++%25llX: 0X10000000000000000:1:20:18446744073709551615: ++%*25llX: 0X10000000000000000:0:20: ++%25llX: 0x10000000000000000:1:20:18446744073709551615: ++%*25llX: 0x10000000000000000:0:20: ++%25llX: 100000000028757b1:1:18:18446744073709551615: ++%*25llX: 100000000028757b1:0:18: ++%25llX: 100000000028757B1:1:18:18446744073709551615: ++%*25llX: 100000000028757B1:0:18: ++%25llX: 0X100000000028757b1:1:20:18446744073709551615: ++%*25llX: 0X100000000028757b1:0:20: ++%25llX: 0x100000000028757B1:1:20:18446744073709551615: ++%*25llX: 0x100000000028757B1:0:20: ++%25llX: +0:1:3:0: ++%*25llX: +0:0:3: ++%25llX: +0X0:1:5:0: ++%*25llX: +0X0:0:5: ++%25llX: +0x0:1:5:0: ++%*25llX: +0x0:0:5: ++%25llX: +1:1:3:1: ++%*25llX: +1:0:3: ++%25llX: +0X1:1:5:1: ++%*25llX: +0X1:0:5: ++%25llX: +0x1:1:5:1: ++%*25llX: +0x1:0:5: ++%25llX: +2a:1:4:42: ++%*25llX: +2a:0:4: ++%25llX: +2A:1:4:42: ++%*25llX: +2A:0:4: ++%25llX: +0X2a:1:6:42: ++%*25llX: +0X2a:0:6: ++%25llX: +0x2A:1:6:42: ++%*25llX: +0x2A:0:6: ++%25llX: +ffffffffffffffff:1:18:18446744073709551615: ++%*25llX: +ffffffffffffffff:0:18: ++%25llX: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llX: +FFFFFFFFFFFFFFFF:0:18: ++%25llX: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25llX: +0Xffffffffffffffff:0:20: ++%25llX: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25llX: +0xFFFFFFFFFFFFFFFF:0:20: ++%25llX: +10000000000000000:1:19:18446744073709551615: ++%*25llX: +10000000000000000:0:19: ++%25llX: +0X10000000000000000:1:21:18446744073709551615: ++%*25llX: +0X10000000000000000:0:21: ++%25llX: +0x10000000000000000:1:21:18446744073709551615: ++%*25llX: +0x10000000000000000:0:21: ++%25llX: +100000000028757b1:1:19:18446744073709551615: ++%*25llX: +100000000028757b1:0:19: ++%25llX: +100000000028757B1:1:19:18446744073709551615: ++%*25llX: +100000000028757B1:0:19: ++%25llX: +0X100000000028757b1:1:21:18446744073709551615: ++%*25llX: +0X100000000028757b1:0:21: ++%25llX: +0x100000000028757B1:1:21:18446744073709551615: ++%*25llX: +0x100000000028757B1:0:21: +diff --git a/stdio-common/tst-scanf-format-ushort-b.input b/stdio-common/tst-scanf-format-ushort-b.input +new file mode 100644 +index 0000000000000000..b41a66763a09a962 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-b.input +@@ -0,0 +1,644 @@ ++%hb::0:-1: ++%*hb::0:-1: ++%hb:-1111011:1:8:65413: ++%*hb:-1111011:0:8: ++%hb:-0B1111011:1:10:65413: ++%*hb:-0B1111011:0:10: ++%hb:-0b1111011:1:10:65413: ++%*hb:-0b1111011:0:10: ++%hb:-1:1:2:65535: ++%*hb:-1:0:2: ++%hb:-0B1:1:4:65535: ++%*hb:-0B1:0:4: ++%hb:-0b1:1:4:65535: ++%*hb:-0b1:0:4: ++%hb:-0:1:2:0: ++%*hb:-0:0:2: ++%hb:-0B0:1:4:0: ++%*hb:-0B0:0:4: ++%hb:-0b0:1:4:0: ++%*hb:-0b0:0:4: ++%hb:0:1:1:0: ++%*hb:0:0:1: ++%hb:0B0:1:3:0: ++%*hb:0B0:0:3: ++%hb:0b0:1:3:0: ++%*hb:0b0:0:3: ++%hb:1:1:1:1: ++%*hb:1:0:1: ++%hb:0B1:1:3:1: ++%*hb:0B1:0:3: ++%hb:0b1:1:3:1: ++%*hb:0b1:0:3: ++%hb:101010:1:6:42: ++%*hb:101010:0:6: ++%hb:0B101010:1:8:42: ++%*hb:0B101010:0:8: ++%hb:0b101010:1:8:42: ++%*hb:0b101010:0:8: ++%hb:1111111111111111:1:16:65535: ++%*hb:1111111111111111:0:16: ++%hb:0B1111111111111111:1:18:65535: ++%*hb:0B1111111111111111:0:18: ++%hb:0b1111111111111111:1:18:65535: ++%*hb:0b1111111111111111:0:18: ++%hb:10000000000000000:1:17:0: ++%*hb:10000000000000000:0:17: ++%hb:0B10000000000000000:1:19:0: ++%*hb:0B10000000000000000:0:19: ++%hb:0b10000000000000000:1:19:0: ++%*hb:0b10000000000000000:0:19: ++%hb:10000000000101001:1:17:41: ++%*hb:10000000000101001:0:17: ++%hb:0B10000000000101001:1:19:41: ++%*hb:0B10000000000101001:0:19: ++%hb:0b10000000000101001:1:19:41: ++%*hb:0b10000000000101001:0:19: ++%hb:+0:1:2:0: ++%*hb:+0:0:2: ++%hb:+0B0:1:4:0: ++%*hb:+0B0:0:4: ++%hb:+0b0:1:4:0: ++%*hb:+0b0:0:4: ++%hb:+1:1:2:1: ++%*hb:+1:0:2: ++%hb:+0B1:1:4:1: ++%*hb:+0B1:0:4: ++%hb:+0b1:1:4:1: ++%*hb:+0b1:0:4: ++%hb:+101010:1:7:42: ++%*hb:+101010:0:7: ++%hb:+0B101010:1:9:42: ++%*hb:+0B101010:0:9: ++%hb:+0b101010:1:9:42: ++%*hb:+0b101010:0:9: ++%hb:+1111111111111111:1:17:65535: ++%*hb:+1111111111111111:0:17: ++%hb:+0B1111111111111111:1:19:65535: ++%*hb:+0B1111111111111111:0:19: ++%hb:+0b1111111111111111:1:19:65535: ++%*hb:+0b1111111111111111:0:19: ++%hb:+10000000000000000:1:18:0: ++%*hb:+10000000000000000:0:18: ++%hb:+0B10000000000000000:1:20:0: ++%*hb:+0B10000000000000000:0:20: ++%hb:+0b10000000000000000:1:20:0: ++%*hb:+0b10000000000000000:0:20: ++%hb:+10000000000101001:1:18:41: ++%*hb:+10000000000101001:0:18: ++%hb:+0B10000000000101001:1:20:41: ++%*hb:+0B10000000000101001:0:20: ++%hb:+0b10000000000101001:1:20:41: ++%*hb:+0b10000000000101001:0:20: ++%1hb::0:-1: ++%*1hb::0:-1: ++%1hb:-1111011:0:-1: ++%*1hb:-1111011:0:-1: ++%1hb:-0B1111011:0:-1: ++%*1hb:-0B1111011:0:-1: ++%1hb:-0b1111011:0:-1: ++%*1hb:-0b1111011:0:-1: ++%1hb:-1:0:-1: ++%*1hb:-1:0:-1: ++%1hb:-0B1:0:-1: ++%*1hb:-0B1:0:-1: ++%1hb:-0b1:0:-1: ++%*1hb:-0b1:0:-1: ++%1hb:-0:0:-1: ++%*1hb:-0:0:-1: ++%1hb:-0B0:0:-1: ++%*1hb:-0B0:0:-1: ++%1hb:-0b0:0:-1: ++%*1hb:-0b0:0:-1: ++%1hb:0:1:1:0: ++%*1hb:0:0:1: ++%1hb:0B0:1:1:0: ++%*1hb:0B0:0:1: ++%1hb:0b0:1:1:0: ++%*1hb:0b0:0:1: ++%1hb:1:1:1:1: ++%*1hb:1:0:1: ++%1hb:0B1:1:1:0: ++%*1hb:0B1:0:1: ++%1hb:0b1:1:1:0: ++%*1hb:0b1:0:1: ++%1hb:101010:1:1:1: ++%*1hb:101010:0:1: ++%1hb:0B101010:1:1:0: ++%*1hb:0B101010:0:1: ++%1hb:0b101010:1:1:0: ++%*1hb:0b101010:0:1: ++%1hb:1111111111111111:1:1:1: ++%*1hb:1111111111111111:0:1: ++%1hb:0B1111111111111111:1:1:0: ++%*1hb:0B1111111111111111:0:1: ++%1hb:0b1111111111111111:1:1:0: ++%*1hb:0b1111111111111111:0:1: ++%1hb:10000000000000000:1:1:1: ++%*1hb:10000000000000000:0:1: ++%1hb:0B10000000000000000:1:1:0: ++%*1hb:0B10000000000000000:0:1: ++%1hb:0b10000000000000000:1:1:0: ++%*1hb:0b10000000000000000:0:1: ++%1hb:10000000000101001:1:1:1: ++%*1hb:10000000000101001:0:1: ++%1hb:0B10000000000101001:1:1:0: ++%*1hb:0B10000000000101001:0:1: ++%1hb:0b10000000000101001:1:1:0: ++%*1hb:0b10000000000101001:0:1: ++%1hb:+0:0:-1: ++%*1hb:+0:0:-1: ++%1hb:+0B0:0:-1: ++%*1hb:+0B0:0:-1: ++%1hb:+0b0:0:-1: ++%*1hb:+0b0:0:-1: ++%1hb:+1:0:-1: ++%*1hb:+1:0:-1: ++%1hb:+0B1:0:-1: ++%*1hb:+0B1:0:-1: ++%1hb:+0b1:0:-1: ++%*1hb:+0b1:0:-1: ++%1hb:+101010:0:-1: ++%*1hb:+101010:0:-1: ++%1hb:+0B101010:0:-1: ++%*1hb:+0B101010:0:-1: ++%1hb:+0b101010:0:-1: ++%*1hb:+0b101010:0:-1: ++%1hb:+1111111111111111:0:-1: ++%*1hb:+1111111111111111:0:-1: ++%1hb:+0B1111111111111111:0:-1: ++%*1hb:+0B1111111111111111:0:-1: ++%1hb:+0b1111111111111111:0:-1: ++%*1hb:+0b1111111111111111:0:-1: ++%1hb:+10000000000000000:0:-1: ++%*1hb:+10000000000000000:0:-1: ++%1hb:+0B10000000000000000:0:-1: ++%*1hb:+0B10000000000000000:0:-1: ++%1hb:+0b10000000000000000:0:-1: ++%*1hb:+0b10000000000000000:0:-1: ++%1hb:+10000000000101001:0:-1: ++%*1hb:+10000000000101001:0:-1: ++%1hb:+0B10000000000101001:0:-1: ++%*1hb:+0B10000000000101001:0:-1: ++%1hb:+0b10000000000101001:0:-1: ++%*1hb:+0b10000000000101001:0:-1: ++%2hb::0:-1: ++%*2hb::0:-1: ++%2hb:-1111011:1:2:65535: ++%*2hb:-1111011:0:2: ++%2hb:-0B1111011:1:2:0: ++%*2hb:-0B1111011:0:2: ++%2hb:-0b1111011:1:2:0: ++%*2hb:-0b1111011:0:2: ++%2hb:-1:1:2:65535: ++%*2hb:-1:0:2: ++%2hb:-0B1:1:2:0: ++%*2hb:-0B1:0:2: ++%2hb:-0b1:1:2:0: ++%*2hb:-0b1:0:2: ++%2hb:-0:1:2:0: ++%*2hb:-0:0:2: ++%2hb:-0B0:1:2:0: ++%*2hb:-0B0:0:2: ++%2hb:-0b0:1:2:0: ++%*2hb:-0b0:0:2: ++%2hb:0:1:1:0: ++%*2hb:0:0:1: ++# BZ12701 %2hb:0B0:0:-1: ++# BZ12701 %*2hb:0B0:0:-1: ++# BZ12701 %2hb:0b0:0:-1: ++# BZ12701 %*2hb:0b0:0:-1: ++%2hb:1:1:1:1: ++%*2hb:1:0:1: ++# BZ12701 %2hb:0B1:0:-1: ++# BZ12701 %*2hb:0B1:0:-1: ++# BZ12701 %2hb:0b1:0:-1: ++# BZ12701 %*2hb:0b1:0:-1: ++%2hb:101010:1:2:2: ++%*2hb:101010:0:2: ++# BZ12701 %2hb:0B101010:0:-1: ++# BZ12701 %*2hb:0B101010:0:-1: ++# BZ12701 %2hb:0b101010:0:-1: ++# BZ12701 %*2hb:0b101010:0:-1: ++%2hb:1111111111111111:1:2:3: ++%*2hb:1111111111111111:0:2: ++# BZ12701 %2hb:0B1111111111111111:0:-1: ++# BZ12701 %*2hb:0B1111111111111111:0:-1: ++# BZ12701 %2hb:0b1111111111111111:0:-1: ++# BZ12701 %*2hb:0b1111111111111111:0:-1: ++%2hb:10000000000000000:1:2:2: ++%*2hb:10000000000000000:0:2: ++# BZ12701 %2hb:0B10000000000000000:0:-1: ++# BZ12701 %*2hb:0B10000000000000000:0:-1: ++# BZ12701 %2hb:0b10000000000000000:0:-1: ++# BZ12701 %*2hb:0b10000000000000000:0:-1: ++%2hb:10000000000101001:1:2:2: ++%*2hb:10000000000101001:0:2: ++# BZ12701 %2hb:0B10000000000101001:0:-1: ++# BZ12701 %*2hb:0B10000000000101001:0:-1: ++# BZ12701 %2hb:0b10000000000101001:0:-1: ++# BZ12701 %*2hb:0b10000000000101001:0:-1: ++%2hb:+0:1:2:0: ++%*2hb:+0:0:2: ++%2hb:+0B0:1:2:0: ++%*2hb:+0B0:0:2: ++%2hb:+0b0:1:2:0: ++%*2hb:+0b0:0:2: ++%2hb:+1:1:2:1: ++%*2hb:+1:0:2: ++%2hb:+0B1:1:2:0: ++%*2hb:+0B1:0:2: ++%2hb:+0b1:1:2:0: ++%*2hb:+0b1:0:2: ++%2hb:+101010:1:2:1: ++%*2hb:+101010:0:2: ++%2hb:+0B101010:1:2:0: ++%*2hb:+0B101010:0:2: ++%2hb:+0b101010:1:2:0: ++%*2hb:+0b101010:0:2: ++%2hb:+1111111111111111:1:2:1: ++%*2hb:+1111111111111111:0:2: ++%2hb:+0B1111111111111111:1:2:0: ++%*2hb:+0B1111111111111111:0:2: ++%2hb:+0b1111111111111111:1:2:0: ++%*2hb:+0b1111111111111111:0:2: ++%2hb:+10000000000000000:1:2:1: ++%*2hb:+10000000000000000:0:2: ++%2hb:+0B10000000000000000:1:2:0: ++%*2hb:+0B10000000000000000:0:2: ++%2hb:+0b10000000000000000:1:2:0: ++%*2hb:+0b10000000000000000:0:2: ++%2hb:+10000000000101001:1:2:1: ++%*2hb:+10000000000101001:0:2: ++%2hb:+0B10000000000101001:1:2:0: ++%*2hb:+0B10000000000101001:0:2: ++%2hb:+0b10000000000101001:1:2:0: ++%*2hb:+0b10000000000101001:0:2: ++%4hb::0:-1: ++%*4hb::0:-1: ++%4hb:-1111011:1:4:65529: ++%*4hb:-1111011:0:4: ++%4hb:-0B1111011:1:4:65535: ++%*4hb:-0B1111011:0:4: ++%4hb:-0b1111011:1:4:65535: ++%*4hb:-0b1111011:0:4: ++%4hb:-1:1:2:65535: ++%*4hb:-1:0:2: ++%4hb:-0B1:1:4:65535: ++%*4hb:-0B1:0:4: ++%4hb:-0b1:1:4:65535: ++%*4hb:-0b1:0:4: ++%4hb:-0:1:2:0: ++%*4hb:-0:0:2: ++%4hb:-0B0:1:4:0: ++%*4hb:-0B0:0:4: ++%4hb:-0b0:1:4:0: ++%*4hb:-0b0:0:4: ++%4hb:0:1:1:0: ++%*4hb:0:0:1: ++%4hb:0B0:1:3:0: ++%*4hb:0B0:0:3: ++%4hb:0b0:1:3:0: ++%*4hb:0b0:0:3: ++%4hb:1:1:1:1: ++%*4hb:1:0:1: ++%4hb:0B1:1:3:1: ++%*4hb:0B1:0:3: ++%4hb:0b1:1:3:1: ++%*4hb:0b1:0:3: ++%4hb:101010:1:4:10: ++%*4hb:101010:0:4: ++%4hb:0B101010:1:4:2: ++%*4hb:0B101010:0:4: ++%4hb:0b101010:1:4:2: ++%*4hb:0b101010:0:4: ++%4hb:1111111111111111:1:4:15: ++%*4hb:1111111111111111:0:4: ++%4hb:0B1111111111111111:1:4:3: ++%*4hb:0B1111111111111111:0:4: ++%4hb:0b1111111111111111:1:4:3: ++%*4hb:0b1111111111111111:0:4: ++%4hb:10000000000000000:1:4:8: ++%*4hb:10000000000000000:0:4: ++%4hb:0B10000000000000000:1:4:2: ++%*4hb:0B10000000000000000:0:4: ++%4hb:0b10000000000000000:1:4:2: ++%*4hb:0b10000000000000000:0:4: ++%4hb:10000000000101001:1:4:8: ++%*4hb:10000000000101001:0:4: ++%4hb:0B10000000000101001:1:4:2: ++%*4hb:0B10000000000101001:0:4: ++%4hb:0b10000000000101001:1:4:2: ++%*4hb:0b10000000000101001:0:4: ++%4hb:+0:1:2:0: ++%*4hb:+0:0:2: ++%4hb:+0B0:1:4:0: ++%*4hb:+0B0:0:4: ++%4hb:+0b0:1:4:0: ++%*4hb:+0b0:0:4: ++%4hb:+1:1:2:1: ++%*4hb:+1:0:2: ++%4hb:+0B1:1:4:1: ++%*4hb:+0B1:0:4: ++%4hb:+0b1:1:4:1: ++%*4hb:+0b1:0:4: ++%4hb:+101010:1:4:5: ++%*4hb:+101010:0:4: ++%4hb:+0B101010:1:4:1: ++%*4hb:+0B101010:0:4: ++%4hb:+0b101010:1:4:1: ++%*4hb:+0b101010:0:4: ++%4hb:+1111111111111111:1:4:7: ++%*4hb:+1111111111111111:0:4: ++%4hb:+0B1111111111111111:1:4:1: ++%*4hb:+0B1111111111111111:0:4: ++%4hb:+0b1111111111111111:1:4:1: ++%*4hb:+0b1111111111111111:0:4: ++%4hb:+10000000000000000:1:4:4: ++%*4hb:+10000000000000000:0:4: ++%4hb:+0B10000000000000000:1:4:1: ++%*4hb:+0B10000000000000000:0:4: ++%4hb:+0b10000000000000000:1:4:1: ++%*4hb:+0b10000000000000000:0:4: ++%4hb:+10000000000101001:1:4:4: ++%*4hb:+10000000000101001:0:4: ++%4hb:+0B10000000000101001:1:4:1: ++%*4hb:+0B10000000000101001:0:4: ++%4hb:+0b10000000000101001:1:4:1: ++%*4hb:+0b10000000000101001:0:4: ++%7hb::0:-1: ++%*7hb::0:-1: ++%7hb:-1111011:1:7:65475: ++%*7hb:-1111011:0:7: ++%7hb:-0B1111011:1:7:65521: ++%*7hb:-0B1111011:0:7: ++%7hb:-0b1111011:1:7:65521: ++%*7hb:-0b1111011:0:7: ++%7hb:-1:1:2:65535: ++%*7hb:-1:0:2: ++%7hb:-0B1:1:4:65535: ++%*7hb:-0B1:0:4: ++%7hb:-0b1:1:4:65535: ++%*7hb:-0b1:0:4: ++%7hb:-0:1:2:0: ++%*7hb:-0:0:2: ++%7hb:-0B0:1:4:0: ++%*7hb:-0B0:0:4: ++%7hb:-0b0:1:4:0: ++%*7hb:-0b0:0:4: ++%7hb:0:1:1:0: ++%*7hb:0:0:1: ++%7hb:0B0:1:3:0: ++%*7hb:0B0:0:3: ++%7hb:0b0:1:3:0: ++%*7hb:0b0:0:3: ++%7hb:1:1:1:1: ++%*7hb:1:0:1: ++%7hb:0B1:1:3:1: ++%*7hb:0B1:0:3: ++%7hb:0b1:1:3:1: ++%*7hb:0b1:0:3: ++%7hb:101010:1:6:42: ++%*7hb:101010:0:6: ++%7hb:0B101010:1:7:21: ++%*7hb:0B101010:0:7: ++%7hb:0b101010:1:7:21: ++%*7hb:0b101010:0:7: ++%7hb:1111111111111111:1:7:127: ++%*7hb:1111111111111111:0:7: ++%7hb:0B1111111111111111:1:7:31: ++%*7hb:0B1111111111111111:0:7: ++%7hb:0b1111111111111111:1:7:31: ++%*7hb:0b1111111111111111:0:7: ++%7hb:10000000000000000:1:7:64: ++%*7hb:10000000000000000:0:7: ++%7hb:0B10000000000000000:1:7:16: ++%*7hb:0B10000000000000000:0:7: ++%7hb:0b10000000000000000:1:7:16: ++%*7hb:0b10000000000000000:0:7: ++%7hb:10000000000101001:1:7:64: ++%*7hb:10000000000101001:0:7: ++%7hb:0B10000000000101001:1:7:16: ++%*7hb:0B10000000000101001:0:7: ++%7hb:0b10000000000101001:1:7:16: ++%*7hb:0b10000000000101001:0:7: ++%7hb:+0:1:2:0: ++%*7hb:+0:0:2: ++%7hb:+0B0:1:4:0: ++%*7hb:+0B0:0:4: ++%7hb:+0b0:1:4:0: ++%*7hb:+0b0:0:4: ++%7hb:+1:1:2:1: ++%*7hb:+1:0:2: ++%7hb:+0B1:1:4:1: ++%*7hb:+0B1:0:4: ++%7hb:+0b1:1:4:1: ++%*7hb:+0b1:0:4: ++%7hb:+101010:1:7:42: ++%*7hb:+101010:0:7: ++%7hb:+0B101010:1:7:10: ++%*7hb:+0B101010:0:7: ++%7hb:+0b101010:1:7:10: ++%*7hb:+0b101010:0:7: ++%7hb:+1111111111111111:1:7:63: ++%*7hb:+1111111111111111:0:7: ++%7hb:+0B1111111111111111:1:7:15: ++%*7hb:+0B1111111111111111:0:7: ++%7hb:+0b1111111111111111:1:7:15: ++%*7hb:+0b1111111111111111:0:7: ++%7hb:+10000000000000000:1:7:32: ++%*7hb:+10000000000000000:0:7: ++%7hb:+0B10000000000000000:1:7:8: ++%*7hb:+0B10000000000000000:0:7: ++%7hb:+0b10000000000000000:1:7:8: ++%*7hb:+0b10000000000000000:0:7: ++%7hb:+10000000000101001:1:7:32: ++%*7hb:+10000000000101001:0:7: ++%7hb:+0B10000000000101001:1:7:8: ++%*7hb:+0B10000000000101001:0:7: ++%7hb:+0b10000000000101001:1:7:8: ++%*7hb:+0b10000000000101001:0:7: ++%2hb: :0:-1: ++%*2hb: :0:-1: ++%2hb: -1111011:1:3:65535: ++%*2hb: -1111011:0:3: ++%2hb: -0B1111011:1:3:0: ++%*2hb: -0B1111011:0:3: ++%2hb: -0b1111011:1:3:0: ++%*2hb: -0b1111011:0:3: ++%2hb: -1:1:3:65535: ++%*2hb: -1:0:3: ++%2hb: -0B1:1:3:0: ++%*2hb: -0B1:0:3: ++%2hb: -0b1:1:3:0: ++%*2hb: -0b1:0:3: ++%2hb: -0:1:3:0: ++%*2hb: -0:0:3: ++%2hb: -0B0:1:3:0: ++%*2hb: -0B0:0:3: ++%2hb: -0b0:1:3:0: ++%*2hb: -0b0:0:3: ++%2hb: 0:1:2:0: ++%*2hb: 0:0:2: ++# BZ12701 %2hb: 0B0:0:-1: ++# BZ12701 %*2hb: 0B0:0:-1: ++# BZ12701 %2hb: 0b0:0:-1: ++# BZ12701 %*2hb: 0b0:0:-1: ++%2hb: 1:1:2:1: ++%*2hb: 1:0:2: ++# BZ12701 %2hb: 0B1:0:-1: ++# BZ12701 %*2hb: 0B1:0:-1: ++# BZ12701 %2hb: 0b1:0:-1: ++# BZ12701 %*2hb: 0b1:0:-1: ++%2hb: 101010:1:3:2: ++%*2hb: 101010:0:3: ++# BZ12701 %2hb: 0B101010:0:-1: ++# BZ12701 %*2hb: 0B101010:0:-1: ++# BZ12701 %2hb: 0b101010:0:-1: ++# BZ12701 %*2hb: 0b101010:0:-1: ++%2hb: 1111111111111111:1:3:3: ++%*2hb: 1111111111111111:0:3: ++# BZ12701 %2hb: 0B1111111111111111:0:-1: ++# BZ12701 %*2hb: 0B1111111111111111:0:-1: ++# BZ12701 %2hb: 0b1111111111111111:0:-1: ++# BZ12701 %*2hb: 0b1111111111111111:0:-1: ++%2hb: 10000000000000000:1:3:2: ++%*2hb: 10000000000000000:0:3: ++# BZ12701 %2hb: 0B10000000000000000:0:-1: ++# BZ12701 %*2hb: 0B10000000000000000:0:-1: ++# BZ12701 %2hb: 0b10000000000000000:0:-1: ++# BZ12701 %*2hb: 0b10000000000000000:0:-1: ++%2hb: 10000000000101001:1:3:2: ++%*2hb: 10000000000101001:0:3: ++# BZ12701 %2hb: 0B10000000000101001:0:-1: ++# BZ12701 %*2hb: 0B10000000000101001:0:-1: ++# BZ12701 %2hb: 0b10000000000101001:0:-1: ++# BZ12701 %*2hb: 0b10000000000101001:0:-1: ++%2hb: +0:1:3:0: ++%*2hb: +0:0:3: ++%2hb: +0B0:1:3:0: ++%*2hb: +0B0:0:3: ++%2hb: +0b0:1:3:0: ++%*2hb: +0b0:0:3: ++%2hb: +1:1:3:1: ++%*2hb: +1:0:3: ++%2hb: +0B1:1:3:0: ++%*2hb: +0B1:0:3: ++%2hb: +0b1:1:3:0: ++%*2hb: +0b1:0:3: ++%2hb: +101010:1:3:1: ++%*2hb: +101010:0:3: ++%2hb: +0B101010:1:3:0: ++%*2hb: +0B101010:0:3: ++%2hb: +0b101010:1:3:0: ++%*2hb: +0b101010:0:3: ++%2hb: +1111111111111111:1:3:1: ++%*2hb: +1111111111111111:0:3: ++%2hb: +0B1111111111111111:1:3:0: ++%*2hb: +0B1111111111111111:0:3: ++%2hb: +0b1111111111111111:1:3:0: ++%*2hb: +0b1111111111111111:0:3: ++%2hb: +10000000000000000:1:3:1: ++%*2hb: +10000000000000000:0:3: ++%2hb: +0B10000000000000000:1:3:0: ++%*2hb: +0B10000000000000000:0:3: ++%2hb: +0b10000000000000000:1:3:0: ++%*2hb: +0b10000000000000000:0:3: ++%2hb: +10000000000101001:1:3:1: ++%*2hb: +10000000000101001:0:3: ++%2hb: +0B10000000000101001:1:3:0: ++%*2hb: +0B10000000000101001:0:3: ++%2hb: +0b10000000000101001:1:3:0: ++%*2hb: +0b10000000000101001:0:3: ++%7hb: :0:-1: ++%*7hb: :0:-1: ++%7hb: -1111011:1:8:65475: ++%*7hb: -1111011:0:8: ++%7hb: -0B1111011:1:8:65521: ++%*7hb: -0B1111011:0:8: ++%7hb: -0b1111011:1:8:65521: ++%*7hb: -0b1111011:0:8: ++%7hb: -1:1:3:65535: ++%*7hb: -1:0:3: ++%7hb: -0B1:1:5:65535: ++%*7hb: -0B1:0:5: ++%7hb: -0b1:1:5:65535: ++%*7hb: -0b1:0:5: ++%7hb: -0:1:3:0: ++%*7hb: -0:0:3: ++%7hb: -0B0:1:5:0: ++%*7hb: -0B0:0:5: ++%7hb: -0b0:1:5:0: ++%*7hb: -0b0:0:5: ++%7hb: 0:1:2:0: ++%*7hb: 0:0:2: ++%7hb: 0B0:1:4:0: ++%*7hb: 0B0:0:4: ++%7hb: 0b0:1:4:0: ++%*7hb: 0b0:0:4: ++%7hb: 1:1:2:1: ++%*7hb: 1:0:2: ++%7hb: 0B1:1:4:1: ++%*7hb: 0B1:0:4: ++%7hb: 0b1:1:4:1: ++%*7hb: 0b1:0:4: ++%7hb: 101010:1:7:42: ++%*7hb: 101010:0:7: ++%7hb: 0B101010:1:8:21: ++%*7hb: 0B101010:0:8: ++%7hb: 0b101010:1:8:21: ++%*7hb: 0b101010:0:8: ++%7hb: 1111111111111111:1:8:127: ++%*7hb: 1111111111111111:0:8: ++%7hb: 0B1111111111111111:1:8:31: ++%*7hb: 0B1111111111111111:0:8: ++%7hb: 0b1111111111111111:1:8:31: ++%*7hb: 0b1111111111111111:0:8: ++%7hb: 10000000000000000:1:8:64: ++%*7hb: 10000000000000000:0:8: ++%7hb: 0B10000000000000000:1:8:16: ++%*7hb: 0B10000000000000000:0:8: ++%7hb: 0b10000000000000000:1:8:16: ++%*7hb: 0b10000000000000000:0:8: ++%7hb: 10000000000101001:1:8:64: ++%*7hb: 10000000000101001:0:8: ++%7hb: 0B10000000000101001:1:8:16: ++%*7hb: 0B10000000000101001:0:8: ++%7hb: 0b10000000000101001:1:8:16: ++%*7hb: 0b10000000000101001:0:8: ++%7hb: +0:1:3:0: ++%*7hb: +0:0:3: ++%7hb: +0B0:1:5:0: ++%*7hb: +0B0:0:5: ++%7hb: +0b0:1:5:0: ++%*7hb: +0b0:0:5: ++%7hb: +1:1:3:1: ++%*7hb: +1:0:3: ++%7hb: +0B1:1:5:1: ++%*7hb: +0B1:0:5: ++%7hb: +0b1:1:5:1: ++%*7hb: +0b1:0:5: ++%7hb: +101010:1:8:42: ++%*7hb: +101010:0:8: ++%7hb: +0B101010:1:8:10: ++%*7hb: +0B101010:0:8: ++%7hb: +0b101010:1:8:10: ++%*7hb: +0b101010:0:8: ++%7hb: +1111111111111111:1:8:63: ++%*7hb: +1111111111111111:0:8: ++%7hb: +0B1111111111111111:1:8:15: ++%*7hb: +0B1111111111111111:0:8: ++%7hb: +0b1111111111111111:1:8:15: ++%*7hb: +0b1111111111111111:0:8: ++%7hb: +10000000000000000:1:8:32: ++%*7hb: +10000000000000000:0:8: ++%7hb: +0B10000000000000000:1:8:8: ++%*7hb: +0B10000000000000000:0:8: ++%7hb: +0b10000000000000000:1:8:8: ++%*7hb: +0b10000000000000000:0:8: ++%7hb: +10000000000101001:1:8:32: ++%*7hb: +10000000000101001:0:8: ++%7hb: +0B10000000000101001:1:8:8: ++%*7hb: +0B10000000000101001:0:8: ++%7hb: +0b10000000000101001:1:8:8: ++%*7hb: +0b10000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-o.input b/stdio-common/tst-scanf-format-ushort-o.input +new file mode 100644 +index 0000000000000000..8276be430ca0843b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-o.input +@@ -0,0 +1,434 @@ ++%ho::0:-1: ++%*ho::0:-1: ++%ho:-173:1:4:65413: ++%*ho:-173:0:4: ++%ho:-0173:1:5:65413: ++%*ho:-0173:0:5: ++%ho:-1:1:2:65535: ++%*ho:-1:0:2: ++%ho:-01:1:3:65535: ++%*ho:-01:0:3: ++%ho:-0:1:2:0: ++%*ho:-0:0:2: ++%ho:-00:1:3:0: ++%*ho:-00:0:3: ++%ho:0:1:1:0: ++%*ho:0:0:1: ++%ho:00:1:2:0: ++%*ho:00:0:2: ++%ho:1:1:1:1: ++%*ho:1:0:1: ++%ho:01:1:2:1: ++%*ho:01:0:2: ++%ho:52:1:2:42: ++%*ho:52:0:2: ++%ho:052:1:3:42: ++%*ho:052:0:3: ++%ho:177777:1:6:65535: ++%*ho:177777:0:6: ++%ho:0177777:1:7:65535: ++%*ho:0177777:0:7: ++%ho:200000:1:6:0: ++%*ho:200000:0:6: ++%ho:0200000:1:7:0: ++%*ho:0200000:0:7: ++%ho:200051:1:6:41: ++%*ho:200051:0:6: ++%ho:0200051:1:7:41: ++%*ho:0200051:0:7: ++%ho:+0:1:2:0: ++%*ho:+0:0:2: ++%ho:+00:1:3:0: ++%*ho:+00:0:3: ++%ho:+1:1:2:1: ++%*ho:+1:0:2: ++%ho:+01:1:3:1: ++%*ho:+01:0:3: ++%ho:+52:1:3:42: ++%*ho:+52:0:3: ++%ho:+052:1:4:42: ++%*ho:+052:0:4: ++%ho:+177777:1:7:65535: ++%*ho:+177777:0:7: ++%ho:+0177777:1:8:65535: ++%*ho:+0177777:0:8: ++%ho:+200000:1:7:0: ++%*ho:+200000:0:7: ++%ho:+0200000:1:8:0: ++%*ho:+0200000:0:8: ++%ho:+200051:1:7:41: ++%*ho:+200051:0:7: ++%ho:+0200051:1:8:41: ++%*ho:+0200051:0:8: ++%1ho::0:-1: ++%*1ho::0:-1: ++%1ho:-173:0:-1: ++%*1ho:-173:0:-1: ++%1ho:-0173:0:-1: ++%*1ho:-0173:0:-1: ++%1ho:-1:0:-1: ++%*1ho:-1:0:-1: ++%1ho:-01:0:-1: ++%*1ho:-01:0:-1: ++%1ho:-0:0:-1: ++%*1ho:-0:0:-1: ++%1ho:-00:0:-1: ++%*1ho:-00:0:-1: ++%1ho:0:1:1:0: ++%*1ho:0:0:1: ++%1ho:00:1:1:0: ++%*1ho:00:0:1: ++%1ho:1:1:1:1: ++%*1ho:1:0:1: ++%1ho:01:1:1:0: ++%*1ho:01:0:1: ++%1ho:52:1:1:5: ++%*1ho:52:0:1: ++%1ho:052:1:1:0: ++%*1ho:052:0:1: ++%1ho:177777:1:1:1: ++%*1ho:177777:0:1: ++%1ho:0177777:1:1:0: ++%*1ho:0177777:0:1: ++%1ho:200000:1:1:2: ++%*1ho:200000:0:1: ++%1ho:0200000:1:1:0: ++%*1ho:0200000:0:1: ++%1ho:200051:1:1:2: ++%*1ho:200051:0:1: ++%1ho:0200051:1:1:0: ++%*1ho:0200051:0:1: ++%1ho:+0:0:-1: ++%*1ho:+0:0:-1: ++%1ho:+00:0:-1: ++%*1ho:+00:0:-1: ++%1ho:+1:0:-1: ++%*1ho:+1:0:-1: ++%1ho:+01:0:-1: ++%*1ho:+01:0:-1: ++%1ho:+52:0:-1: ++%*1ho:+52:0:-1: ++%1ho:+052:0:-1: ++%*1ho:+052:0:-1: ++%1ho:+177777:0:-1: ++%*1ho:+177777:0:-1: ++%1ho:+0177777:0:-1: ++%*1ho:+0177777:0:-1: ++%1ho:+200000:0:-1: ++%*1ho:+200000:0:-1: ++%1ho:+0200000:0:-1: ++%*1ho:+0200000:0:-1: ++%1ho:+200051:0:-1: ++%*1ho:+200051:0:-1: ++%1ho:+0200051:0:-1: ++%*1ho:+0200051:0:-1: ++%2ho::0:-1: ++%*2ho::0:-1: ++%2ho:-173:1:2:65535: ++%*2ho:-173:0:2: ++%2ho:-0173:1:2:0: ++%*2ho:-0173:0:2: ++%2ho:-1:1:2:65535: ++%*2ho:-1:0:2: ++%2ho:-01:1:2:0: ++%*2ho:-01:0:2: ++%2ho:-0:1:2:0: ++%*2ho:-0:0:2: ++%2ho:-00:1:2:0: ++%*2ho:-00:0:2: ++%2ho:0:1:1:0: ++%*2ho:0:0:1: ++%2ho:00:1:2:0: ++%*2ho:00:0:2: ++%2ho:1:1:1:1: ++%*2ho:1:0:1: ++%2ho:01:1:2:1: ++%*2ho:01:0:2: ++%2ho:52:1:2:42: ++%*2ho:52:0:2: ++%2ho:052:1:2:5: ++%*2ho:052:0:2: ++%2ho:177777:1:2:15: ++%*2ho:177777:0:2: ++%2ho:0177777:1:2:1: ++%*2ho:0177777:0:2: ++%2ho:200000:1:2:16: ++%*2ho:200000:0:2: ++%2ho:0200000:1:2:2: ++%*2ho:0200000:0:2: ++%2ho:200051:1:2:16: ++%*2ho:200051:0:2: ++%2ho:0200051:1:2:2: ++%*2ho:0200051:0:2: ++%2ho:+0:1:2:0: ++%*2ho:+0:0:2: ++%2ho:+00:1:2:0: ++%*2ho:+00:0:2: ++%2ho:+1:1:2:1: ++%*2ho:+1:0:2: ++%2ho:+01:1:2:0: ++%*2ho:+01:0:2: ++%2ho:+52:1:2:5: ++%*2ho:+52:0:2: ++%2ho:+052:1:2:0: ++%*2ho:+052:0:2: ++%2ho:+177777:1:2:1: ++%*2ho:+177777:0:2: ++%2ho:+0177777:1:2:0: ++%*2ho:+0177777:0:2: ++%2ho:+200000:1:2:2: ++%*2ho:+200000:0:2: ++%2ho:+0200000:1:2:0: ++%*2ho:+0200000:0:2: ++%2ho:+200051:1:2:2: ++%*2ho:+200051:0:2: ++%2ho:+0200051:1:2:0: ++%*2ho:+0200051:0:2: ++%4ho::0:-1: ++%*4ho::0:-1: ++%4ho:-173:1:4:65413: ++%*4ho:-173:0:4: ++%4ho:-0173:1:4:65521: ++%*4ho:-0173:0:4: ++%4ho:-1:1:2:65535: ++%*4ho:-1:0:2: ++%4ho:-01:1:3:65535: ++%*4ho:-01:0:3: ++%4ho:-0:1:2:0: ++%*4ho:-0:0:2: ++%4ho:-00:1:3:0: ++%*4ho:-00:0:3: ++%4ho:0:1:1:0: ++%*4ho:0:0:1: ++%4ho:00:1:2:0: ++%*4ho:00:0:2: ++%4ho:1:1:1:1: ++%*4ho:1:0:1: ++%4ho:01:1:2:1: ++%*4ho:01:0:2: ++%4ho:52:1:2:42: ++%*4ho:52:0:2: ++%4ho:052:1:3:42: ++%*4ho:052:0:3: ++%4ho:177777:1:4:1023: ++%*4ho:177777:0:4: ++%4ho:0177777:1:4:127: ++%*4ho:0177777:0:4: ++%4ho:200000:1:4:1024: ++%*4ho:200000:0:4: ++%4ho:0200000:1:4:128: ++%*4ho:0200000:0:4: ++%4ho:200051:1:4:1024: ++%*4ho:200051:0:4: ++%4ho:0200051:1:4:128: ++%*4ho:0200051:0:4: ++%4ho:+0:1:2:0: ++%*4ho:+0:0:2: ++%4ho:+00:1:3:0: ++%*4ho:+00:0:3: ++%4ho:+1:1:2:1: ++%*4ho:+1:0:2: ++%4ho:+01:1:3:1: ++%*4ho:+01:0:3: ++%4ho:+52:1:3:42: ++%*4ho:+52:0:3: ++%4ho:+052:1:4:42: ++%*4ho:+052:0:4: ++%4ho:+177777:1:4:127: ++%*4ho:+177777:0:4: ++%4ho:+0177777:1:4:15: ++%*4ho:+0177777:0:4: ++%4ho:+200000:1:4:128: ++%*4ho:+200000:0:4: ++%4ho:+0200000:1:4:16: ++%*4ho:+0200000:0:4: ++%4ho:+200051:1:4:128: ++%*4ho:+200051:0:4: ++%4ho:+0200051:1:4:16: ++%*4ho:+0200051:0:4: ++%7ho::0:-1: ++%*7ho::0:-1: ++%7ho:-173:1:4:65413: ++%*7ho:-173:0:4: ++%7ho:-0173:1:5:65413: ++%*7ho:-0173:0:5: ++%7ho:-1:1:2:65535: ++%*7ho:-1:0:2: ++%7ho:-01:1:3:65535: ++%*7ho:-01:0:3: ++%7ho:-0:1:2:0: ++%*7ho:-0:0:2: ++%7ho:-00:1:3:0: ++%*7ho:-00:0:3: ++%7ho:0:1:1:0: ++%*7ho:0:0:1: ++%7ho:00:1:2:0: ++%*7ho:00:0:2: ++%7ho:1:1:1:1: ++%*7ho:1:0:1: ++%7ho:01:1:2:1: ++%*7ho:01:0:2: ++%7ho:52:1:2:42: ++%*7ho:52:0:2: ++%7ho:052:1:3:42: ++%*7ho:052:0:3: ++%7ho:177777:1:6:65535: ++%*7ho:177777:0:6: ++%7ho:0177777:1:7:65535: ++%*7ho:0177777:0:7: ++%7ho:200000:1:6:0: ++%*7ho:200000:0:6: ++%7ho:0200000:1:7:0: ++%*7ho:0200000:0:7: ++%7ho:200051:1:6:41: ++%*7ho:200051:0:6: ++%7ho:0200051:1:7:41: ++%*7ho:0200051:0:7: ++%7ho:+0:1:2:0: ++%*7ho:+0:0:2: ++%7ho:+00:1:3:0: ++%*7ho:+00:0:3: ++%7ho:+1:1:2:1: ++%*7ho:+1:0:2: ++%7ho:+01:1:3:1: ++%*7ho:+01:0:3: ++%7ho:+52:1:3:42: ++%*7ho:+52:0:3: ++%7ho:+052:1:4:42: ++%*7ho:+052:0:4: ++%7ho:+177777:1:7:65535: ++%*7ho:+177777:0:7: ++%7ho:+0177777:1:7:8191: ++%*7ho:+0177777:0:7: ++%7ho:+200000:1:7:0: ++%*7ho:+200000:0:7: ++%7ho:+0200000:1:7:8192: ++%*7ho:+0200000:0:7: ++%7ho:+200051:1:7:41: ++%*7ho:+200051:0:7: ++%7ho:+0200051:1:7:8197: ++%*7ho:+0200051:0:7: ++%2ho: :0:-1: ++%*2ho: :0:-1: ++%2ho: -173:1:3:65535: ++%*2ho: -173:0:3: ++%2ho: -0173:1:3:0: ++%*2ho: -0173:0:3: ++%2ho: -1:1:3:65535: ++%*2ho: -1:0:3: ++%2ho: -01:1:3:0: ++%*2ho: -01:0:3: ++%2ho: -0:1:3:0: ++%*2ho: -0:0:3: ++%2ho: -00:1:3:0: ++%*2ho: -00:0:3: ++%2ho: 0:1:2:0: ++%*2ho: 0:0:2: ++%2ho: 00:1:3:0: ++%*2ho: 00:0:3: ++%2ho: 1:1:2:1: ++%*2ho: 1:0:2: ++%2ho: 01:1:3:1: ++%*2ho: 01:0:3: ++%2ho: 52:1:3:42: ++%*2ho: 52:0:3: ++%2ho: 052:1:3:5: ++%*2ho: 052:0:3: ++%2ho: 177777:1:3:15: ++%*2ho: 177777:0:3: ++%2ho: 0177777:1:3:1: ++%*2ho: 0177777:0:3: ++%2ho: 200000:1:3:16: ++%*2ho: 200000:0:3: ++%2ho: 0200000:1:3:2: ++%*2ho: 0200000:0:3: ++%2ho: 200051:1:3:16: ++%*2ho: 200051:0:3: ++%2ho: 0200051:1:3:2: ++%*2ho: 0200051:0:3: ++%2ho: +0:1:3:0: ++%*2ho: +0:0:3: ++%2ho: +00:1:3:0: ++%*2ho: +00:0:3: ++%2ho: +1:1:3:1: ++%*2ho: +1:0:3: ++%2ho: +01:1:3:0: ++%*2ho: +01:0:3: ++%2ho: +52:1:3:5: ++%*2ho: +52:0:3: ++%2ho: +052:1:3:0: ++%*2ho: +052:0:3: ++%2ho: +177777:1:3:1: ++%*2ho: +177777:0:3: ++%2ho: +0177777:1:3:0: ++%*2ho: +0177777:0:3: ++%2ho: +200000:1:3:2: ++%*2ho: +200000:0:3: ++%2ho: +0200000:1:3:0: ++%*2ho: +0200000:0:3: ++%2ho: +200051:1:3:2: ++%*2ho: +200051:0:3: ++%2ho: +0200051:1:3:0: ++%*2ho: +0200051:0:3: ++%7ho: :0:-1: ++%*7ho: :0:-1: ++%7ho: -173:1:5:65413: ++%*7ho: -173:0:5: ++%7ho: -0173:1:6:65413: ++%*7ho: -0173:0:6: ++%7ho: -1:1:3:65535: ++%*7ho: -1:0:3: ++%7ho: -01:1:4:65535: ++%*7ho: -01:0:4: ++%7ho: -0:1:3:0: ++%*7ho: -0:0:3: ++%7ho: -00:1:4:0: ++%*7ho: -00:0:4: ++%7ho: 0:1:2:0: ++%*7ho: 0:0:2: ++%7ho: 00:1:3:0: ++%*7ho: 00:0:3: ++%7ho: 1:1:2:1: ++%*7ho: 1:0:2: ++%7ho: 01:1:3:1: ++%*7ho: 01:0:3: ++%7ho: 52:1:3:42: ++%*7ho: 52:0:3: ++%7ho: 052:1:4:42: ++%*7ho: 052:0:4: ++%7ho: 177777:1:7:65535: ++%*7ho: 177777:0:7: ++%7ho: 0177777:1:8:65535: ++%*7ho: 0177777:0:8: ++%7ho: 200000:1:7:0: ++%*7ho: 200000:0:7: ++%7ho: 0200000:1:8:0: ++%*7ho: 0200000:0:8: ++%7ho: 200051:1:7:41: ++%*7ho: 200051:0:7: ++%7ho: 0200051:1:8:41: ++%*7ho: 0200051:0:8: ++%7ho: +0:1:3:0: ++%*7ho: +0:0:3: ++%7ho: +00:1:4:0: ++%*7ho: +00:0:4: ++%7ho: +1:1:3:1: ++%*7ho: +1:0:3: ++%7ho: +01:1:4:1: ++%*7ho: +01:0:4: ++%7ho: +52:1:4:42: ++%*7ho: +52:0:4: ++%7ho: +052:1:5:42: ++%*7ho: +052:0:5: ++%7ho: +177777:1:8:65535: ++%*7ho: +177777:0:8: ++%7ho: +0177777:1:8:8191: ++%*7ho: +0177777:0:8: ++%7ho: +200000:1:8:0: ++%*7ho: +200000:0:8: ++%7ho: +0200000:1:8:8192: ++%*7ho: +0200000:0:8: ++%7ho: +200051:1:8:41: ++%*7ho: +200051:0:8: ++%7ho: +0200051:1:8:8197: ++%*7ho: +0200051:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-u.input b/stdio-common/tst-scanf-format-ushort-u.input +new file mode 100644 +index 0000000000000000..56f7da52e168a4a0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-u.input +@@ -0,0 +1,224 @@ ++%hu::0:-1: ++%*hu::0:-1: ++%hu:-123:1:4:65413: ++%*hu:-123:0:4: ++%hu:-1:1:2:65535: ++%*hu:-1:0:2: ++%hu:-0:1:2:0: ++%*hu:-0:0:2: ++%hu:0:1:1:0: ++%*hu:0:0:1: ++%hu:1:1:1:1: ++%*hu:1:0:1: ++%hu:42:1:2:42: ++%*hu:42:0:2: ++%hu:65535:1:5:65535: ++%*hu:65535:0:5: ++%hu:65536:1:5:0: ++%*hu:65536:0:5: ++%hu:65577:1:5:41: ++%*hu:65577:0:5: ++%hu:+0:1:2:0: ++%*hu:+0:0:2: ++%hu:+1:1:2:1: ++%*hu:+1:0:2: ++%hu:+42:1:3:42: ++%*hu:+42:0:3: ++%hu:+65535:1:6:65535: ++%*hu:+65535:0:6: ++%hu:+65536:1:6:0: ++%*hu:+65536:0:6: ++%hu:+65577:1:6:41: ++%*hu:+65577:0:6: ++%1hu::0:-1: ++%*1hu::0:-1: ++%1hu:-123:0:-1: ++%*1hu:-123:0:-1: ++%1hu:-1:0:-1: ++%*1hu:-1:0:-1: ++%1hu:-0:0:-1: ++%*1hu:-0:0:-1: ++%1hu:0:1:1:0: ++%*1hu:0:0:1: ++%1hu:1:1:1:1: ++%*1hu:1:0:1: ++%1hu:42:1:1:4: ++%*1hu:42:0:1: ++%1hu:65535:1:1:6: ++%*1hu:65535:0:1: ++%1hu:65536:1:1:6: ++%*1hu:65536:0:1: ++%1hu:65577:1:1:6: ++%*1hu:65577:0:1: ++%1hu:+0:0:-1: ++%*1hu:+0:0:-1: ++%1hu:+1:0:-1: ++%*1hu:+1:0:-1: ++%1hu:+42:0:-1: ++%*1hu:+42:0:-1: ++%1hu:+65535:0:-1: ++%*1hu:+65535:0:-1: ++%1hu:+65536:0:-1: ++%*1hu:+65536:0:-1: ++%1hu:+65577:0:-1: ++%*1hu:+65577:0:-1: ++%2hu::0:-1: ++%*2hu::0:-1: ++%2hu:-123:1:2:65535: ++%*2hu:-123:0:2: ++%2hu:-1:1:2:65535: ++%*2hu:-1:0:2: ++%2hu:-0:1:2:0: ++%*2hu:-0:0:2: ++%2hu:0:1:1:0: ++%*2hu:0:0:1: ++%2hu:1:1:1:1: ++%*2hu:1:0:1: ++%2hu:42:1:2:42: ++%*2hu:42:0:2: ++%2hu:65535:1:2:65: ++%*2hu:65535:0:2: ++%2hu:65536:1:2:65: ++%*2hu:65536:0:2: ++%2hu:65577:1:2:65: ++%*2hu:65577:0:2: ++%2hu:+0:1:2:0: ++%*2hu:+0:0:2: ++%2hu:+1:1:2:1: ++%*2hu:+1:0:2: ++%2hu:+42:1:2:4: ++%*2hu:+42:0:2: ++%2hu:+65535:1:2:6: ++%*2hu:+65535:0:2: ++%2hu:+65536:1:2:6: ++%*2hu:+65536:0:2: ++%2hu:+65577:1:2:6: ++%*2hu:+65577:0:2: ++%4hu::0:-1: ++%*4hu::0:-1: ++%4hu:-123:1:4:65413: ++%*4hu:-123:0:4: ++%4hu:-1:1:2:65535: ++%*4hu:-1:0:2: ++%4hu:-0:1:2:0: ++%*4hu:-0:0:2: ++%4hu:0:1:1:0: ++%*4hu:0:0:1: ++%4hu:1:1:1:1: ++%*4hu:1:0:1: ++%4hu:42:1:2:42: ++%*4hu:42:0:2: ++%4hu:65535:1:4:6553: ++%*4hu:65535:0:4: ++%4hu:65536:1:4:6553: ++%*4hu:65536:0:4: ++%4hu:65577:1:4:6557: ++%*4hu:65577:0:4: ++%4hu:+0:1:2:0: ++%*4hu:+0:0:2: ++%4hu:+1:1:2:1: ++%*4hu:+1:0:2: ++%4hu:+42:1:3:42: ++%*4hu:+42:0:3: ++%4hu:+65535:1:4:655: ++%*4hu:+65535:0:4: ++%4hu:+65536:1:4:655: ++%*4hu:+65536:0:4: ++%4hu:+65577:1:4:655: ++%*4hu:+65577:0:4: ++%7hu::0:-1: ++%*7hu::0:-1: ++%7hu:-123:1:4:65413: ++%*7hu:-123:0:4: ++%7hu:-1:1:2:65535: ++%*7hu:-1:0:2: ++%7hu:-0:1:2:0: ++%*7hu:-0:0:2: ++%7hu:0:1:1:0: ++%*7hu:0:0:1: ++%7hu:1:1:1:1: ++%*7hu:1:0:1: ++%7hu:42:1:2:42: ++%*7hu:42:0:2: ++%7hu:65535:1:5:65535: ++%*7hu:65535:0:5: ++%7hu:65536:1:5:0: ++%*7hu:65536:0:5: ++%7hu:65577:1:5:41: ++%*7hu:65577:0:5: ++%7hu:+0:1:2:0: ++%*7hu:+0:0:2: ++%7hu:+1:1:2:1: ++%*7hu:+1:0:2: ++%7hu:+42:1:3:42: ++%*7hu:+42:0:3: ++%7hu:+65535:1:6:65535: ++%*7hu:+65535:0:6: ++%7hu:+65536:1:6:0: ++%*7hu:+65536:0:6: ++%7hu:+65577:1:6:41: ++%*7hu:+65577:0:6: ++%2hu: :0:-1: ++%*2hu: :0:-1: ++%2hu: -123:1:3:65535: ++%*2hu: -123:0:3: ++%2hu: -1:1:3:65535: ++%*2hu: -1:0:3: ++%2hu: -0:1:3:0: ++%*2hu: -0:0:3: ++%2hu: 0:1:2:0: ++%*2hu: 0:0:2: ++%2hu: 1:1:2:1: ++%*2hu: 1:0:2: ++%2hu: 42:1:3:42: ++%*2hu: 42:0:3: ++%2hu: 65535:1:3:65: ++%*2hu: 65535:0:3: ++%2hu: 65536:1:3:65: ++%*2hu: 65536:0:3: ++%2hu: 65577:1:3:65: ++%*2hu: 65577:0:3: ++%2hu: +0:1:3:0: ++%*2hu: +0:0:3: ++%2hu: +1:1:3:1: ++%*2hu: +1:0:3: ++%2hu: +42:1:3:4: ++%*2hu: +42:0:3: ++%2hu: +65535:1:3:6: ++%*2hu: +65535:0:3: ++%2hu: +65536:1:3:6: ++%*2hu: +65536:0:3: ++%2hu: +65577:1:3:6: ++%*2hu: +65577:0:3: ++%7hu: :0:-1: ++%*7hu: :0:-1: ++%7hu: -123:1:5:65413: ++%*7hu: -123:0:5: ++%7hu: -1:1:3:65535: ++%*7hu: -1:0:3: ++%7hu: -0:1:3:0: ++%*7hu: -0:0:3: ++%7hu: 0:1:2:0: ++%*7hu: 0:0:2: ++%7hu: 1:1:2:1: ++%*7hu: 1:0:2: ++%7hu: 42:1:3:42: ++%*7hu: 42:0:3: ++%7hu: 65535:1:6:65535: ++%*7hu: 65535:0:6: ++%7hu: 65536:1:6:0: ++%*7hu: 65536:0:6: ++%7hu: 65577:1:6:41: ++%*7hu: 65577:0:6: ++%7hu: +0:1:3:0: ++%*7hu: +0:0:3: ++%7hu: +1:1:3:1: ++%*7hu: +1:0:3: ++%7hu: +42:1:4:42: ++%*7hu: +42:0:4: ++%7hu: +65535:1:7:65535: ++%*7hu: +65535:0:7: ++%7hu: +65536:1:7:0: ++%*7hu: +65536:0:7: ++%7hu: +65577:1:7:41: ++%*7hu: +65577:0:7: +diff --git a/stdio-common/tst-scanf-format-ushort-x.input b/stdio-common/tst-scanf-format-ushort-x.input +new file mode 100644 +index 0000000000000000..a0ec8846d6d51f85 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-x.input +@@ -0,0 +1,714 @@ ++%hx::0:-1: ++%*hx::0:-1: ++%hx:-7b:1:3:65413: ++%*hx:-7b:0:3: ++%hx:-7B:1:3:65413: ++%*hx:-7B:0:3: ++%hx:-0X7b:1:5:65413: ++%*hx:-0X7b:0:5: ++%hx:-0x7B:1:5:65413: ++%*hx:-0x7B:0:5: ++%hx:-1:1:2:65535: ++%*hx:-1:0:2: ++%hx:-0X1:1:4:65535: ++%*hx:-0X1:0:4: ++%hx:-0x1:1:4:65535: ++%*hx:-0x1:0:4: ++%hx:-0:1:2:0: ++%*hx:-0:0:2: ++%hx:-0X0:1:4:0: ++%*hx:-0X0:0:4: ++%hx:-0x0:1:4:0: ++%*hx:-0x0:0:4: ++%hx:0:1:1:0: ++%*hx:0:0:1: ++%hx:0X0:1:3:0: ++%*hx:0X0:0:3: ++%hx:0x0:1:3:0: ++%*hx:0x0:0:3: ++%hx:1:1:1:1: ++%*hx:1:0:1: ++%hx:0X1:1:3:1: ++%*hx:0X1:0:3: ++%hx:0x1:1:3:1: ++%*hx:0x1:0:3: ++%hx:2a:1:2:42: ++%*hx:2a:0:2: ++%hx:2A:1:2:42: ++%*hx:2A:0:2: ++%hx:0X2a:1:4:42: ++%*hx:0X2a:0:4: ++%hx:0x2A:1:4:42: ++%*hx:0x2A:0:4: ++%hx:ffff:1:4:65535: ++%*hx:ffff:0:4: ++%hx:FFFF:1:4:65535: ++%*hx:FFFF:0:4: ++%hx:0Xffff:1:6:65535: ++%*hx:0Xffff:0:6: ++%hx:0xFFFF:1:6:65535: ++%*hx:0xFFFF:0:6: ++%hx:10000:1:5:0: ++%*hx:10000:0:5: ++%hx:0X10000:1:7:0: ++%*hx:0X10000:0:7: ++%hx:0x10000:1:7:0: ++%*hx:0x10000:0:7: ++%hx:10029:1:5:41: ++%*hx:10029:0:5: ++%hx:0X10029:1:7:41: ++%*hx:0X10029:0:7: ++%hx:0x10029:1:7:41: ++%*hx:0x10029:0:7: ++%hx:+0:1:2:0: ++%*hx:+0:0:2: ++%hx:+0X0:1:4:0: ++%*hx:+0X0:0:4: ++%hx:+0x0:1:4:0: ++%*hx:+0x0:0:4: ++%hx:+1:1:2:1: ++%*hx:+1:0:2: ++%hx:+0X1:1:4:1: ++%*hx:+0X1:0:4: ++%hx:+0x1:1:4:1: ++%*hx:+0x1:0:4: ++%hx:+2a:1:3:42: ++%*hx:+2a:0:3: ++%hx:+2A:1:3:42: ++%*hx:+2A:0:3: ++%hx:+0X2a:1:5:42: ++%*hx:+0X2a:0:5: ++%hx:+0x2A:1:5:42: ++%*hx:+0x2A:0:5: ++%hx:+ffff:1:5:65535: ++%*hx:+ffff:0:5: ++%hx:+FFFF:1:5:65535: ++%*hx:+FFFF:0:5: ++%hx:+0Xffff:1:7:65535: ++%*hx:+0Xffff:0:7: ++%hx:+0xFFFF:1:7:65535: ++%*hx:+0xFFFF:0:7: ++%hx:+10000:1:6:0: ++%*hx:+10000:0:6: ++%hx:+0X10000:1:8:0: ++%*hx:+0X10000:0:8: ++%hx:+0x10000:1:8:0: ++%*hx:+0x10000:0:8: ++%hx:+10029:1:6:41: ++%*hx:+10029:0:6: ++%hx:+0X10029:1:8:41: ++%*hx:+0X10029:0:8: ++%hx:+0x10029:1:8:41: ++%*hx:+0x10029:0:8: ++%1hx::0:-1: ++%*1hx::0:-1: ++%1hx:-7b:0:-1: ++%*1hx:-7b:0:-1: ++%1hx:-7B:0:-1: ++%*1hx:-7B:0:-1: ++%1hx:-0X7b:0:-1: ++%*1hx:-0X7b:0:-1: ++%1hx:-0x7B:0:-1: ++%*1hx:-0x7B:0:-1: ++%1hx:-1:0:-1: ++%*1hx:-1:0:-1: ++%1hx:-0X1:0:-1: ++%*1hx:-0X1:0:-1: ++%1hx:-0x1:0:-1: ++%*1hx:-0x1:0:-1: ++%1hx:-0:0:-1: ++%*1hx:-0:0:-1: ++%1hx:-0X0:0:-1: ++%*1hx:-0X0:0:-1: ++%1hx:-0x0:0:-1: ++%*1hx:-0x0:0:-1: ++%1hx:0:1:1:0: ++%*1hx:0:0:1: ++%1hx:0X0:1:1:0: ++%*1hx:0X0:0:1: ++%1hx:0x0:1:1:0: ++%*1hx:0x0:0:1: ++%1hx:1:1:1:1: ++%*1hx:1:0:1: ++%1hx:0X1:1:1:0: ++%*1hx:0X1:0:1: ++%1hx:0x1:1:1:0: ++%*1hx:0x1:0:1: ++%1hx:2a:1:1:2: ++%*1hx:2a:0:1: ++%1hx:2A:1:1:2: ++%*1hx:2A:0:1: ++%1hx:0X2a:1:1:0: ++%*1hx:0X2a:0:1: ++%1hx:0x2A:1:1:0: ++%*1hx:0x2A:0:1: ++%1hx:ffff:1:1:15: ++%*1hx:ffff:0:1: ++%1hx:FFFF:1:1:15: ++%*1hx:FFFF:0:1: ++%1hx:0Xffff:1:1:0: ++%*1hx:0Xffff:0:1: ++%1hx:0xFFFF:1:1:0: ++%*1hx:0xFFFF:0:1: ++%1hx:10000:1:1:1: ++%*1hx:10000:0:1: ++%1hx:0X10000:1:1:0: ++%*1hx:0X10000:0:1: ++%1hx:0x10000:1:1:0: ++%*1hx:0x10000:0:1: ++%1hx:10029:1:1:1: ++%*1hx:10029:0:1: ++%1hx:0X10029:1:1:0: ++%*1hx:0X10029:0:1: ++%1hx:0x10029:1:1:0: ++%*1hx:0x10029:0:1: ++%1hx:+0:0:-1: ++%*1hx:+0:0:-1: ++%1hx:+0X0:0:-1: ++%*1hx:+0X0:0:-1: ++%1hx:+0x0:0:-1: ++%*1hx:+0x0:0:-1: ++%1hx:+1:0:-1: ++%*1hx:+1:0:-1: ++%1hx:+0X1:0:-1: ++%*1hx:+0X1:0:-1: ++%1hx:+0x1:0:-1: ++%*1hx:+0x1:0:-1: ++%1hx:+2a:0:-1: ++%*1hx:+2a:0:-1: ++%1hx:+2A:0:-1: ++%*1hx:+2A:0:-1: ++%1hx:+0X2a:0:-1: ++%*1hx:+0X2a:0:-1: ++%1hx:+0x2A:0:-1: ++%*1hx:+0x2A:0:-1: ++%1hx:+ffff:0:-1: ++%*1hx:+ffff:0:-1: ++%1hx:+FFFF:0:-1: ++%*1hx:+FFFF:0:-1: ++%1hx:+0Xffff:0:-1: ++%*1hx:+0Xffff:0:-1: ++%1hx:+0xFFFF:0:-1: ++%*1hx:+0xFFFF:0:-1: ++%1hx:+10000:0:-1: ++%*1hx:+10000:0:-1: ++%1hx:+0X10000:0:-1: ++%*1hx:+0X10000:0:-1: ++%1hx:+0x10000:0:-1: ++%*1hx:+0x10000:0:-1: ++%1hx:+10029:0:-1: ++%*1hx:+10029:0:-1: ++%1hx:+0X10029:0:-1: ++%*1hx:+0X10029:0:-1: ++%1hx:+0x10029:0:-1: ++%*1hx:+0x10029:0:-1: ++%2hx::0:-1: ++%*2hx::0:-1: ++%2hx:-7b:1:2:65529: ++%*2hx:-7b:0:2: ++%2hx:-7B:1:2:65529: ++%*2hx:-7B:0:2: ++%2hx:-0X7b:1:2:0: ++%*2hx:-0X7b:0:2: ++%2hx:-0x7B:1:2:0: ++%*2hx:-0x7B:0:2: ++%2hx:-1:1:2:65535: ++%*2hx:-1:0:2: ++%2hx:-0X1:1:2:0: ++%*2hx:-0X1:0:2: ++%2hx:-0x1:1:2:0: ++%*2hx:-0x1:0:2: ++%2hx:-0:1:2:0: ++%*2hx:-0:0:2: ++%2hx:-0X0:1:2:0: ++%*2hx:-0X0:0:2: ++%2hx:-0x0:1:2:0: ++%*2hx:-0x0:0:2: ++%2hx:0:1:1:0: ++%*2hx:0:0:1: ++# BZ12701 %2hx:0X0:0:-1: ++# BZ12701 %*2hx:0X0:0:-1: ++# BZ12701 %2hx:0x0:0:-1: ++# BZ12701 %*2hx:0x0:0:-1: ++%2hx:1:1:1:1: ++%*2hx:1:0:1: ++# BZ12701 %2hx:0X1:0:-1: ++# BZ12701 %*2hx:0X1:0:-1: ++# BZ12701 %2hx:0x1:0:-1: ++# BZ12701 %*2hx:0x1:0:-1: ++%2hx:2a:1:2:42: ++%*2hx:2a:0:2: ++%2hx:2A:1:2:42: ++%*2hx:2A:0:2: ++# BZ12701 %2hx:0X2a:0:-1: ++# BZ12701 %*2hx:0X2a:0:-1: ++# BZ12701 %2hx:0x2A:0:-1: ++# BZ12701 %*2hx:0x2A:0:-1: ++%2hx:ffff:1:2:255: ++%*2hx:ffff:0:2: ++%2hx:FFFF:1:2:255: ++%*2hx:FFFF:0:2: ++# BZ12701 %2hx:0Xffff:0:-1: ++# BZ12701 %*2hx:0Xffff:0:-1: ++# BZ12701 %2hx:0xFFFF:0:-1: ++# BZ12701 %*2hx:0xFFFF:0:-1: ++%2hx:10000:1:2:16: ++%*2hx:10000:0:2: ++# BZ12701 %2hx:0X10000:0:-1: ++# BZ12701 %*2hx:0X10000:0:-1: ++# BZ12701 %2hx:0x10000:0:-1: ++# BZ12701 %*2hx:0x10000:0:-1: ++%2hx:10029:1:2:16: ++%*2hx:10029:0:2: ++# BZ12701 %2hx:0X10029:0:-1: ++# BZ12701 %*2hx:0X10029:0:-1: ++# BZ12701 %2hx:0x10029:0:-1: ++# BZ12701 %*2hx:0x10029:0:-1: ++%2hx:+0:1:2:0: ++%*2hx:+0:0:2: ++%2hx:+0X0:1:2:0: ++%*2hx:+0X0:0:2: ++%2hx:+0x0:1:2:0: ++%*2hx:+0x0:0:2: ++%2hx:+1:1:2:1: ++%*2hx:+1:0:2: ++%2hx:+0X1:1:2:0: ++%*2hx:+0X1:0:2: ++%2hx:+0x1:1:2:0: ++%*2hx:+0x1:0:2: ++%2hx:+2a:1:2:2: ++%*2hx:+2a:0:2: ++%2hx:+2A:1:2:2: ++%*2hx:+2A:0:2: ++%2hx:+0X2a:1:2:0: ++%*2hx:+0X2a:0:2: ++%2hx:+0x2A:1:2:0: ++%*2hx:+0x2A:0:2: ++%2hx:+ffff:1:2:15: ++%*2hx:+ffff:0:2: ++%2hx:+FFFF:1:2:15: ++%*2hx:+FFFF:0:2: ++%2hx:+0Xffff:1:2:0: ++%*2hx:+0Xffff:0:2: ++%2hx:+0xFFFF:1:2:0: ++%*2hx:+0xFFFF:0:2: ++%2hx:+10000:1:2:1: ++%*2hx:+10000:0:2: ++%2hx:+0X10000:1:2:0: ++%*2hx:+0X10000:0:2: ++%2hx:+0x10000:1:2:0: ++%*2hx:+0x10000:0:2: ++%2hx:+10029:1:2:1: ++%*2hx:+10029:0:2: ++%2hx:+0X10029:1:2:0: ++%*2hx:+0X10029:0:2: ++%2hx:+0x10029:1:2:0: ++%*2hx:+0x10029:0:2: ++%4hx::0:-1: ++%*4hx::0:-1: ++%4hx:-7b:1:3:65413: ++%*4hx:-7b:0:3: ++%4hx:-7B:1:3:65413: ++%*4hx:-7B:0:3: ++%4hx:-0X7b:1:4:65529: ++%*4hx:-0X7b:0:4: ++%4hx:-0x7B:1:4:65529: ++%*4hx:-0x7B:0:4: ++%4hx:-1:1:2:65535: ++%*4hx:-1:0:2: ++%4hx:-0X1:1:4:65535: ++%*4hx:-0X1:0:4: ++%4hx:-0x1:1:4:65535: ++%*4hx:-0x1:0:4: ++%4hx:-0:1:2:0: ++%*4hx:-0:0:2: ++%4hx:-0X0:1:4:0: ++%*4hx:-0X0:0:4: ++%4hx:-0x0:1:4:0: ++%*4hx:-0x0:0:4: ++%4hx:0:1:1:0: ++%*4hx:0:0:1: ++%4hx:0X0:1:3:0: ++%*4hx:0X0:0:3: ++%4hx:0x0:1:3:0: ++%*4hx:0x0:0:3: ++%4hx:1:1:1:1: ++%*4hx:1:0:1: ++%4hx:0X1:1:3:1: ++%*4hx:0X1:0:3: ++%4hx:0x1:1:3:1: ++%*4hx:0x1:0:3: ++%4hx:2a:1:2:42: ++%*4hx:2a:0:2: ++%4hx:2A:1:2:42: ++%*4hx:2A:0:2: ++%4hx:0X2a:1:4:42: ++%*4hx:0X2a:0:4: ++%4hx:0x2A:1:4:42: ++%*4hx:0x2A:0:4: ++%4hx:ffff:1:4:65535: ++%*4hx:ffff:0:4: ++%4hx:FFFF:1:4:65535: ++%*4hx:FFFF:0:4: ++%4hx:0Xffff:1:4:255: ++%*4hx:0Xffff:0:4: ++%4hx:0xFFFF:1:4:255: ++%*4hx:0xFFFF:0:4: ++%4hx:10000:1:4:4096: ++%*4hx:10000:0:4: ++%4hx:0X10000:1:4:16: ++%*4hx:0X10000:0:4: ++%4hx:0x10000:1:4:16: ++%*4hx:0x10000:0:4: ++%4hx:10029:1:4:4098: ++%*4hx:10029:0:4: ++%4hx:0X10029:1:4:16: ++%*4hx:0X10029:0:4: ++%4hx:0x10029:1:4:16: ++%*4hx:0x10029:0:4: ++%4hx:+0:1:2:0: ++%*4hx:+0:0:2: ++%4hx:+0X0:1:4:0: ++%*4hx:+0X0:0:4: ++%4hx:+0x0:1:4:0: ++%*4hx:+0x0:0:4: ++%4hx:+1:1:2:1: ++%*4hx:+1:0:2: ++%4hx:+0X1:1:4:1: ++%*4hx:+0X1:0:4: ++%4hx:+0x1:1:4:1: ++%*4hx:+0x1:0:4: ++%4hx:+2a:1:3:42: ++%*4hx:+2a:0:3: ++%4hx:+2A:1:3:42: ++%*4hx:+2A:0:3: ++%4hx:+0X2a:1:4:2: ++%*4hx:+0X2a:0:4: ++%4hx:+0x2A:1:4:2: ++%*4hx:+0x2A:0:4: ++%4hx:+ffff:1:4:4095: ++%*4hx:+ffff:0:4: ++%4hx:+FFFF:1:4:4095: ++%*4hx:+FFFF:0:4: ++%4hx:+0Xffff:1:4:15: ++%*4hx:+0Xffff:0:4: ++%4hx:+0xFFFF:1:4:15: ++%*4hx:+0xFFFF:0:4: ++%4hx:+10000:1:4:256: ++%*4hx:+10000:0:4: ++%4hx:+0X10000:1:4:1: ++%*4hx:+0X10000:0:4: ++%4hx:+0x10000:1:4:1: ++%*4hx:+0x10000:0:4: ++%4hx:+10029:1:4:256: ++%*4hx:+10029:0:4: ++%4hx:+0X10029:1:4:1: ++%*4hx:+0X10029:0:4: ++%4hx:+0x10029:1:4:1: ++%*4hx:+0x10029:0:4: ++%7hx::0:-1: ++%*7hx::0:-1: ++%7hx:-7b:1:3:65413: ++%*7hx:-7b:0:3: ++%7hx:-7B:1:3:65413: ++%*7hx:-7B:0:3: ++%7hx:-0X7b:1:5:65413: ++%*7hx:-0X7b:0:5: ++%7hx:-0x7B:1:5:65413: ++%*7hx:-0x7B:0:5: ++%7hx:-1:1:2:65535: ++%*7hx:-1:0:2: ++%7hx:-0X1:1:4:65535: ++%*7hx:-0X1:0:4: ++%7hx:-0x1:1:4:65535: ++%*7hx:-0x1:0:4: ++%7hx:-0:1:2:0: ++%*7hx:-0:0:2: ++%7hx:-0X0:1:4:0: ++%*7hx:-0X0:0:4: ++%7hx:-0x0:1:4:0: ++%*7hx:-0x0:0:4: ++%7hx:0:1:1:0: ++%*7hx:0:0:1: ++%7hx:0X0:1:3:0: ++%*7hx:0X0:0:3: ++%7hx:0x0:1:3:0: ++%*7hx:0x0:0:3: ++%7hx:1:1:1:1: ++%*7hx:1:0:1: ++%7hx:0X1:1:3:1: ++%*7hx:0X1:0:3: ++%7hx:0x1:1:3:1: ++%*7hx:0x1:0:3: ++%7hx:2a:1:2:42: ++%*7hx:2a:0:2: ++%7hx:2A:1:2:42: ++%*7hx:2A:0:2: ++%7hx:0X2a:1:4:42: ++%*7hx:0X2a:0:4: ++%7hx:0x2A:1:4:42: ++%*7hx:0x2A:0:4: ++%7hx:ffff:1:4:65535: ++%*7hx:ffff:0:4: ++%7hx:FFFF:1:4:65535: ++%*7hx:FFFF:0:4: ++%7hx:0Xffff:1:6:65535: ++%*7hx:0Xffff:0:6: ++%7hx:0xFFFF:1:6:65535: ++%*7hx:0xFFFF:0:6: ++%7hx:10000:1:5:0: ++%*7hx:10000:0:5: ++%7hx:0X10000:1:7:0: ++%*7hx:0X10000:0:7: ++%7hx:0x10000:1:7:0: ++%*7hx:0x10000:0:7: ++%7hx:10029:1:5:41: ++%*7hx:10029:0:5: ++%7hx:0X10029:1:7:41: ++%*7hx:0X10029:0:7: ++%7hx:0x10029:1:7:41: ++%*7hx:0x10029:0:7: ++%7hx:+0:1:2:0: ++%*7hx:+0:0:2: ++%7hx:+0X0:1:4:0: ++%*7hx:+0X0:0:4: ++%7hx:+0x0:1:4:0: ++%*7hx:+0x0:0:4: ++%7hx:+1:1:2:1: ++%*7hx:+1:0:2: ++%7hx:+0X1:1:4:1: ++%*7hx:+0X1:0:4: ++%7hx:+0x1:1:4:1: ++%*7hx:+0x1:0:4: ++%7hx:+2a:1:3:42: ++%*7hx:+2a:0:3: ++%7hx:+2A:1:3:42: ++%*7hx:+2A:0:3: ++%7hx:+0X2a:1:5:42: ++%*7hx:+0X2a:0:5: ++%7hx:+0x2A:1:5:42: ++%*7hx:+0x2A:0:5: ++%7hx:+ffff:1:5:65535: ++%*7hx:+ffff:0:5: ++%7hx:+FFFF:1:5:65535: ++%*7hx:+FFFF:0:5: ++%7hx:+0Xffff:1:7:65535: ++%*7hx:+0Xffff:0:7: ++%7hx:+0xFFFF:1:7:65535: ++%*7hx:+0xFFFF:0:7: ++%7hx:+10000:1:6:0: ++%*7hx:+10000:0:6: ++%7hx:+0X10000:1:7:4096: ++%*7hx:+0X10000:0:7: ++%7hx:+0x10000:1:7:4096: ++%*7hx:+0x10000:0:7: ++%7hx:+10029:1:6:41: ++%*7hx:+10029:0:6: ++%7hx:+0X10029:1:7:4098: ++%*7hx:+0X10029:0:7: ++%7hx:+0x10029:1:7:4098: ++%*7hx:+0x10029:0:7: ++%2hx: :0:-1: ++%*2hx: :0:-1: ++%2hx: -7b:1:3:65529: ++%*2hx: -7b:0:3: ++%2hx: -7B:1:3:65529: ++%*2hx: -7B:0:3: ++%2hx: -0X7b:1:3:0: ++%*2hx: -0X7b:0:3: ++%2hx: -0x7B:1:3:0: ++%*2hx: -0x7B:0:3: ++%2hx: -1:1:3:65535: ++%*2hx: -1:0:3: ++%2hx: -0X1:1:3:0: ++%*2hx: -0X1:0:3: ++%2hx: -0x1:1:3:0: ++%*2hx: -0x1:0:3: ++%2hx: -0:1:3:0: ++%*2hx: -0:0:3: ++%2hx: -0X0:1:3:0: ++%*2hx: -0X0:0:3: ++%2hx: -0x0:1:3:0: ++%*2hx: -0x0:0:3: ++%2hx: 0:1:2:0: ++%*2hx: 0:0:2: ++# BZ12701 %2hx: 0X0:0:-1: ++# BZ12701 %*2hx: 0X0:0:-1: ++# BZ12701 %2hx: 0x0:0:-1: ++# BZ12701 %*2hx: 0x0:0:-1: ++%2hx: 1:1:2:1: ++%*2hx: 1:0:2: ++# BZ12701 %2hx: 0X1:0:-1: ++# BZ12701 %*2hx: 0X1:0:-1: ++# BZ12701 %2hx: 0x1:0:-1: ++# BZ12701 %*2hx: 0x1:0:-1: ++%2hx: 2a:1:3:42: ++%*2hx: 2a:0:3: ++%2hx: 2A:1:3:42: ++%*2hx: 2A:0:3: ++# BZ12701 %2hx: 0X2a:0:-1: ++# BZ12701 %*2hx: 0X2a:0:-1: ++# BZ12701 %2hx: 0x2A:0:-1: ++# BZ12701 %*2hx: 0x2A:0:-1: ++%2hx: ffff:1:3:255: ++%*2hx: ffff:0:3: ++%2hx: FFFF:1:3:255: ++%*2hx: FFFF:0:3: ++# BZ12701 %2hx: 0Xffff:0:-1: ++# BZ12701 %*2hx: 0Xffff:0:-1: ++# BZ12701 %2hx: 0xFFFF:0:-1: ++# BZ12701 %*2hx: 0xFFFF:0:-1: ++%2hx: 10000:1:3:16: ++%*2hx: 10000:0:3: ++# BZ12701 %2hx: 0X10000:0:-1: ++# BZ12701 %*2hx: 0X10000:0:-1: ++# BZ12701 %2hx: 0x10000:0:-1: ++# BZ12701 %*2hx: 0x10000:0:-1: ++%2hx: 10029:1:3:16: ++%*2hx: 10029:0:3: ++# BZ12701 %2hx: 0X10029:0:-1: ++# BZ12701 %*2hx: 0X10029:0:-1: ++# BZ12701 %2hx: 0x10029:0:-1: ++# BZ12701 %*2hx: 0x10029:0:-1: ++%2hx: +0:1:3:0: ++%*2hx: +0:0:3: ++%2hx: +0X0:1:3:0: ++%*2hx: +0X0:0:3: ++%2hx: +0x0:1:3:0: ++%*2hx: +0x0:0:3: ++%2hx: +1:1:3:1: ++%*2hx: +1:0:3: ++%2hx: +0X1:1:3:0: ++%*2hx: +0X1:0:3: ++%2hx: +0x1:1:3:0: ++%*2hx: +0x1:0:3: ++%2hx: +2a:1:3:2: ++%*2hx: +2a:0:3: ++%2hx: +2A:1:3:2: ++%*2hx: +2A:0:3: ++%2hx: +0X2a:1:3:0: ++%*2hx: +0X2a:0:3: ++%2hx: +0x2A:1:3:0: ++%*2hx: +0x2A:0:3: ++%2hx: +ffff:1:3:15: ++%*2hx: +ffff:0:3: ++%2hx: +FFFF:1:3:15: ++%*2hx: +FFFF:0:3: ++%2hx: +0Xffff:1:3:0: ++%*2hx: +0Xffff:0:3: ++%2hx: +0xFFFF:1:3:0: ++%*2hx: +0xFFFF:0:3: ++%2hx: +10000:1:3:1: ++%*2hx: +10000:0:3: ++%2hx: +0X10000:1:3:0: ++%*2hx: +0X10000:0:3: ++%2hx: +0x10000:1:3:0: ++%*2hx: +0x10000:0:3: ++%2hx: +10029:1:3:1: ++%*2hx: +10029:0:3: ++%2hx: +0X10029:1:3:0: ++%*2hx: +0X10029:0:3: ++%2hx: +0x10029:1:3:0: ++%*2hx: +0x10029:0:3: ++%7hx: :0:-1: ++%*7hx: :0:-1: ++%7hx: -7b:1:4:65413: ++%*7hx: -7b:0:4: ++%7hx: -7B:1:4:65413: ++%*7hx: -7B:0:4: ++%7hx: -0X7b:1:6:65413: ++%*7hx: -0X7b:0:6: ++%7hx: -0x7B:1:6:65413: ++%*7hx: -0x7B:0:6: ++%7hx: -1:1:3:65535: ++%*7hx: -1:0:3: ++%7hx: -0X1:1:5:65535: ++%*7hx: -0X1:0:5: ++%7hx: -0x1:1:5:65535: ++%*7hx: -0x1:0:5: ++%7hx: -0:1:3:0: ++%*7hx: -0:0:3: ++%7hx: -0X0:1:5:0: ++%*7hx: -0X0:0:5: ++%7hx: -0x0:1:5:0: ++%*7hx: -0x0:0:5: ++%7hx: 0:1:2:0: ++%*7hx: 0:0:2: ++%7hx: 0X0:1:4:0: ++%*7hx: 0X0:0:4: ++%7hx: 0x0:1:4:0: ++%*7hx: 0x0:0:4: ++%7hx: 1:1:2:1: ++%*7hx: 1:0:2: ++%7hx: 0X1:1:4:1: ++%*7hx: 0X1:0:4: ++%7hx: 0x1:1:4:1: ++%*7hx: 0x1:0:4: ++%7hx: 2a:1:3:42: ++%*7hx: 2a:0:3: ++%7hx: 2A:1:3:42: ++%*7hx: 2A:0:3: ++%7hx: 0X2a:1:5:42: ++%*7hx: 0X2a:0:5: ++%7hx: 0x2A:1:5:42: ++%*7hx: 0x2A:0:5: ++%7hx: ffff:1:5:65535: ++%*7hx: ffff:0:5: ++%7hx: FFFF:1:5:65535: ++%*7hx: FFFF:0:5: ++%7hx: 0Xffff:1:7:65535: ++%*7hx: 0Xffff:0:7: ++%7hx: 0xFFFF:1:7:65535: ++%*7hx: 0xFFFF:0:7: ++%7hx: 10000:1:6:0: ++%*7hx: 10000:0:6: ++%7hx: 0X10000:1:8:0: ++%*7hx: 0X10000:0:8: ++%7hx: 0x10000:1:8:0: ++%*7hx: 0x10000:0:8: ++%7hx: 10029:1:6:41: ++%*7hx: 10029:0:6: ++%7hx: 0X10029:1:8:41: ++%*7hx: 0X10029:0:8: ++%7hx: 0x10029:1:8:41: ++%*7hx: 0x10029:0:8: ++%7hx: +0:1:3:0: ++%*7hx: +0:0:3: ++%7hx: +0X0:1:5:0: ++%*7hx: +0X0:0:5: ++%7hx: +0x0:1:5:0: ++%*7hx: +0x0:0:5: ++%7hx: +1:1:3:1: ++%*7hx: +1:0:3: ++%7hx: +0X1:1:5:1: ++%*7hx: +0X1:0:5: ++%7hx: +0x1:1:5:1: ++%*7hx: +0x1:0:5: ++%7hx: +2a:1:4:42: ++%*7hx: +2a:0:4: ++%7hx: +2A:1:4:42: ++%*7hx: +2A:0:4: ++%7hx: +0X2a:1:6:42: ++%*7hx: +0X2a:0:6: ++%7hx: +0x2A:1:6:42: ++%*7hx: +0x2A:0:6: ++%7hx: +ffff:1:6:65535: ++%*7hx: +ffff:0:6: ++%7hx: +FFFF:1:6:65535: ++%*7hx: +FFFF:0:6: ++%7hx: +0Xffff:1:8:65535: ++%*7hx: +0Xffff:0:8: ++%7hx: +0xFFFF:1:8:65535: ++%*7hx: +0xFFFF:0:8: ++%7hx: +10000:1:7:0: ++%*7hx: +10000:0:7: ++%7hx: +0X10000:1:8:4096: ++%*7hx: +0X10000:0:8: ++%7hx: +0x10000:1:8:4096: ++%*7hx: +0x10000:0:8: ++%7hx: +10029:1:7:41: ++%*7hx: +10029:0:7: ++%7hx: +0X10029:1:8:4098: ++%*7hx: +0X10029:0:8: ++%7hx: +0x10029:1:8:4098: ++%*7hx: +0x10029:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-xx.input b/stdio-common/tst-scanf-format-ushort-xx.input +new file mode 100644 +index 0000000000000000..c0e52779b7862ac0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-xx.input +@@ -0,0 +1,714 @@ ++%hX::0:-1: ++%*hX::0:-1: ++%hX:-7b:1:3:65413: ++%*hX:-7b:0:3: ++%hX:-7B:1:3:65413: ++%*hX:-7B:0:3: ++%hX:-0X7b:1:5:65413: ++%*hX:-0X7b:0:5: ++%hX:-0x7B:1:5:65413: ++%*hX:-0x7B:0:5: ++%hX:-1:1:2:65535: ++%*hX:-1:0:2: ++%hX:-0X1:1:4:65535: ++%*hX:-0X1:0:4: ++%hX:-0x1:1:4:65535: ++%*hX:-0x1:0:4: ++%hX:-0:1:2:0: ++%*hX:-0:0:2: ++%hX:-0X0:1:4:0: ++%*hX:-0X0:0:4: ++%hX:-0x0:1:4:0: ++%*hX:-0x0:0:4: ++%hX:0:1:1:0: ++%*hX:0:0:1: ++%hX:0X0:1:3:0: ++%*hX:0X0:0:3: ++%hX:0x0:1:3:0: ++%*hX:0x0:0:3: ++%hX:1:1:1:1: ++%*hX:1:0:1: ++%hX:0X1:1:3:1: ++%*hX:0X1:0:3: ++%hX:0x1:1:3:1: ++%*hX:0x1:0:3: ++%hX:2a:1:2:42: ++%*hX:2a:0:2: ++%hX:2A:1:2:42: ++%*hX:2A:0:2: ++%hX:0X2a:1:4:42: ++%*hX:0X2a:0:4: ++%hX:0x2A:1:4:42: ++%*hX:0x2A:0:4: ++%hX:ffff:1:4:65535: ++%*hX:ffff:0:4: ++%hX:FFFF:1:4:65535: ++%*hX:FFFF:0:4: ++%hX:0Xffff:1:6:65535: ++%*hX:0Xffff:0:6: ++%hX:0xFFFF:1:6:65535: ++%*hX:0xFFFF:0:6: ++%hX:10000:1:5:0: ++%*hX:10000:0:5: ++%hX:0X10000:1:7:0: ++%*hX:0X10000:0:7: ++%hX:0x10000:1:7:0: ++%*hX:0x10000:0:7: ++%hX:10029:1:5:41: ++%*hX:10029:0:5: ++%hX:0X10029:1:7:41: ++%*hX:0X10029:0:7: ++%hX:0x10029:1:7:41: ++%*hX:0x10029:0:7: ++%hX:+0:1:2:0: ++%*hX:+0:0:2: ++%hX:+0X0:1:4:0: ++%*hX:+0X0:0:4: ++%hX:+0x0:1:4:0: ++%*hX:+0x0:0:4: ++%hX:+1:1:2:1: ++%*hX:+1:0:2: ++%hX:+0X1:1:4:1: ++%*hX:+0X1:0:4: ++%hX:+0x1:1:4:1: ++%*hX:+0x1:0:4: ++%hX:+2a:1:3:42: ++%*hX:+2a:0:3: ++%hX:+2A:1:3:42: ++%*hX:+2A:0:3: ++%hX:+0X2a:1:5:42: ++%*hX:+0X2a:0:5: ++%hX:+0x2A:1:5:42: ++%*hX:+0x2A:0:5: ++%hX:+ffff:1:5:65535: ++%*hX:+ffff:0:5: ++%hX:+FFFF:1:5:65535: ++%*hX:+FFFF:0:5: ++%hX:+0Xffff:1:7:65535: ++%*hX:+0Xffff:0:7: ++%hX:+0xFFFF:1:7:65535: ++%*hX:+0xFFFF:0:7: ++%hX:+10000:1:6:0: ++%*hX:+10000:0:6: ++%hX:+0X10000:1:8:0: ++%*hX:+0X10000:0:8: ++%hX:+0x10000:1:8:0: ++%*hX:+0x10000:0:8: ++%hX:+10029:1:6:41: ++%*hX:+10029:0:6: ++%hX:+0X10029:1:8:41: ++%*hX:+0X10029:0:8: ++%hX:+0x10029:1:8:41: ++%*hX:+0x10029:0:8: ++%1hX::0:-1: ++%*1hX::0:-1: ++%1hX:-7b:0:-1: ++%*1hX:-7b:0:-1: ++%1hX:-7B:0:-1: ++%*1hX:-7B:0:-1: ++%1hX:-0X7b:0:-1: ++%*1hX:-0X7b:0:-1: ++%1hX:-0x7B:0:-1: ++%*1hX:-0x7B:0:-1: ++%1hX:-1:0:-1: ++%*1hX:-1:0:-1: ++%1hX:-0X1:0:-1: ++%*1hX:-0X1:0:-1: ++%1hX:-0x1:0:-1: ++%*1hX:-0x1:0:-1: ++%1hX:-0:0:-1: ++%*1hX:-0:0:-1: ++%1hX:-0X0:0:-1: ++%*1hX:-0X0:0:-1: ++%1hX:-0x0:0:-1: ++%*1hX:-0x0:0:-1: ++%1hX:0:1:1:0: ++%*1hX:0:0:1: ++%1hX:0X0:1:1:0: ++%*1hX:0X0:0:1: ++%1hX:0x0:1:1:0: ++%*1hX:0x0:0:1: ++%1hX:1:1:1:1: ++%*1hX:1:0:1: ++%1hX:0X1:1:1:0: ++%*1hX:0X1:0:1: ++%1hX:0x1:1:1:0: ++%*1hX:0x1:0:1: ++%1hX:2a:1:1:2: ++%*1hX:2a:0:1: ++%1hX:2A:1:1:2: ++%*1hX:2A:0:1: ++%1hX:0X2a:1:1:0: ++%*1hX:0X2a:0:1: ++%1hX:0x2A:1:1:0: ++%*1hX:0x2A:0:1: ++%1hX:ffff:1:1:15: ++%*1hX:ffff:0:1: ++%1hX:FFFF:1:1:15: ++%*1hX:FFFF:0:1: ++%1hX:0Xffff:1:1:0: ++%*1hX:0Xffff:0:1: ++%1hX:0xFFFF:1:1:0: ++%*1hX:0xFFFF:0:1: ++%1hX:10000:1:1:1: ++%*1hX:10000:0:1: ++%1hX:0X10000:1:1:0: ++%*1hX:0X10000:0:1: ++%1hX:0x10000:1:1:0: ++%*1hX:0x10000:0:1: ++%1hX:10029:1:1:1: ++%*1hX:10029:0:1: ++%1hX:0X10029:1:1:0: ++%*1hX:0X10029:0:1: ++%1hX:0x10029:1:1:0: ++%*1hX:0x10029:0:1: ++%1hX:+0:0:-1: ++%*1hX:+0:0:-1: ++%1hX:+0X0:0:-1: ++%*1hX:+0X0:0:-1: ++%1hX:+0x0:0:-1: ++%*1hX:+0x0:0:-1: ++%1hX:+1:0:-1: ++%*1hX:+1:0:-1: ++%1hX:+0X1:0:-1: ++%*1hX:+0X1:0:-1: ++%1hX:+0x1:0:-1: ++%*1hX:+0x1:0:-1: ++%1hX:+2a:0:-1: ++%*1hX:+2a:0:-1: ++%1hX:+2A:0:-1: ++%*1hX:+2A:0:-1: ++%1hX:+0X2a:0:-1: ++%*1hX:+0X2a:0:-1: ++%1hX:+0x2A:0:-1: ++%*1hX:+0x2A:0:-1: ++%1hX:+ffff:0:-1: ++%*1hX:+ffff:0:-1: ++%1hX:+FFFF:0:-1: ++%*1hX:+FFFF:0:-1: ++%1hX:+0Xffff:0:-1: ++%*1hX:+0Xffff:0:-1: ++%1hX:+0xFFFF:0:-1: ++%*1hX:+0xFFFF:0:-1: ++%1hX:+10000:0:-1: ++%*1hX:+10000:0:-1: ++%1hX:+0X10000:0:-1: ++%*1hX:+0X10000:0:-1: ++%1hX:+0x10000:0:-1: ++%*1hX:+0x10000:0:-1: ++%1hX:+10029:0:-1: ++%*1hX:+10029:0:-1: ++%1hX:+0X10029:0:-1: ++%*1hX:+0X10029:0:-1: ++%1hX:+0x10029:0:-1: ++%*1hX:+0x10029:0:-1: ++%2hX::0:-1: ++%*2hX::0:-1: ++%2hX:-7b:1:2:65529: ++%*2hX:-7b:0:2: ++%2hX:-7B:1:2:65529: ++%*2hX:-7B:0:2: ++%2hX:-0X7b:1:2:0: ++%*2hX:-0X7b:0:2: ++%2hX:-0x7B:1:2:0: ++%*2hX:-0x7B:0:2: ++%2hX:-1:1:2:65535: ++%*2hX:-1:0:2: ++%2hX:-0X1:1:2:0: ++%*2hX:-0X1:0:2: ++%2hX:-0x1:1:2:0: ++%*2hX:-0x1:0:2: ++%2hX:-0:1:2:0: ++%*2hX:-0:0:2: ++%2hX:-0X0:1:2:0: ++%*2hX:-0X0:0:2: ++%2hX:-0x0:1:2:0: ++%*2hX:-0x0:0:2: ++%2hX:0:1:1:0: ++%*2hX:0:0:1: ++# BZ12701 %2hX:0X0:0:-1: ++# BZ12701 %*2hX:0X0:0:-1: ++# BZ12701 %2hX:0x0:0:-1: ++# BZ12701 %*2hX:0x0:0:-1: ++%2hX:1:1:1:1: ++%*2hX:1:0:1: ++# BZ12701 %2hX:0X1:0:-1: ++# BZ12701 %*2hX:0X1:0:-1: ++# BZ12701 %2hX:0x1:0:-1: ++# BZ12701 %*2hX:0x1:0:-1: ++%2hX:2a:1:2:42: ++%*2hX:2a:0:2: ++%2hX:2A:1:2:42: ++%*2hX:2A:0:2: ++# BZ12701 %2hX:0X2a:0:-1: ++# BZ12701 %*2hX:0X2a:0:-1: ++# BZ12701 %2hX:0x2A:0:-1: ++# BZ12701 %*2hX:0x2A:0:-1: ++%2hX:ffff:1:2:255: ++%*2hX:ffff:0:2: ++%2hX:FFFF:1:2:255: ++%*2hX:FFFF:0:2: ++# BZ12701 %2hX:0Xffff:0:-1: ++# BZ12701 %*2hX:0Xffff:0:-1: ++# BZ12701 %2hX:0xFFFF:0:-1: ++# BZ12701 %*2hX:0xFFFF:0:-1: ++%2hX:10000:1:2:16: ++%*2hX:10000:0:2: ++# BZ12701 %2hX:0X10000:0:-1: ++# BZ12701 %*2hX:0X10000:0:-1: ++# BZ12701 %2hX:0x10000:0:-1: ++# BZ12701 %*2hX:0x10000:0:-1: ++%2hX:10029:1:2:16: ++%*2hX:10029:0:2: ++# BZ12701 %2hX:0X10029:0:-1: ++# BZ12701 %*2hX:0X10029:0:-1: ++# BZ12701 %2hX:0x10029:0:-1: ++# BZ12701 %*2hX:0x10029:0:-1: ++%2hX:+0:1:2:0: ++%*2hX:+0:0:2: ++%2hX:+0X0:1:2:0: ++%*2hX:+0X0:0:2: ++%2hX:+0x0:1:2:0: ++%*2hX:+0x0:0:2: ++%2hX:+1:1:2:1: ++%*2hX:+1:0:2: ++%2hX:+0X1:1:2:0: ++%*2hX:+0X1:0:2: ++%2hX:+0x1:1:2:0: ++%*2hX:+0x1:0:2: ++%2hX:+2a:1:2:2: ++%*2hX:+2a:0:2: ++%2hX:+2A:1:2:2: ++%*2hX:+2A:0:2: ++%2hX:+0X2a:1:2:0: ++%*2hX:+0X2a:0:2: ++%2hX:+0x2A:1:2:0: ++%*2hX:+0x2A:0:2: ++%2hX:+ffff:1:2:15: ++%*2hX:+ffff:0:2: ++%2hX:+FFFF:1:2:15: ++%*2hX:+FFFF:0:2: ++%2hX:+0Xffff:1:2:0: ++%*2hX:+0Xffff:0:2: ++%2hX:+0xFFFF:1:2:0: ++%*2hX:+0xFFFF:0:2: ++%2hX:+10000:1:2:1: ++%*2hX:+10000:0:2: ++%2hX:+0X10000:1:2:0: ++%*2hX:+0X10000:0:2: ++%2hX:+0x10000:1:2:0: ++%*2hX:+0x10000:0:2: ++%2hX:+10029:1:2:1: ++%*2hX:+10029:0:2: ++%2hX:+0X10029:1:2:0: ++%*2hX:+0X10029:0:2: ++%2hX:+0x10029:1:2:0: ++%*2hX:+0x10029:0:2: ++%4hX::0:-1: ++%*4hX::0:-1: ++%4hX:-7b:1:3:65413: ++%*4hX:-7b:0:3: ++%4hX:-7B:1:3:65413: ++%*4hX:-7B:0:3: ++%4hX:-0X7b:1:4:65529: ++%*4hX:-0X7b:0:4: ++%4hX:-0x7B:1:4:65529: ++%*4hX:-0x7B:0:4: ++%4hX:-1:1:2:65535: ++%*4hX:-1:0:2: ++%4hX:-0X1:1:4:65535: ++%*4hX:-0X1:0:4: ++%4hX:-0x1:1:4:65535: ++%*4hX:-0x1:0:4: ++%4hX:-0:1:2:0: ++%*4hX:-0:0:2: ++%4hX:-0X0:1:4:0: ++%*4hX:-0X0:0:4: ++%4hX:-0x0:1:4:0: ++%*4hX:-0x0:0:4: ++%4hX:0:1:1:0: ++%*4hX:0:0:1: ++%4hX:0X0:1:3:0: ++%*4hX:0X0:0:3: ++%4hX:0x0:1:3:0: ++%*4hX:0x0:0:3: ++%4hX:1:1:1:1: ++%*4hX:1:0:1: ++%4hX:0X1:1:3:1: ++%*4hX:0X1:0:3: ++%4hX:0x1:1:3:1: ++%*4hX:0x1:0:3: ++%4hX:2a:1:2:42: ++%*4hX:2a:0:2: ++%4hX:2A:1:2:42: ++%*4hX:2A:0:2: ++%4hX:0X2a:1:4:42: ++%*4hX:0X2a:0:4: ++%4hX:0x2A:1:4:42: ++%*4hX:0x2A:0:4: ++%4hX:ffff:1:4:65535: ++%*4hX:ffff:0:4: ++%4hX:FFFF:1:4:65535: ++%*4hX:FFFF:0:4: ++%4hX:0Xffff:1:4:255: ++%*4hX:0Xffff:0:4: ++%4hX:0xFFFF:1:4:255: ++%*4hX:0xFFFF:0:4: ++%4hX:10000:1:4:4096: ++%*4hX:10000:0:4: ++%4hX:0X10000:1:4:16: ++%*4hX:0X10000:0:4: ++%4hX:0x10000:1:4:16: ++%*4hX:0x10000:0:4: ++%4hX:10029:1:4:4098: ++%*4hX:10029:0:4: ++%4hX:0X10029:1:4:16: ++%*4hX:0X10029:0:4: ++%4hX:0x10029:1:4:16: ++%*4hX:0x10029:0:4: ++%4hX:+0:1:2:0: ++%*4hX:+0:0:2: ++%4hX:+0X0:1:4:0: ++%*4hX:+0X0:0:4: ++%4hX:+0x0:1:4:0: ++%*4hX:+0x0:0:4: ++%4hX:+1:1:2:1: ++%*4hX:+1:0:2: ++%4hX:+0X1:1:4:1: ++%*4hX:+0X1:0:4: ++%4hX:+0x1:1:4:1: ++%*4hX:+0x1:0:4: ++%4hX:+2a:1:3:42: ++%*4hX:+2a:0:3: ++%4hX:+2A:1:3:42: ++%*4hX:+2A:0:3: ++%4hX:+0X2a:1:4:2: ++%*4hX:+0X2a:0:4: ++%4hX:+0x2A:1:4:2: ++%*4hX:+0x2A:0:4: ++%4hX:+ffff:1:4:4095: ++%*4hX:+ffff:0:4: ++%4hX:+FFFF:1:4:4095: ++%*4hX:+FFFF:0:4: ++%4hX:+0Xffff:1:4:15: ++%*4hX:+0Xffff:0:4: ++%4hX:+0xFFFF:1:4:15: ++%*4hX:+0xFFFF:0:4: ++%4hX:+10000:1:4:256: ++%*4hX:+10000:0:4: ++%4hX:+0X10000:1:4:1: ++%*4hX:+0X10000:0:4: ++%4hX:+0x10000:1:4:1: ++%*4hX:+0x10000:0:4: ++%4hX:+10029:1:4:256: ++%*4hX:+10029:0:4: ++%4hX:+0X10029:1:4:1: ++%*4hX:+0X10029:0:4: ++%4hX:+0x10029:1:4:1: ++%*4hX:+0x10029:0:4: ++%7hX::0:-1: ++%*7hX::0:-1: ++%7hX:-7b:1:3:65413: ++%*7hX:-7b:0:3: ++%7hX:-7B:1:3:65413: ++%*7hX:-7B:0:3: ++%7hX:-0X7b:1:5:65413: ++%*7hX:-0X7b:0:5: ++%7hX:-0x7B:1:5:65413: ++%*7hX:-0x7B:0:5: ++%7hX:-1:1:2:65535: ++%*7hX:-1:0:2: ++%7hX:-0X1:1:4:65535: ++%*7hX:-0X1:0:4: ++%7hX:-0x1:1:4:65535: ++%*7hX:-0x1:0:4: ++%7hX:-0:1:2:0: ++%*7hX:-0:0:2: ++%7hX:-0X0:1:4:0: ++%*7hX:-0X0:0:4: ++%7hX:-0x0:1:4:0: ++%*7hX:-0x0:0:4: ++%7hX:0:1:1:0: ++%*7hX:0:0:1: ++%7hX:0X0:1:3:0: ++%*7hX:0X0:0:3: ++%7hX:0x0:1:3:0: ++%*7hX:0x0:0:3: ++%7hX:1:1:1:1: ++%*7hX:1:0:1: ++%7hX:0X1:1:3:1: ++%*7hX:0X1:0:3: ++%7hX:0x1:1:3:1: ++%*7hX:0x1:0:3: ++%7hX:2a:1:2:42: ++%*7hX:2a:0:2: ++%7hX:2A:1:2:42: ++%*7hX:2A:0:2: ++%7hX:0X2a:1:4:42: ++%*7hX:0X2a:0:4: ++%7hX:0x2A:1:4:42: ++%*7hX:0x2A:0:4: ++%7hX:ffff:1:4:65535: ++%*7hX:ffff:0:4: ++%7hX:FFFF:1:4:65535: ++%*7hX:FFFF:0:4: ++%7hX:0Xffff:1:6:65535: ++%*7hX:0Xffff:0:6: ++%7hX:0xFFFF:1:6:65535: ++%*7hX:0xFFFF:0:6: ++%7hX:10000:1:5:0: ++%*7hX:10000:0:5: ++%7hX:0X10000:1:7:0: ++%*7hX:0X10000:0:7: ++%7hX:0x10000:1:7:0: ++%*7hX:0x10000:0:7: ++%7hX:10029:1:5:41: ++%*7hX:10029:0:5: ++%7hX:0X10029:1:7:41: ++%*7hX:0X10029:0:7: ++%7hX:0x10029:1:7:41: ++%*7hX:0x10029:0:7: ++%7hX:+0:1:2:0: ++%*7hX:+0:0:2: ++%7hX:+0X0:1:4:0: ++%*7hX:+0X0:0:4: ++%7hX:+0x0:1:4:0: ++%*7hX:+0x0:0:4: ++%7hX:+1:1:2:1: ++%*7hX:+1:0:2: ++%7hX:+0X1:1:4:1: ++%*7hX:+0X1:0:4: ++%7hX:+0x1:1:4:1: ++%*7hX:+0x1:0:4: ++%7hX:+2a:1:3:42: ++%*7hX:+2a:0:3: ++%7hX:+2A:1:3:42: ++%*7hX:+2A:0:3: ++%7hX:+0X2a:1:5:42: ++%*7hX:+0X2a:0:5: ++%7hX:+0x2A:1:5:42: ++%*7hX:+0x2A:0:5: ++%7hX:+ffff:1:5:65535: ++%*7hX:+ffff:0:5: ++%7hX:+FFFF:1:5:65535: ++%*7hX:+FFFF:0:5: ++%7hX:+0Xffff:1:7:65535: ++%*7hX:+0Xffff:0:7: ++%7hX:+0xFFFF:1:7:65535: ++%*7hX:+0xFFFF:0:7: ++%7hX:+10000:1:6:0: ++%*7hX:+10000:0:6: ++%7hX:+0X10000:1:7:4096: ++%*7hX:+0X10000:0:7: ++%7hX:+0x10000:1:7:4096: ++%*7hX:+0x10000:0:7: ++%7hX:+10029:1:6:41: ++%*7hX:+10029:0:6: ++%7hX:+0X10029:1:7:4098: ++%*7hX:+0X10029:0:7: ++%7hX:+0x10029:1:7:4098: ++%*7hX:+0x10029:0:7: ++%2hX: :0:-1: ++%*2hX: :0:-1: ++%2hX: -7b:1:3:65529: ++%*2hX: -7b:0:3: ++%2hX: -7B:1:3:65529: ++%*2hX: -7B:0:3: ++%2hX: -0X7b:1:3:0: ++%*2hX: -0X7b:0:3: ++%2hX: -0x7B:1:3:0: ++%*2hX: -0x7B:0:3: ++%2hX: -1:1:3:65535: ++%*2hX: -1:0:3: ++%2hX: -0X1:1:3:0: ++%*2hX: -0X1:0:3: ++%2hX: -0x1:1:3:0: ++%*2hX: -0x1:0:3: ++%2hX: -0:1:3:0: ++%*2hX: -0:0:3: ++%2hX: -0X0:1:3:0: ++%*2hX: -0X0:0:3: ++%2hX: -0x0:1:3:0: ++%*2hX: -0x0:0:3: ++%2hX: 0:1:2:0: ++%*2hX: 0:0:2: ++# BZ12701 %2hX: 0X0:0:-1: ++# BZ12701 %*2hX: 0X0:0:-1: ++# BZ12701 %2hX: 0x0:0:-1: ++# BZ12701 %*2hX: 0x0:0:-1: ++%2hX: 1:1:2:1: ++%*2hX: 1:0:2: ++# BZ12701 %2hX: 0X1:0:-1: ++# BZ12701 %*2hX: 0X1:0:-1: ++# BZ12701 %2hX: 0x1:0:-1: ++# BZ12701 %*2hX: 0x1:0:-1: ++%2hX: 2a:1:3:42: ++%*2hX: 2a:0:3: ++%2hX: 2A:1:3:42: ++%*2hX: 2A:0:3: ++# BZ12701 %2hX: 0X2a:0:-1: ++# BZ12701 %*2hX: 0X2a:0:-1: ++# BZ12701 %2hX: 0x2A:0:-1: ++# BZ12701 %*2hX: 0x2A:0:-1: ++%2hX: ffff:1:3:255: ++%*2hX: ffff:0:3: ++%2hX: FFFF:1:3:255: ++%*2hX: FFFF:0:3: ++# BZ12701 %2hX: 0Xffff:0:-1: ++# BZ12701 %*2hX: 0Xffff:0:-1: ++# BZ12701 %2hX: 0xFFFF:0:-1: ++# BZ12701 %*2hX: 0xFFFF:0:-1: ++%2hX: 10000:1:3:16: ++%*2hX: 10000:0:3: ++# BZ12701 %2hX: 0X10000:0:-1: ++# BZ12701 %*2hX: 0X10000:0:-1: ++# BZ12701 %2hX: 0x10000:0:-1: ++# BZ12701 %*2hX: 0x10000:0:-1: ++%2hX: 10029:1:3:16: ++%*2hX: 10029:0:3: ++# BZ12701 %2hX: 0X10029:0:-1: ++# BZ12701 %*2hX: 0X10029:0:-1: ++# BZ12701 %2hX: 0x10029:0:-1: ++# BZ12701 %*2hX: 0x10029:0:-1: ++%2hX: +0:1:3:0: ++%*2hX: +0:0:3: ++%2hX: +0X0:1:3:0: ++%*2hX: +0X0:0:3: ++%2hX: +0x0:1:3:0: ++%*2hX: +0x0:0:3: ++%2hX: +1:1:3:1: ++%*2hX: +1:0:3: ++%2hX: +0X1:1:3:0: ++%*2hX: +0X1:0:3: ++%2hX: +0x1:1:3:0: ++%*2hX: +0x1:0:3: ++%2hX: +2a:1:3:2: ++%*2hX: +2a:0:3: ++%2hX: +2A:1:3:2: ++%*2hX: +2A:0:3: ++%2hX: +0X2a:1:3:0: ++%*2hX: +0X2a:0:3: ++%2hX: +0x2A:1:3:0: ++%*2hX: +0x2A:0:3: ++%2hX: +ffff:1:3:15: ++%*2hX: +ffff:0:3: ++%2hX: +FFFF:1:3:15: ++%*2hX: +FFFF:0:3: ++%2hX: +0Xffff:1:3:0: ++%*2hX: +0Xffff:0:3: ++%2hX: +0xFFFF:1:3:0: ++%*2hX: +0xFFFF:0:3: ++%2hX: +10000:1:3:1: ++%*2hX: +10000:0:3: ++%2hX: +0X10000:1:3:0: ++%*2hX: +0X10000:0:3: ++%2hX: +0x10000:1:3:0: ++%*2hX: +0x10000:0:3: ++%2hX: +10029:1:3:1: ++%*2hX: +10029:0:3: ++%2hX: +0X10029:1:3:0: ++%*2hX: +0X10029:0:3: ++%2hX: +0x10029:1:3:0: ++%*2hX: +0x10029:0:3: ++%7hX: :0:-1: ++%*7hX: :0:-1: ++%7hX: -7b:1:4:65413: ++%*7hX: -7b:0:4: ++%7hX: -7B:1:4:65413: ++%*7hX: -7B:0:4: ++%7hX: -0X7b:1:6:65413: ++%*7hX: -0X7b:0:6: ++%7hX: -0x7B:1:6:65413: ++%*7hX: -0x7B:0:6: ++%7hX: -1:1:3:65535: ++%*7hX: -1:0:3: ++%7hX: -0X1:1:5:65535: ++%*7hX: -0X1:0:5: ++%7hX: -0x1:1:5:65535: ++%*7hX: -0x1:0:5: ++%7hX: -0:1:3:0: ++%*7hX: -0:0:3: ++%7hX: -0X0:1:5:0: ++%*7hX: -0X0:0:5: ++%7hX: -0x0:1:5:0: ++%*7hX: -0x0:0:5: ++%7hX: 0:1:2:0: ++%*7hX: 0:0:2: ++%7hX: 0X0:1:4:0: ++%*7hX: 0X0:0:4: ++%7hX: 0x0:1:4:0: ++%*7hX: 0x0:0:4: ++%7hX: 1:1:2:1: ++%*7hX: 1:0:2: ++%7hX: 0X1:1:4:1: ++%*7hX: 0X1:0:4: ++%7hX: 0x1:1:4:1: ++%*7hX: 0x1:0:4: ++%7hX: 2a:1:3:42: ++%*7hX: 2a:0:3: ++%7hX: 2A:1:3:42: ++%*7hX: 2A:0:3: ++%7hX: 0X2a:1:5:42: ++%*7hX: 0X2a:0:5: ++%7hX: 0x2A:1:5:42: ++%*7hX: 0x2A:0:5: ++%7hX: ffff:1:5:65535: ++%*7hX: ffff:0:5: ++%7hX: FFFF:1:5:65535: ++%*7hX: FFFF:0:5: ++%7hX: 0Xffff:1:7:65535: ++%*7hX: 0Xffff:0:7: ++%7hX: 0xFFFF:1:7:65535: ++%*7hX: 0xFFFF:0:7: ++%7hX: 10000:1:6:0: ++%*7hX: 10000:0:6: ++%7hX: 0X10000:1:8:0: ++%*7hX: 0X10000:0:8: ++%7hX: 0x10000:1:8:0: ++%*7hX: 0x10000:0:8: ++%7hX: 10029:1:6:41: ++%*7hX: 10029:0:6: ++%7hX: 0X10029:1:8:41: ++%*7hX: 0X10029:0:8: ++%7hX: 0x10029:1:8:41: ++%*7hX: 0x10029:0:8: ++%7hX: +0:1:3:0: ++%*7hX: +0:0:3: ++%7hX: +0X0:1:5:0: ++%*7hX: +0X0:0:5: ++%7hX: +0x0:1:5:0: ++%*7hX: +0x0:0:5: ++%7hX: +1:1:3:1: ++%*7hX: +1:0:3: ++%7hX: +0X1:1:5:1: ++%*7hX: +0X1:0:5: ++%7hX: +0x1:1:5:1: ++%*7hX: +0x1:0:5: ++%7hX: +2a:1:4:42: ++%*7hX: +2a:0:4: ++%7hX: +2A:1:4:42: ++%*7hX: +2A:0:4: ++%7hX: +0X2a:1:6:42: ++%*7hX: +0X2a:0:6: ++%7hX: +0x2A:1:6:42: ++%*7hX: +0x2A:0:6: ++%7hX: +ffff:1:6:65535: ++%*7hX: +ffff:0:6: ++%7hX: +FFFF:1:6:65535: ++%*7hX: +FFFF:0:6: ++%7hX: +0Xffff:1:8:65535: ++%*7hX: +0Xffff:0:8: ++%7hX: +0xFFFF:1:8:65535: ++%*7hX: +0xFFFF:0:8: ++%7hX: +10000:1:7:0: ++%*7hX: +10000:0:7: ++%7hX: +0X10000:1:8:4096: ++%*7hX: +0X10000:0:8: ++%7hX: +0x10000:1:8:4096: ++%*7hX: +0x10000:0:8: ++%7hX: +10029:1:7:41: ++%*7hX: +10029:0:7: ++%7hX: +0X10029:1:8:4098: ++%*7hX: +0X10029:0:8: ++%7hX: +0x10029:1:8:4098: ++%*7hX: +0x10029:0:8: diff --git a/SOURCES/glibc-RHEL-84306-10.patch b/SOURCES/glibc-RHEL-84306-10.patch new file mode 100644 index 0000000..194289a --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-10.patch @@ -0,0 +1,451 @@ +commit 50576060c8bf88a3c64c9ab1cdd516974ffb2690 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted fscanf input specifiers + + Wire fscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index df7afefc7a1f9828..e8e06f194e6592b6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s ++xscanf-funcs := s f + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-f-c.c b/stdio-common/tst-scanf-format-f-c.c +new file mode 100644 +index 0000000000000000..75ce3cd7c314faee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-f-char.c b/stdio-common/tst-scanf-format-f-char.c +new file mode 100644 +index 0000000000000000..ee5fbe9e1fc9c0aa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-f-double.c b/stdio-common/tst-scanf-format-f-double.c +new file mode 100644 +index 0000000000000000..1fb25b56b2d27ce5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-f-float.c b/stdio-common/tst-scanf-format-f-float.c +new file mode 100644 +index 0000000000000000..b5a6ae4b1e957bd3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-f-int.c b/stdio-common/tst-scanf-format-f-int.c +new file mode 100644 +index 0000000000000000..961d66bfa0a842b8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-f-ldouble.c b/stdio-common/tst-scanf-format-f-ldouble.c +new file mode 100644 +index 0000000000000000..6198d35041584402 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-f-llong.c b/stdio-common/tst-scanf-format-f-llong.c +new file mode 100644 +index 0000000000000000..1af672f9c2e1484c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-f-long.c b/stdio-common/tst-scanf-format-f-long.c +new file mode 100644 +index 0000000000000000..fc908111d973ddfa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-f-short.c b/stdio-common/tst-scanf-format-f-short.c +new file mode 100644 +index 0000000000000000..61697e25987f6281 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-f-uchar.c b/stdio-common/tst-scanf-format-f-uchar.c +new file mode 100644 +index 0000000000000000..b4b8af38e6124c77 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-f-uint.c b/stdio-common/tst-scanf-format-f-uint.c +new file mode 100644 +index 0000000000000000..af226b0d1044cc8b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-f-ullong.c b/stdio-common/tst-scanf-format-f-ullong.c +new file mode 100644 +index 0000000000000000..50ea8123bbe52c60 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-f-ulong.c b/stdio-common/tst-scanf-format-f-ulong.c +new file mode 100644 +index 0000000000000000..673e7703264756dd +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-f-ushort.c b/stdio-common/tst-scanf-format-f-ushort.c +new file mode 100644 +index 0000000000000000..413ba670e9782984 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-f.h b/stdio-common/tst-scanf-format-f.h +new file mode 100644 +index 0000000000000000..9a4caeeb16f87801 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'fscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++ ++#define scanf_under_test(...) \ ++({ \ ++ int result = fscanf (stdin, __VA_ARGS__); \ ++ if (ferror (stdin)) \ ++ result = INPUT_ERROR; \ ++ else if (result == EOF) \ ++ result = INPUT_EOF; \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-84306-11.patch b/SOURCES/glibc-RHEL-84306-11.patch new file mode 100644 index 0000000..e6ab764 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-11.patch @@ -0,0 +1,495 @@ +commit bf6ac302cde4aef55ded7e5340f16e6cd8b8e874 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted sscanf input specifiers + + Wire sscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index e8e06f194e6592b6..2892f680c069836a 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ++xscanf-funcs := s f ss + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-ss-c.c b/stdio-common/tst-scanf-format-ss-c.c +new file mode 100644 +index 0000000000000000..58a7ce8f63398f22 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-ss-char.c b/stdio-common/tst-scanf-format-ss-char.c +new file mode 100644 +index 0000000000000000..66eb04c0d620126d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-ss-double.c b/stdio-common/tst-scanf-format-ss-double.c +new file mode 100644 +index 0000000000000000..2a9fd8afb552fa96 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-ss-float.c b/stdio-common/tst-scanf-format-ss-float.c +new file mode 100644 +index 0000000000000000..640e35dbebd2e459 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-ss-int.c b/stdio-common/tst-scanf-format-ss-int.c +new file mode 100644 +index 0000000000000000..c01a0a3f1f1a530d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-ss-ldouble.c b/stdio-common/tst-scanf-format-ss-ldouble.c +new file mode 100644 +index 0000000000000000..3e57ab568f45a741 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-ss-llong.c b/stdio-common/tst-scanf-format-ss-llong.c +new file mode 100644 +index 0000000000000000..9c1603c869b7f5dc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-ss-long.c b/stdio-common/tst-scanf-format-ss-long.c +new file mode 100644 +index 0000000000000000..003cfac55282b3cc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-ss-short.c b/stdio-common/tst-scanf-format-ss-short.c +new file mode 100644 +index 0000000000000000..ba1a58289cd7bd1d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-ss-uchar.c b/stdio-common/tst-scanf-format-ss-uchar.c +new file mode 100644 +index 0000000000000000..1db14241dcab6d89 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-ss-uint.c b/stdio-common/tst-scanf-format-ss-uint.c +new file mode 100644 +index 0000000000000000..a296fb48c9c9500a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-ss-ullong.c b/stdio-common/tst-scanf-format-ss-ullong.c +new file mode 100644 +index 0000000000000000..885d5709be386471 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-ss-ulong.c b/stdio-common/tst-scanf-format-ss-ulong.c +new file mode 100644 +index 0000000000000000..8a2f24dc5ce7d8d8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-ss-ushort.c b/stdio-common/tst-scanf-format-ss-ushort.c +new file mode 100644 +index 0000000000000000..40618889ac34e910 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-ss.h b/stdio-common/tst-scanf-format-ss.h +new file mode 100644 +index 0000000000000000..2fb1ca20deb845df +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss.h +@@ -0,0 +1,73 @@ ++/* Test feature wrapper for formatted 'scanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++ ++static char *sscanf_buf; ++static size_t sscanf_buf_size; ++ ++static void __attribute__ ((destructor)) ++scanf_under_test_fini (void) ++{ ++ free (sscanf_buf); ++} ++ ++#define scanf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ size_t i = 0; \ ++ int result; \ ++ int ch; \ ++ \ ++ do \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ result = ch; \ ++ goto out; \ ++ } \ ++ if (i == sscanf_buf_size) \ ++ { \ ++ sscanf_buf_size += SIZE_CHUNK; \ ++ /* Add an extra byte for the terminating null character. */ \ ++ sscanf_buf = xrealloc (sscanf_buf, sscanf_buf_size + 1); \ ++ } \ ++ sscanf_buf[i++] = ch; \ ++ } \ ++ while (ch != ':'); \ ++ sscanf_buf[i++] = '\0'; \ ++ \ ++ ch = ungetc (ch, stdin); \ ++ if (ch == EOF) \ ++ { \ ++ result = INPUT_ERROR; \ ++ goto out; \ ++ } \ ++ \ ++ result = sscanf (sscanf_buf, __VA_ARGS__); \ ++ if (result == EOF) \ ++ result = INPUT_EOF; \ ++ \ ++out: \ ++ result; \ ++}) diff --git a/SOURCES/glibc-RHEL-84306-12.patch b/SOURCES/glibc-RHEL-84306-12.patch new file mode 100644 index 0000000..e579f65 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-12.patch @@ -0,0 +1,458 @@ +commit 63c81fa0dbf741b33bbac03bf204d896ee8e4694 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted vscanf input specifiers + + Wire vscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 2892f680c069836a..7cad1ddeb6f57998 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss ++xscanf-funcs := s f ss v + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-v-c.c b/stdio-common/tst-scanf-format-v-c.c +new file mode 100644 +index 0000000000000000..0e2c000ce0218e92 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-v-char.c b/stdio-common/tst-scanf-format-v-char.c +new file mode 100644 +index 0000000000000000..be3a56c663b457ee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-v-double.c b/stdio-common/tst-scanf-format-v-double.c +new file mode 100644 +index 0000000000000000..91886318e800f274 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-v-float.c b/stdio-common/tst-scanf-format-v-float.c +new file mode 100644 +index 0000000000000000..5d289d3e8be7a640 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-v-int.c b/stdio-common/tst-scanf-format-v-int.c +new file mode 100644 +index 0000000000000000..770a686bb1a355fa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-v-ldouble.c b/stdio-common/tst-scanf-format-v-ldouble.c +new file mode 100644 +index 0000000000000000..8215ea7ecb4f785a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-v-llong.c b/stdio-common/tst-scanf-format-v-llong.c +new file mode 100644 +index 0000000000000000..2a1ef02844fc7c27 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-v-long.c b/stdio-common/tst-scanf-format-v-long.c +new file mode 100644 +index 0000000000000000..8376032bd459d253 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-v-short.c b/stdio-common/tst-scanf-format-v-short.c +new file mode 100644 +index 0000000000000000..23b9c568874d89bb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-v-uchar.c b/stdio-common/tst-scanf-format-v-uchar.c +new file mode 100644 +index 0000000000000000..861db22fbafe508e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-v-uint.c b/stdio-common/tst-scanf-format-v-uint.c +new file mode 100644 +index 0000000000000000..30e58c591723d719 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-v-ullong.c b/stdio-common/tst-scanf-format-v-ullong.c +new file mode 100644 +index 0000000000000000..ee2914d3e932e5cf +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-v-ulong.c b/stdio-common/tst-scanf-format-v-ulong.c +new file mode 100644 +index 0000000000000000..f7864dd57636c6b2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-v-ushort.c b/stdio-common/tst-scanf-format-v-ushort.c +new file mode 100644 +index 0000000000000000..79ca16b4e8f953d0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-v.h b/stdio-common/tst-scanf-format-v.h +new file mode 100644 +index 0000000000000000..bf19877670d7aea3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v.h +@@ -0,0 +1,36 @@ ++/* Test feature wrapper for formatted 'vscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vscanf (fmt, ap); ++ va_end (ap); ++ if (ferror (stdin)) ++ result = INPUT_ERROR; ++ else if (result == EOF) ++ result = INPUT_EOF; ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-84306-13.patch b/SOURCES/glibc-RHEL-84306-13.patch new file mode 100644 index 0000000..5bdf626 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-13.patch @@ -0,0 +1,458 @@ +commit 53ee7ede430b92fcefd31fc00bfd3fa9acec5846 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:53 2025 +0000 + + stdio-common: Add tests for formatted vfscanf input specifiers + + Wire vfscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 7cad1ddeb6f57998..fd3c86cc7df68e57 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss v ++xscanf-funcs := s f ss v vf + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-vf-c.c b/stdio-common/tst-scanf-format-vf-c.c +new file mode 100644 +index 0000000000000000..307bfe82c3875245 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-vf-char.c b/stdio-common/tst-scanf-format-vf-char.c +new file mode 100644 +index 0000000000000000..602899b2bcd5b7eb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-vf-double.c b/stdio-common/tst-scanf-format-vf-double.c +new file mode 100644 +index 0000000000000000..8b58bbe10b3e8622 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-vf-float.c b/stdio-common/tst-scanf-format-vf-float.c +new file mode 100644 +index 0000000000000000..81dad06ebe389438 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-vf-int.c b/stdio-common/tst-scanf-format-vf-int.c +new file mode 100644 +index 0000000000000000..8038791f1411d579 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-vf-ldouble.c b/stdio-common/tst-scanf-format-vf-ldouble.c +new file mode 100644 +index 0000000000000000..ec9a7c4632968966 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-vf-llong.c b/stdio-common/tst-scanf-format-vf-llong.c +new file mode 100644 +index 0000000000000000..adc4b125de23cd3c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-vf-long.c b/stdio-common/tst-scanf-format-vf-long.c +new file mode 100644 +index 0000000000000000..5f26d6c9ce69e08f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-vf-short.c b/stdio-common/tst-scanf-format-vf-short.c +new file mode 100644 +index 0000000000000000..0e081ead780b6882 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-vf-uchar.c b/stdio-common/tst-scanf-format-vf-uchar.c +new file mode 100644 +index 0000000000000000..2e879f52ce705646 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-vf-uint.c b/stdio-common/tst-scanf-format-vf-uint.c +new file mode 100644 +index 0000000000000000..4874f86ef21cf5fe +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-vf-ullong.c b/stdio-common/tst-scanf-format-vf-ullong.c +new file mode 100644 +index 0000000000000000..dde09018c46128a5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-vf-ulong.c b/stdio-common/tst-scanf-format-vf-ulong.c +new file mode 100644 +index 0000000000000000..81023061ef66f824 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-vf-ushort.c b/stdio-common/tst-scanf-format-vf-ushort.c +new file mode 100644 +index 0000000000000000..cb8eb4bdcf5e3abc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-vf.h b/stdio-common/tst-scanf-format-vf.h +new file mode 100644 +index 0000000000000000..6037e63921aa4ba3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf.h +@@ -0,0 +1,36 @@ ++/* Test feature wrapper for formatted 'vfscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vfscanf (stdin, fmt, ap); ++ va_end (ap); ++ if (ferror (stdin)) ++ result = INPUT_ERROR; ++ else if (result == EOF) ++ result = INPUT_EOF; ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-84306-14.patch b/SOURCES/glibc-RHEL-84306-14.patch new file mode 100644 index 0000000..58fd514 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-14.patch @@ -0,0 +1,499 @@ +commit 47076b3163ce645f791d5c8f80080e9811733347 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:53 2025 +0000 + + stdio-common: Add tests for formatted vsscanf input specifiers + + Wire vsscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index fd3c86cc7df68e57..3cb9da43d20bb31a 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss v vf ++xscanf-funcs := s f ss v vf vs + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-vs-c.c b/stdio-common/tst-scanf-format-vs-c.c +new file mode 100644 +index 0000000000000000..2df5aa7acbecf851 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for the character conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-vs-char.c b/stdio-common/tst-scanf-format-vs-char.c +new file mode 100644 +index 0000000000000000..ae4d8e0d0a06b549 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for signed char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-vs-double.c b/stdio-common/tst-scanf-format-vs-double.c +new file mode 100644 +index 0000000000000000..cd459a8506d4a1e1 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-vs-float.c b/stdio-common/tst-scanf-format-vs-float.c +new file mode 100644 +index 0000000000000000..7872afef5a49c515 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for float conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-vs-int.c b/stdio-common/tst-scanf-format-vs-int.c +new file mode 100644 +index 0000000000000000..e67b4be6c1ffffb4 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-vs-ldouble.c b/stdio-common/tst-scanf-format-vs-ldouble.c +new file mode 100644 +index 0000000000000000..4d299c29eeee5202 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long double conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-vs-llong.c b/stdio-common/tst-scanf-format-vs-llong.c +new file mode 100644 +index 0000000000000000..06c8cc921f40bcab +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-vs-long.c b/stdio-common/tst-scanf-format-vs-long.c +new file mode 100644 +index 0000000000000000..575a6cb36a20385d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-vs-short.c b/stdio-common/tst-scanf-format-vs-short.c +new file mode 100644 +index 0000000000000000..5473471996bfad9b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-vs-uchar.c b/stdio-common/tst-scanf-format-vs-uchar.c +new file mode 100644 +index 0000000000000000..5a29b9b944f7df31 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned char conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-vs-uint.c b/stdio-common/tst-scanf-format-vs-uint.c +new file mode 100644 +index 0000000000000000..b9486b1488270d7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-vs-ullong.c b/stdio-common/tst-scanf-format-vs-ullong.c +new file mode 100644 +index 0000000000000000..5396a7812fc13c39 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-vs-ulong.c b/stdio-common/tst-scanf-format-vs-ulong.c +new file mode 100644 +index 0000000000000000..3dbc14206dea3176 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-vs-ushort.c b/stdio-common/tst-scanf-format-vs-ushort.c +new file mode 100644 +index 0000000000000000..0f28b36dee83ddbe +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-vs.h b/stdio-common/tst-scanf-format-vs.h +new file mode 100644 +index 0000000000000000..d49690daa00bb954 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs.h +@@ -0,0 +1,77 @@ ++/* Test feature wrapper for formatted 'vsscanf' input. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++static char *sscanf_buf; ++static size_t sscanf_buf_size; ++ ++static void __attribute__ ((destructor)) ++scanf_under_test_fini (void) ++{ ++ free (sscanf_buf); ++} ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ size_t i = 0; ++ va_list ap; ++ int result; ++ int ch; ++ ++ do ++ { ++ ch = read_input (); ++ if (ch < 0) ++ { ++ result = ch; ++ goto out; ++ } ++ if (i == sscanf_buf_size) ++ { ++ sscanf_buf_size += SIZE_CHUNK; ++ /* Add an extra byte for the terminating null character. */ ++ sscanf_buf = xrealloc (sscanf_buf, sscanf_buf_size + 1); ++ } ++ sscanf_buf[i++] = ch; ++ } ++ while (ch != ':'); ++ sscanf_buf[i++] = '\0'; ++ ++ ch = ungetc (ch, stdin); ++ if (ch == EOF) ++ { ++ result = INPUT_ERROR; ++ goto out; ++ } ++ ++ va_start (ap, fmt); ++ result = vsscanf (sscanf_buf, fmt, ap); ++ va_end (ap); ++ if (result == EOF) ++ result = INPUT_EOF; ++ ++out: ++ return result; ++} diff --git a/SOURCES/glibc-RHEL-84306-15.patch b/SOURCES/glibc-RHEL-84306-15.patch new file mode 100644 index 0000000..157f021 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-15.patch @@ -0,0 +1,32483 @@ +Downstream-only patch to remove unsupport binary (0b...) input +formats from scanf testing and the %b specified, added upstream in +commit 2d88df541132f09454d947c498103aa7be76b652. + +Also exclude failing nan(...) floating-point input patterns because +swbz#30647 has not been fixed downstream. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 3cb9da43d20bb31a..a18c87741ae42a61 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -64,7 +64,7 @@ fmts-xscanf-int := d i + fmt-xscanf-real-convs := + fmts-xscanf-real := aa a ee e ff f gg g + fmt-xscanf-uint-convs := uchar ullong ushort +-fmts-xscanf-uint := b o u xx x ++fmts-xscanf-uint := o u xx x + + xscanf-convs = $(sort $(fmt-xscanf-char-convs) $(fmt-xscanf-int-convs) \ + $(fmt-xscanf-real-convs) $(fmt-xscanf-uint-convs)) +diff --git a/stdio-common/tst-scanf-format-char-i.input b/stdio-common/tst-scanf-format-char-i.input +index 31f7ff0508c73c00..eed426a3f00b1ffb 100644 +--- a/stdio-common/tst-scanf-format-char-i.input ++++ b/stdio-common/tst-scanf-format-char-i.input +@@ -8,10 +8,6 @@ + %*hhi:-0xFB:0:5: + %hhi:-0373:1:5:5: + %*hhi:-0373:0:5: +-%hhi:-0B11111011:1:11:5: +-%*hhi:-0B11111011:0:11: +-%hhi:-0b11111011:1:11:5: +-%*hhi:-0b11111011:0:11: + %hhi:-129:1:4:127: + %*hhi:-129:0:4: + %hhi:-0X81:1:5:127: +@@ -20,10 +16,6 @@ + %*hhi:-0x81:0:5: + %hhi:-0201:1:5:127: + %*hhi:-0201:0:5: +-%hhi:-0B10000001:1:11:127: +-%*hhi:-0B10000001:0:11: +-%hhi:-0b10000001:1:11:127: +-%*hhi:-0b10000001:0:11: + %hhi:-128:1:4:-128: + %*hhi:-128:0:4: + %hhi:-0X80:1:5:-128: +@@ -32,10 +24,6 @@ + %*hhi:-0x80:0:5: + %hhi:-0200:1:5:-128: + %*hhi:-0200:0:5: +-%hhi:-0B10000000:1:11:-128: +-%*hhi:-0B10000000:0:11: +-%hhi:-0b10000000:1:11:-128: +-%*hhi:-0b10000000:0:11: + %hhi:-123:1:4:-123: + %*hhi:-123:0:4: + %hhi:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*hhi:-0x7B:0:5: + %hhi:-0173:1:5:-123: + %*hhi:-0173:0:5: +-%hhi:-0B1111011:1:10:-123: +-%*hhi:-0B1111011:0:10: +-%hhi:-0b1111011:1:10:-123: +-%*hhi:-0b1111011:0:10: + %hhi:-1:1:2:-1: + %*hhi:-1:0:2: + %hhi:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*hhi:-0x1:0:4: + %hhi:-01:1:3:-1: + %*hhi:-01:0:3: +-%hhi:-0B1:1:4:-1: +-%*hhi:-0B1:0:4: +-%hhi:-0b1:1:4:-1: +-%*hhi:-0b1:0:4: + %hhi:-0:1:2:0: + %*hhi:-0:0:2: + %hhi:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*hhi:-0x0:0:4: + %hhi:-00:1:3:0: + %*hhi:-00:0:3: +-%hhi:-0B0:1:4:0: +-%*hhi:-0B0:0:4: +-%hhi:-0b0:1:4:0: +-%*hhi:-0b0:0:4: + %hhi:0:1:1:0: + %*hhi:0:0:1: + %hhi:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*hhi:0x0:0:3: + %hhi:00:1:2:0: + %*hhi:00:0:2: +-%hhi:0B0:1:3:0: +-%*hhi:0B0:0:3: +-%hhi:0b0:1:3:0: +-%*hhi:0b0:0:3: + %hhi:1:1:1:1: + %*hhi:1:0:1: + %hhi:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*hhi:0x1:0:3: + %hhi:01:1:2:1: + %*hhi:01:0:2: +-%hhi:0B1:1:3:1: +-%*hhi:0B1:0:3: +-%hhi:0b1:1:3:1: +-%*hhi:0b1:0:3: + %hhi:42:1:2:42: + %*hhi:42:0:2: + %hhi:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*hhi:0x2A:0:4: + %hhi:052:1:3:42: + %*hhi:052:0:3: +-%hhi:0B101010:1:8:42: +-%*hhi:0B101010:0:8: +-%hhi:0b101010:1:8:42: +-%*hhi:0b101010:0:8: + %hhi:127:1:3:127: + %*hhi:127:0:3: + %hhi:0X7f:1:4:127: +@@ -116,10 +80,6 @@ + %*hhi:0x7F:0:4: + %hhi:0177:1:4:127: + %*hhi:0177:0:4: +-%hhi:0B1111111:1:9:127: +-%*hhi:0B1111111:0:9: +-%hhi:0b1111111:1:9:127: +-%*hhi:0b1111111:0:9: + %hhi:128:1:3:-128: + %*hhi:128:0:3: + %hhi:0X80:1:4:-128: +@@ -128,10 +88,6 @@ + %*hhi:0x80:0:4: + %hhi:0200:1:4:-128: + %*hhi:0200:0:4: +-%hhi:0B10000000:1:10:-128: +-%*hhi:0B10000000:0:10: +-%hhi:0b10000000:1:10:-128: +-%*hhi:0b10000000:0:10: + %hhi:169:1:3:-87: + %*hhi:169:0:3: + %hhi:0Xa9:1:4:-87: +@@ -140,10 +96,6 @@ + %*hhi:0xA9:0:4: + %hhi:0251:1:4:-87: + %*hhi:0251:0:4: +-%hhi:0B10101001:1:10:-87: +-%*hhi:0B10101001:0:10: +-%hhi:0b10101001:1:10:-87: +-%*hhi:0b10101001:0:10: + %hhi:+0:1:2:0: + %*hhi:+0:0:2: + %hhi:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*hhi:+0x0:0:4: + %hhi:+00:1:3:0: + %*hhi:+00:0:3: +-%hhi:+0B0:1:4:0: +-%*hhi:+0B0:0:4: +-%hhi:+0b0:1:4:0: +-%*hhi:+0b0:0:4: + %hhi:+1:1:2:1: + %*hhi:+1:0:2: + %hhi:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*hhi:+0x1:0:4: + %hhi:+01:1:3:1: + %*hhi:+01:0:3: +-%hhi:+0B1:1:4:1: +-%*hhi:+0B1:0:4: +-%hhi:+0b1:1:4:1: +-%*hhi:+0b1:0:4: + %hhi:+42:1:3:42: + %*hhi:+42:0:3: + %hhi:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*hhi:+0x2A:0:5: + %hhi:+052:1:4:42: + %*hhi:+052:0:4: +-%hhi:+0B101010:1:9:42: +-%*hhi:+0B101010:0:9: +-%hhi:+0b101010:1:9:42: +-%*hhi:+0b101010:0:9: + %hhi:+127:1:4:127: + %*hhi:+127:0:4: + %hhi:+0X7f:1:5:127: +@@ -188,10 +128,6 @@ + %*hhi:+0x7F:0:5: + %hhi:+0177:1:5:127: + %*hhi:+0177:0:5: +-%hhi:+0B1111111:1:10:127: +-%*hhi:+0B1111111:0:10: +-%hhi:+0b1111111:1:10:127: +-%*hhi:+0b1111111:0:10: + %hhi:+128:1:4:-128: + %*hhi:+128:0:4: + %hhi:+0X80:1:5:-128: +@@ -200,10 +136,6 @@ + %*hhi:+0x80:0:5: + %hhi:+0200:1:5:-128: + %*hhi:+0200:0:5: +-%hhi:+0B10000000:1:11:-128: +-%*hhi:+0B10000000:0:11: +-%hhi:+0b10000000:1:11:-128: +-%*hhi:+0b10000000:0:11: + %hhi:+169:1:4:-87: + %*hhi:+169:0:4: + %hhi:+0Xa9:1:5:-87: +@@ -212,10 +144,6 @@ + %*hhi:+0xA9:0:5: + %hhi:+0251:1:5:-87: + %*hhi:+0251:0:5: +-%hhi:+0B10101001:1:11:-87: +-%*hhi:+0B10101001:0:11: +-%hhi:+0b10101001:1:11:-87: +-%*hhi:+0b10101001:0:11: + %1hhi::0:-1: + %*1hhi::0:-1: + %1hhi:-251:0:-1: +@@ -226,10 +154,6 @@ + %*1hhi:-0xFB:0:-1: + %1hhi:-0373:0:-1: + %*1hhi:-0373:0:-1: +-%1hhi:-0B11111011:0:-1: +-%*1hhi:-0B11111011:0:-1: +-%1hhi:-0b11111011:0:-1: +-%*1hhi:-0b11111011:0:-1: + %1hhi:-129:0:-1: + %*1hhi:-129:0:-1: + %1hhi:-0X81:0:-1: +@@ -238,10 +162,6 @@ + %*1hhi:-0x81:0:-1: + %1hhi:-0201:0:-1: + %*1hhi:-0201:0:-1: +-%1hhi:-0B10000001:0:-1: +-%*1hhi:-0B10000001:0:-1: +-%1hhi:-0b10000001:0:-1: +-%*1hhi:-0b10000001:0:-1: + %1hhi:-128:0:-1: + %*1hhi:-128:0:-1: + %1hhi:-0X80:0:-1: +@@ -250,10 +170,6 @@ + %*1hhi:-0x80:0:-1: + %1hhi:-0200:0:-1: + %*1hhi:-0200:0:-1: +-%1hhi:-0B10000000:0:-1: +-%*1hhi:-0B10000000:0:-1: +-%1hhi:-0b10000000:0:-1: +-%*1hhi:-0b10000000:0:-1: + %1hhi:-123:0:-1: + %*1hhi:-123:0:-1: + %1hhi:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1hhi:-0x7B:0:-1: + %1hhi:-0173:0:-1: + %*1hhi:-0173:0:-1: +-%1hhi:-0B1111011:0:-1: +-%*1hhi:-0B1111011:0:-1: +-%1hhi:-0b1111011:0:-1: +-%*1hhi:-0b1111011:0:-1: + %1hhi:-1:0:-1: + %*1hhi:-1:0:-1: + %1hhi:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1hhi:-0x1:0:-1: + %1hhi:-01:0:-1: + %*1hhi:-01:0:-1: +-%1hhi:-0B1:0:-1: +-%*1hhi:-0B1:0:-1: +-%1hhi:-0b1:0:-1: +-%*1hhi:-0b1:0:-1: + %1hhi:-0:0:-1: + %*1hhi:-0:0:-1: + %1hhi:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1hhi:-0x0:0:-1: + %1hhi:-00:0:-1: + %*1hhi:-00:0:-1: +-%1hhi:-0B0:0:-1: +-%*1hhi:-0B0:0:-1: +-%1hhi:-0b0:0:-1: +-%*1hhi:-0b0:0:-1: + %1hhi:0:1:1:0: + %*1hhi:0:0:1: + %1hhi:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1hhi:0x0:0:1: + %1hhi:00:1:1:0: + %*1hhi:00:0:1: +-%1hhi:0B0:1:1:0: +-%*1hhi:0B0:0:1: +-%1hhi:0b0:1:1:0: +-%*1hhi:0b0:0:1: + %1hhi:1:1:1:1: + %*1hhi:1:0:1: + %1hhi:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1hhi:0x1:0:1: + %1hhi:01:1:1:0: + %*1hhi:01:0:1: +-%1hhi:0B1:1:1:0: +-%*1hhi:0B1:0:1: +-%1hhi:0b1:1:1:0: +-%*1hhi:0b1:0:1: + %1hhi:42:1:1:4: + %*1hhi:42:0:1: + %1hhi:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1hhi:0x2A:0:1: + %1hhi:052:1:1:0: + %*1hhi:052:0:1: +-%1hhi:0B101010:1:1:0: +-%*1hhi:0B101010:0:1: +-%1hhi:0b101010:1:1:0: +-%*1hhi:0b101010:0:1: + %1hhi:127:1:1:1: + %*1hhi:127:0:1: + %1hhi:0X7f:1:1:0: +@@ -334,10 +226,6 @@ + %*1hhi:0x7F:0:1: + %1hhi:0177:1:1:0: + %*1hhi:0177:0:1: +-%1hhi:0B1111111:1:1:0: +-%*1hhi:0B1111111:0:1: +-%1hhi:0b1111111:1:1:0: +-%*1hhi:0b1111111:0:1: + %1hhi:128:1:1:1: + %*1hhi:128:0:1: + %1hhi:0X80:1:1:0: +@@ -346,10 +234,6 @@ + %*1hhi:0x80:0:1: + %1hhi:0200:1:1:0: + %*1hhi:0200:0:1: +-%1hhi:0B10000000:1:1:0: +-%*1hhi:0B10000000:0:1: +-%1hhi:0b10000000:1:1:0: +-%*1hhi:0b10000000:0:1: + %1hhi:169:1:1:1: + %*1hhi:169:0:1: + %1hhi:0Xa9:1:1:0: +@@ -358,10 +242,6 @@ + %*1hhi:0xA9:0:1: + %1hhi:0251:1:1:0: + %*1hhi:0251:0:1: +-%1hhi:0B10101001:1:1:0: +-%*1hhi:0B10101001:0:1: +-%1hhi:0b10101001:1:1:0: +-%*1hhi:0b10101001:0:1: + %1hhi:+0:0:-1: + %*1hhi:+0:0:-1: + %1hhi:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1hhi:+0x0:0:-1: + %1hhi:+00:0:-1: + %*1hhi:+00:0:-1: +-%1hhi:+0B0:0:-1: +-%*1hhi:+0B0:0:-1: +-%1hhi:+0b0:0:-1: +-%*1hhi:+0b0:0:-1: + %1hhi:+1:0:-1: + %*1hhi:+1:0:-1: + %1hhi:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1hhi:+0x1:0:-1: + %1hhi:+01:0:-1: + %*1hhi:+01:0:-1: +-%1hhi:+0B1:0:-1: +-%*1hhi:+0B1:0:-1: +-%1hhi:+0b1:0:-1: +-%*1hhi:+0b1:0:-1: + %1hhi:+42:0:-1: + %*1hhi:+42:0:-1: + %1hhi:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1hhi:+0x2A:0:-1: + %1hhi:+052:0:-1: + %*1hhi:+052:0:-1: +-%1hhi:+0B101010:0:-1: +-%*1hhi:+0B101010:0:-1: +-%1hhi:+0b101010:0:-1: +-%*1hhi:+0b101010:0:-1: + %1hhi:+127:0:-1: + %*1hhi:+127:0:-1: + %1hhi:+0X7f:0:-1: +@@ -406,10 +274,6 @@ + %*1hhi:+0x7F:0:-1: + %1hhi:+0177:0:-1: + %*1hhi:+0177:0:-1: +-%1hhi:+0B1111111:0:-1: +-%*1hhi:+0B1111111:0:-1: +-%1hhi:+0b1111111:0:-1: +-%*1hhi:+0b1111111:0:-1: + %1hhi:+128:0:-1: + %*1hhi:+128:0:-1: + %1hhi:+0X80:0:-1: +@@ -418,10 +282,6 @@ + %*1hhi:+0x80:0:-1: + %1hhi:+0200:0:-1: + %*1hhi:+0200:0:-1: +-%1hhi:+0B10000000:0:-1: +-%*1hhi:+0B10000000:0:-1: +-%1hhi:+0b10000000:0:-1: +-%*1hhi:+0b10000000:0:-1: + %1hhi:+169:0:-1: + %*1hhi:+169:0:-1: + %1hhi:+0Xa9:0:-1: +@@ -430,10 +290,6 @@ + %*1hhi:+0xA9:0:-1: + %1hhi:+0251:0:-1: + %*1hhi:+0251:0:-1: +-%1hhi:+0B10101001:0:-1: +-%*1hhi:+0B10101001:0:-1: +-%1hhi:+0b10101001:0:-1: +-%*1hhi:+0b10101001:0:-1: + %2hhi::0:-1: + %*2hhi::0:-1: + %2hhi:-251:1:2:-2: +@@ -444,10 +300,6 @@ + %*2hhi:-0xFB:0:2: + %2hhi:-0373:1:2:0: + %*2hhi:-0373:0:2: +-%2hhi:-0B11111011:1:2:0: +-%*2hhi:-0B11111011:0:2: +-%2hhi:-0b11111011:1:2:0: +-%*2hhi:-0b11111011:0:2: + %2hhi:-129:1:2:-1: + %*2hhi:-129:0:2: + %2hhi:-0X81:1:2:0: +@@ -456,10 +308,6 @@ + %*2hhi:-0x81:0:2: + %2hhi:-0201:1:2:0: + %*2hhi:-0201:0:2: +-%2hhi:-0B10000001:1:2:0: +-%*2hhi:-0B10000001:0:2: +-%2hhi:-0b10000001:1:2:0: +-%*2hhi:-0b10000001:0:2: + %2hhi:-128:1:2:-1: + %*2hhi:-128:0:2: + %2hhi:-0X80:1:2:0: +@@ -468,10 +316,6 @@ + %*2hhi:-0x80:0:2: + %2hhi:-0200:1:2:0: + %*2hhi:-0200:0:2: +-%2hhi:-0B10000000:1:2:0: +-%*2hhi:-0B10000000:0:2: +-%2hhi:-0b10000000:1:2:0: +-%*2hhi:-0b10000000:0:2: + %2hhi:-123:1:2:-1: + %*2hhi:-123:0:2: + %2hhi:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2hhi:-0x7B:0:2: + %2hhi:-0173:1:2:0: + %*2hhi:-0173:0:2: +-%2hhi:-0B1111011:1:2:0: +-%*2hhi:-0B1111011:0:2: +-%2hhi:-0b1111011:1:2:0: +-%*2hhi:-0b1111011:0:2: + %2hhi:-1:1:2:-1: + %*2hhi:-1:0:2: + %2hhi:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2hhi:-0x1:0:2: + %2hhi:-01:1:2:0: + %*2hhi:-01:0:2: +-%2hhi:-0B1:1:2:0: +-%*2hhi:-0B1:0:2: +-%2hhi:-0b1:1:2:0: +-%*2hhi:-0b1:0:2: + %2hhi:-0:1:2:0: + %*2hhi:-0:0:2: + %2hhi:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2hhi:-0x0:0:2: + %2hhi:-00:1:2:0: + %*2hhi:-00:0:2: +-%2hhi:-0B0:1:2:0: +-%*2hhi:-0B0:0:2: +-%2hhi:-0b0:1:2:0: +-%*2hhi:-0b0:0:2: + %2hhi:0:1:1:0: + %*2hhi:0:0:1: + # BZ12701 %2hhi:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2hhi:0x0:0:-1: + %2hhi:00:1:2:0: + %*2hhi:00:0:2: +-# BZ12701 %2hhi:0B0:0:-1: +-# BZ12701 %*2hhi:0B0:0:-1: +-# BZ12701 %2hhi:0b0:0:-1: +-# BZ12701 %*2hhi:0b0:0:-1: + %2hhi:1:1:1:1: + %*2hhi:1:0:1: + # BZ12701 %2hhi:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2hhi:0x1:0:-1: + %2hhi:01:1:2:1: + %*2hhi:01:0:2: +-# BZ12701 %2hhi:0B1:0:-1: +-# BZ12701 %*2hhi:0B1:0:-1: +-# BZ12701 %2hhi:0b1:0:-1: +-# BZ12701 %*2hhi:0b1:0:-1: + %2hhi:42:1:2:42: + %*2hhi:42:0:2: + # BZ12701 %2hhi:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2hhi:0x2A:0:-1: + %2hhi:052:1:2:5: + %*2hhi:052:0:2: +-# BZ12701 %2hhi:0B101010:0:-1: +-# BZ12701 %*2hhi:0B101010:0:-1: +-# BZ12701 %2hhi:0b101010:0:-1: +-# BZ12701 %*2hhi:0b101010:0:-1: + %2hhi:127:1:2:12: + %*2hhi:127:0:2: + # BZ12701 %2hhi:0X7f:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2hhi:0x7F:0:-1: + %2hhi:0177:1:2:1: + %*2hhi:0177:0:2: +-# BZ12701 %2hhi:0B1111111:0:-1: +-# BZ12701 %*2hhi:0B1111111:0:-1: +-# BZ12701 %2hhi:0b1111111:0:-1: +-# BZ12701 %*2hhi:0b1111111:0:-1: + %2hhi:128:1:2:12: + %*2hhi:128:0:2: + # BZ12701 %2hhi:0X80:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2hhi:0x80:0:-1: + %2hhi:0200:1:2:2: + %*2hhi:0200:0:2: +-# BZ12701 %2hhi:0B10000000:0:-1: +-# BZ12701 %*2hhi:0B10000000:0:-1: +-# BZ12701 %2hhi:0b10000000:0:-1: +-# BZ12701 %*2hhi:0b10000000:0:-1: + %2hhi:169:1:2:16: + %*2hhi:169:0:2: + # BZ12701 %2hhi:0Xa9:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2hhi:0xA9:0:-1: + %2hhi:0251:1:2:2: + %*2hhi:0251:0:2: +-# BZ12701 %2hhi:0B10101001:0:-1: +-# BZ12701 %*2hhi:0B10101001:0:-1: +-# BZ12701 %2hhi:0b10101001:0:-1: +-# BZ12701 %*2hhi:0b10101001:0:-1: + %2hhi:+0:1:2:0: + %*2hhi:+0:0:2: + %2hhi:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2hhi:+0x0:0:2: + %2hhi:+00:1:2:0: + %*2hhi:+00:0:2: +-%2hhi:+0B0:1:2:0: +-%*2hhi:+0B0:0:2: +-%2hhi:+0b0:1:2:0: +-%*2hhi:+0b0:0:2: + %2hhi:+1:1:2:1: + %*2hhi:+1:0:2: + %2hhi:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2hhi:+0x1:0:2: + %2hhi:+01:1:2:0: + %*2hhi:+01:0:2: +-%2hhi:+0B1:1:2:0: +-%*2hhi:+0B1:0:2: +-%2hhi:+0b1:1:2:0: +-%*2hhi:+0b1:0:2: + %2hhi:+42:1:2:4: + %*2hhi:+42:0:2: + %2hhi:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2hhi:+0x2A:0:2: + %2hhi:+052:1:2:0: + %*2hhi:+052:0:2: +-%2hhi:+0B101010:1:2:0: +-%*2hhi:+0B101010:0:2: +-%2hhi:+0b101010:1:2:0: +-%*2hhi:+0b101010:0:2: + %2hhi:+127:1:2:1: + %*2hhi:+127:0:2: + %2hhi:+0X7f:1:2:0: +@@ -624,10 +420,6 @@ + %*2hhi:+0x7F:0:2: + %2hhi:+0177:1:2:0: + %*2hhi:+0177:0:2: +-%2hhi:+0B1111111:1:2:0: +-%*2hhi:+0B1111111:0:2: +-%2hhi:+0b1111111:1:2:0: +-%*2hhi:+0b1111111:0:2: + %2hhi:+128:1:2:1: + %*2hhi:+128:0:2: + %2hhi:+0X80:1:2:0: +@@ -636,10 +428,6 @@ + %*2hhi:+0x80:0:2: + %2hhi:+0200:1:2:0: + %*2hhi:+0200:0:2: +-%2hhi:+0B10000000:1:2:0: +-%*2hhi:+0B10000000:0:2: +-%2hhi:+0b10000000:1:2:0: +-%*2hhi:+0b10000000:0:2: + %2hhi:+169:1:2:1: + %*2hhi:+169:0:2: + %2hhi:+0Xa9:1:2:0: +@@ -648,10 +436,6 @@ + %*2hhi:+0xA9:0:2: + %2hhi:+0251:1:2:0: + %*2hhi:+0251:0:2: +-%2hhi:+0B10101001:1:2:0: +-%*2hhi:+0B10101001:0:2: +-%2hhi:+0b10101001:1:2:0: +-%*2hhi:+0b10101001:0:2: + %3hhi::0:-1: + %*3hhi::0:-1: + %3hhi:-251:1:3:-25: +@@ -662,10 +446,6 @@ + # BZ12701 %*3hhi:-0xFB:0:-1: + %3hhi:-0373:1:3:-3: + %*3hhi:-0373:0:3: +-# BZ12701 %3hhi:-0B11111011:0:-1: +-# BZ12701 %*3hhi:-0B11111011:0:-1: +-# BZ12701 %3hhi:-0b11111011:0:-1: +-# BZ12701 %*3hhi:-0b11111011:0:-1: + %3hhi:-129:1:3:-12: + %*3hhi:-129:0:3: + # BZ12701 %3hhi:-0X81:0:-1: +@@ -674,10 +454,6 @@ + # BZ12701 %*3hhi:-0x81:0:-1: + %3hhi:-0201:1:3:-2: + %*3hhi:-0201:0:3: +-# BZ12701 %3hhi:-0B10000001:0:-1: +-# BZ12701 %*3hhi:-0B10000001:0:-1: +-# BZ12701 %3hhi:-0b10000001:0:-1: +-# BZ12701 %*3hhi:-0b10000001:0:-1: + %3hhi:-128:1:3:-12: + %*3hhi:-128:0:3: + # BZ12701 %3hhi:-0X80:0:-1: +@@ -686,10 +462,6 @@ + # BZ12701 %*3hhi:-0x80:0:-1: + %3hhi:-0200:1:3:-2: + %*3hhi:-0200:0:3: +-# BZ12701 %3hhi:-0B10000000:0:-1: +-# BZ12701 %*3hhi:-0B10000000:0:-1: +-# BZ12701 %3hhi:-0b10000000:0:-1: +-# BZ12701 %*3hhi:-0b10000000:0:-1: + %3hhi:-123:1:3:-12: + %*3hhi:-123:0:3: + # BZ12701 %3hhi:-0X7b:0:-1: +@@ -698,10 +470,6 @@ + # BZ12701 %*3hhi:-0x7B:0:-1: + %3hhi:-0173:1:3:-1: + %*3hhi:-0173:0:3: +-# BZ12701 %3hhi:-0B1111011:0:-1: +-# BZ12701 %*3hhi:-0B1111011:0:-1: +-# BZ12701 %3hhi:-0b1111011:0:-1: +-# BZ12701 %*3hhi:-0b1111011:0:-1: + %3hhi:-1:1:2:-1: + %*3hhi:-1:0:2: + # BZ12701 %3hhi:-0X1:0:-1: +@@ -710,10 +478,6 @@ + # BZ12701 %*3hhi:-0x1:0:-1: + %3hhi:-01:1:3:-1: + %*3hhi:-01:0:3: +-# BZ12701 %3hhi:-0B1:0:-1: +-# BZ12701 %*3hhi:-0B1:0:-1: +-# BZ12701 %3hhi:-0b1:0:-1: +-# BZ12701 %*3hhi:-0b1:0:-1: + %3hhi:-0:1:2:0: + %*3hhi:-0:0:2: + # BZ12701 %3hhi:-0X0:0:-1: +@@ -722,10 +486,6 @@ + # BZ12701 %*3hhi:-0x0:0:-1: + %3hhi:-00:1:3:0: + %*3hhi:-00:0:3: +-# BZ12701 %3hhi:-0B0:0:-1: +-# BZ12701 %*3hhi:-0B0:0:-1: +-# BZ12701 %3hhi:-0b0:0:-1: +-# BZ12701 %*3hhi:-0b0:0:-1: + %3hhi:0:1:1:0: + %*3hhi:0:0:1: + %3hhi:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*3hhi:0x0:0:3: + %3hhi:00:1:2:0: + %*3hhi:00:0:2: +-%3hhi:0B0:1:3:0: +-%*3hhi:0B0:0:3: +-%3hhi:0b0:1:3:0: +-%*3hhi:0b0:0:3: + %3hhi:1:1:1:1: + %*3hhi:1:0:1: + %3hhi:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*3hhi:0x1:0:3: + %3hhi:01:1:2:1: + %*3hhi:01:0:2: +-%3hhi:0B1:1:3:1: +-%*3hhi:0B1:0:3: +-%3hhi:0b1:1:3:1: +-%*3hhi:0b1:0:3: + %3hhi:42:1:2:42: + %*3hhi:42:0:2: + %3hhi:0X2a:1:3:2: +@@ -758,10 +510,6 @@ + %*3hhi:0x2A:0:3: + %3hhi:052:1:3:42: + %*3hhi:052:0:3: +-%3hhi:0B101010:1:3:1: +-%*3hhi:0B101010:0:3: +-%3hhi:0b101010:1:3:1: +-%*3hhi:0b101010:0:3: + %3hhi:127:1:3:127: + %*3hhi:127:0:3: + %3hhi:0X7f:1:3:7: +@@ -770,10 +518,6 @@ + %*3hhi:0x7F:0:3: + %3hhi:0177:1:3:15: + %*3hhi:0177:0:3: +-%3hhi:0B1111111:1:3:1: +-%*3hhi:0B1111111:0:3: +-%3hhi:0b1111111:1:3:1: +-%*3hhi:0b1111111:0:3: + %3hhi:128:1:3:-128: + %*3hhi:128:0:3: + %3hhi:0X80:1:3:8: +@@ -782,10 +526,6 @@ + %*3hhi:0x80:0:3: + %3hhi:0200:1:3:16: + %*3hhi:0200:0:3: +-%3hhi:0B10000000:1:3:1: +-%*3hhi:0B10000000:0:3: +-%3hhi:0b10000000:1:3:1: +-%*3hhi:0b10000000:0:3: + %3hhi:169:1:3:-87: + %*3hhi:169:0:3: + %3hhi:0Xa9:1:3:10: +@@ -794,10 +534,6 @@ + %*3hhi:0xA9:0:3: + %3hhi:0251:1:3:21: + %*3hhi:0251:0:3: +-%3hhi:0B10101001:1:3:1: +-%*3hhi:0B10101001:0:3: +-%3hhi:0b10101001:1:3:1: +-%*3hhi:0b10101001:0:3: + %3hhi:+0:1:2:0: + %*3hhi:+0:0:2: + # BZ12701 %3hhi:+0X0:0:-1: +@@ -806,10 +542,6 @@ + # BZ12701 %*3hhi:+0x0:0:-1: + %3hhi:+00:1:3:0: + %*3hhi:+00:0:3: +-# BZ12701 %3hhi:+0B0:0:-1: +-# BZ12701 %*3hhi:+0B0:0:-1: +-# BZ12701 %3hhi:+0b0:0:-1: +-# BZ12701 %*3hhi:+0b0:0:-1: + %3hhi:+1:1:2:1: + %*3hhi:+1:0:2: + # BZ12701 %3hhi:+0X1:0:-1: +@@ -818,10 +550,6 @@ + # BZ12701 %*3hhi:+0x1:0:-1: + %3hhi:+01:1:3:1: + %*3hhi:+01:0:3: +-# BZ12701 %3hhi:+0B1:0:-1: +-# BZ12701 %*3hhi:+0B1:0:-1: +-# BZ12701 %3hhi:+0b1:0:-1: +-# BZ12701 %*3hhi:+0b1:0:-1: + %3hhi:+42:1:3:42: + %*3hhi:+42:0:3: + # BZ12701 %3hhi:+0X2a:0:-1: +@@ -830,10 +558,6 @@ + # BZ12701 %*3hhi:+0x2A:0:-1: + %3hhi:+052:1:3:5: + %*3hhi:+052:0:3: +-# BZ12701 %3hhi:+0B101010:0:-1: +-# BZ12701 %*3hhi:+0B101010:0:-1: +-# BZ12701 %3hhi:+0b101010:0:-1: +-# BZ12701 %*3hhi:+0b101010:0:-1: + %3hhi:+127:1:3:12: + %*3hhi:+127:0:3: + # BZ12701 %3hhi:+0X7f:0:-1: +@@ -842,10 +566,6 @@ + # BZ12701 %*3hhi:+0x7F:0:-1: + %3hhi:+0177:1:3:1: + %*3hhi:+0177:0:3: +-# BZ12701 %3hhi:+0B1111111:0:-1: +-# BZ12701 %*3hhi:+0B1111111:0:-1: +-# BZ12701 %3hhi:+0b1111111:0:-1: +-# BZ12701 %*3hhi:+0b1111111:0:-1: + %3hhi:+128:1:3:12: + %*3hhi:+128:0:3: + # BZ12701 %3hhi:+0X80:0:-1: +@@ -854,10 +574,6 @@ + # BZ12701 %*3hhi:+0x80:0:-1: + %3hhi:+0200:1:3:2: + %*3hhi:+0200:0:3: +-# BZ12701 %3hhi:+0B10000000:0:-1: +-# BZ12701 %*3hhi:+0B10000000:0:-1: +-# BZ12701 %3hhi:+0b10000000:0:-1: +-# BZ12701 %*3hhi:+0b10000000:0:-1: + %3hhi:+169:1:3:16: + %*3hhi:+169:0:3: + # BZ12701 %3hhi:+0Xa9:0:-1: +@@ -866,10 +582,6 @@ + # BZ12701 %*3hhi:+0xA9:0:-1: + %3hhi:+0251:1:3:2: + %*3hhi:+0251:0:3: +-# BZ12701 %3hhi:+0B10101001:0:-1: +-# BZ12701 %*3hhi:+0B10101001:0:-1: +-# BZ12701 %3hhi:+0b10101001:0:-1: +-# BZ12701 %*3hhi:+0b10101001:0:-1: + %5hhi::0:-1: + %*5hhi::0:-1: + %5hhi:-251:1:4:5: +@@ -880,10 +592,6 @@ + %*5hhi:-0xFB:0:5: + %5hhi:-0373:1:5:5: + %*5hhi:-0373:0:5: +-%5hhi:-0B11111011:1:5:-3: +-%*5hhi:-0B11111011:0:5: +-%5hhi:-0b11111011:1:5:-3: +-%*5hhi:-0b11111011:0:5: + %5hhi:-129:1:4:127: + %*5hhi:-129:0:4: + %5hhi:-0X81:1:5:127: +@@ -892,10 +600,6 @@ + %*5hhi:-0x81:0:5: + %5hhi:-0201:1:5:127: + %*5hhi:-0201:0:5: +-%5hhi:-0B10000001:1:5:-2: +-%*5hhi:-0B10000001:0:5: +-%5hhi:-0b10000001:1:5:-2: +-%*5hhi:-0b10000001:0:5: + %5hhi:-128:1:4:-128: + %*5hhi:-128:0:4: + %5hhi:-0X80:1:5:-128: +@@ -904,10 +608,6 @@ + %*5hhi:-0x80:0:5: + %5hhi:-0200:1:5:-128: + %*5hhi:-0200:0:5: +-%5hhi:-0B10000000:1:5:-2: +-%*5hhi:-0B10000000:0:5: +-%5hhi:-0b10000000:1:5:-2: +-%*5hhi:-0b10000000:0:5: + %5hhi:-123:1:4:-123: + %*5hhi:-123:0:4: + %5hhi:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*5hhi:-0x7B:0:5: + %5hhi:-0173:1:5:-123: + %*5hhi:-0173:0:5: +-%5hhi:-0B1111011:1:5:-3: +-%*5hhi:-0B1111011:0:5: +-%5hhi:-0b1111011:1:5:-3: +-%*5hhi:-0b1111011:0:5: + %5hhi:-1:1:2:-1: + %*5hhi:-1:0:2: + %5hhi:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*5hhi:-0x1:0:4: + %5hhi:-01:1:3:-1: + %*5hhi:-01:0:3: +-%5hhi:-0B1:1:4:-1: +-%*5hhi:-0B1:0:4: +-%5hhi:-0b1:1:4:-1: +-%*5hhi:-0b1:0:4: + %5hhi:-0:1:2:0: + %*5hhi:-0:0:2: + %5hhi:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*5hhi:-0x0:0:4: + %5hhi:-00:1:3:0: + %*5hhi:-00:0:3: +-%5hhi:-0B0:1:4:0: +-%*5hhi:-0B0:0:4: +-%5hhi:-0b0:1:4:0: +-%*5hhi:-0b0:0:4: + %5hhi:0:1:1:0: + %*5hhi:0:0:1: + %5hhi:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*5hhi:0x0:0:3: + %5hhi:00:1:2:0: + %*5hhi:00:0:2: +-%5hhi:0B0:1:3:0: +-%*5hhi:0B0:0:3: +-%5hhi:0b0:1:3:0: +-%*5hhi:0b0:0:3: + %5hhi:1:1:1:1: + %*5hhi:1:0:1: + %5hhi:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*5hhi:0x1:0:3: + %5hhi:01:1:2:1: + %*5hhi:01:0:2: +-%5hhi:0B1:1:3:1: +-%*5hhi:0B1:0:3: +-%5hhi:0b1:1:3:1: +-%*5hhi:0b1:0:3: + %5hhi:42:1:2:42: + %*5hhi:42:0:2: + %5hhi:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*5hhi:0x2A:0:4: + %5hhi:052:1:3:42: + %*5hhi:052:0:3: +-%5hhi:0B101010:1:5:5: +-%*5hhi:0B101010:0:5: +-%5hhi:0b101010:1:5:5: +-%*5hhi:0b101010:0:5: + %5hhi:127:1:3:127: + %*5hhi:127:0:3: + %5hhi:0X7f:1:4:127: +@@ -988,10 +664,6 @@ + %*5hhi:0x7F:0:4: + %5hhi:0177:1:4:127: + %*5hhi:0177:0:4: +-%5hhi:0B1111111:1:5:7: +-%*5hhi:0B1111111:0:5: +-%5hhi:0b1111111:1:5:7: +-%*5hhi:0b1111111:0:5: + %5hhi:128:1:3:-128: + %*5hhi:128:0:3: + %5hhi:0X80:1:4:-128: +@@ -1000,10 +672,6 @@ + %*5hhi:0x80:0:4: + %5hhi:0200:1:4:-128: + %*5hhi:0200:0:4: +-%5hhi:0B10000000:1:5:4: +-%*5hhi:0B10000000:0:5: +-%5hhi:0b10000000:1:5:4: +-%*5hhi:0b10000000:0:5: + %5hhi:169:1:3:-87: + %*5hhi:169:0:3: + %5hhi:0Xa9:1:4:-87: +@@ -1012,10 +680,6 @@ + %*5hhi:0xA9:0:4: + %5hhi:0251:1:4:-87: + %*5hhi:0251:0:4: +-%5hhi:0B10101001:1:5:5: +-%*5hhi:0B10101001:0:5: +-%5hhi:0b10101001:1:5:5: +-%*5hhi:0b10101001:0:5: + %5hhi:+0:1:2:0: + %*5hhi:+0:0:2: + %5hhi:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*5hhi:+0x0:0:4: + %5hhi:+00:1:3:0: + %*5hhi:+00:0:3: +-%5hhi:+0B0:1:4:0: +-%*5hhi:+0B0:0:4: +-%5hhi:+0b0:1:4:0: +-%*5hhi:+0b0:0:4: + %5hhi:+1:1:2:1: + %*5hhi:+1:0:2: + %5hhi:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*5hhi:+0x1:0:4: + %5hhi:+01:1:3:1: + %*5hhi:+01:0:3: +-%5hhi:+0B1:1:4:1: +-%*5hhi:+0B1:0:4: +-%5hhi:+0b1:1:4:1: +-%*5hhi:+0b1:0:4: + %5hhi:+42:1:3:42: + %*5hhi:+42:0:3: + %5hhi:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*5hhi:+0x2A:0:5: + %5hhi:+052:1:4:42: + %*5hhi:+052:0:4: +-%5hhi:+0B101010:1:5:2: +-%*5hhi:+0B101010:0:5: +-%5hhi:+0b101010:1:5:2: +-%*5hhi:+0b101010:0:5: + %5hhi:+127:1:4:127: + %*5hhi:+127:0:4: + %5hhi:+0X7f:1:5:127: +@@ -1060,10 +712,6 @@ + %*5hhi:+0x7F:0:5: + %5hhi:+0177:1:5:127: + %*5hhi:+0177:0:5: +-%5hhi:+0B1111111:1:5:3: +-%*5hhi:+0B1111111:0:5: +-%5hhi:+0b1111111:1:5:3: +-%*5hhi:+0b1111111:0:5: + %5hhi:+128:1:4:-128: + %*5hhi:+128:0:4: + %5hhi:+0X80:1:5:-128: +@@ -1072,10 +720,6 @@ + %*5hhi:+0x80:0:5: + %5hhi:+0200:1:5:-128: + %*5hhi:+0200:0:5: +-%5hhi:+0B10000000:1:5:2: +-%*5hhi:+0B10000000:0:5: +-%5hhi:+0b10000000:1:5:2: +-%*5hhi:+0b10000000:0:5: + %5hhi:+169:1:4:-87: + %*5hhi:+169:0:4: + %5hhi:+0Xa9:1:5:-87: +@@ -1084,10 +728,6 @@ + %*5hhi:+0xA9:0:5: + %5hhi:+0251:1:5:-87: + %*5hhi:+0251:0:5: +-%5hhi:+0B10101001:1:5:2: +-%*5hhi:+0B10101001:0:5: +-%5hhi:+0b10101001:1:5:2: +-%*5hhi:+0b10101001:0:5: + %2hhi: :0:-1: + %*2hhi: :0:-1: + %2hhi: -251:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2hhi: -0xFB:0:3: + %2hhi: -0373:1:3:0: + %*2hhi: -0373:0:3: +-%2hhi: -0B11111011:1:3:0: +-%*2hhi: -0B11111011:0:3: +-%2hhi: -0b11111011:1:3:0: +-%*2hhi: -0b11111011:0:3: + %2hhi: -129:1:3:-1: + %*2hhi: -129:0:3: + %2hhi: -0X81:1:3:0: +@@ -1110,10 +746,6 @@ + %*2hhi: -0x81:0:3: + %2hhi: -0201:1:3:0: + %*2hhi: -0201:0:3: +-%2hhi: -0B10000001:1:3:0: +-%*2hhi: -0B10000001:0:3: +-%2hhi: -0b10000001:1:3:0: +-%*2hhi: -0b10000001:0:3: + %2hhi: -128:1:3:-1: + %*2hhi: -128:0:3: + %2hhi: -0X80:1:3:0: +@@ -1122,10 +754,6 @@ + %*2hhi: -0x80:0:3: + %2hhi: -0200:1:3:0: + %*2hhi: -0200:0:3: +-%2hhi: -0B10000000:1:3:0: +-%*2hhi: -0B10000000:0:3: +-%2hhi: -0b10000000:1:3:0: +-%*2hhi: -0b10000000:0:3: + %2hhi: -123:1:3:-1: + %*2hhi: -123:0:3: + %2hhi: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2hhi: -0x7B:0:3: + %2hhi: -0173:1:3:0: + %*2hhi: -0173:0:3: +-%2hhi: -0B1111011:1:3:0: +-%*2hhi: -0B1111011:0:3: +-%2hhi: -0b1111011:1:3:0: +-%*2hhi: -0b1111011:0:3: + %2hhi: -1:1:3:-1: + %*2hhi: -1:0:3: + %2hhi: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2hhi: -0x1:0:3: + %2hhi: -01:1:3:0: + %*2hhi: -01:0:3: +-%2hhi: -0B1:1:3:0: +-%*2hhi: -0B1:0:3: +-%2hhi: -0b1:1:3:0: +-%*2hhi: -0b1:0:3: + %2hhi: -0:1:3:0: + %*2hhi: -0:0:3: + %2hhi: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2hhi: -0x0:0:3: + %2hhi: -00:1:3:0: + %*2hhi: -00:0:3: +-%2hhi: -0B0:1:3:0: +-%*2hhi: -0B0:0:3: +-%2hhi: -0b0:1:3:0: +-%*2hhi: -0b0:0:3: + %2hhi: 0:1:2:0: + %*2hhi: 0:0:2: + # BZ12701 %2hhi: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2hhi: 0x0:0:-1: + %2hhi: 00:1:3:0: + %*2hhi: 00:0:3: +-# BZ12701 %2hhi: 0B0:0:-1: +-# BZ12701 %*2hhi: 0B0:0:-1: +-# BZ12701 %2hhi: 0b0:0:-1: +-# BZ12701 %*2hhi: 0b0:0:-1: + %2hhi: 1:1:2:1: + %*2hhi: 1:0:2: + # BZ12701 %2hhi: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2hhi: 0x1:0:-1: + %2hhi: 01:1:3:1: + %*2hhi: 01:0:3: +-# BZ12701 %2hhi: 0B1:0:-1: +-# BZ12701 %*2hhi: 0B1:0:-1: +-# BZ12701 %2hhi: 0b1:0:-1: +-# BZ12701 %*2hhi: 0b1:0:-1: + %2hhi: 42:1:3:42: + %*2hhi: 42:0:3: + # BZ12701 %2hhi: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2hhi: 0x2A:0:-1: + %2hhi: 052:1:3:5: + %*2hhi: 052:0:3: +-# BZ12701 %2hhi: 0B101010:0:-1: +-# BZ12701 %*2hhi: 0B101010:0:-1: +-# BZ12701 %2hhi: 0b101010:0:-1: +-# BZ12701 %*2hhi: 0b101010:0:-1: + %2hhi: 127:1:3:12: + %*2hhi: 127:0:3: + # BZ12701 %2hhi: 0X7f:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2hhi: 0x7F:0:-1: + %2hhi: 0177:1:3:1: + %*2hhi: 0177:0:3: +-# BZ12701 %2hhi: 0B1111111:0:-1: +-# BZ12701 %*2hhi: 0B1111111:0:-1: +-# BZ12701 %2hhi: 0b1111111:0:-1: +-# BZ12701 %*2hhi: 0b1111111:0:-1: + %2hhi: 128:1:3:12: + %*2hhi: 128:0:3: + # BZ12701 %2hhi: 0X80:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2hhi: 0x80:0:-1: + %2hhi: 0200:1:3:2: + %*2hhi: 0200:0:3: +-# BZ12701 %2hhi: 0B10000000:0:-1: +-# BZ12701 %*2hhi: 0B10000000:0:-1: +-# BZ12701 %2hhi: 0b10000000:0:-1: +-# BZ12701 %*2hhi: 0b10000000:0:-1: + %2hhi: 169:1:3:16: + %*2hhi: 169:0:3: + # BZ12701 %2hhi: 0Xa9:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2hhi: 0xA9:0:-1: + %2hhi: 0251:1:3:2: + %*2hhi: 0251:0:3: +-# BZ12701 %2hhi: 0B10101001:0:-1: +-# BZ12701 %*2hhi: 0B10101001:0:-1: +-# BZ12701 %2hhi: 0b10101001:0:-1: +-# BZ12701 %*2hhi: 0b10101001:0:-1: + %2hhi: +0:1:3:0: + %*2hhi: +0:0:3: + %2hhi: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2hhi: +0x0:0:3: + %2hhi: +00:1:3:0: + %*2hhi: +00:0:3: +-%2hhi: +0B0:1:3:0: +-%*2hhi: +0B0:0:3: +-%2hhi: +0b0:1:3:0: +-%*2hhi: +0b0:0:3: + %2hhi: +1:1:3:1: + %*2hhi: +1:0:3: + %2hhi: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2hhi: +0x1:0:3: + %2hhi: +01:1:3:0: + %*2hhi: +01:0:3: +-%2hhi: +0B1:1:3:0: +-%*2hhi: +0B1:0:3: +-%2hhi: +0b1:1:3:0: +-%*2hhi: +0b1:0:3: + %2hhi: +42:1:3:4: + %*2hhi: +42:0:3: + %2hhi: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2hhi: +0x2A:0:3: + %2hhi: +052:1:3:0: + %*2hhi: +052:0:3: +-%2hhi: +0B101010:1:3:0: +-%*2hhi: +0B101010:0:3: +-%2hhi: +0b101010:1:3:0: +-%*2hhi: +0b101010:0:3: + %2hhi: +127:1:3:1: + %*2hhi: +127:0:3: + %2hhi: +0X7f:1:3:0: +@@ -1278,10 +858,6 @@ + %*2hhi: +0x7F:0:3: + %2hhi: +0177:1:3:0: + %*2hhi: +0177:0:3: +-%2hhi: +0B1111111:1:3:0: +-%*2hhi: +0B1111111:0:3: +-%2hhi: +0b1111111:1:3:0: +-%*2hhi: +0b1111111:0:3: + %2hhi: +128:1:3:1: + %*2hhi: +128:0:3: + %2hhi: +0X80:1:3:0: +@@ -1290,10 +866,6 @@ + %*2hhi: +0x80:0:3: + %2hhi: +0200:1:3:0: + %*2hhi: +0200:0:3: +-%2hhi: +0B10000000:1:3:0: +-%*2hhi: +0B10000000:0:3: +-%2hhi: +0b10000000:1:3:0: +-%*2hhi: +0b10000000:0:3: + %2hhi: +169:1:3:1: + %*2hhi: +169:0:3: + %2hhi: +0Xa9:1:3:0: +@@ -1302,10 +874,6 @@ + %*2hhi: +0xA9:0:3: + %2hhi: +0251:1:3:0: + %*2hhi: +0251:0:3: +-%2hhi: +0B10101001:1:3:0: +-%*2hhi: +0B10101001:0:3: +-%2hhi: +0b10101001:1:3:0: +-%*2hhi: +0b10101001:0:3: + %5hhi: :0:-1: + %*5hhi: :0:-1: + %5hhi: -251:1:5:5: +@@ -1316,10 +884,6 @@ + %*5hhi: -0xFB:0:6: + %5hhi: -0373:1:6:5: + %*5hhi: -0373:0:6: +-%5hhi: -0B11111011:1:6:-3: +-%*5hhi: -0B11111011:0:6: +-%5hhi: -0b11111011:1:6:-3: +-%*5hhi: -0b11111011:0:6: + %5hhi: -129:1:5:127: + %*5hhi: -129:0:5: + %5hhi: -0X81:1:6:127: +@@ -1328,10 +892,6 @@ + %*5hhi: -0x81:0:6: + %5hhi: -0201:1:6:127: + %*5hhi: -0201:0:6: +-%5hhi: -0B10000001:1:6:-2: +-%*5hhi: -0B10000001:0:6: +-%5hhi: -0b10000001:1:6:-2: +-%*5hhi: -0b10000001:0:6: + %5hhi: -128:1:5:-128: + %*5hhi: -128:0:5: + %5hhi: -0X80:1:6:-128: +@@ -1340,10 +900,6 @@ + %*5hhi: -0x80:0:6: + %5hhi: -0200:1:6:-128: + %*5hhi: -0200:0:6: +-%5hhi: -0B10000000:1:6:-2: +-%*5hhi: -0B10000000:0:6: +-%5hhi: -0b10000000:1:6:-2: +-%*5hhi: -0b10000000:0:6: + %5hhi: -123:1:5:-123: + %*5hhi: -123:0:5: + %5hhi: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*5hhi: -0x7B:0:6: + %5hhi: -0173:1:6:-123: + %*5hhi: -0173:0:6: +-%5hhi: -0B1111011:1:6:-3: +-%*5hhi: -0B1111011:0:6: +-%5hhi: -0b1111011:1:6:-3: +-%*5hhi: -0b1111011:0:6: + %5hhi: -1:1:3:-1: + %*5hhi: -1:0:3: + %5hhi: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*5hhi: -0x1:0:5: + %5hhi: -01:1:4:-1: + %*5hhi: -01:0:4: +-%5hhi: -0B1:1:5:-1: +-%*5hhi: -0B1:0:5: +-%5hhi: -0b1:1:5:-1: +-%*5hhi: -0b1:0:5: + %5hhi: -0:1:3:0: + %*5hhi: -0:0:3: + %5hhi: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*5hhi: -0x0:0:5: + %5hhi: -00:1:4:0: + %*5hhi: -00:0:4: +-%5hhi: -0B0:1:5:0: +-%*5hhi: -0B0:0:5: +-%5hhi: -0b0:1:5:0: +-%*5hhi: -0b0:0:5: + %5hhi: 0:1:2:0: + %*5hhi: 0:0:2: + %5hhi: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*5hhi: 0x0:0:4: + %5hhi: 00:1:3:0: + %*5hhi: 00:0:3: +-%5hhi: 0B0:1:4:0: +-%*5hhi: 0B0:0:4: +-%5hhi: 0b0:1:4:0: +-%*5hhi: 0b0:0:4: + %5hhi: 1:1:2:1: + %*5hhi: 1:0:2: + %5hhi: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*5hhi: 0x1:0:4: + %5hhi: 01:1:3:1: + %*5hhi: 01:0:3: +-%5hhi: 0B1:1:4:1: +-%*5hhi: 0B1:0:4: +-%5hhi: 0b1:1:4:1: +-%*5hhi: 0b1:0:4: + %5hhi: 42:1:3:42: + %*5hhi: 42:0:3: + %5hhi: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*5hhi: 0x2A:0:5: + %5hhi: 052:1:4:42: + %*5hhi: 052:0:4: +-%5hhi: 0B101010:1:6:5: +-%*5hhi: 0B101010:0:6: +-%5hhi: 0b101010:1:6:5: +-%*5hhi: 0b101010:0:6: + %5hhi: 127:1:4:127: + %*5hhi: 127:0:4: + %5hhi: 0X7f:1:5:127: +@@ -1424,10 +956,6 @@ + %*5hhi: 0x7F:0:5: + %5hhi: 0177:1:5:127: + %*5hhi: 0177:0:5: +-%5hhi: 0B1111111:1:6:7: +-%*5hhi: 0B1111111:0:6: +-%5hhi: 0b1111111:1:6:7: +-%*5hhi: 0b1111111:0:6: + %5hhi: 128:1:4:-128: + %*5hhi: 128:0:4: + %5hhi: 0X80:1:5:-128: +@@ -1436,10 +964,6 @@ + %*5hhi: 0x80:0:5: + %5hhi: 0200:1:5:-128: + %*5hhi: 0200:0:5: +-%5hhi: 0B10000000:1:6:4: +-%*5hhi: 0B10000000:0:6: +-%5hhi: 0b10000000:1:6:4: +-%*5hhi: 0b10000000:0:6: + %5hhi: 169:1:4:-87: + %*5hhi: 169:0:4: + %5hhi: 0Xa9:1:5:-87: +@@ -1448,10 +972,6 @@ + %*5hhi: 0xA9:0:5: + %5hhi: 0251:1:5:-87: + %*5hhi: 0251:0:5: +-%5hhi: 0B10101001:1:6:5: +-%*5hhi: 0B10101001:0:6: +-%5hhi: 0b10101001:1:6:5: +-%*5hhi: 0b10101001:0:6: + %5hhi: +0:1:3:0: + %*5hhi: +0:0:3: + %5hhi: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*5hhi: +0x0:0:5: + %5hhi: +00:1:4:0: + %*5hhi: +00:0:4: +-%5hhi: +0B0:1:5:0: +-%*5hhi: +0B0:0:5: +-%5hhi: +0b0:1:5:0: +-%*5hhi: +0b0:0:5: + %5hhi: +1:1:3:1: + %*5hhi: +1:0:3: + %5hhi: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*5hhi: +0x1:0:5: + %5hhi: +01:1:4:1: + %*5hhi: +01:0:4: +-%5hhi: +0B1:1:5:1: +-%*5hhi: +0B1:0:5: +-%5hhi: +0b1:1:5:1: +-%*5hhi: +0b1:0:5: + %5hhi: +42:1:4:42: + %*5hhi: +42:0:4: + %5hhi: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*5hhi: +0x2A:0:6: + %5hhi: +052:1:5:42: + %*5hhi: +052:0:5: +-%5hhi: +0B101010:1:6:2: +-%*5hhi: +0B101010:0:6: +-%5hhi: +0b101010:1:6:2: +-%*5hhi: +0b101010:0:6: + %5hhi: +127:1:5:127: + %*5hhi: +127:0:5: + %5hhi: +0X7f:1:6:127: +@@ -1496,10 +1004,6 @@ + %*5hhi: +0x7F:0:6: + %5hhi: +0177:1:6:127: + %*5hhi: +0177:0:6: +-%5hhi: +0B1111111:1:6:3: +-%*5hhi: +0B1111111:0:6: +-%5hhi: +0b1111111:1:6:3: +-%*5hhi: +0b1111111:0:6: + %5hhi: +128:1:5:-128: + %*5hhi: +128:0:5: + %5hhi: +0X80:1:6:-128: +@@ -1508,10 +1012,6 @@ + %*5hhi: +0x80:0:6: + %5hhi: +0200:1:6:-128: + %*5hhi: +0200:0:6: +-%5hhi: +0B10000000:1:6:2: +-%*5hhi: +0B10000000:0:6: +-%5hhi: +0b10000000:1:6:2: +-%*5hhi: +0b10000000:0:6: + %5hhi: +169:1:5:-87: + %*5hhi: +169:0:5: + %5hhi: +0Xa9:1:6:-87: +@@ -1520,7 +1020,3 @@ + %*5hhi: +0xA9:0:6: + %5hhi: +0251:1:6:-87: + %*5hhi: +0251:0:6: +-%5hhi: +0B10101001:1:6:2: +-%*5hhi: +0B10101001:0:6: +-%5hhi: +0b10101001:1:6:2: +-%*5hhi: +0b10101001:0:6: +diff --git a/stdio-common/tst-scanf-format-llong-i.input b/stdio-common/tst-scanf-format-llong-i.input +index f63e35d099c4a330..cd3ba450dc25d22c 100644 +--- a/stdio-common/tst-scanf-format-llong-i.input ++++ b/stdio-common/tst-scanf-format-llong-i.input +@@ -8,10 +8,6 @@ + %*lli:-0x8000000000BC614E:0:19: + %lli:-01000000000000057060516:1:24:-9223372036854775808: + %*lli:-01000000000000057060516:0:24: +-%lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: +-%lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: + %lli:-9223372036854775809:1:20:-9223372036854775808: + %*lli:-9223372036854775809:0:20: + %lli:-0X8000000000000001:1:19:-9223372036854775808: +@@ -20,10 +16,6 @@ + %*lli:-0x8000000000000001:0:19: + %lli:-01000000000000000000001:1:24:-9223372036854775808: + %*lli:-01000000000000000000001:0:24: +-%lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: +-%lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: + %lli:-9223372036854775808:1:20:-9223372036854775808: + %*lli:-9223372036854775808:0:20: + %lli:-0X8000000000000000:1:19:-9223372036854775808: +@@ -32,10 +24,6 @@ + %*lli:-0x8000000000000000:0:19: + %lli:-01000000000000000000000:1:24:-9223372036854775808: + %*lli:-01000000000000000000000:0:24: +-%lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %lli:-123:1:4:-123: + %*lli:-123:0:4: + %lli:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*lli:-0x7B:0:5: + %lli:-0173:1:5:-123: + %*lli:-0173:0:5: +-%lli:-0B1111011:1:10:-123: +-%*lli:-0B1111011:0:10: +-%lli:-0b1111011:1:10:-123: +-%*lli:-0b1111011:0:10: + %lli:-1:1:2:-1: + %*lli:-1:0:2: + %lli:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*lli:-0x1:0:4: + %lli:-01:1:3:-1: + %*lli:-01:0:3: +-%lli:-0B1:1:4:-1: +-%*lli:-0B1:0:4: +-%lli:-0b1:1:4:-1: +-%*lli:-0b1:0:4: + %lli:-0:1:2:0: + %*lli:-0:0:2: + %lli:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*lli:-0x0:0:4: + %lli:-00:1:3:0: + %*lli:-00:0:3: +-%lli:-0B0:1:4:0: +-%*lli:-0B0:0:4: +-%lli:-0b0:1:4:0: +-%*lli:-0b0:0:4: + %lli:0:1:1:0: + %*lli:0:0:1: + %lli:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*lli:0x0:0:3: + %lli:00:1:2:0: + %*lli:00:0:2: +-%lli:0B0:1:3:0: +-%*lli:0B0:0:3: +-%lli:0b0:1:3:0: +-%*lli:0b0:0:3: + %lli:1:1:1:1: + %*lli:1:0:1: + %lli:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*lli:0x1:0:3: + %lli:01:1:2:1: + %*lli:01:0:2: +-%lli:0B1:1:3:1: +-%*lli:0B1:0:3: +-%lli:0b1:1:3:1: +-%*lli:0b1:0:3: + %lli:42:1:2:42: + %*lli:42:0:2: + %lli:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*lli:0x2A:0:4: + %lli:052:1:3:42: + %*lli:052:0:3: +-%lli:0B101010:1:8:42: +-%*lli:0B101010:0:8: +-%lli:0b101010:1:8:42: +-%*lli:0b101010:0:8: + %lli:9223372036854775807:1:19:9223372036854775807: + %*lli:9223372036854775807:0:19: + %lli:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -116,10 +80,6 @@ + %*lli:0x7FFFFFFFFFFFFFFF:0:18: + %lli:0777777777777777777777:1:22:9223372036854775807: + %*lli:0777777777777777777777:0:22: +-%lli:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*lli:0B111111111111111111111111111111111111111111111111111111111111111:0:65: +-%lli:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*lli:0b111111111111111111111111111111111111111111111111111111111111111:0:65: + %lli:9223372036854775808:1:19:9223372036854775807: + %*lli:9223372036854775808:0:19: + %lli:0X8000000000000000:1:18:9223372036854775807: +@@ -128,10 +88,6 @@ + %*lli:0x8000000000000000:0:18: + %lli:01000000000000000000000:1:23:9223372036854775807: + %*lli:01000000000000000000000:0:23: +-%lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: +-%lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: + %lli:9223372036897200049:1:19:9223372036854775807: + %*lli:9223372036897200049:0:19: + %lli:0X80000000028757b1:1:18:9223372036854775807: +@@ -140,10 +96,6 @@ + %*lli:0x80000000028757B1:0:18: + %lli:01000000000000241653661:1:23:9223372036854775807: + %*lli:01000000000000241653661:0:23: +-%lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: +-%lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: + %lli:+0:1:2:0: + %*lli:+0:0:2: + %lli:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*lli:+0x0:0:4: + %lli:+00:1:3:0: + %*lli:+00:0:3: +-%lli:+0B0:1:4:0: +-%*lli:+0B0:0:4: +-%lli:+0b0:1:4:0: +-%*lli:+0b0:0:4: + %lli:+1:1:2:1: + %*lli:+1:0:2: + %lli:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*lli:+0x1:0:4: + %lli:+01:1:3:1: + %*lli:+01:0:3: +-%lli:+0B1:1:4:1: +-%*lli:+0B1:0:4: +-%lli:+0b1:1:4:1: +-%*lli:+0b1:0:4: + %lli:+42:1:3:42: + %*lli:+42:0:3: + %lli:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*lli:+0x2A:0:5: + %lli:+052:1:4:42: + %*lli:+052:0:4: +-%lli:+0B101010:1:9:42: +-%*lli:+0B101010:0:9: +-%lli:+0b101010:1:9:42: +-%*lli:+0b101010:0:9: + %lli:+9223372036854775807:1:20:9223372036854775807: + %*lli:+9223372036854775807:0:20: + %lli:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -188,10 +128,6 @@ + %*lli:+0x7FFFFFFFFFFFFFFF:0:19: + %lli:+0777777777777777777777:1:23:9223372036854775807: + %*lli:+0777777777777777777777:0:23: +-%lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: +-%lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: + %lli:+9223372036854775808:1:20:9223372036854775807: + %*lli:+9223372036854775808:0:20: + %lli:+0X8000000000000000:1:19:9223372036854775807: +@@ -200,10 +136,6 @@ + %*lli:+0x8000000000000000:0:19: + %lli:+01000000000000000000000:1:24:9223372036854775807: + %*lli:+01000000000000000000000:0:24: +-%lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %lli:+9223372036897200049:1:20:9223372036854775807: + %*lli:+9223372036897200049:0:20: + %lli:+0X80000000028757b1:1:19:9223372036854775807: +@@ -212,10 +144,6 @@ + %*lli:+0x80000000028757B1:0:19: + %lli:+01000000000000241653661:1:24:9223372036854775807: + %*lli:+01000000000000241653661:0:24: +-%lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: +-%lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: + %1lli::0:-1: + %*1lli::0:-1: + %1lli:-9223372036867121486:0:-1: +@@ -226,10 +154,6 @@ + %*1lli:-0x8000000000BC614E:0:-1: + %1lli:-01000000000000057060516:0:-1: + %*1lli:-01000000000000057060516:0:-1: +-%1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: + %1lli:-9223372036854775809:0:-1: + %*1lli:-9223372036854775809:0:-1: + %1lli:-0X8000000000000001:0:-1: +@@ -238,10 +162,6 @@ + %*1lli:-0x8000000000000001:0:-1: + %1lli:-01000000000000000000001:0:-1: + %*1lli:-01000000000000000000001:0:-1: +-%1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: + %1lli:-9223372036854775808:0:-1: + %*1lli:-9223372036854775808:0:-1: + %1lli:-0X8000000000000000:0:-1: +@@ -250,10 +170,6 @@ + %*1lli:-0x8000000000000000:0:-1: + %1lli:-01000000000000000000000:0:-1: + %*1lli:-01000000000000000000000:0:-1: +-%1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1lli:-123:0:-1: + %*1lli:-123:0:-1: + %1lli:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1lli:-0x7B:0:-1: + %1lli:-0173:0:-1: + %*1lli:-0173:0:-1: +-%1lli:-0B1111011:0:-1: +-%*1lli:-0B1111011:0:-1: +-%1lli:-0b1111011:0:-1: +-%*1lli:-0b1111011:0:-1: + %1lli:-1:0:-1: + %*1lli:-1:0:-1: + %1lli:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1lli:-0x1:0:-1: + %1lli:-01:0:-1: + %*1lli:-01:0:-1: +-%1lli:-0B1:0:-1: +-%*1lli:-0B1:0:-1: +-%1lli:-0b1:0:-1: +-%*1lli:-0b1:0:-1: + %1lli:-0:0:-1: + %*1lli:-0:0:-1: + %1lli:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1lli:-0x0:0:-1: + %1lli:-00:0:-1: + %*1lli:-00:0:-1: +-%1lli:-0B0:0:-1: +-%*1lli:-0B0:0:-1: +-%1lli:-0b0:0:-1: +-%*1lli:-0b0:0:-1: + %1lli:0:1:1:0: + %*1lli:0:0:1: + %1lli:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1lli:0x0:0:1: + %1lli:00:1:1:0: + %*1lli:00:0:1: +-%1lli:0B0:1:1:0: +-%*1lli:0B0:0:1: +-%1lli:0b0:1:1:0: +-%*1lli:0b0:0:1: + %1lli:1:1:1:1: + %*1lli:1:0:1: + %1lli:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1lli:0x1:0:1: + %1lli:01:1:1:0: + %*1lli:01:0:1: +-%1lli:0B1:1:1:0: +-%*1lli:0B1:0:1: +-%1lli:0b1:1:1:0: +-%*1lli:0b1:0:1: + %1lli:42:1:1:4: + %*1lli:42:0:1: + %1lli:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1lli:0x2A:0:1: + %1lli:052:1:1:0: + %*1lli:052:0:1: +-%1lli:0B101010:1:1:0: +-%*1lli:0B101010:0:1: +-%1lli:0b101010:1:1:0: +-%*1lli:0b101010:0:1: + %1lli:9223372036854775807:1:1:9: + %*1lli:9223372036854775807:0:1: + %1lli:0X7fffffffffffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1lli:0x7FFFFFFFFFFFFFFF:0:1: + %1lli:0777777777777777777777:1:1:0: + %*1lli:0777777777777777777777:0:1: +-%1lli:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lli:0B111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lli:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lli:0b111111111111111111111111111111111111111111111111111111111111111:0:1: + %1lli:9223372036854775808:1:1:9: + %*1lli:9223372036854775808:0:1: + %1lli:0X8000000000000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1lli:0x8000000000000000:0:1: + %1lli:01000000000000000000000:1:1:0: + %*1lli:01000000000000000000000:0:1: +-%1lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: + %1lli:9223372036897200049:1:1:9: + %*1lli:9223372036897200049:0:1: + %1lli:0X80000000028757b1:1:1:0: +@@ -358,10 +242,6 @@ + %*1lli:0x80000000028757B1:0:1: + %1lli:01000000000000241653661:1:1:0: + %*1lli:01000000000000241653661:0:1: +-%1lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: + %1lli:+0:0:-1: + %*1lli:+0:0:-1: + %1lli:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1lli:+0x0:0:-1: + %1lli:+00:0:-1: + %*1lli:+00:0:-1: +-%1lli:+0B0:0:-1: +-%*1lli:+0B0:0:-1: +-%1lli:+0b0:0:-1: +-%*1lli:+0b0:0:-1: + %1lli:+1:0:-1: + %*1lli:+1:0:-1: + %1lli:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1lli:+0x1:0:-1: + %1lli:+01:0:-1: + %*1lli:+01:0:-1: +-%1lli:+0B1:0:-1: +-%*1lli:+0B1:0:-1: +-%1lli:+0b1:0:-1: +-%*1lli:+0b1:0:-1: + %1lli:+42:0:-1: + %*1lli:+42:0:-1: + %1lli:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1lli:+0x2A:0:-1: + %1lli:+052:0:-1: + %*1lli:+052:0:-1: +-%1lli:+0B101010:0:-1: +-%*1lli:+0B101010:0:-1: +-%1lli:+0b101010:0:-1: +-%*1lli:+0b101010:0:-1: + %1lli:+9223372036854775807:0:-1: + %*1lli:+9223372036854775807:0:-1: + %1lli:+0X7fffffffffffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1lli:+0x7FFFFFFFFFFFFFFF:0:-1: + %1lli:+0777777777777777777777:0:-1: + %*1lli:+0777777777777777777777:0:-1: +-%1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %1lli:+9223372036854775808:0:-1: + %*1lli:+9223372036854775808:0:-1: + %1lli:+0X8000000000000000:0:-1: +@@ -418,10 +282,6 @@ + %*1lli:+0x8000000000000000:0:-1: + %1lli:+01000000000000000000000:0:-1: + %*1lli:+01000000000000000000000:0:-1: +-%1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1lli:+9223372036897200049:0:-1: + %*1lli:+9223372036897200049:0:-1: + %1lli:+0X80000000028757b1:0:-1: +@@ -430,10 +290,6 @@ + %*1lli:+0x80000000028757B1:0:-1: + %1lli:+01000000000000241653661:0:-1: + %*1lli:+01000000000000241653661:0:-1: +-%1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2lli::0:-1: + %*2lli::0:-1: + %2lli:-9223372036867121486:1:2:-9: +@@ -444,10 +300,6 @@ + %*2lli:-0x8000000000BC614E:0:2: + %2lli:-01000000000000057060516:1:2:0: + %*2lli:-01000000000000057060516:0:2: +-%2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: +-%2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: + %2lli:-9223372036854775809:1:2:-9: + %*2lli:-9223372036854775809:0:2: + %2lli:-0X8000000000000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2lli:-0x8000000000000001:0:2: + %2lli:-01000000000000000000001:1:2:0: + %*2lli:-01000000000000000000001:0:2: +-%2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: +-%2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: + %2lli:-9223372036854775808:1:2:-9: + %*2lli:-9223372036854775808:0:2: + %2lli:-0X8000000000000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2lli:-0x8000000000000000:0:2: + %2lli:-01000000000000000000000:1:2:0: + %*2lli:-01000000000000000000000:0:2: +-%2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2lli:-123:1:2:-1: + %*2lli:-123:0:2: + %2lli:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2lli:-0x7B:0:2: + %2lli:-0173:1:2:0: + %*2lli:-0173:0:2: +-%2lli:-0B1111011:1:2:0: +-%*2lli:-0B1111011:0:2: +-%2lli:-0b1111011:1:2:0: +-%*2lli:-0b1111011:0:2: + %2lli:-1:1:2:-1: + %*2lli:-1:0:2: + %2lli:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2lli:-0x1:0:2: + %2lli:-01:1:2:0: + %*2lli:-01:0:2: +-%2lli:-0B1:1:2:0: +-%*2lli:-0B1:0:2: +-%2lli:-0b1:1:2:0: +-%*2lli:-0b1:0:2: + %2lli:-0:1:2:0: + %*2lli:-0:0:2: + %2lli:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2lli:-0x0:0:2: + %2lli:-00:1:2:0: + %*2lli:-00:0:2: +-%2lli:-0B0:1:2:0: +-%*2lli:-0B0:0:2: +-%2lli:-0b0:1:2:0: +-%*2lli:-0b0:0:2: + %2lli:0:1:1:0: + %*2lli:0:0:1: + # BZ12701 %2lli:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2lli:0x0:0:-1: + %2lli:00:1:2:0: + %*2lli:00:0:2: +-# BZ12701 %2lli:0B0:0:-1: +-# BZ12701 %*2lli:0B0:0:-1: +-# BZ12701 %2lli:0b0:0:-1: +-# BZ12701 %*2lli:0b0:0:-1: + %2lli:1:1:1:1: + %*2lli:1:0:1: + # BZ12701 %2lli:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2lli:0x1:0:-1: + %2lli:01:1:2:1: + %*2lli:01:0:2: +-# BZ12701 %2lli:0B1:0:-1: +-# BZ12701 %*2lli:0B1:0:-1: +-# BZ12701 %2lli:0b1:0:-1: +-# BZ12701 %*2lli:0b1:0:-1: + %2lli:42:1:2:42: + %*2lli:42:0:2: + # BZ12701 %2lli:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2lli:0x2A:0:-1: + %2lli:052:1:2:5: + %*2lli:052:0:2: +-# BZ12701 %2lli:0B101010:0:-1: +-# BZ12701 %*2lli:0B101010:0:-1: +-# BZ12701 %2lli:0b101010:0:-1: +-# BZ12701 %*2lli:0b101010:0:-1: + %2lli:9223372036854775807:1:2:92: + %*2lli:9223372036854775807:0:2: + # BZ12701 %2lli:0X7fffffffffffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2lli:0x7FFFFFFFFFFFFFFF:0:-1: + %2lli:0777777777777777777777:1:2:7: + %*2lli:0777777777777777777777:0:2: +-# BZ12701 %2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2lli:9223372036854775808:1:2:92: + %*2lli:9223372036854775808:0:2: + # BZ12701 %2lli:0X8000000000000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2lli:0x8000000000000000:0:-1: + %2lli:01000000000000000000000:1:2:1: + %*2lli:01000000000000000000000:0:2: +-# BZ12701 %2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2lli:9223372036897200049:1:2:92: + %*2lli:9223372036897200049:0:2: + # BZ12701 %2lli:0X80000000028757b1:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2lli:0x80000000028757B1:0:-1: + %2lli:01000000000000241653661:1:2:1: + %*2lli:01000000000000241653661:0:2: +-# BZ12701 %2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2lli:+0:1:2:0: + %*2lli:+0:0:2: + %2lli:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2lli:+0x0:0:2: + %2lli:+00:1:2:0: + %*2lli:+00:0:2: +-%2lli:+0B0:1:2:0: +-%*2lli:+0B0:0:2: +-%2lli:+0b0:1:2:0: +-%*2lli:+0b0:0:2: + %2lli:+1:1:2:1: + %*2lli:+1:0:2: + %2lli:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2lli:+0x1:0:2: + %2lli:+01:1:2:0: + %*2lli:+01:0:2: +-%2lli:+0B1:1:2:0: +-%*2lli:+0B1:0:2: +-%2lli:+0b1:1:2:0: +-%*2lli:+0b1:0:2: + %2lli:+42:1:2:4: + %*2lli:+42:0:2: + %2lli:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2lli:+0x2A:0:2: + %2lli:+052:1:2:0: + %*2lli:+052:0:2: +-%2lli:+0B101010:1:2:0: +-%*2lli:+0B101010:0:2: +-%2lli:+0b101010:1:2:0: +-%*2lli:+0b101010:0:2: + %2lli:+9223372036854775807:1:2:9: + %*2lli:+9223372036854775807:0:2: + %2lli:+0X7fffffffffffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2lli:+0x7FFFFFFFFFFFFFFF:0:2: + %2lli:+0777777777777777777777:1:2:0: + %*2lli:+0777777777777777777777:0:2: +-%2lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: + %2lli:+9223372036854775808:1:2:9: + %*2lli:+9223372036854775808:0:2: + %2lli:+0X8000000000000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2lli:+0x8000000000000000:0:2: + %2lli:+01000000000000000000000:1:2:0: + %*2lli:+01000000000000000000000:0:2: +-%2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2lli:+9223372036897200049:1:2:9: + %*2lli:+9223372036897200049:0:2: + %2lli:+0X80000000028757b1:1:2:0: +@@ -648,10 +436,6 @@ + %*2lli:+0x80000000028757B1:0:2: + %2lli:+01000000000000241653661:1:2:0: + %*2lli:+01000000000000241653661:0:2: +-%2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: + %15lli::0:-1: + %*15lli::0:-1: + %15lli:-9223372036867121486:1:15:-92233720368671: +@@ -662,10 +446,6 @@ + %*15lli:-0x8000000000BC614E:0:15: + %15lli:-01000000000000057060516:1:15:-68719476736: + %*15lli:-01000000000000057060516:0:15: +-%15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: +-%15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: + %15lli:-9223372036854775809:1:15:-92233720368547: + %*15lli:-9223372036854775809:0:15: + %15lli:-0X8000000000000001:1:15:-140737488355328: +@@ -674,10 +454,6 @@ + %*15lli:-0x8000000000000001:0:15: + %15lli:-01000000000000000000001:1:15:-68719476736: + %*15lli:-01000000000000000000001:0:15: +-%15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: +-%15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: + %15lli:-9223372036854775808:1:15:-92233720368547: + %*15lli:-9223372036854775808:0:15: + %15lli:-0X8000000000000000:1:15:-140737488355328: +@@ -686,10 +462,6 @@ + %*15lli:-0x8000000000000000:0:15: + %15lli:-01000000000000000000000:1:15:-68719476736: + %*15lli:-01000000000000000000000:0:15: +-%15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15lli:-123:1:4:-123: + %*15lli:-123:0:4: + %15lli:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*15lli:-0x7B:0:5: + %15lli:-0173:1:5:-123: + %*15lli:-0173:0:5: +-%15lli:-0B1111011:1:10:-123: +-%*15lli:-0B1111011:0:10: +-%15lli:-0b1111011:1:10:-123: +-%*15lli:-0b1111011:0:10: + %15lli:-1:1:2:-1: + %*15lli:-1:0:2: + %15lli:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*15lli:-0x1:0:4: + %15lli:-01:1:3:-1: + %*15lli:-01:0:3: +-%15lli:-0B1:1:4:-1: +-%*15lli:-0B1:0:4: +-%15lli:-0b1:1:4:-1: +-%*15lli:-0b1:0:4: + %15lli:-0:1:2:0: + %*15lli:-0:0:2: + %15lli:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*15lli:-0x0:0:4: + %15lli:-00:1:3:0: + %*15lli:-00:0:3: +-%15lli:-0B0:1:4:0: +-%*15lli:-0B0:0:4: +-%15lli:-0b0:1:4:0: +-%*15lli:-0b0:0:4: + %15lli:0:1:1:0: + %*15lli:0:0:1: + %15lli:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*15lli:0x0:0:3: + %15lli:00:1:2:0: + %*15lli:00:0:2: +-%15lli:0B0:1:3:0: +-%*15lli:0B0:0:3: +-%15lli:0b0:1:3:0: +-%*15lli:0b0:0:3: + %15lli:1:1:1:1: + %*15lli:1:0:1: + %15lli:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*15lli:0x1:0:3: + %15lli:01:1:2:1: + %*15lli:01:0:2: +-%15lli:0B1:1:3:1: +-%*15lli:0B1:0:3: +-%15lli:0b1:1:3:1: +-%*15lli:0b1:0:3: + %15lli:42:1:2:42: + %*15lli:42:0:2: + %15lli:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*15lli:0x2A:0:4: + %15lli:052:1:3:42: + %*15lli:052:0:3: +-%15lli:0B101010:1:8:42: +-%*15lli:0B101010:0:8: +-%15lli:0b101010:1:8:42: +-%*15lli:0b101010:0:8: + %15lli:9223372036854775807:1:15:922337203685477: + %*15lli:9223372036854775807:0:15: + %15lli:0X7fffffffffffffff:1:15:2251799813685247: +@@ -770,10 +518,6 @@ + %*15lli:0x7FFFFFFFFFFFFFFF:0:15: + %15lli:0777777777777777777777:1:15:4398046511103: + %*15lli:0777777777777777777777:0:15: +-%15lli:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lli:0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lli:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lli:0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15lli:9223372036854775808:1:15:922337203685477: + %*15lli:9223372036854775808:0:15: + %15lli:0X8000000000000000:1:15:2251799813685248: +@@ -782,10 +526,6 @@ + %*15lli:0x8000000000000000:0:15: + %15lli:01000000000000000000000:1:15:549755813888: + %*15lli:01000000000000000000000:0:15: +-%15lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15lli:9223372036897200049:1:15:922337203689720: + %*15lli:9223372036897200049:0:15: + %15lli:0X80000000028757b1:1:15:2251799813695605: +@@ -794,10 +534,6 @@ + %*15lli:0x80000000028757B1:0:15: + %15lli:01000000000000241653661:1:15:549755813890: + %*15lli:01000000000000241653661:0:15: +-%15lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %15lli:+0:1:2:0: + %*15lli:+0:0:2: + %15lli:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*15lli:+0x0:0:4: + %15lli:+00:1:3:0: + %*15lli:+00:0:3: +-%15lli:+0B0:1:4:0: +-%*15lli:+0B0:0:4: +-%15lli:+0b0:1:4:0: +-%*15lli:+0b0:0:4: + %15lli:+1:1:2:1: + %*15lli:+1:0:2: + %15lli:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*15lli:+0x1:0:4: + %15lli:+01:1:3:1: + %*15lli:+01:0:3: +-%15lli:+0B1:1:4:1: +-%*15lli:+0B1:0:4: +-%15lli:+0b1:1:4:1: +-%*15lli:+0b1:0:4: + %15lli:+42:1:3:42: + %*15lli:+42:0:3: + %15lli:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*15lli:+0x2A:0:5: + %15lli:+052:1:4:42: + %*15lli:+052:0:4: +-%15lli:+0B101010:1:9:42: +-%*15lli:+0B101010:0:9: +-%15lli:+0b101010:1:9:42: +-%*15lli:+0b101010:0:9: + %15lli:+9223372036854775807:1:15:92233720368547: + %*15lli:+9223372036854775807:0:15: + %15lli:+0X7fffffffffffffff:1:15:140737488355327: +@@ -842,10 +566,6 @@ + %*15lli:+0x7FFFFFFFFFFFFFFF:0:15: + %15lli:+0777777777777777777777:1:15:549755813887: + %*15lli:+0777777777777777777777:0:15: +-%15lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15lli:+9223372036854775808:1:15:92233720368547: + %*15lli:+9223372036854775808:0:15: + %15lli:+0X8000000000000000:1:15:140737488355328: +@@ -854,10 +574,6 @@ + %*15lli:+0x8000000000000000:0:15: + %15lli:+01000000000000000000000:1:15:68719476736: + %*15lli:+01000000000000000000000:0:15: +-%15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15lli:+9223372036897200049:1:15:92233720368972: + %*15lli:+9223372036897200049:0:15: + %15lli:+0X80000000028757b1:1:15:140737488355975: +@@ -866,10 +582,6 @@ + %*15lli:+0x80000000028757B1:0:15: + %15lli:+01000000000000241653661:1:15:68719476736: + %*15lli:+01000000000000241653661:0:15: +-%15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %25lli::0:-1: + %*25lli::0:-1: + %25lli:-9223372036867121486:1:20:-9223372036854775808: +@@ -880,10 +592,6 @@ + %*25lli:-0x8000000000BC614E:0:19: + %25lli:-01000000000000057060516:1:24:-9223372036854775808: + %*25lli:-01000000000000057060516:0:24: +-%25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: +-%25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: + %25lli:-9223372036854775809:1:20:-9223372036854775808: + %*25lli:-9223372036854775809:0:20: + %25lli:-0X8000000000000001:1:19:-9223372036854775808: +@@ -892,10 +600,6 @@ + %*25lli:-0x8000000000000001:0:19: + %25lli:-01000000000000000000001:1:24:-9223372036854775808: + %*25lli:-01000000000000000000001:0:24: +-%25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: +-%25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: + %25lli:-9223372036854775808:1:20:-9223372036854775808: + %*25lli:-9223372036854775808:0:20: + %25lli:-0X8000000000000000:1:19:-9223372036854775808: +@@ -904,10 +608,6 @@ + %*25lli:-0x8000000000000000:0:19: + %25lli:-01000000000000000000000:1:24:-9223372036854775808: + %*25lli:-01000000000000000000000:0:24: +-%25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25lli:-123:1:4:-123: + %*25lli:-123:0:4: + %25lli:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*25lli:-0x7B:0:5: + %25lli:-0173:1:5:-123: + %*25lli:-0173:0:5: +-%25lli:-0B1111011:1:10:-123: +-%*25lli:-0B1111011:0:10: +-%25lli:-0b1111011:1:10:-123: +-%*25lli:-0b1111011:0:10: + %25lli:-1:1:2:-1: + %*25lli:-1:0:2: + %25lli:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*25lli:-0x1:0:4: + %25lli:-01:1:3:-1: + %*25lli:-01:0:3: +-%25lli:-0B1:1:4:-1: +-%*25lli:-0B1:0:4: +-%25lli:-0b1:1:4:-1: +-%*25lli:-0b1:0:4: + %25lli:-0:1:2:0: + %*25lli:-0:0:2: + %25lli:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*25lli:-0x0:0:4: + %25lli:-00:1:3:0: + %*25lli:-00:0:3: +-%25lli:-0B0:1:4:0: +-%*25lli:-0B0:0:4: +-%25lli:-0b0:1:4:0: +-%*25lli:-0b0:0:4: + %25lli:0:1:1:0: + %*25lli:0:0:1: + %25lli:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*25lli:0x0:0:3: + %25lli:00:1:2:0: + %*25lli:00:0:2: +-%25lli:0B0:1:3:0: +-%*25lli:0B0:0:3: +-%25lli:0b0:1:3:0: +-%*25lli:0b0:0:3: + %25lli:1:1:1:1: + %*25lli:1:0:1: + %25lli:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*25lli:0x1:0:3: + %25lli:01:1:2:1: + %*25lli:01:0:2: +-%25lli:0B1:1:3:1: +-%*25lli:0B1:0:3: +-%25lli:0b1:1:3:1: +-%*25lli:0b1:0:3: + %25lli:42:1:2:42: + %*25lli:42:0:2: + %25lli:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*25lli:0x2A:0:4: + %25lli:052:1:3:42: + %*25lli:052:0:3: +-%25lli:0B101010:1:8:42: +-%*25lli:0B101010:0:8: +-%25lli:0b101010:1:8:42: +-%*25lli:0b101010:0:8: + %25lli:9223372036854775807:1:19:9223372036854775807: + %*25lli:9223372036854775807:0:19: + %25lli:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -988,10 +664,6 @@ + %*25lli:0x7FFFFFFFFFFFFFFF:0:18: + %25lli:0777777777777777777777:1:22:9223372036854775807: + %*25lli:0777777777777777777777:0:22: +-%25lli:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lli:0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lli:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lli:0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25lli:9223372036854775808:1:19:9223372036854775807: + %*25lli:9223372036854775808:0:19: + %25lli:0X8000000000000000:1:18:9223372036854775807: +@@ -1000,10 +672,6 @@ + %*25lli:0x8000000000000000:0:18: + %25lli:01000000000000000000000:1:23:9223372036854775807: + %*25lli:01000000000000000000000:0:23: +-%25lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25lli:9223372036897200049:1:19:9223372036854775807: + %*25lli:9223372036897200049:0:19: + %25lli:0X80000000028757b1:1:18:9223372036854775807: +@@ -1012,10 +680,6 @@ + %*25lli:0x80000000028757B1:0:18: + %25lli:01000000000000241653661:1:23:9223372036854775807: + %*25lli:01000000000000241653661:0:23: +-%25lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %25lli:+0:1:2:0: + %*25lli:+0:0:2: + %25lli:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*25lli:+0x0:0:4: + %25lli:+00:1:3:0: + %*25lli:+00:0:3: +-%25lli:+0B0:1:4:0: +-%*25lli:+0B0:0:4: +-%25lli:+0b0:1:4:0: +-%*25lli:+0b0:0:4: + %25lli:+1:1:2:1: + %*25lli:+1:0:2: + %25lli:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*25lli:+0x1:0:4: + %25lli:+01:1:3:1: + %*25lli:+01:0:3: +-%25lli:+0B1:1:4:1: +-%*25lli:+0B1:0:4: +-%25lli:+0b1:1:4:1: +-%*25lli:+0b1:0:4: + %25lli:+42:1:3:42: + %*25lli:+42:0:3: + %25lli:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*25lli:+0x2A:0:5: + %25lli:+052:1:4:42: + %*25lli:+052:0:4: +-%25lli:+0B101010:1:9:42: +-%*25lli:+0B101010:0:9: +-%25lli:+0b101010:1:9:42: +-%*25lli:+0b101010:0:9: + %25lli:+9223372036854775807:1:20:9223372036854775807: + %*25lli:+9223372036854775807:0:20: + %25lli:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1060,10 +712,6 @@ + %*25lli:+0x7FFFFFFFFFFFFFFF:0:19: + %25lli:+0777777777777777777777:1:23:9223372036854775807: + %*25lli:+0777777777777777777777:0:23: +-%25lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25lli:+9223372036854775808:1:20:9223372036854775807: + %*25lli:+9223372036854775808:0:20: + %25lli:+0X8000000000000000:1:19:9223372036854775807: +@@ -1072,10 +720,6 @@ + %*25lli:+0x8000000000000000:0:19: + %25lli:+01000000000000000000000:1:24:9223372036854775807: + %*25lli:+01000000000000000000000:0:24: +-%25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25lli:+9223372036897200049:1:20:9223372036854775807: + %*25lli:+9223372036897200049:0:20: + %25lli:+0X80000000028757b1:1:19:9223372036854775807: +@@ -1084,10 +728,6 @@ + %*25lli:+0x80000000028757B1:0:19: + %25lli:+01000000000000241653661:1:24:9223372036854775807: + %*25lli:+01000000000000241653661:0:24: +-%25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %2lli: :0:-1: + %*2lli: :0:-1: + %2lli: -9223372036867121486:1:3:-9: +@@ -1098,10 +738,6 @@ + %*2lli: -0x8000000000BC614E:0:3: + %2lli: -01000000000000057060516:1:3:0: + %*2lli: -01000000000000057060516:0:3: +-%2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: +-%2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: + %2lli: -9223372036854775809:1:3:-9: + %*2lli: -9223372036854775809:0:3: + %2lli: -0X8000000000000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2lli: -0x8000000000000001:0:3: + %2lli: -01000000000000000000001:1:3:0: + %*2lli: -01000000000000000000001:0:3: +-%2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: +-%2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: + %2lli: -9223372036854775808:1:3:-9: + %*2lli: -9223372036854775808:0:3: + %2lli: -0X8000000000000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2lli: -0x8000000000000000:0:3: + %2lli: -01000000000000000000000:1:3:0: + %*2lli: -01000000000000000000000:0:3: +-%2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2lli: -123:1:3:-1: + %*2lli: -123:0:3: + %2lli: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2lli: -0x7B:0:3: + %2lli: -0173:1:3:0: + %*2lli: -0173:0:3: +-%2lli: -0B1111011:1:3:0: +-%*2lli: -0B1111011:0:3: +-%2lli: -0b1111011:1:3:0: +-%*2lli: -0b1111011:0:3: + %2lli: -1:1:3:-1: + %*2lli: -1:0:3: + %2lli: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2lli: -0x1:0:3: + %2lli: -01:1:3:0: + %*2lli: -01:0:3: +-%2lli: -0B1:1:3:0: +-%*2lli: -0B1:0:3: +-%2lli: -0b1:1:3:0: +-%*2lli: -0b1:0:3: + %2lli: -0:1:3:0: + %*2lli: -0:0:3: + %2lli: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2lli: -0x0:0:3: + %2lli: -00:1:3:0: + %*2lli: -00:0:3: +-%2lli: -0B0:1:3:0: +-%*2lli: -0B0:0:3: +-%2lli: -0b0:1:3:0: +-%*2lli: -0b0:0:3: + %2lli: 0:1:2:0: + %*2lli: 0:0:2: + # BZ12701 %2lli: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2lli: 0x0:0:-1: + %2lli: 00:1:3:0: + %*2lli: 00:0:3: +-# BZ12701 %2lli: 0B0:0:-1: +-# BZ12701 %*2lli: 0B0:0:-1: +-# BZ12701 %2lli: 0b0:0:-1: +-# BZ12701 %*2lli: 0b0:0:-1: + %2lli: 1:1:2:1: + %*2lli: 1:0:2: + # BZ12701 %2lli: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2lli: 0x1:0:-1: + %2lli: 01:1:3:1: + %*2lli: 01:0:3: +-# BZ12701 %2lli: 0B1:0:-1: +-# BZ12701 %*2lli: 0B1:0:-1: +-# BZ12701 %2lli: 0b1:0:-1: +-# BZ12701 %*2lli: 0b1:0:-1: + %2lli: 42:1:3:42: + %*2lli: 42:0:3: + # BZ12701 %2lli: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2lli: 0x2A:0:-1: + %2lli: 052:1:3:5: + %*2lli: 052:0:3: +-# BZ12701 %2lli: 0B101010:0:-1: +-# BZ12701 %*2lli: 0B101010:0:-1: +-# BZ12701 %2lli: 0b101010:0:-1: +-# BZ12701 %*2lli: 0b101010:0:-1: + %2lli: 9223372036854775807:1:3:92: + %*2lli: 9223372036854775807:0:3: + # BZ12701 %2lli: 0X7fffffffffffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2lli: 0x7FFFFFFFFFFFFFFF:0:-1: + %2lli: 0777777777777777777777:1:3:7: + %*2lli: 0777777777777777777777:0:3: +-# BZ12701 %2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2lli: 9223372036854775808:1:3:92: + %*2lli: 9223372036854775808:0:3: + # BZ12701 %2lli: 0X8000000000000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2lli: 0x8000000000000000:0:-1: + %2lli: 01000000000000000000000:1:3:1: + %*2lli: 01000000000000000000000:0:3: +-# BZ12701 %2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2lli: 9223372036897200049:1:3:92: + %*2lli: 9223372036897200049:0:3: + # BZ12701 %2lli: 0X80000000028757b1:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2lli: 0x80000000028757B1:0:-1: + %2lli: 01000000000000241653661:1:3:1: + %*2lli: 01000000000000241653661:0:3: +-# BZ12701 %2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2lli: +0:1:3:0: + %*2lli: +0:0:3: + %2lli: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2lli: +0x0:0:3: + %2lli: +00:1:3:0: + %*2lli: +00:0:3: +-%2lli: +0B0:1:3:0: +-%*2lli: +0B0:0:3: +-%2lli: +0b0:1:3:0: +-%*2lli: +0b0:0:3: + %2lli: +1:1:3:1: + %*2lli: +1:0:3: + %2lli: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2lli: +0x1:0:3: + %2lli: +01:1:3:0: + %*2lli: +01:0:3: +-%2lli: +0B1:1:3:0: +-%*2lli: +0B1:0:3: +-%2lli: +0b1:1:3:0: +-%*2lli: +0b1:0:3: + %2lli: +42:1:3:4: + %*2lli: +42:0:3: + %2lli: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2lli: +0x2A:0:3: + %2lli: +052:1:3:0: + %*2lli: +052:0:3: +-%2lli: +0B101010:1:3:0: +-%*2lli: +0B101010:0:3: +-%2lli: +0b101010:1:3:0: +-%*2lli: +0b101010:0:3: + %2lli: +9223372036854775807:1:3:9: + %*2lli: +9223372036854775807:0:3: + %2lli: +0X7fffffffffffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2lli: +0x7FFFFFFFFFFFFFFF:0:3: + %2lli: +0777777777777777777777:1:3:0: + %*2lli: +0777777777777777777777:0:3: +-%2lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: + %2lli: +9223372036854775808:1:3:9: + %*2lli: +9223372036854775808:0:3: + %2lli: +0X8000000000000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2lli: +0x8000000000000000:0:3: + %2lli: +01000000000000000000000:1:3:0: + %*2lli: +01000000000000000000000:0:3: +-%2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2lli: +9223372036897200049:1:3:9: + %*2lli: +9223372036897200049:0:3: + %2lli: +0X80000000028757b1:1:3:0: +@@ -1302,10 +874,6 @@ + %*2lli: +0x80000000028757B1:0:3: + %2lli: +01000000000000241653661:1:3:0: + %*2lli: +01000000000000241653661:0:3: +-%2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: + %25lli: :0:-1: + %*25lli: :0:-1: + %25lli: -9223372036867121486:1:21:-9223372036854775808: +@@ -1316,10 +884,6 @@ + %*25lli: -0x8000000000BC614E:0:20: + %25lli: -01000000000000057060516:1:25:-9223372036854775808: + %*25lli: -01000000000000057060516:0:25: +-%25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: +-%25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: + %25lli: -9223372036854775809:1:21:-9223372036854775808: + %*25lli: -9223372036854775809:0:21: + %25lli: -0X8000000000000001:1:20:-9223372036854775808: +@@ -1328,10 +892,6 @@ + %*25lli: -0x8000000000000001:0:20: + %25lli: -01000000000000000000001:1:25:-9223372036854775808: + %*25lli: -01000000000000000000001:0:25: +-%25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: +-%25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: + %25lli: -9223372036854775808:1:21:-9223372036854775808: + %*25lli: -9223372036854775808:0:21: + %25lli: -0X8000000000000000:1:20:-9223372036854775808: +@@ -1340,10 +900,6 @@ + %*25lli: -0x8000000000000000:0:20: + %25lli: -01000000000000000000000:1:25:-9223372036854775808: + %*25lli: -01000000000000000000000:0:25: +-%25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25lli: -123:1:5:-123: + %*25lli: -123:0:5: + %25lli: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*25lli: -0x7B:0:6: + %25lli: -0173:1:6:-123: + %*25lli: -0173:0:6: +-%25lli: -0B1111011:1:11:-123: +-%*25lli: -0B1111011:0:11: +-%25lli: -0b1111011:1:11:-123: +-%*25lli: -0b1111011:0:11: + %25lli: -1:1:3:-1: + %*25lli: -1:0:3: + %25lli: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*25lli: -0x1:0:5: + %25lli: -01:1:4:-1: + %*25lli: -01:0:4: +-%25lli: -0B1:1:5:-1: +-%*25lli: -0B1:0:5: +-%25lli: -0b1:1:5:-1: +-%*25lli: -0b1:0:5: + %25lli: -0:1:3:0: + %*25lli: -0:0:3: + %25lli: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*25lli: -0x0:0:5: + %25lli: -00:1:4:0: + %*25lli: -00:0:4: +-%25lli: -0B0:1:5:0: +-%*25lli: -0B0:0:5: +-%25lli: -0b0:1:5:0: +-%*25lli: -0b0:0:5: + %25lli: 0:1:2:0: + %*25lli: 0:0:2: + %25lli: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*25lli: 0x0:0:4: + %25lli: 00:1:3:0: + %*25lli: 00:0:3: +-%25lli: 0B0:1:4:0: +-%*25lli: 0B0:0:4: +-%25lli: 0b0:1:4:0: +-%*25lli: 0b0:0:4: + %25lli: 1:1:2:1: + %*25lli: 1:0:2: + %25lli: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*25lli: 0x1:0:4: + %25lli: 01:1:3:1: + %*25lli: 01:0:3: +-%25lli: 0B1:1:4:1: +-%*25lli: 0B1:0:4: +-%25lli: 0b1:1:4:1: +-%*25lli: 0b1:0:4: + %25lli: 42:1:3:42: + %*25lli: 42:0:3: + %25lli: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*25lli: 0x2A:0:5: + %25lli: 052:1:4:42: + %*25lli: 052:0:4: +-%25lli: 0B101010:1:9:42: +-%*25lli: 0B101010:0:9: +-%25lli: 0b101010:1:9:42: +-%*25lli: 0b101010:0:9: + %25lli: 9223372036854775807:1:20:9223372036854775807: + %*25lli: 9223372036854775807:0:20: + %25lli: 0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1424,10 +956,6 @@ + %*25lli: 0x7FFFFFFFFFFFFFFF:0:19: + %25lli: 0777777777777777777777:1:23:9223372036854775807: + %*25lli: 0777777777777777777777:0:23: +-%25lli: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lli: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25lli: 9223372036854775808:1:20:9223372036854775807: + %*25lli: 9223372036854775808:0:20: + %25lli: 0X8000000000000000:1:19:9223372036854775807: +@@ -1436,10 +964,6 @@ + %*25lli: 0x8000000000000000:0:19: + %25lli: 01000000000000000000000:1:24:9223372036854775807: + %*25lli: 01000000000000000000000:0:24: +-%25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25lli: 9223372036897200049:1:20:9223372036854775807: + %*25lli: 9223372036897200049:0:20: + %25lli: 0X80000000028757b1:1:19:9223372036854775807: +@@ -1448,10 +972,6 @@ + %*25lli: 0x80000000028757B1:0:19: + %25lli: 01000000000000241653661:1:24:9223372036854775807: + %*25lli: 01000000000000241653661:0:24: +-%25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: + %25lli: +0:1:3:0: + %*25lli: +0:0:3: + %25lli: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*25lli: +0x0:0:5: + %25lli: +00:1:4:0: + %*25lli: +00:0:4: +-%25lli: +0B0:1:5:0: +-%*25lli: +0B0:0:5: +-%25lli: +0b0:1:5:0: +-%*25lli: +0b0:0:5: + %25lli: +1:1:3:1: + %*25lli: +1:0:3: + %25lli: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*25lli: +0x1:0:5: + %25lli: +01:1:4:1: + %*25lli: +01:0:4: +-%25lli: +0B1:1:5:1: +-%*25lli: +0B1:0:5: +-%25lli: +0b1:1:5:1: +-%*25lli: +0b1:0:5: + %25lli: +42:1:4:42: + %*25lli: +42:0:4: + %25lli: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*25lli: +0x2A:0:6: + %25lli: +052:1:5:42: + %*25lli: +052:0:5: +-%25lli: +0B101010:1:10:42: +-%*25lli: +0B101010:0:10: +-%25lli: +0b101010:1:10:42: +-%*25lli: +0b101010:0:10: + %25lli: +9223372036854775807:1:21:9223372036854775807: + %*25lli: +9223372036854775807:0:21: + %25lli: +0X7fffffffffffffff:1:20:9223372036854775807: +@@ -1496,10 +1004,6 @@ + %*25lli: +0x7FFFFFFFFFFFFFFF:0:20: + %25lli: +0777777777777777777777:1:24:9223372036854775807: + %*25lli: +0777777777777777777777:0:24: +-%25lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25lli: +9223372036854775808:1:21:9223372036854775807: + %*25lli: +9223372036854775808:0:21: + %25lli: +0X8000000000000000:1:20:9223372036854775807: +@@ -1508,10 +1012,6 @@ + %*25lli: +0x8000000000000000:0:20: + %25lli: +01000000000000000000000:1:25:9223372036854775807: + %*25lli: +01000000000000000000000:0:25: +-%25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25lli: +9223372036897200049:1:21:9223372036854775807: + %*25lli: +9223372036897200049:0:21: + %25lli: +0X80000000028757b1:1:20:9223372036854775807: +@@ -1520,7 +1020,3 @@ + %*25lli: +0x80000000028757B1:0:20: + %25lli: +01000000000000241653661:1:25:9223372036854775807: + %*25lli: +01000000000000241653661:0:25: +-%25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-short-i.input b/stdio-common/tst-scanf-format-short-i.input +index 5beae7bbb4ef0197..620a4c75b32d1919 100644 +--- a/stdio-common/tst-scanf-format-short-i.input ++++ b/stdio-common/tst-scanf-format-short-i.input +@@ -8,10 +8,6 @@ + %*hi:-0x807B:0:7: + %hi:-0100173:1:8:32645: + %*hi:-0100173:0:8: +-%hi:-0B1000000001111011:1:19:32645: +-%*hi:-0B1000000001111011:0:19: +-%hi:-0b1000000001111011:1:19:32645: +-%*hi:-0b1000000001111011:0:19: + %hi:-32769:1:6:32767: + %*hi:-32769:0:6: + %hi:-0X8001:1:7:32767: +@@ -20,10 +16,6 @@ + %*hi:-0x8001:0:7: + %hi:-0100001:1:8:32767: + %*hi:-0100001:0:8: +-%hi:-0B1000000000000001:1:19:32767: +-%*hi:-0B1000000000000001:0:19: +-%hi:-0b1000000000000001:1:19:32767: +-%*hi:-0b1000000000000001:0:19: + %hi:-32768:1:6:-32768: + %*hi:-32768:0:6: + %hi:-0X8000:1:7:-32768: +@@ -32,10 +24,6 @@ + %*hi:-0x8000:0:7: + %hi:-0100000:1:8:-32768: + %*hi:-0100000:0:8: +-%hi:-0B1000000000000000:1:19:-32768: +-%*hi:-0B1000000000000000:0:19: +-%hi:-0b1000000000000000:1:19:-32768: +-%*hi:-0b1000000000000000:0:19: + %hi:-123:1:4:-123: + %*hi:-123:0:4: + %hi:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*hi:-0x7B:0:5: + %hi:-0173:1:5:-123: + %*hi:-0173:0:5: +-%hi:-0B1111011:1:10:-123: +-%*hi:-0B1111011:0:10: +-%hi:-0b1111011:1:10:-123: +-%*hi:-0b1111011:0:10: + %hi:-1:1:2:-1: + %*hi:-1:0:2: + %hi:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*hi:-0x1:0:4: + %hi:-01:1:3:-1: + %*hi:-01:0:3: +-%hi:-0B1:1:4:-1: +-%*hi:-0B1:0:4: +-%hi:-0b1:1:4:-1: +-%*hi:-0b1:0:4: + %hi:-0:1:2:0: + %*hi:-0:0:2: + %hi:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*hi:-0x0:0:4: + %hi:-00:1:3:0: + %*hi:-00:0:3: +-%hi:-0B0:1:4:0: +-%*hi:-0B0:0:4: +-%hi:-0b0:1:4:0: +-%*hi:-0b0:0:4: + %hi:0:1:1:0: + %*hi:0:0:1: + %hi:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*hi:0x0:0:3: + %hi:00:1:2:0: + %*hi:00:0:2: +-%hi:0B0:1:3:0: +-%*hi:0B0:0:3: +-%hi:0b0:1:3:0: +-%*hi:0b0:0:3: + %hi:1:1:1:1: + %*hi:1:0:1: + %hi:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*hi:0x1:0:3: + %hi:01:1:2:1: + %*hi:01:0:2: +-%hi:0B1:1:3:1: +-%*hi:0B1:0:3: +-%hi:0b1:1:3:1: +-%*hi:0b1:0:3: + %hi:42:1:2:42: + %*hi:42:0:2: + %hi:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*hi:0x2A:0:4: + %hi:052:1:3:42: + %*hi:052:0:3: +-%hi:0B101010:1:8:42: +-%*hi:0B101010:0:8: +-%hi:0b101010:1:8:42: +-%*hi:0b101010:0:8: + %hi:32767:1:5:32767: + %*hi:32767:0:5: + %hi:0X7fff:1:6:32767: +@@ -116,10 +80,6 @@ + %*hi:0x7FFF:0:6: + %hi:077777:1:6:32767: + %*hi:077777:0:6: +-%hi:0B111111111111111:1:17:32767: +-%*hi:0B111111111111111:0:17: +-%hi:0b111111111111111:1:17:32767: +-%*hi:0b111111111111111:0:17: + %hi:32768:1:5:-32768: + %*hi:32768:0:5: + %hi:0X8000:1:6:-32768: +@@ -128,10 +88,6 @@ + %*hi:0x8000:0:6: + %hi:0100000:1:7:-32768: + %*hi:0100000:0:7: +-%hi:0B1000000000000000:1:18:-32768: +-%*hi:0B1000000000000000:0:18: +-%hi:0b1000000000000000:1:18:-32768: +-%*hi:0b1000000000000000:0:18: + %hi:32809:1:5:-32727: + %*hi:32809:0:5: + %hi:0X8029:1:6:-32727: +@@ -140,10 +96,6 @@ + %*hi:0x8029:0:6: + %hi:0100051:1:7:-32727: + %*hi:0100051:0:7: +-%hi:0B1000000000101001:1:18:-32727: +-%*hi:0B1000000000101001:0:18: +-%hi:0b1000000000101001:1:18:-32727: +-%*hi:0b1000000000101001:0:18: + %hi:+0:1:2:0: + %*hi:+0:0:2: + %hi:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*hi:+0x0:0:4: + %hi:+00:1:3:0: + %*hi:+00:0:3: +-%hi:+0B0:1:4:0: +-%*hi:+0B0:0:4: +-%hi:+0b0:1:4:0: +-%*hi:+0b0:0:4: + %hi:+1:1:2:1: + %*hi:+1:0:2: + %hi:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*hi:+0x1:0:4: + %hi:+01:1:3:1: + %*hi:+01:0:3: +-%hi:+0B1:1:4:1: +-%*hi:+0B1:0:4: +-%hi:+0b1:1:4:1: +-%*hi:+0b1:0:4: + %hi:+42:1:3:42: + %*hi:+42:0:3: + %hi:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*hi:+0x2A:0:5: + %hi:+052:1:4:42: + %*hi:+052:0:4: +-%hi:+0B101010:1:9:42: +-%*hi:+0B101010:0:9: +-%hi:+0b101010:1:9:42: +-%*hi:+0b101010:0:9: + %hi:+32767:1:6:32767: + %*hi:+32767:0:6: + %hi:+0X7fff:1:7:32767: +@@ -188,10 +128,6 @@ + %*hi:+0x7FFF:0:7: + %hi:+077777:1:7:32767: + %*hi:+077777:0:7: +-%hi:+0B111111111111111:1:18:32767: +-%*hi:+0B111111111111111:0:18: +-%hi:+0b111111111111111:1:18:32767: +-%*hi:+0b111111111111111:0:18: + %hi:+32768:1:6:-32768: + %*hi:+32768:0:6: + %hi:+0X8000:1:7:-32768: +@@ -200,10 +136,6 @@ + %*hi:+0x8000:0:7: + %hi:+0100000:1:8:-32768: + %*hi:+0100000:0:8: +-%hi:+0B1000000000000000:1:19:-32768: +-%*hi:+0B1000000000000000:0:19: +-%hi:+0b1000000000000000:1:19:-32768: +-%*hi:+0b1000000000000000:0:19: + %hi:+32809:1:6:-32727: + %*hi:+32809:0:6: + %hi:+0X8029:1:7:-32727: +@@ -212,10 +144,6 @@ + %*hi:+0x8029:0:7: + %hi:+0100051:1:8:-32727: + %*hi:+0100051:0:8: +-%hi:+0B1000000000101001:1:19:-32727: +-%*hi:+0B1000000000101001:0:19: +-%hi:+0b1000000000101001:1:19:-32727: +-%*hi:+0b1000000000101001:0:19: + %1hi::0:-1: + %*1hi::0:-1: + %1hi:-32891:0:-1: +@@ -226,10 +154,6 @@ + %*1hi:-0x807B:0:-1: + %1hi:-0100173:0:-1: + %*1hi:-0100173:0:-1: +-%1hi:-0B1000000001111011:0:-1: +-%*1hi:-0B1000000001111011:0:-1: +-%1hi:-0b1000000001111011:0:-1: +-%*1hi:-0b1000000001111011:0:-1: + %1hi:-32769:0:-1: + %*1hi:-32769:0:-1: + %1hi:-0X8001:0:-1: +@@ -238,10 +162,6 @@ + %*1hi:-0x8001:0:-1: + %1hi:-0100001:0:-1: + %*1hi:-0100001:0:-1: +-%1hi:-0B1000000000000001:0:-1: +-%*1hi:-0B1000000000000001:0:-1: +-%1hi:-0b1000000000000001:0:-1: +-%*1hi:-0b1000000000000001:0:-1: + %1hi:-32768:0:-1: + %*1hi:-32768:0:-1: + %1hi:-0X8000:0:-1: +@@ -250,10 +170,6 @@ + %*1hi:-0x8000:0:-1: + %1hi:-0100000:0:-1: + %*1hi:-0100000:0:-1: +-%1hi:-0B1000000000000000:0:-1: +-%*1hi:-0B1000000000000000:0:-1: +-%1hi:-0b1000000000000000:0:-1: +-%*1hi:-0b1000000000000000:0:-1: + %1hi:-123:0:-1: + %*1hi:-123:0:-1: + %1hi:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1hi:-0x7B:0:-1: + %1hi:-0173:0:-1: + %*1hi:-0173:0:-1: +-%1hi:-0B1111011:0:-1: +-%*1hi:-0B1111011:0:-1: +-%1hi:-0b1111011:0:-1: +-%*1hi:-0b1111011:0:-1: + %1hi:-1:0:-1: + %*1hi:-1:0:-1: + %1hi:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1hi:-0x1:0:-1: + %1hi:-01:0:-1: + %*1hi:-01:0:-1: +-%1hi:-0B1:0:-1: +-%*1hi:-0B1:0:-1: +-%1hi:-0b1:0:-1: +-%*1hi:-0b1:0:-1: + %1hi:-0:0:-1: + %*1hi:-0:0:-1: + %1hi:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1hi:-0x0:0:-1: + %1hi:-00:0:-1: + %*1hi:-00:0:-1: +-%1hi:-0B0:0:-1: +-%*1hi:-0B0:0:-1: +-%1hi:-0b0:0:-1: +-%*1hi:-0b0:0:-1: + %1hi:0:1:1:0: + %*1hi:0:0:1: + %1hi:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1hi:0x0:0:1: + %1hi:00:1:1:0: + %*1hi:00:0:1: +-%1hi:0B0:1:1:0: +-%*1hi:0B0:0:1: +-%1hi:0b0:1:1:0: +-%*1hi:0b0:0:1: + %1hi:1:1:1:1: + %*1hi:1:0:1: + %1hi:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1hi:0x1:0:1: + %1hi:01:1:1:0: + %*1hi:01:0:1: +-%1hi:0B1:1:1:0: +-%*1hi:0B1:0:1: +-%1hi:0b1:1:1:0: +-%*1hi:0b1:0:1: + %1hi:42:1:1:4: + %*1hi:42:0:1: + %1hi:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1hi:0x2A:0:1: + %1hi:052:1:1:0: + %*1hi:052:0:1: +-%1hi:0B101010:1:1:0: +-%*1hi:0B101010:0:1: +-%1hi:0b101010:1:1:0: +-%*1hi:0b101010:0:1: + %1hi:32767:1:1:3: + %*1hi:32767:0:1: + %1hi:0X7fff:1:1:0: +@@ -334,10 +226,6 @@ + %*1hi:0x7FFF:0:1: + %1hi:077777:1:1:0: + %*1hi:077777:0:1: +-%1hi:0B111111111111111:1:1:0: +-%*1hi:0B111111111111111:0:1: +-%1hi:0b111111111111111:1:1:0: +-%*1hi:0b111111111111111:0:1: + %1hi:32768:1:1:3: + %*1hi:32768:0:1: + %1hi:0X8000:1:1:0: +@@ -346,10 +234,6 @@ + %*1hi:0x8000:0:1: + %1hi:0100000:1:1:0: + %*1hi:0100000:0:1: +-%1hi:0B1000000000000000:1:1:0: +-%*1hi:0B1000000000000000:0:1: +-%1hi:0b1000000000000000:1:1:0: +-%*1hi:0b1000000000000000:0:1: + %1hi:32809:1:1:3: + %*1hi:32809:0:1: + %1hi:0X8029:1:1:0: +@@ -358,10 +242,6 @@ + %*1hi:0x8029:0:1: + %1hi:0100051:1:1:0: + %*1hi:0100051:0:1: +-%1hi:0B1000000000101001:1:1:0: +-%*1hi:0B1000000000101001:0:1: +-%1hi:0b1000000000101001:1:1:0: +-%*1hi:0b1000000000101001:0:1: + %1hi:+0:0:-1: + %*1hi:+0:0:-1: + %1hi:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1hi:+0x0:0:-1: + %1hi:+00:0:-1: + %*1hi:+00:0:-1: +-%1hi:+0B0:0:-1: +-%*1hi:+0B0:0:-1: +-%1hi:+0b0:0:-1: +-%*1hi:+0b0:0:-1: + %1hi:+1:0:-1: + %*1hi:+1:0:-1: + %1hi:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1hi:+0x1:0:-1: + %1hi:+01:0:-1: + %*1hi:+01:0:-1: +-%1hi:+0B1:0:-1: +-%*1hi:+0B1:0:-1: +-%1hi:+0b1:0:-1: +-%*1hi:+0b1:0:-1: + %1hi:+42:0:-1: + %*1hi:+42:0:-1: + %1hi:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1hi:+0x2A:0:-1: + %1hi:+052:0:-1: + %*1hi:+052:0:-1: +-%1hi:+0B101010:0:-1: +-%*1hi:+0B101010:0:-1: +-%1hi:+0b101010:0:-1: +-%*1hi:+0b101010:0:-1: + %1hi:+32767:0:-1: + %*1hi:+32767:0:-1: + %1hi:+0X7fff:0:-1: +@@ -406,10 +274,6 @@ + %*1hi:+0x7FFF:0:-1: + %1hi:+077777:0:-1: + %*1hi:+077777:0:-1: +-%1hi:+0B111111111111111:0:-1: +-%*1hi:+0B111111111111111:0:-1: +-%1hi:+0b111111111111111:0:-1: +-%*1hi:+0b111111111111111:0:-1: + %1hi:+32768:0:-1: + %*1hi:+32768:0:-1: + %1hi:+0X8000:0:-1: +@@ -418,10 +282,6 @@ + %*1hi:+0x8000:0:-1: + %1hi:+0100000:0:-1: + %*1hi:+0100000:0:-1: +-%1hi:+0B1000000000000000:0:-1: +-%*1hi:+0B1000000000000000:0:-1: +-%1hi:+0b1000000000000000:0:-1: +-%*1hi:+0b1000000000000000:0:-1: + %1hi:+32809:0:-1: + %*1hi:+32809:0:-1: + %1hi:+0X8029:0:-1: +@@ -430,10 +290,6 @@ + %*1hi:+0x8029:0:-1: + %1hi:+0100051:0:-1: + %*1hi:+0100051:0:-1: +-%1hi:+0B1000000000101001:0:-1: +-%*1hi:+0B1000000000101001:0:-1: +-%1hi:+0b1000000000101001:0:-1: +-%*1hi:+0b1000000000101001:0:-1: + %2hi::0:-1: + %*2hi::0:-1: + %2hi:-32891:1:2:-3: +@@ -444,10 +300,6 @@ + %*2hi:-0x807B:0:2: + %2hi:-0100173:1:2:0: + %*2hi:-0100173:0:2: +-%2hi:-0B1000000001111011:1:2:0: +-%*2hi:-0B1000000001111011:0:2: +-%2hi:-0b1000000001111011:1:2:0: +-%*2hi:-0b1000000001111011:0:2: + %2hi:-32769:1:2:-3: + %*2hi:-32769:0:2: + %2hi:-0X8001:1:2:0: +@@ -456,10 +308,6 @@ + %*2hi:-0x8001:0:2: + %2hi:-0100001:1:2:0: + %*2hi:-0100001:0:2: +-%2hi:-0B1000000000000001:1:2:0: +-%*2hi:-0B1000000000000001:0:2: +-%2hi:-0b1000000000000001:1:2:0: +-%*2hi:-0b1000000000000001:0:2: + %2hi:-32768:1:2:-3: + %*2hi:-32768:0:2: + %2hi:-0X8000:1:2:0: +@@ -468,10 +316,6 @@ + %*2hi:-0x8000:0:2: + %2hi:-0100000:1:2:0: + %*2hi:-0100000:0:2: +-%2hi:-0B1000000000000000:1:2:0: +-%*2hi:-0B1000000000000000:0:2: +-%2hi:-0b1000000000000000:1:2:0: +-%*2hi:-0b1000000000000000:0:2: + %2hi:-123:1:2:-1: + %*2hi:-123:0:2: + %2hi:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2hi:-0x7B:0:2: + %2hi:-0173:1:2:0: + %*2hi:-0173:0:2: +-%2hi:-0B1111011:1:2:0: +-%*2hi:-0B1111011:0:2: +-%2hi:-0b1111011:1:2:0: +-%*2hi:-0b1111011:0:2: + %2hi:-1:1:2:-1: + %*2hi:-1:0:2: + %2hi:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2hi:-0x1:0:2: + %2hi:-01:1:2:0: + %*2hi:-01:0:2: +-%2hi:-0B1:1:2:0: +-%*2hi:-0B1:0:2: +-%2hi:-0b1:1:2:0: +-%*2hi:-0b1:0:2: + %2hi:-0:1:2:0: + %*2hi:-0:0:2: + %2hi:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2hi:-0x0:0:2: + %2hi:-00:1:2:0: + %*2hi:-00:0:2: +-%2hi:-0B0:1:2:0: +-%*2hi:-0B0:0:2: +-%2hi:-0b0:1:2:0: +-%*2hi:-0b0:0:2: + %2hi:0:1:1:0: + %*2hi:0:0:1: + # BZ12701 %2hi:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2hi:0x0:0:-1: + %2hi:00:1:2:0: + %*2hi:00:0:2: +-# BZ12701 %2hi:0B0:0:-1: +-# BZ12701 %*2hi:0B0:0:-1: +-# BZ12701 %2hi:0b0:0:-1: +-# BZ12701 %*2hi:0b0:0:-1: + %2hi:1:1:1:1: + %*2hi:1:0:1: + # BZ12701 %2hi:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2hi:0x1:0:-1: + %2hi:01:1:2:1: + %*2hi:01:0:2: +-# BZ12701 %2hi:0B1:0:-1: +-# BZ12701 %*2hi:0B1:0:-1: +-# BZ12701 %2hi:0b1:0:-1: +-# BZ12701 %*2hi:0b1:0:-1: + %2hi:42:1:2:42: + %*2hi:42:0:2: + # BZ12701 %2hi:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2hi:0x2A:0:-1: + %2hi:052:1:2:5: + %*2hi:052:0:2: +-# BZ12701 %2hi:0B101010:0:-1: +-# BZ12701 %*2hi:0B101010:0:-1: +-# BZ12701 %2hi:0b101010:0:-1: +-# BZ12701 %*2hi:0b101010:0:-1: + %2hi:32767:1:2:32: + %*2hi:32767:0:2: + # BZ12701 %2hi:0X7fff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2hi:0x7FFF:0:-1: + %2hi:077777:1:2:7: + %*2hi:077777:0:2: +-# BZ12701 %2hi:0B111111111111111:0:-1: +-# BZ12701 %*2hi:0B111111111111111:0:-1: +-# BZ12701 %2hi:0b111111111111111:0:-1: +-# BZ12701 %*2hi:0b111111111111111:0:-1: + %2hi:32768:1:2:32: + %*2hi:32768:0:2: + # BZ12701 %2hi:0X8000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2hi:0x8000:0:-1: + %2hi:0100000:1:2:1: + %*2hi:0100000:0:2: +-# BZ12701 %2hi:0B1000000000000000:0:-1: +-# BZ12701 %*2hi:0B1000000000000000:0:-1: +-# BZ12701 %2hi:0b1000000000000000:0:-1: +-# BZ12701 %*2hi:0b1000000000000000:0:-1: + %2hi:32809:1:2:32: + %*2hi:32809:0:2: + # BZ12701 %2hi:0X8029:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2hi:0x8029:0:-1: + %2hi:0100051:1:2:1: + %*2hi:0100051:0:2: +-# BZ12701 %2hi:0B1000000000101001:0:-1: +-# BZ12701 %*2hi:0B1000000000101001:0:-1: +-# BZ12701 %2hi:0b1000000000101001:0:-1: +-# BZ12701 %*2hi:0b1000000000101001:0:-1: + %2hi:+0:1:2:0: + %*2hi:+0:0:2: + %2hi:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2hi:+0x0:0:2: + %2hi:+00:1:2:0: + %*2hi:+00:0:2: +-%2hi:+0B0:1:2:0: +-%*2hi:+0B0:0:2: +-%2hi:+0b0:1:2:0: +-%*2hi:+0b0:0:2: + %2hi:+1:1:2:1: + %*2hi:+1:0:2: + %2hi:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2hi:+0x1:0:2: + %2hi:+01:1:2:0: + %*2hi:+01:0:2: +-%2hi:+0B1:1:2:0: +-%*2hi:+0B1:0:2: +-%2hi:+0b1:1:2:0: +-%*2hi:+0b1:0:2: + %2hi:+42:1:2:4: + %*2hi:+42:0:2: + %2hi:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2hi:+0x2A:0:2: + %2hi:+052:1:2:0: + %*2hi:+052:0:2: +-%2hi:+0B101010:1:2:0: +-%*2hi:+0B101010:0:2: +-%2hi:+0b101010:1:2:0: +-%*2hi:+0b101010:0:2: + %2hi:+32767:1:2:3: + %*2hi:+32767:0:2: + %2hi:+0X7fff:1:2:0: +@@ -624,10 +420,6 @@ + %*2hi:+0x7FFF:0:2: + %2hi:+077777:1:2:0: + %*2hi:+077777:0:2: +-%2hi:+0B111111111111111:1:2:0: +-%*2hi:+0B111111111111111:0:2: +-%2hi:+0b111111111111111:1:2:0: +-%*2hi:+0b111111111111111:0:2: + %2hi:+32768:1:2:3: + %*2hi:+32768:0:2: + %2hi:+0X8000:1:2:0: +@@ -636,10 +428,6 @@ + %*2hi:+0x8000:0:2: + %2hi:+0100000:1:2:0: + %*2hi:+0100000:0:2: +-%2hi:+0B1000000000000000:1:2:0: +-%*2hi:+0B1000000000000000:0:2: +-%2hi:+0b1000000000000000:1:2:0: +-%*2hi:+0b1000000000000000:0:2: + %2hi:+32809:1:2:3: + %*2hi:+32809:0:2: + %2hi:+0X8029:1:2:0: +@@ -648,10 +436,6 @@ + %*2hi:+0x8029:0:2: + %2hi:+0100051:1:2:0: + %*2hi:+0100051:0:2: +-%2hi:+0B1000000000101001:1:2:0: +-%*2hi:+0B1000000000101001:0:2: +-%2hi:+0b1000000000101001:1:2:0: +-%*2hi:+0b1000000000101001:0:2: + %4hi::0:-1: + %*4hi::0:-1: + %4hi:-32891:1:4:-328: +@@ -662,10 +446,6 @@ + %*4hi:-0x807B:0:4: + %4hi:-0100173:1:4:-8: + %*4hi:-0100173:0:4: +-%4hi:-0B1000000001111011:1:4:-1: +-%*4hi:-0B1000000001111011:0:4: +-%4hi:-0b1000000001111011:1:4:-1: +-%*4hi:-0b1000000001111011:0:4: + %4hi:-32769:1:4:-327: + %*4hi:-32769:0:4: + %4hi:-0X8001:1:4:-8: +@@ -674,10 +454,6 @@ + %*4hi:-0x8001:0:4: + %4hi:-0100001:1:4:-8: + %*4hi:-0100001:0:4: +-%4hi:-0B1000000000000001:1:4:-1: +-%*4hi:-0B1000000000000001:0:4: +-%4hi:-0b1000000000000001:1:4:-1: +-%*4hi:-0b1000000000000001:0:4: + %4hi:-32768:1:4:-327: + %*4hi:-32768:0:4: + %4hi:-0X8000:1:4:-8: +@@ -686,10 +462,6 @@ + %*4hi:-0x8000:0:4: + %4hi:-0100000:1:4:-8: + %*4hi:-0100000:0:4: +-%4hi:-0B1000000000000000:1:4:-1: +-%*4hi:-0B1000000000000000:0:4: +-%4hi:-0b1000000000000000:1:4:-1: +-%*4hi:-0b1000000000000000:0:4: + %4hi:-123:1:4:-123: + %*4hi:-123:0:4: + %4hi:-0X7b:1:4:-7: +@@ -698,10 +470,6 @@ + %*4hi:-0x7B:0:4: + %4hi:-0173:1:4:-15: + %*4hi:-0173:0:4: +-%4hi:-0B1111011:1:4:-1: +-%*4hi:-0B1111011:0:4: +-%4hi:-0b1111011:1:4:-1: +-%*4hi:-0b1111011:0:4: + %4hi:-1:1:2:-1: + %*4hi:-1:0:2: + %4hi:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*4hi:-0x1:0:4: + %4hi:-01:1:3:-1: + %*4hi:-01:0:3: +-%4hi:-0B1:1:4:-1: +-%*4hi:-0B1:0:4: +-%4hi:-0b1:1:4:-1: +-%*4hi:-0b1:0:4: + %4hi:-0:1:2:0: + %*4hi:-0:0:2: + %4hi:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*4hi:-0x0:0:4: + %4hi:-00:1:3:0: + %*4hi:-00:0:3: +-%4hi:-0B0:1:4:0: +-%*4hi:-0B0:0:4: +-%4hi:-0b0:1:4:0: +-%*4hi:-0b0:0:4: + %4hi:0:1:1:0: + %*4hi:0:0:1: + %4hi:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*4hi:0x0:0:3: + %4hi:00:1:2:0: + %*4hi:00:0:2: +-%4hi:0B0:1:3:0: +-%*4hi:0B0:0:3: +-%4hi:0b0:1:3:0: +-%*4hi:0b0:0:3: + %4hi:1:1:1:1: + %*4hi:1:0:1: + %4hi:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*4hi:0x1:0:3: + %4hi:01:1:2:1: + %*4hi:01:0:2: +-%4hi:0B1:1:3:1: +-%*4hi:0B1:0:3: +-%4hi:0b1:1:3:1: +-%*4hi:0b1:0:3: + %4hi:42:1:2:42: + %*4hi:42:0:2: + %4hi:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*4hi:0x2A:0:4: + %4hi:052:1:3:42: + %*4hi:052:0:3: +-%4hi:0B101010:1:4:2: +-%*4hi:0B101010:0:4: +-%4hi:0b101010:1:4:2: +-%*4hi:0b101010:0:4: + %4hi:32767:1:4:3276: + %*4hi:32767:0:4: + %4hi:0X7fff:1:4:127: +@@ -770,10 +518,6 @@ + %*4hi:0x7FFF:0:4: + %4hi:077777:1:4:511: + %*4hi:077777:0:4: +-%4hi:0B111111111111111:1:4:3: +-%*4hi:0B111111111111111:0:4: +-%4hi:0b111111111111111:1:4:3: +-%*4hi:0b111111111111111:0:4: + %4hi:32768:1:4:3276: + %*4hi:32768:0:4: + %4hi:0X8000:1:4:128: +@@ -782,10 +526,6 @@ + %*4hi:0x8000:0:4: + %4hi:0100000:1:4:64: + %*4hi:0100000:0:4: +-%4hi:0B1000000000000000:1:4:2: +-%*4hi:0B1000000000000000:0:4: +-%4hi:0b1000000000000000:1:4:2: +-%*4hi:0b1000000000000000:0:4: + %4hi:32809:1:4:3280: + %*4hi:32809:0:4: + %4hi:0X8029:1:4:128: +@@ -794,10 +534,6 @@ + %*4hi:0x8029:0:4: + %4hi:0100051:1:4:64: + %*4hi:0100051:0:4: +-%4hi:0B1000000000101001:1:4:2: +-%*4hi:0B1000000000101001:0:4: +-%4hi:0b1000000000101001:1:4:2: +-%*4hi:0b1000000000101001:0:4: + %4hi:+0:1:2:0: + %*4hi:+0:0:2: + %4hi:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*4hi:+0x0:0:4: + %4hi:+00:1:3:0: + %*4hi:+00:0:3: +-%4hi:+0B0:1:4:0: +-%*4hi:+0B0:0:4: +-%4hi:+0b0:1:4:0: +-%*4hi:+0b0:0:4: + %4hi:+1:1:2:1: + %*4hi:+1:0:2: + %4hi:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*4hi:+0x1:0:4: + %4hi:+01:1:3:1: + %*4hi:+01:0:3: +-%4hi:+0B1:1:4:1: +-%*4hi:+0B1:0:4: +-%4hi:+0b1:1:4:1: +-%*4hi:+0b1:0:4: + %4hi:+42:1:3:42: + %*4hi:+42:0:3: + %4hi:+0X2a:1:4:2: +@@ -830,10 +558,6 @@ + %*4hi:+0x2A:0:4: + %4hi:+052:1:4:42: + %*4hi:+052:0:4: +-%4hi:+0B101010:1:4:1: +-%*4hi:+0B101010:0:4: +-%4hi:+0b101010:1:4:1: +-%*4hi:+0b101010:0:4: + %4hi:+32767:1:4:327: + %*4hi:+32767:0:4: + %4hi:+0X7fff:1:4:7: +@@ -842,10 +566,6 @@ + %*4hi:+0x7FFF:0:4: + %4hi:+077777:1:4:63: + %*4hi:+077777:0:4: +-%4hi:+0B111111111111111:1:4:1: +-%*4hi:+0B111111111111111:0:4: +-%4hi:+0b111111111111111:1:4:1: +-%*4hi:+0b111111111111111:0:4: + %4hi:+32768:1:4:327: + %*4hi:+32768:0:4: + %4hi:+0X8000:1:4:8: +@@ -854,10 +574,6 @@ + %*4hi:+0x8000:0:4: + %4hi:+0100000:1:4:8: + %*4hi:+0100000:0:4: +-%4hi:+0B1000000000000000:1:4:1: +-%*4hi:+0B1000000000000000:0:4: +-%4hi:+0b1000000000000000:1:4:1: +-%*4hi:+0b1000000000000000:0:4: + %4hi:+32809:1:4:328: + %*4hi:+32809:0:4: + %4hi:+0X8029:1:4:8: +@@ -866,10 +582,6 @@ + %*4hi:+0x8029:0:4: + %4hi:+0100051:1:4:8: + %*4hi:+0100051:0:4: +-%4hi:+0B1000000000101001:1:4:1: +-%*4hi:+0B1000000000101001:0:4: +-%4hi:+0b1000000000101001:1:4:1: +-%*4hi:+0b1000000000101001:0:4: + %7hi::0:-1: + %*7hi::0:-1: + %7hi:-32891:1:6:32645: +@@ -880,10 +592,6 @@ + %*7hi:-0x807B:0:7: + %7hi:-0100173:1:7:-4111: + %*7hi:-0100173:0:7: +-%7hi:-0B1000000001111011:1:7:-8: +-%*7hi:-0B1000000001111011:0:7: +-%7hi:-0b1000000001111011:1:7:-8: +-%*7hi:-0b1000000001111011:0:7: + %7hi:-32769:1:6:32767: + %*7hi:-32769:0:6: + %7hi:-0X8001:1:7:32767: +@@ -892,10 +600,6 @@ + %*7hi:-0x8001:0:7: + %7hi:-0100001:1:7:-4096: + %*7hi:-0100001:0:7: +-%7hi:-0B1000000000000001:1:7:-8: +-%*7hi:-0B1000000000000001:0:7: +-%7hi:-0b1000000000000001:1:7:-8: +-%*7hi:-0b1000000000000001:0:7: + %7hi:-32768:1:6:-32768: + %*7hi:-32768:0:6: + %7hi:-0X8000:1:7:-32768: +@@ -904,10 +608,6 @@ + %*7hi:-0x8000:0:7: + %7hi:-0100000:1:7:-4096: + %*7hi:-0100000:0:7: +-%7hi:-0B1000000000000000:1:7:-8: +-%*7hi:-0B1000000000000000:0:7: +-%7hi:-0b1000000000000000:1:7:-8: +-%*7hi:-0b1000000000000000:0:7: + %7hi:-123:1:4:-123: + %*7hi:-123:0:4: + %7hi:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*7hi:-0x7B:0:5: + %7hi:-0173:1:5:-123: + %*7hi:-0173:0:5: +-%7hi:-0B1111011:1:7:-15: +-%*7hi:-0B1111011:0:7: +-%7hi:-0b1111011:1:7:-15: +-%*7hi:-0b1111011:0:7: + %7hi:-1:1:2:-1: + %*7hi:-1:0:2: + %7hi:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*7hi:-0x1:0:4: + %7hi:-01:1:3:-1: + %*7hi:-01:0:3: +-%7hi:-0B1:1:4:-1: +-%*7hi:-0B1:0:4: +-%7hi:-0b1:1:4:-1: +-%*7hi:-0b1:0:4: + %7hi:-0:1:2:0: + %*7hi:-0:0:2: + %7hi:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*7hi:-0x0:0:4: + %7hi:-00:1:3:0: + %*7hi:-00:0:3: +-%7hi:-0B0:1:4:0: +-%*7hi:-0B0:0:4: +-%7hi:-0b0:1:4:0: +-%*7hi:-0b0:0:4: + %7hi:0:1:1:0: + %*7hi:0:0:1: + %7hi:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*7hi:0x0:0:3: + %7hi:00:1:2:0: + %*7hi:00:0:2: +-%7hi:0B0:1:3:0: +-%*7hi:0B0:0:3: +-%7hi:0b0:1:3:0: +-%*7hi:0b0:0:3: + %7hi:1:1:1:1: + %*7hi:1:0:1: + %7hi:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*7hi:0x1:0:3: + %7hi:01:1:2:1: + %*7hi:01:0:2: +-%7hi:0B1:1:3:1: +-%*7hi:0B1:0:3: +-%7hi:0b1:1:3:1: +-%*7hi:0b1:0:3: + %7hi:42:1:2:42: + %*7hi:42:0:2: + %7hi:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*7hi:0x2A:0:4: + %7hi:052:1:3:42: + %*7hi:052:0:3: +-%7hi:0B101010:1:7:21: +-%*7hi:0B101010:0:7: +-%7hi:0b101010:1:7:21: +-%*7hi:0b101010:0:7: + %7hi:32767:1:5:32767: + %*7hi:32767:0:5: + %7hi:0X7fff:1:6:32767: +@@ -988,10 +664,6 @@ + %*7hi:0x7FFF:0:6: + %7hi:077777:1:6:32767: + %*7hi:077777:0:6: +-%7hi:0B111111111111111:1:7:31: +-%*7hi:0B111111111111111:0:7: +-%7hi:0b111111111111111:1:7:31: +-%*7hi:0b111111111111111:0:7: + %7hi:32768:1:5:-32768: + %*7hi:32768:0:5: + %7hi:0X8000:1:6:-32768: +@@ -1000,10 +672,6 @@ + %*7hi:0x8000:0:6: + %7hi:0100000:1:7:-32768: + %*7hi:0100000:0:7: +-%7hi:0B1000000000000000:1:7:16: +-%*7hi:0B1000000000000000:0:7: +-%7hi:0b1000000000000000:1:7:16: +-%*7hi:0b1000000000000000:0:7: + %7hi:32809:1:5:-32727: + %*7hi:32809:0:5: + %7hi:0X8029:1:6:-32727: +@@ -1012,10 +680,6 @@ + %*7hi:0x8029:0:6: + %7hi:0100051:1:7:-32727: + %*7hi:0100051:0:7: +-%7hi:0B1000000000101001:1:7:16: +-%*7hi:0B1000000000101001:0:7: +-%7hi:0b1000000000101001:1:7:16: +-%*7hi:0b1000000000101001:0:7: + %7hi:+0:1:2:0: + %*7hi:+0:0:2: + %7hi:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*7hi:+0x0:0:4: + %7hi:+00:1:3:0: + %*7hi:+00:0:3: +-%7hi:+0B0:1:4:0: +-%*7hi:+0B0:0:4: +-%7hi:+0b0:1:4:0: +-%*7hi:+0b0:0:4: + %7hi:+1:1:2:1: + %*7hi:+1:0:2: + %7hi:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*7hi:+0x1:0:4: + %7hi:+01:1:3:1: + %*7hi:+01:0:3: +-%7hi:+0B1:1:4:1: +-%*7hi:+0B1:0:4: +-%7hi:+0b1:1:4:1: +-%*7hi:+0b1:0:4: + %7hi:+42:1:3:42: + %*7hi:+42:0:3: + %7hi:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*7hi:+0x2A:0:5: + %7hi:+052:1:4:42: + %*7hi:+052:0:4: +-%7hi:+0B101010:1:7:10: +-%*7hi:+0B101010:0:7: +-%7hi:+0b101010:1:7:10: +-%*7hi:+0b101010:0:7: + %7hi:+32767:1:6:32767: + %*7hi:+32767:0:6: + %7hi:+0X7fff:1:7:32767: +@@ -1060,10 +712,6 @@ + %*7hi:+0x7FFF:0:7: + %7hi:+077777:1:7:32767: + %*7hi:+077777:0:7: +-%7hi:+0B111111111111111:1:7:15: +-%*7hi:+0B111111111111111:0:7: +-%7hi:+0b111111111111111:1:7:15: +-%*7hi:+0b111111111111111:0:7: + %7hi:+32768:1:6:-32768: + %*7hi:+32768:0:6: + %7hi:+0X8000:1:7:-32768: +@@ -1072,10 +720,6 @@ + %*7hi:+0x8000:0:7: + %7hi:+0100000:1:7:4096: + %*7hi:+0100000:0:7: +-%7hi:+0B1000000000000000:1:7:8: +-%*7hi:+0B1000000000000000:0:7: +-%7hi:+0b1000000000000000:1:7:8: +-%*7hi:+0b1000000000000000:0:7: + %7hi:+32809:1:6:-32727: + %*7hi:+32809:0:6: + %7hi:+0X8029:1:7:-32727: +@@ -1084,10 +728,6 @@ + %*7hi:+0x8029:0:7: + %7hi:+0100051:1:7:4101: + %*7hi:+0100051:0:7: +-%7hi:+0B1000000000101001:1:7:8: +-%*7hi:+0B1000000000101001:0:7: +-%7hi:+0b1000000000101001:1:7:8: +-%*7hi:+0b1000000000101001:0:7: + %2hi: :0:-1: + %*2hi: :0:-1: + %2hi: -32891:1:3:-3: +@@ -1098,10 +738,6 @@ + %*2hi: -0x807B:0:3: + %2hi: -0100173:1:3:0: + %*2hi: -0100173:0:3: +-%2hi: -0B1000000001111011:1:3:0: +-%*2hi: -0B1000000001111011:0:3: +-%2hi: -0b1000000001111011:1:3:0: +-%*2hi: -0b1000000001111011:0:3: + %2hi: -32769:1:3:-3: + %*2hi: -32769:0:3: + %2hi: -0X8001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2hi: -0x8001:0:3: + %2hi: -0100001:1:3:0: + %*2hi: -0100001:0:3: +-%2hi: -0B1000000000000001:1:3:0: +-%*2hi: -0B1000000000000001:0:3: +-%2hi: -0b1000000000000001:1:3:0: +-%*2hi: -0b1000000000000001:0:3: + %2hi: -32768:1:3:-3: + %*2hi: -32768:0:3: + %2hi: -0X8000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2hi: -0x8000:0:3: + %2hi: -0100000:1:3:0: + %*2hi: -0100000:0:3: +-%2hi: -0B1000000000000000:1:3:0: +-%*2hi: -0B1000000000000000:0:3: +-%2hi: -0b1000000000000000:1:3:0: +-%*2hi: -0b1000000000000000:0:3: + %2hi: -123:1:3:-1: + %*2hi: -123:0:3: + %2hi: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2hi: -0x7B:0:3: + %2hi: -0173:1:3:0: + %*2hi: -0173:0:3: +-%2hi: -0B1111011:1:3:0: +-%*2hi: -0B1111011:0:3: +-%2hi: -0b1111011:1:3:0: +-%*2hi: -0b1111011:0:3: + %2hi: -1:1:3:-1: + %*2hi: -1:0:3: + %2hi: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2hi: -0x1:0:3: + %2hi: -01:1:3:0: + %*2hi: -01:0:3: +-%2hi: -0B1:1:3:0: +-%*2hi: -0B1:0:3: +-%2hi: -0b1:1:3:0: +-%*2hi: -0b1:0:3: + %2hi: -0:1:3:0: + %*2hi: -0:0:3: + %2hi: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2hi: -0x0:0:3: + %2hi: -00:1:3:0: + %*2hi: -00:0:3: +-%2hi: -0B0:1:3:0: +-%*2hi: -0B0:0:3: +-%2hi: -0b0:1:3:0: +-%*2hi: -0b0:0:3: + %2hi: 0:1:2:0: + %*2hi: 0:0:2: + # BZ12701 %2hi: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2hi: 0x0:0:-1: + %2hi: 00:1:3:0: + %*2hi: 00:0:3: +-# BZ12701 %2hi: 0B0:0:-1: +-# BZ12701 %*2hi: 0B0:0:-1: +-# BZ12701 %2hi: 0b0:0:-1: +-# BZ12701 %*2hi: 0b0:0:-1: + %2hi: 1:1:2:1: + %*2hi: 1:0:2: + # BZ12701 %2hi: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2hi: 0x1:0:-1: + %2hi: 01:1:3:1: + %*2hi: 01:0:3: +-# BZ12701 %2hi: 0B1:0:-1: +-# BZ12701 %*2hi: 0B1:0:-1: +-# BZ12701 %2hi: 0b1:0:-1: +-# BZ12701 %*2hi: 0b1:0:-1: + %2hi: 42:1:3:42: + %*2hi: 42:0:3: + # BZ12701 %2hi: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2hi: 0x2A:0:-1: + %2hi: 052:1:3:5: + %*2hi: 052:0:3: +-# BZ12701 %2hi: 0B101010:0:-1: +-# BZ12701 %*2hi: 0B101010:0:-1: +-# BZ12701 %2hi: 0b101010:0:-1: +-# BZ12701 %*2hi: 0b101010:0:-1: + %2hi: 32767:1:3:32: + %*2hi: 32767:0:3: + # BZ12701 %2hi: 0X7fff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2hi: 0x7FFF:0:-1: + %2hi: 077777:1:3:7: + %*2hi: 077777:0:3: +-# BZ12701 %2hi: 0B111111111111111:0:-1: +-# BZ12701 %*2hi: 0B111111111111111:0:-1: +-# BZ12701 %2hi: 0b111111111111111:0:-1: +-# BZ12701 %*2hi: 0b111111111111111:0:-1: + %2hi: 32768:1:3:32: + %*2hi: 32768:0:3: + # BZ12701 %2hi: 0X8000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2hi: 0x8000:0:-1: + %2hi: 0100000:1:3:1: + %*2hi: 0100000:0:3: +-# BZ12701 %2hi: 0B1000000000000000:0:-1: +-# BZ12701 %*2hi: 0B1000000000000000:0:-1: +-# BZ12701 %2hi: 0b1000000000000000:0:-1: +-# BZ12701 %*2hi: 0b1000000000000000:0:-1: + %2hi: 32809:1:3:32: + %*2hi: 32809:0:3: + # BZ12701 %2hi: 0X8029:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2hi: 0x8029:0:-1: + %2hi: 0100051:1:3:1: + %*2hi: 0100051:0:3: +-# BZ12701 %2hi: 0B1000000000101001:0:-1: +-# BZ12701 %*2hi: 0B1000000000101001:0:-1: +-# BZ12701 %2hi: 0b1000000000101001:0:-1: +-# BZ12701 %*2hi: 0b1000000000101001:0:-1: + %2hi: +0:1:3:0: + %*2hi: +0:0:3: + %2hi: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2hi: +0x0:0:3: + %2hi: +00:1:3:0: + %*2hi: +00:0:3: +-%2hi: +0B0:1:3:0: +-%*2hi: +0B0:0:3: +-%2hi: +0b0:1:3:0: +-%*2hi: +0b0:0:3: + %2hi: +1:1:3:1: + %*2hi: +1:0:3: + %2hi: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2hi: +0x1:0:3: + %2hi: +01:1:3:0: + %*2hi: +01:0:3: +-%2hi: +0B1:1:3:0: +-%*2hi: +0B1:0:3: +-%2hi: +0b1:1:3:0: +-%*2hi: +0b1:0:3: + %2hi: +42:1:3:4: + %*2hi: +42:0:3: + %2hi: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2hi: +0x2A:0:3: + %2hi: +052:1:3:0: + %*2hi: +052:0:3: +-%2hi: +0B101010:1:3:0: +-%*2hi: +0B101010:0:3: +-%2hi: +0b101010:1:3:0: +-%*2hi: +0b101010:0:3: + %2hi: +32767:1:3:3: + %*2hi: +32767:0:3: + %2hi: +0X7fff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2hi: +0x7FFF:0:3: + %2hi: +077777:1:3:0: + %*2hi: +077777:0:3: +-%2hi: +0B111111111111111:1:3:0: +-%*2hi: +0B111111111111111:0:3: +-%2hi: +0b111111111111111:1:3:0: +-%*2hi: +0b111111111111111:0:3: + %2hi: +32768:1:3:3: + %*2hi: +32768:0:3: + %2hi: +0X8000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2hi: +0x8000:0:3: + %2hi: +0100000:1:3:0: + %*2hi: +0100000:0:3: +-%2hi: +0B1000000000000000:1:3:0: +-%*2hi: +0B1000000000000000:0:3: +-%2hi: +0b1000000000000000:1:3:0: +-%*2hi: +0b1000000000000000:0:3: + %2hi: +32809:1:3:3: + %*2hi: +32809:0:3: + %2hi: +0X8029:1:3:0: +@@ -1302,10 +874,6 @@ + %*2hi: +0x8029:0:3: + %2hi: +0100051:1:3:0: + %*2hi: +0100051:0:3: +-%2hi: +0B1000000000101001:1:3:0: +-%*2hi: +0B1000000000101001:0:3: +-%2hi: +0b1000000000101001:1:3:0: +-%*2hi: +0b1000000000101001:0:3: + %7hi: :0:-1: + %*7hi: :0:-1: + %7hi: -32891:1:7:32645: +@@ -1316,10 +884,6 @@ + %*7hi: -0x807B:0:8: + %7hi: -0100173:1:8:-4111: + %*7hi: -0100173:0:8: +-%7hi: -0B1000000001111011:1:8:-8: +-%*7hi: -0B1000000001111011:0:8: +-%7hi: -0b1000000001111011:1:8:-8: +-%*7hi: -0b1000000001111011:0:8: + %7hi: -32769:1:7:32767: + %*7hi: -32769:0:7: + %7hi: -0X8001:1:8:32767: +@@ -1328,10 +892,6 @@ + %*7hi: -0x8001:0:8: + %7hi: -0100001:1:8:-4096: + %*7hi: -0100001:0:8: +-%7hi: -0B1000000000000001:1:8:-8: +-%*7hi: -0B1000000000000001:0:8: +-%7hi: -0b1000000000000001:1:8:-8: +-%*7hi: -0b1000000000000001:0:8: + %7hi: -32768:1:7:-32768: + %*7hi: -32768:0:7: + %7hi: -0X8000:1:8:-32768: +@@ -1340,10 +900,6 @@ + %*7hi: -0x8000:0:8: + %7hi: -0100000:1:8:-4096: + %*7hi: -0100000:0:8: +-%7hi: -0B1000000000000000:1:8:-8: +-%*7hi: -0B1000000000000000:0:8: +-%7hi: -0b1000000000000000:1:8:-8: +-%*7hi: -0b1000000000000000:0:8: + %7hi: -123:1:5:-123: + %*7hi: -123:0:5: + %7hi: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*7hi: -0x7B:0:6: + %7hi: -0173:1:6:-123: + %*7hi: -0173:0:6: +-%7hi: -0B1111011:1:8:-15: +-%*7hi: -0B1111011:0:8: +-%7hi: -0b1111011:1:8:-15: +-%*7hi: -0b1111011:0:8: + %7hi: -1:1:3:-1: + %*7hi: -1:0:3: + %7hi: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*7hi: -0x1:0:5: + %7hi: -01:1:4:-1: + %*7hi: -01:0:4: +-%7hi: -0B1:1:5:-1: +-%*7hi: -0B1:0:5: +-%7hi: -0b1:1:5:-1: +-%*7hi: -0b1:0:5: + %7hi: -0:1:3:0: + %*7hi: -0:0:3: + %7hi: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*7hi: -0x0:0:5: + %7hi: -00:1:4:0: + %*7hi: -00:0:4: +-%7hi: -0B0:1:5:0: +-%*7hi: -0B0:0:5: +-%7hi: -0b0:1:5:0: +-%*7hi: -0b0:0:5: + %7hi: 0:1:2:0: + %*7hi: 0:0:2: + %7hi: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*7hi: 0x0:0:4: + %7hi: 00:1:3:0: + %*7hi: 00:0:3: +-%7hi: 0B0:1:4:0: +-%*7hi: 0B0:0:4: +-%7hi: 0b0:1:4:0: +-%*7hi: 0b0:0:4: + %7hi: 1:1:2:1: + %*7hi: 1:0:2: + %7hi: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*7hi: 0x1:0:4: + %7hi: 01:1:3:1: + %*7hi: 01:0:3: +-%7hi: 0B1:1:4:1: +-%*7hi: 0B1:0:4: +-%7hi: 0b1:1:4:1: +-%*7hi: 0b1:0:4: + %7hi: 42:1:3:42: + %*7hi: 42:0:3: + %7hi: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*7hi: 0x2A:0:5: + %7hi: 052:1:4:42: + %*7hi: 052:0:4: +-%7hi: 0B101010:1:8:21: +-%*7hi: 0B101010:0:8: +-%7hi: 0b101010:1:8:21: +-%*7hi: 0b101010:0:8: + %7hi: 32767:1:6:32767: + %*7hi: 32767:0:6: + %7hi: 0X7fff:1:7:32767: +@@ -1424,10 +956,6 @@ + %*7hi: 0x7FFF:0:7: + %7hi: 077777:1:7:32767: + %*7hi: 077777:0:7: +-%7hi: 0B111111111111111:1:8:31: +-%*7hi: 0B111111111111111:0:8: +-%7hi: 0b111111111111111:1:8:31: +-%*7hi: 0b111111111111111:0:8: + %7hi: 32768:1:6:-32768: + %*7hi: 32768:0:6: + %7hi: 0X8000:1:7:-32768: +@@ -1436,10 +964,6 @@ + %*7hi: 0x8000:0:7: + %7hi: 0100000:1:8:-32768: + %*7hi: 0100000:0:8: +-%7hi: 0B1000000000000000:1:8:16: +-%*7hi: 0B1000000000000000:0:8: +-%7hi: 0b1000000000000000:1:8:16: +-%*7hi: 0b1000000000000000:0:8: + %7hi: 32809:1:6:-32727: + %*7hi: 32809:0:6: + %7hi: 0X8029:1:7:-32727: +@@ -1448,10 +972,6 @@ + %*7hi: 0x8029:0:7: + %7hi: 0100051:1:8:-32727: + %*7hi: 0100051:0:8: +-%7hi: 0B1000000000101001:1:8:16: +-%*7hi: 0B1000000000101001:0:8: +-%7hi: 0b1000000000101001:1:8:16: +-%*7hi: 0b1000000000101001:0:8: + %7hi: +0:1:3:0: + %*7hi: +0:0:3: + %7hi: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*7hi: +0x0:0:5: + %7hi: +00:1:4:0: + %*7hi: +00:0:4: +-%7hi: +0B0:1:5:0: +-%*7hi: +0B0:0:5: +-%7hi: +0b0:1:5:0: +-%*7hi: +0b0:0:5: + %7hi: +1:1:3:1: + %*7hi: +1:0:3: + %7hi: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*7hi: +0x1:0:5: + %7hi: +01:1:4:1: + %*7hi: +01:0:4: +-%7hi: +0B1:1:5:1: +-%*7hi: +0B1:0:5: +-%7hi: +0b1:1:5:1: +-%*7hi: +0b1:0:5: + %7hi: +42:1:4:42: + %*7hi: +42:0:4: + %7hi: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*7hi: +0x2A:0:6: + %7hi: +052:1:5:42: + %*7hi: +052:0:5: +-%7hi: +0B101010:1:8:10: +-%*7hi: +0B101010:0:8: +-%7hi: +0b101010:1:8:10: +-%*7hi: +0b101010:0:8: + %7hi: +32767:1:7:32767: + %*7hi: +32767:0:7: + %7hi: +0X7fff:1:8:32767: +@@ -1496,10 +1004,6 @@ + %*7hi: +0x7FFF:0:8: + %7hi: +077777:1:8:32767: + %*7hi: +077777:0:8: +-%7hi: +0B111111111111111:1:8:15: +-%*7hi: +0B111111111111111:0:8: +-%7hi: +0b111111111111111:1:8:15: +-%*7hi: +0b111111111111111:0:8: + %7hi: +32768:1:7:-32768: + %*7hi: +32768:0:7: + %7hi: +0X8000:1:8:-32768: +@@ -1508,10 +1012,6 @@ + %*7hi: +0x8000:0:8: + %7hi: +0100000:1:8:4096: + %*7hi: +0100000:0:8: +-%7hi: +0B1000000000000000:1:8:8: +-%*7hi: +0B1000000000000000:0:8: +-%7hi: +0b1000000000000000:1:8:8: +-%*7hi: +0b1000000000000000:0:8: + %7hi: +32809:1:7:-32727: + %*7hi: +32809:0:7: + %7hi: +0X8029:1:8:-32727: +@@ -1520,7 +1020,3 @@ + %*7hi: +0x8029:0:8: + %7hi: +0100051:1:8:4101: + %*7hi: +0100051:0:8: +-%7hi: +0B1000000000101001:1:8:8: +-%*7hi: +0B1000000000101001:0:8: +-%7hi: +0b1000000000101001:1:8:8: +-%*7hi: +0b1000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-uchar-b.input b/stdio-common/tst-scanf-format-uchar-b.input +deleted file mode 100644 +index e4074425ef8f088c..0000000000000000 +--- a/stdio-common/tst-scanf-format-uchar-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%hhb::0:-1: +-%*hhb::0:-1: +-%hhb:-1111011:1:8:133: +-%*hhb:-1111011:0:8: +-%hhb:-0B1111011:1:10:133: +-%*hhb:-0B1111011:0:10: +-%hhb:-0b1111011:1:10:133: +-%*hhb:-0b1111011:0:10: +-%hhb:-1:1:2:255: +-%*hhb:-1:0:2: +-%hhb:-0B1:1:4:255: +-%*hhb:-0B1:0:4: +-%hhb:-0b1:1:4:255: +-%*hhb:-0b1:0:4: +-%hhb:-0:1:2:0: +-%*hhb:-0:0:2: +-%hhb:-0B0:1:4:0: +-%*hhb:-0B0:0:4: +-%hhb:-0b0:1:4:0: +-%*hhb:-0b0:0:4: +-%hhb:0:1:1:0: +-%*hhb:0:0:1: +-%hhb:0B0:1:3:0: +-%*hhb:0B0:0:3: +-%hhb:0b0:1:3:0: +-%*hhb:0b0:0:3: +-%hhb:1:1:1:1: +-%*hhb:1:0:1: +-%hhb:0B1:1:3:1: +-%*hhb:0B1:0:3: +-%hhb:0b1:1:3:1: +-%*hhb:0b1:0:3: +-%hhb:101010:1:6:42: +-%*hhb:101010:0:6: +-%hhb:0B101010:1:8:42: +-%*hhb:0B101010:0:8: +-%hhb:0b101010:1:8:42: +-%*hhb:0b101010:0:8: +-%hhb:11111111:1:8:255: +-%*hhb:11111111:0:8: +-%hhb:0B11111111:1:10:255: +-%*hhb:0B11111111:0:10: +-%hhb:0b11111111:1:10:255: +-%*hhb:0b11111111:0:10: +-%hhb:100000000:1:9:0: +-%*hhb:100000000:0:9: +-%hhb:0B100000000:1:11:0: +-%*hhb:0B100000000:0:11: +-%hhb:0b100000000:1:11:0: +-%*hhb:0b100000000:0:11: +-%hhb:100101001:1:9:41: +-%*hhb:100101001:0:9: +-%hhb:0B100101001:1:11:41: +-%*hhb:0B100101001:0:11: +-%hhb:0b100101001:1:11:41: +-%*hhb:0b100101001:0:11: +-%hhb:+0:1:2:0: +-%*hhb:+0:0:2: +-%hhb:+0B0:1:4:0: +-%*hhb:+0B0:0:4: +-%hhb:+0b0:1:4:0: +-%*hhb:+0b0:0:4: +-%hhb:+1:1:2:1: +-%*hhb:+1:0:2: +-%hhb:+0B1:1:4:1: +-%*hhb:+0B1:0:4: +-%hhb:+0b1:1:4:1: +-%*hhb:+0b1:0:4: +-%hhb:+101010:1:7:42: +-%*hhb:+101010:0:7: +-%hhb:+0B101010:1:9:42: +-%*hhb:+0B101010:0:9: +-%hhb:+0b101010:1:9:42: +-%*hhb:+0b101010:0:9: +-%hhb:+11111111:1:9:255: +-%*hhb:+11111111:0:9: +-%hhb:+0B11111111:1:11:255: +-%*hhb:+0B11111111:0:11: +-%hhb:+0b11111111:1:11:255: +-%*hhb:+0b11111111:0:11: +-%hhb:+100000000:1:10:0: +-%*hhb:+100000000:0:10: +-%hhb:+0B100000000:1:12:0: +-%*hhb:+0B100000000:0:12: +-%hhb:+0b100000000:1:12:0: +-%*hhb:+0b100000000:0:12: +-%hhb:+100101001:1:10:41: +-%*hhb:+100101001:0:10: +-%hhb:+0B100101001:1:12:41: +-%*hhb:+0B100101001:0:12: +-%hhb:+0b100101001:1:12:41: +-%*hhb:+0b100101001:0:12: +-%1hhb::0:-1: +-%*1hhb::0:-1: +-%1hhb:-1111011:0:-1: +-%*1hhb:-1111011:0:-1: +-%1hhb:-0B1111011:0:-1: +-%*1hhb:-0B1111011:0:-1: +-%1hhb:-0b1111011:0:-1: +-%*1hhb:-0b1111011:0:-1: +-%1hhb:-1:0:-1: +-%*1hhb:-1:0:-1: +-%1hhb:-0B1:0:-1: +-%*1hhb:-0B1:0:-1: +-%1hhb:-0b1:0:-1: +-%*1hhb:-0b1:0:-1: +-%1hhb:-0:0:-1: +-%*1hhb:-0:0:-1: +-%1hhb:-0B0:0:-1: +-%*1hhb:-0B0:0:-1: +-%1hhb:-0b0:0:-1: +-%*1hhb:-0b0:0:-1: +-%1hhb:0:1:1:0: +-%*1hhb:0:0:1: +-%1hhb:0B0:1:1:0: +-%*1hhb:0B0:0:1: +-%1hhb:0b0:1:1:0: +-%*1hhb:0b0:0:1: +-%1hhb:1:1:1:1: +-%*1hhb:1:0:1: +-%1hhb:0B1:1:1:0: +-%*1hhb:0B1:0:1: +-%1hhb:0b1:1:1:0: +-%*1hhb:0b1:0:1: +-%1hhb:101010:1:1:1: +-%*1hhb:101010:0:1: +-%1hhb:0B101010:1:1:0: +-%*1hhb:0B101010:0:1: +-%1hhb:0b101010:1:1:0: +-%*1hhb:0b101010:0:1: +-%1hhb:11111111:1:1:1: +-%*1hhb:11111111:0:1: +-%1hhb:0B11111111:1:1:0: +-%*1hhb:0B11111111:0:1: +-%1hhb:0b11111111:1:1:0: +-%*1hhb:0b11111111:0:1: +-%1hhb:100000000:1:1:1: +-%*1hhb:100000000:0:1: +-%1hhb:0B100000000:1:1:0: +-%*1hhb:0B100000000:0:1: +-%1hhb:0b100000000:1:1:0: +-%*1hhb:0b100000000:0:1: +-%1hhb:100101001:1:1:1: +-%*1hhb:100101001:0:1: +-%1hhb:0B100101001:1:1:0: +-%*1hhb:0B100101001:0:1: +-%1hhb:0b100101001:1:1:0: +-%*1hhb:0b100101001:0:1: +-%1hhb:+0:0:-1: +-%*1hhb:+0:0:-1: +-%1hhb:+0B0:0:-1: +-%*1hhb:+0B0:0:-1: +-%1hhb:+0b0:0:-1: +-%*1hhb:+0b0:0:-1: +-%1hhb:+1:0:-1: +-%*1hhb:+1:0:-1: +-%1hhb:+0B1:0:-1: +-%*1hhb:+0B1:0:-1: +-%1hhb:+0b1:0:-1: +-%*1hhb:+0b1:0:-1: +-%1hhb:+101010:0:-1: +-%*1hhb:+101010:0:-1: +-%1hhb:+0B101010:0:-1: +-%*1hhb:+0B101010:0:-1: +-%1hhb:+0b101010:0:-1: +-%*1hhb:+0b101010:0:-1: +-%1hhb:+11111111:0:-1: +-%*1hhb:+11111111:0:-1: +-%1hhb:+0B11111111:0:-1: +-%*1hhb:+0B11111111:0:-1: +-%1hhb:+0b11111111:0:-1: +-%*1hhb:+0b11111111:0:-1: +-%1hhb:+100000000:0:-1: +-%*1hhb:+100000000:0:-1: +-%1hhb:+0B100000000:0:-1: +-%*1hhb:+0B100000000:0:-1: +-%1hhb:+0b100000000:0:-1: +-%*1hhb:+0b100000000:0:-1: +-%1hhb:+100101001:0:-1: +-%*1hhb:+100101001:0:-1: +-%1hhb:+0B100101001:0:-1: +-%*1hhb:+0B100101001:0:-1: +-%1hhb:+0b100101001:0:-1: +-%*1hhb:+0b100101001:0:-1: +-%2hhb::0:-1: +-%*2hhb::0:-1: +-%2hhb:-1111011:1:2:255: +-%*2hhb:-1111011:0:2: +-%2hhb:-0B1111011:1:2:0: +-%*2hhb:-0B1111011:0:2: +-%2hhb:-0b1111011:1:2:0: +-%*2hhb:-0b1111011:0:2: +-%2hhb:-1:1:2:255: +-%*2hhb:-1:0:2: +-%2hhb:-0B1:1:2:0: +-%*2hhb:-0B1:0:2: +-%2hhb:-0b1:1:2:0: +-%*2hhb:-0b1:0:2: +-%2hhb:-0:1:2:0: +-%*2hhb:-0:0:2: +-%2hhb:-0B0:1:2:0: +-%*2hhb:-0B0:0:2: +-%2hhb:-0b0:1:2:0: +-%*2hhb:-0b0:0:2: +-%2hhb:0:1:1:0: +-%*2hhb:0:0:1: +-# BZ12701 %2hhb:0B0:0:-1: +-# BZ12701 %*2hhb:0B0:0:-1: +-# BZ12701 %2hhb:0b0:0:-1: +-# BZ12701 %*2hhb:0b0:0:-1: +-%2hhb:1:1:1:1: +-%*2hhb:1:0:1: +-# BZ12701 %2hhb:0B1:0:-1: +-# BZ12701 %*2hhb:0B1:0:-1: +-# BZ12701 %2hhb:0b1:0:-1: +-# BZ12701 %*2hhb:0b1:0:-1: +-%2hhb:101010:1:2:2: +-%*2hhb:101010:0:2: +-# BZ12701 %2hhb:0B101010:0:-1: +-# BZ12701 %*2hhb:0B101010:0:-1: +-# BZ12701 %2hhb:0b101010:0:-1: +-# BZ12701 %*2hhb:0b101010:0:-1: +-%2hhb:11111111:1:2:3: +-%*2hhb:11111111:0:2: +-# BZ12701 %2hhb:0B11111111:0:-1: +-# BZ12701 %*2hhb:0B11111111:0:-1: +-# BZ12701 %2hhb:0b11111111:0:-1: +-# BZ12701 %*2hhb:0b11111111:0:-1: +-%2hhb:100000000:1:2:2: +-%*2hhb:100000000:0:2: +-# BZ12701 %2hhb:0B100000000:0:-1: +-# BZ12701 %*2hhb:0B100000000:0:-1: +-# BZ12701 %2hhb:0b100000000:0:-1: +-# BZ12701 %*2hhb:0b100000000:0:-1: +-%2hhb:100101001:1:2:2: +-%*2hhb:100101001:0:2: +-# BZ12701 %2hhb:0B100101001:0:-1: +-# BZ12701 %*2hhb:0B100101001:0:-1: +-# BZ12701 %2hhb:0b100101001:0:-1: +-# BZ12701 %*2hhb:0b100101001:0:-1: +-%2hhb:+0:1:2:0: +-%*2hhb:+0:0:2: +-%2hhb:+0B0:1:2:0: +-%*2hhb:+0B0:0:2: +-%2hhb:+0b0:1:2:0: +-%*2hhb:+0b0:0:2: +-%2hhb:+1:1:2:1: +-%*2hhb:+1:0:2: +-%2hhb:+0B1:1:2:0: +-%*2hhb:+0B1:0:2: +-%2hhb:+0b1:1:2:0: +-%*2hhb:+0b1:0:2: +-%2hhb:+101010:1:2:1: +-%*2hhb:+101010:0:2: +-%2hhb:+0B101010:1:2:0: +-%*2hhb:+0B101010:0:2: +-%2hhb:+0b101010:1:2:0: +-%*2hhb:+0b101010:0:2: +-%2hhb:+11111111:1:2:1: +-%*2hhb:+11111111:0:2: +-%2hhb:+0B11111111:1:2:0: +-%*2hhb:+0B11111111:0:2: +-%2hhb:+0b11111111:1:2:0: +-%*2hhb:+0b11111111:0:2: +-%2hhb:+100000000:1:2:1: +-%*2hhb:+100000000:0:2: +-%2hhb:+0B100000000:1:2:0: +-%*2hhb:+0B100000000:0:2: +-%2hhb:+0b100000000:1:2:0: +-%*2hhb:+0b100000000:0:2: +-%2hhb:+100101001:1:2:1: +-%*2hhb:+100101001:0:2: +-%2hhb:+0B100101001:1:2:0: +-%*2hhb:+0B100101001:0:2: +-%2hhb:+0b100101001:1:2:0: +-%*2hhb:+0b100101001:0:2: +-%3hhb::0:-1: +-%*3hhb::0:-1: +-%3hhb:-1111011:1:3:253: +-%*3hhb:-1111011:0:3: +-# BZ12701 %3hhb:-0B1111011:0:-1: +-# BZ12701 %*3hhb:-0B1111011:0:-1: +-# BZ12701 %3hhb:-0b1111011:0:-1: +-# BZ12701 %*3hhb:-0b1111011:0:-1: +-%3hhb:-1:1:2:255: +-%*3hhb:-1:0:2: +-# BZ12701 %3hhb:-0B1:0:-1: +-# BZ12701 %*3hhb:-0B1:0:-1: +-# BZ12701 %3hhb:-0b1:0:-1: +-# BZ12701 %*3hhb:-0b1:0:-1: +-%3hhb:-0:1:2:0: +-%*3hhb:-0:0:2: +-# BZ12701 %3hhb:-0B0:0:-1: +-# BZ12701 %*3hhb:-0B0:0:-1: +-# BZ12701 %3hhb:-0b0:0:-1: +-# BZ12701 %*3hhb:-0b0:0:-1: +-%3hhb:0:1:1:0: +-%*3hhb:0:0:1: +-%3hhb:0B0:1:3:0: +-%*3hhb:0B0:0:3: +-%3hhb:0b0:1:3:0: +-%*3hhb:0b0:0:3: +-%3hhb:1:1:1:1: +-%*3hhb:1:0:1: +-%3hhb:0B1:1:3:1: +-%*3hhb:0B1:0:3: +-%3hhb:0b1:1:3:1: +-%*3hhb:0b1:0:3: +-%3hhb:101010:1:3:5: +-%*3hhb:101010:0:3: +-%3hhb:0B101010:1:3:1: +-%*3hhb:0B101010:0:3: +-%3hhb:0b101010:1:3:1: +-%*3hhb:0b101010:0:3: +-%3hhb:11111111:1:3:7: +-%*3hhb:11111111:0:3: +-%3hhb:0B11111111:1:3:1: +-%*3hhb:0B11111111:0:3: +-%3hhb:0b11111111:1:3:1: +-%*3hhb:0b11111111:0:3: +-%3hhb:100000000:1:3:4: +-%*3hhb:100000000:0:3: +-%3hhb:0B100000000:1:3:1: +-%*3hhb:0B100000000:0:3: +-%3hhb:0b100000000:1:3:1: +-%*3hhb:0b100000000:0:3: +-%3hhb:100101001:1:3:4: +-%*3hhb:100101001:0:3: +-%3hhb:0B100101001:1:3:1: +-%*3hhb:0B100101001:0:3: +-%3hhb:0b100101001:1:3:1: +-%*3hhb:0b100101001:0:3: +-%3hhb:+0:1:2:0: +-%*3hhb:+0:0:2: +-# BZ12701 %3hhb:+0B0:0:-1: +-# BZ12701 %*3hhb:+0B0:0:-1: +-# BZ12701 %3hhb:+0b0:0:-1: +-# BZ12701 %*3hhb:+0b0:0:-1: +-%3hhb:+1:1:2:1: +-%*3hhb:+1:0:2: +-# BZ12701 %3hhb:+0B1:0:-1: +-# BZ12701 %*3hhb:+0B1:0:-1: +-# BZ12701 %3hhb:+0b1:0:-1: +-# BZ12701 %*3hhb:+0b1:0:-1: +-%3hhb:+101010:1:3:2: +-%*3hhb:+101010:0:3: +-# BZ12701 %3hhb:+0B101010:0:-1: +-# BZ12701 %*3hhb:+0B101010:0:-1: +-# BZ12701 %3hhb:+0b101010:0:-1: +-# BZ12701 %*3hhb:+0b101010:0:-1: +-%3hhb:+11111111:1:3:3: +-%*3hhb:+11111111:0:3: +-# BZ12701 %3hhb:+0B11111111:0:-1: +-# BZ12701 %*3hhb:+0B11111111:0:-1: +-# BZ12701 %3hhb:+0b11111111:0:-1: +-# BZ12701 %*3hhb:+0b11111111:0:-1: +-%3hhb:+100000000:1:3:2: +-%*3hhb:+100000000:0:3: +-# BZ12701 %3hhb:+0B100000000:0:-1: +-# BZ12701 %*3hhb:+0B100000000:0:-1: +-# BZ12701 %3hhb:+0b100000000:0:-1: +-# BZ12701 %*3hhb:+0b100000000:0:-1: +-%3hhb:+100101001:1:3:2: +-%*3hhb:+100101001:0:3: +-# BZ12701 %3hhb:+0B100101001:0:-1: +-# BZ12701 %*3hhb:+0B100101001:0:-1: +-# BZ12701 %3hhb:+0b100101001:0:-1: +-# BZ12701 %*3hhb:+0b100101001:0:-1: +-%5hhb::0:-1: +-%*5hhb::0:-1: +-%5hhb:-1111011:1:5:241: +-%*5hhb:-1111011:0:5: +-%5hhb:-0B1111011:1:5:253: +-%*5hhb:-0B1111011:0:5: +-%5hhb:-0b1111011:1:5:253: +-%*5hhb:-0b1111011:0:5: +-%5hhb:-1:1:2:255: +-%*5hhb:-1:0:2: +-%5hhb:-0B1:1:4:255: +-%*5hhb:-0B1:0:4: +-%5hhb:-0b1:1:4:255: +-%*5hhb:-0b1:0:4: +-%5hhb:-0:1:2:0: +-%*5hhb:-0:0:2: +-%5hhb:-0B0:1:4:0: +-%*5hhb:-0B0:0:4: +-%5hhb:-0b0:1:4:0: +-%*5hhb:-0b0:0:4: +-%5hhb:0:1:1:0: +-%*5hhb:0:0:1: +-%5hhb:0B0:1:3:0: +-%*5hhb:0B0:0:3: +-%5hhb:0b0:1:3:0: +-%*5hhb:0b0:0:3: +-%5hhb:1:1:1:1: +-%*5hhb:1:0:1: +-%5hhb:0B1:1:3:1: +-%*5hhb:0B1:0:3: +-%5hhb:0b1:1:3:1: +-%*5hhb:0b1:0:3: +-%5hhb:101010:1:5:21: +-%*5hhb:101010:0:5: +-%5hhb:0B101010:1:5:5: +-%*5hhb:0B101010:0:5: +-%5hhb:0b101010:1:5:5: +-%*5hhb:0b101010:0:5: +-%5hhb:11111111:1:5:31: +-%*5hhb:11111111:0:5: +-%5hhb:0B11111111:1:5:7: +-%*5hhb:0B11111111:0:5: +-%5hhb:0b11111111:1:5:7: +-%*5hhb:0b11111111:0:5: +-%5hhb:100000000:1:5:16: +-%*5hhb:100000000:0:5: +-%5hhb:0B100000000:1:5:4: +-%*5hhb:0B100000000:0:5: +-%5hhb:0b100000000:1:5:4: +-%*5hhb:0b100000000:0:5: +-%5hhb:100101001:1:5:18: +-%*5hhb:100101001:0:5: +-%5hhb:0B100101001:1:5:4: +-%*5hhb:0B100101001:0:5: +-%5hhb:0b100101001:1:5:4: +-%*5hhb:0b100101001:0:5: +-%5hhb:+0:1:2:0: +-%*5hhb:+0:0:2: +-%5hhb:+0B0:1:4:0: +-%*5hhb:+0B0:0:4: +-%5hhb:+0b0:1:4:0: +-%*5hhb:+0b0:0:4: +-%5hhb:+1:1:2:1: +-%*5hhb:+1:0:2: +-%5hhb:+0B1:1:4:1: +-%*5hhb:+0B1:0:4: +-%5hhb:+0b1:1:4:1: +-%*5hhb:+0b1:0:4: +-%5hhb:+101010:1:5:10: +-%*5hhb:+101010:0:5: +-%5hhb:+0B101010:1:5:2: +-%*5hhb:+0B101010:0:5: +-%5hhb:+0b101010:1:5:2: +-%*5hhb:+0b101010:0:5: +-%5hhb:+11111111:1:5:15: +-%*5hhb:+11111111:0:5: +-%5hhb:+0B11111111:1:5:3: +-%*5hhb:+0B11111111:0:5: +-%5hhb:+0b11111111:1:5:3: +-%*5hhb:+0b11111111:0:5: +-%5hhb:+100000000:1:5:8: +-%*5hhb:+100000000:0:5: +-%5hhb:+0B100000000:1:5:2: +-%*5hhb:+0B100000000:0:5: +-%5hhb:+0b100000000:1:5:2: +-%*5hhb:+0b100000000:0:5: +-%5hhb:+100101001:1:5:9: +-%*5hhb:+100101001:0:5: +-%5hhb:+0B100101001:1:5:2: +-%*5hhb:+0B100101001:0:5: +-%5hhb:+0b100101001:1:5:2: +-%*5hhb:+0b100101001:0:5: +-%2hhb: :0:-1: +-%*2hhb: :0:-1: +-%2hhb: -1111011:1:3:255: +-%*2hhb: -1111011:0:3: +-%2hhb: -0B1111011:1:3:0: +-%*2hhb: -0B1111011:0:3: +-%2hhb: -0b1111011:1:3:0: +-%*2hhb: -0b1111011:0:3: +-%2hhb: -1:1:3:255: +-%*2hhb: -1:0:3: +-%2hhb: -0B1:1:3:0: +-%*2hhb: -0B1:0:3: +-%2hhb: -0b1:1:3:0: +-%*2hhb: -0b1:0:3: +-%2hhb: -0:1:3:0: +-%*2hhb: -0:0:3: +-%2hhb: -0B0:1:3:0: +-%*2hhb: -0B0:0:3: +-%2hhb: -0b0:1:3:0: +-%*2hhb: -0b0:0:3: +-%2hhb: 0:1:2:0: +-%*2hhb: 0:0:2: +-# BZ12701 %2hhb: 0B0:0:-1: +-# BZ12701 %*2hhb: 0B0:0:-1: +-# BZ12701 %2hhb: 0b0:0:-1: +-# BZ12701 %*2hhb: 0b0:0:-1: +-%2hhb: 1:1:2:1: +-%*2hhb: 1:0:2: +-# BZ12701 %2hhb: 0B1:0:-1: +-# BZ12701 %*2hhb: 0B1:0:-1: +-# BZ12701 %2hhb: 0b1:0:-1: +-# BZ12701 %*2hhb: 0b1:0:-1: +-%2hhb: 101010:1:3:2: +-%*2hhb: 101010:0:3: +-# BZ12701 %2hhb: 0B101010:0:-1: +-# BZ12701 %*2hhb: 0B101010:0:-1: +-# BZ12701 %2hhb: 0b101010:0:-1: +-# BZ12701 %*2hhb: 0b101010:0:-1: +-%2hhb: 11111111:1:3:3: +-%*2hhb: 11111111:0:3: +-# BZ12701 %2hhb: 0B11111111:0:-1: +-# BZ12701 %*2hhb: 0B11111111:0:-1: +-# BZ12701 %2hhb: 0b11111111:0:-1: +-# BZ12701 %*2hhb: 0b11111111:0:-1: +-%2hhb: 100000000:1:3:2: +-%*2hhb: 100000000:0:3: +-# BZ12701 %2hhb: 0B100000000:0:-1: +-# BZ12701 %*2hhb: 0B100000000:0:-1: +-# BZ12701 %2hhb: 0b100000000:0:-1: +-# BZ12701 %*2hhb: 0b100000000:0:-1: +-%2hhb: 100101001:1:3:2: +-%*2hhb: 100101001:0:3: +-# BZ12701 %2hhb: 0B100101001:0:-1: +-# BZ12701 %*2hhb: 0B100101001:0:-1: +-# BZ12701 %2hhb: 0b100101001:0:-1: +-# BZ12701 %*2hhb: 0b100101001:0:-1: +-%2hhb: +0:1:3:0: +-%*2hhb: +0:0:3: +-%2hhb: +0B0:1:3:0: +-%*2hhb: +0B0:0:3: +-%2hhb: +0b0:1:3:0: +-%*2hhb: +0b0:0:3: +-%2hhb: +1:1:3:1: +-%*2hhb: +1:0:3: +-%2hhb: +0B1:1:3:0: +-%*2hhb: +0B1:0:3: +-%2hhb: +0b1:1:3:0: +-%*2hhb: +0b1:0:3: +-%2hhb: +101010:1:3:1: +-%*2hhb: +101010:0:3: +-%2hhb: +0B101010:1:3:0: +-%*2hhb: +0B101010:0:3: +-%2hhb: +0b101010:1:3:0: +-%*2hhb: +0b101010:0:3: +-%2hhb: +11111111:1:3:1: +-%*2hhb: +11111111:0:3: +-%2hhb: +0B11111111:1:3:0: +-%*2hhb: +0B11111111:0:3: +-%2hhb: +0b11111111:1:3:0: +-%*2hhb: +0b11111111:0:3: +-%2hhb: +100000000:1:3:1: +-%*2hhb: +100000000:0:3: +-%2hhb: +0B100000000:1:3:0: +-%*2hhb: +0B100000000:0:3: +-%2hhb: +0b100000000:1:3:0: +-%*2hhb: +0b100000000:0:3: +-%2hhb: +100101001:1:3:1: +-%*2hhb: +100101001:0:3: +-%2hhb: +0B100101001:1:3:0: +-%*2hhb: +0B100101001:0:3: +-%2hhb: +0b100101001:1:3:0: +-%*2hhb: +0b100101001:0:3: +-%5hhb: :0:-1: +-%*5hhb: :0:-1: +-%5hhb: -1111011:1:6:241: +-%*5hhb: -1111011:0:6: +-%5hhb: -0B1111011:1:6:253: +-%*5hhb: -0B1111011:0:6: +-%5hhb: -0b1111011:1:6:253: +-%*5hhb: -0b1111011:0:6: +-%5hhb: -1:1:3:255: +-%*5hhb: -1:0:3: +-%5hhb: -0B1:1:5:255: +-%*5hhb: -0B1:0:5: +-%5hhb: -0b1:1:5:255: +-%*5hhb: -0b1:0:5: +-%5hhb: -0:1:3:0: +-%*5hhb: -0:0:3: +-%5hhb: -0B0:1:5:0: +-%*5hhb: -0B0:0:5: +-%5hhb: -0b0:1:5:0: +-%*5hhb: -0b0:0:5: +-%5hhb: 0:1:2:0: +-%*5hhb: 0:0:2: +-%5hhb: 0B0:1:4:0: +-%*5hhb: 0B0:0:4: +-%5hhb: 0b0:1:4:0: +-%*5hhb: 0b0:0:4: +-%5hhb: 1:1:2:1: +-%*5hhb: 1:0:2: +-%5hhb: 0B1:1:4:1: +-%*5hhb: 0B1:0:4: +-%5hhb: 0b1:1:4:1: +-%*5hhb: 0b1:0:4: +-%5hhb: 101010:1:6:21: +-%*5hhb: 101010:0:6: +-%5hhb: 0B101010:1:6:5: +-%*5hhb: 0B101010:0:6: +-%5hhb: 0b101010:1:6:5: +-%*5hhb: 0b101010:0:6: +-%5hhb: 11111111:1:6:31: +-%*5hhb: 11111111:0:6: +-%5hhb: 0B11111111:1:6:7: +-%*5hhb: 0B11111111:0:6: +-%5hhb: 0b11111111:1:6:7: +-%*5hhb: 0b11111111:0:6: +-%5hhb: 100000000:1:6:16: +-%*5hhb: 100000000:0:6: +-%5hhb: 0B100000000:1:6:4: +-%*5hhb: 0B100000000:0:6: +-%5hhb: 0b100000000:1:6:4: +-%*5hhb: 0b100000000:0:6: +-%5hhb: 100101001:1:6:18: +-%*5hhb: 100101001:0:6: +-%5hhb: 0B100101001:1:6:4: +-%*5hhb: 0B100101001:0:6: +-%5hhb: 0b100101001:1:6:4: +-%*5hhb: 0b100101001:0:6: +-%5hhb: +0:1:3:0: +-%*5hhb: +0:0:3: +-%5hhb: +0B0:1:5:0: +-%*5hhb: +0B0:0:5: +-%5hhb: +0b0:1:5:0: +-%*5hhb: +0b0:0:5: +-%5hhb: +1:1:3:1: +-%*5hhb: +1:0:3: +-%5hhb: +0B1:1:5:1: +-%*5hhb: +0B1:0:5: +-%5hhb: +0b1:1:5:1: +-%*5hhb: +0b1:0:5: +-%5hhb: +101010:1:6:10: +-%*5hhb: +101010:0:6: +-%5hhb: +0B101010:1:6:2: +-%*5hhb: +0B101010:0:6: +-%5hhb: +0b101010:1:6:2: +-%*5hhb: +0b101010:0:6: +-%5hhb: +11111111:1:6:15: +-%*5hhb: +11111111:0:6: +-%5hhb: +0B11111111:1:6:3: +-%*5hhb: +0B11111111:0:6: +-%5hhb: +0b11111111:1:6:3: +-%*5hhb: +0b11111111:0:6: +-%5hhb: +100000000:1:6:8: +-%*5hhb: +100000000:0:6: +-%5hhb: +0B100000000:1:6:2: +-%*5hhb: +0B100000000:0:6: +-%5hhb: +0b100000000:1:6:2: +-%*5hhb: +0b100000000:0:6: +-%5hhb: +100101001:1:6:9: +-%*5hhb: +100101001:0:6: +-%5hhb: +0B100101001:1:6:2: +-%*5hhb: +0B100101001:0:6: +-%5hhb: +0b100101001:1:6:2: +-%*5hhb: +0b100101001:0:6: +diff --git a/stdio-common/tst-scanf-format-ullong-b.input b/stdio-common/tst-scanf-format-ullong-b.input +deleted file mode 100644 +index 57b83f01c2c91f7a..0000000000000000 +--- a/stdio-common/tst-scanf-format-ullong-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%llb::0:-1: +-%*llb::0:-1: +-%llb:-1111011:1:8:-123: +-%*llb:-1111011:0:8: +-%llb:-0B1111011:1:10:-123: +-%*llb:-0B1111011:0:10: +-%llb:-0b1111011:1:10:-123: +-%*llb:-0b1111011:0:10: +-%llb:-1:1:2:-1: +-%*llb:-1:0:2: +-%llb:-0B1:1:4:-1: +-%*llb:-0B1:0:4: +-%llb:-0b1:1:4:-1: +-%*llb:-0b1:0:4: +-%llb:-0:1:2:0: +-%*llb:-0:0:2: +-%llb:-0B0:1:4:0: +-%*llb:-0B0:0:4: +-%llb:-0b0:1:4:0: +-%*llb:-0b0:0:4: +-%llb:0:1:1:0: +-%*llb:0:0:1: +-%llb:0B0:1:3:0: +-%*llb:0B0:0:3: +-%llb:0b0:1:3:0: +-%*llb:0b0:0:3: +-%llb:1:1:1:1: +-%*llb:1:0:1: +-%llb:0B1:1:3:1: +-%*llb:0B1:0:3: +-%llb:0b1:1:3:1: +-%*llb:0b1:0:3: +-%llb:101010:1:6:42: +-%*llb:101010:0:6: +-%llb:0B101010:1:8:42: +-%*llb:0B101010:0:8: +-%llb:0b101010:1:8:42: +-%*llb:0b101010:0:8: +-%llb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: +-%*llb:1111111111111111111111111111111111111111111111111111111111111111:0:64: +-%llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%llb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: +-%*llb:10000000000000000000000000000000000000000000000000000000000000000:0:65: +-%llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%llb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: +-%*llb:10000000000000000000000000000000000000010100001110101011110110001:0:65: +-%llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%llb:+0:1:2:0: +-%*llb:+0:0:2: +-%llb:+0B0:1:4:0: +-%*llb:+0B0:0:4: +-%llb:+0b0:1:4:0: +-%*llb:+0b0:0:4: +-%llb:+1:1:2:1: +-%*llb:+1:0:2: +-%llb:+0B1:1:4:1: +-%*llb:+0B1:0:4: +-%llb:+0b1:1:4:1: +-%*llb:+0b1:0:4: +-%llb:+101010:1:7:42: +-%*llb:+101010:0:7: +-%llb:+0B101010:1:9:42: +-%*llb:+0B101010:0:9: +-%llb:+0b101010:1:9:42: +-%*llb:+0b101010:0:9: +-%llb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: +-%*llb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: +-%llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%llb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: +-%*llb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: +-%llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%llb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: +-%*llb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: +-%llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%1llb::0:-1: +-%*1llb::0:-1: +-%1llb:-1111011:0:-1: +-%*1llb:-1111011:0:-1: +-%1llb:-0B1111011:0:-1: +-%*1llb:-0B1111011:0:-1: +-%1llb:-0b1111011:0:-1: +-%*1llb:-0b1111011:0:-1: +-%1llb:-1:0:-1: +-%*1llb:-1:0:-1: +-%1llb:-0B1:0:-1: +-%*1llb:-0B1:0:-1: +-%1llb:-0b1:0:-1: +-%*1llb:-0b1:0:-1: +-%1llb:-0:0:-1: +-%*1llb:-0:0:-1: +-%1llb:-0B0:0:-1: +-%*1llb:-0B0:0:-1: +-%1llb:-0b0:0:-1: +-%*1llb:-0b0:0:-1: +-%1llb:0:1:1:0: +-%*1llb:0:0:1: +-%1llb:0B0:1:1:0: +-%*1llb:0B0:0:1: +-%1llb:0b0:1:1:0: +-%*1llb:0b0:0:1: +-%1llb:1:1:1:1: +-%*1llb:1:0:1: +-%1llb:0B1:1:1:0: +-%*1llb:0B1:0:1: +-%1llb:0b1:1:1:0: +-%*1llb:0b1:0:1: +-%1llb:101010:1:1:1: +-%*1llb:101010:0:1: +-%1llb:0B101010:1:1:0: +-%*1llb:0B101010:0:1: +-%1llb:0b101010:1:1:0: +-%*1llb:0b101010:0:1: +-%1llb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: +-%*1llb:1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1llb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: +-%*1llb:10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1llb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: +-%*1llb:10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1llb:+0:0:-1: +-%*1llb:+0:0:-1: +-%1llb:+0B0:0:-1: +-%*1llb:+0B0:0:-1: +-%1llb:+0b0:0:-1: +-%*1llb:+0b0:0:-1: +-%1llb:+1:0:-1: +-%*1llb:+1:0:-1: +-%1llb:+0B1:0:-1: +-%*1llb:+0B1:0:-1: +-%1llb:+0b1:0:-1: +-%*1llb:+0b1:0:-1: +-%1llb:+101010:0:-1: +-%*1llb:+101010:0:-1: +-%1llb:+0B101010:0:-1: +-%*1llb:+0B101010:0:-1: +-%1llb:+0b101010:0:-1: +-%*1llb:+0b101010:0:-1: +-%1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2llb::0:-1: +-%*2llb::0:-1: +-%2llb:-1111011:1:2:-1: +-%*2llb:-1111011:0:2: +-%2llb:-0B1111011:1:2:0: +-%*2llb:-0B1111011:0:2: +-%2llb:-0b1111011:1:2:0: +-%*2llb:-0b1111011:0:2: +-%2llb:-1:1:2:-1: +-%*2llb:-1:0:2: +-%2llb:-0B1:1:2:0: +-%*2llb:-0B1:0:2: +-%2llb:-0b1:1:2:0: +-%*2llb:-0b1:0:2: +-%2llb:-0:1:2:0: +-%*2llb:-0:0:2: +-%2llb:-0B0:1:2:0: +-%*2llb:-0B0:0:2: +-%2llb:-0b0:1:2:0: +-%*2llb:-0b0:0:2: +-%2llb:0:1:1:0: +-%*2llb:0:0:1: +-# BZ12701 %2llb:0B0:0:-1: +-# BZ12701 %*2llb:0B0:0:-1: +-# BZ12701 %2llb:0b0:0:-1: +-# BZ12701 %*2llb:0b0:0:-1: +-%2llb:1:1:1:1: +-%*2llb:1:0:1: +-# BZ12701 %2llb:0B1:0:-1: +-# BZ12701 %*2llb:0B1:0:-1: +-# BZ12701 %2llb:0b1:0:-1: +-# BZ12701 %*2llb:0b1:0:-1: +-%2llb:101010:1:2:2: +-%*2llb:101010:0:2: +-# BZ12701 %2llb:0B101010:0:-1: +-# BZ12701 %*2llb:0B101010:0:-1: +-# BZ12701 %2llb:0b101010:0:-1: +-# BZ12701 %*2llb:0b101010:0:-1: +-%2llb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: +-%*2llb:1111111111111111111111111111111111111111111111111111111111111111:0:2: +-# BZ12701 %2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2llb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: +-%*2llb:10000000000000000000000000000000000000000000000000000000000000000:0:2: +-# BZ12701 %2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2llb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: +-%*2llb:10000000000000000000000000000000000000010100001110101011110110001:0:2: +-# BZ12701 %2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2llb:+0:1:2:0: +-%*2llb:+0:0:2: +-%2llb:+0B0:1:2:0: +-%*2llb:+0B0:0:2: +-%2llb:+0b0:1:2:0: +-%*2llb:+0b0:0:2: +-%2llb:+1:1:2:1: +-%*2llb:+1:0:2: +-%2llb:+0B1:1:2:0: +-%*2llb:+0B1:0:2: +-%2llb:+0b1:1:2:0: +-%*2llb:+0b1:0:2: +-%2llb:+101010:1:2:1: +-%*2llb:+101010:0:2: +-%2llb:+0B101010:1:2:0: +-%*2llb:+0B101010:0:2: +-%2llb:+0b101010:1:2:0: +-%*2llb:+0b101010:0:2: +-%2llb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: +-%*2llb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2llb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: +-%*2llb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2llb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: +-%*2llb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%15llb::0:-1: +-%*15llb::0:-1: +-%15llb:-1111011:1:8:-123: +-%*15llb:-1111011:0:8: +-%15llb:-0B1111011:1:10:-123: +-%*15llb:-0B1111011:0:10: +-%15llb:-0b1111011:1:10:-123: +-%*15llb:-0b1111011:0:10: +-%15llb:-1:1:2:-1: +-%*15llb:-1:0:2: +-%15llb:-0B1:1:4:-1: +-%*15llb:-0B1:0:4: +-%15llb:-0b1:1:4:-1: +-%*15llb:-0b1:0:4: +-%15llb:-0:1:2:0: +-%*15llb:-0:0:2: +-%15llb:-0B0:1:4:0: +-%*15llb:-0B0:0:4: +-%15llb:-0b0:1:4:0: +-%*15llb:-0b0:0:4: +-%15llb:0:1:1:0: +-%*15llb:0:0:1: +-%15llb:0B0:1:3:0: +-%*15llb:0B0:0:3: +-%15llb:0b0:1:3:0: +-%*15llb:0b0:0:3: +-%15llb:1:1:1:1: +-%*15llb:1:0:1: +-%15llb:0B1:1:3:1: +-%*15llb:0B1:0:3: +-%15llb:0b1:1:3:1: +-%*15llb:0b1:0:3: +-%15llb:101010:1:6:42: +-%*15llb:101010:0:6: +-%15llb:0B101010:1:8:42: +-%*15llb:0B101010:0:8: +-%15llb:0b101010:1:8:42: +-%*15llb:0b101010:0:8: +-%15llb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: +-%*15llb:1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: +-%*15llb:10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: +-%*15llb:10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:+0:1:2:0: +-%*15llb:+0:0:2: +-%15llb:+0B0:1:4:0: +-%*15llb:+0B0:0:4: +-%15llb:+0b0:1:4:0: +-%*15llb:+0b0:0:4: +-%15llb:+1:1:2:1: +-%*15llb:+1:0:2: +-%15llb:+0B1:1:4:1: +-%*15llb:+0B1:0:4: +-%15llb:+0b1:1:4:1: +-%*15llb:+0b1:0:4: +-%15llb:+101010:1:7:42: +-%*15llb:+101010:0:7: +-%15llb:+0B101010:1:9:42: +-%*15llb:+0B101010:0:9: +-%15llb:+0b101010:1:9:42: +-%*15llb:+0b101010:0:9: +-%15llb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: +-%*15llb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15llb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: +-%*15llb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15llb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: +-%*15llb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%25llb::0:-1: +-%*25llb::0:-1: +-%25llb:-1111011:1:8:-123: +-%*25llb:-1111011:0:8: +-%25llb:-0B1111011:1:10:-123: +-%*25llb:-0B1111011:0:10: +-%25llb:-0b1111011:1:10:-123: +-%*25llb:-0b1111011:0:10: +-%25llb:-1:1:2:-1: +-%*25llb:-1:0:2: +-%25llb:-0B1:1:4:-1: +-%*25llb:-0B1:0:4: +-%25llb:-0b1:1:4:-1: +-%*25llb:-0b1:0:4: +-%25llb:-0:1:2:0: +-%*25llb:-0:0:2: +-%25llb:-0B0:1:4:0: +-%*25llb:-0B0:0:4: +-%25llb:-0b0:1:4:0: +-%*25llb:-0b0:0:4: +-%25llb:0:1:1:0: +-%*25llb:0:0:1: +-%25llb:0B0:1:3:0: +-%*25llb:0B0:0:3: +-%25llb:0b0:1:3:0: +-%*25llb:0b0:0:3: +-%25llb:1:1:1:1: +-%*25llb:1:0:1: +-%25llb:0B1:1:3:1: +-%*25llb:0B1:0:3: +-%25llb:0b1:1:3:1: +-%*25llb:0b1:0:3: +-%25llb:101010:1:6:42: +-%*25llb:101010:0:6: +-%25llb:0B101010:1:8:42: +-%*25llb:0B101010:0:8: +-%25llb:0b101010:1:8:42: +-%*25llb:0b101010:0:8: +-%25llb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: +-%*25llb:1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: +-%*25llb:10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: +-%*25llb:10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:+0:1:2:0: +-%*25llb:+0:0:2: +-%25llb:+0B0:1:4:0: +-%*25llb:+0B0:0:4: +-%25llb:+0b0:1:4:0: +-%*25llb:+0b0:0:4: +-%25llb:+1:1:2:1: +-%*25llb:+1:0:2: +-%25llb:+0B1:1:4:1: +-%*25llb:+0B1:0:4: +-%25llb:+0b1:1:4:1: +-%*25llb:+0b1:0:4: +-%25llb:+101010:1:7:42: +-%*25llb:+101010:0:7: +-%25llb:+0B101010:1:9:42: +-%*25llb:+0B101010:0:9: +-%25llb:+0b101010:1:9:42: +-%*25llb:+0b101010:0:9: +-%25llb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: +-%*25llb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25llb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: +-%*25llb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25llb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: +-%*25llb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%2llb: :0:-1: +-%*2llb: :0:-1: +-%2llb: -1111011:1:3:-1: +-%*2llb: -1111011:0:3: +-%2llb: -0B1111011:1:3:0: +-%*2llb: -0B1111011:0:3: +-%2llb: -0b1111011:1:3:0: +-%*2llb: -0b1111011:0:3: +-%2llb: -1:1:3:-1: +-%*2llb: -1:0:3: +-%2llb: -0B1:1:3:0: +-%*2llb: -0B1:0:3: +-%2llb: -0b1:1:3:0: +-%*2llb: -0b1:0:3: +-%2llb: -0:1:3:0: +-%*2llb: -0:0:3: +-%2llb: -0B0:1:3:0: +-%*2llb: -0B0:0:3: +-%2llb: -0b0:1:3:0: +-%*2llb: -0b0:0:3: +-%2llb: 0:1:2:0: +-%*2llb: 0:0:2: +-# BZ12701 %2llb: 0B0:0:-1: +-# BZ12701 %*2llb: 0B0:0:-1: +-# BZ12701 %2llb: 0b0:0:-1: +-# BZ12701 %*2llb: 0b0:0:-1: +-%2llb: 1:1:2:1: +-%*2llb: 1:0:2: +-# BZ12701 %2llb: 0B1:0:-1: +-# BZ12701 %*2llb: 0B1:0:-1: +-# BZ12701 %2llb: 0b1:0:-1: +-# BZ12701 %*2llb: 0b1:0:-1: +-%2llb: 101010:1:3:2: +-%*2llb: 101010:0:3: +-# BZ12701 %2llb: 0B101010:0:-1: +-# BZ12701 %*2llb: 0B101010:0:-1: +-# BZ12701 %2llb: 0b101010:0:-1: +-# BZ12701 %*2llb: 0b101010:0:-1: +-%2llb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: +-%*2llb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: +-# BZ12701 %2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2llb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: +-%*2llb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: +-# BZ12701 %2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2llb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: +-%*2llb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: +-# BZ12701 %2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2llb: +0:1:3:0: +-%*2llb: +0:0:3: +-%2llb: +0B0:1:3:0: +-%*2llb: +0B0:0:3: +-%2llb: +0b0:1:3:0: +-%*2llb: +0b0:0:3: +-%2llb: +1:1:3:1: +-%*2llb: +1:0:3: +-%2llb: +0B1:1:3:0: +-%*2llb: +0B1:0:3: +-%2llb: +0b1:1:3:0: +-%*2llb: +0b1:0:3: +-%2llb: +101010:1:3:1: +-%*2llb: +101010:0:3: +-%2llb: +0B101010:1:3:0: +-%*2llb: +0B101010:0:3: +-%2llb: +0b101010:1:3:0: +-%*2llb: +0b101010:0:3: +-%2llb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: +-%*2llb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2llb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: +-%*2llb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2llb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: +-%*2llb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%25llb: :0:-1: +-%*25llb: :0:-1: +-%25llb: -1111011:1:9:-123: +-%*25llb: -1111011:0:9: +-%25llb: -0B1111011:1:11:-123: +-%*25llb: -0B1111011:0:11: +-%25llb: -0b1111011:1:11:-123: +-%*25llb: -0b1111011:0:11: +-%25llb: -1:1:3:-1: +-%*25llb: -1:0:3: +-%25llb: -0B1:1:5:-1: +-%*25llb: -0B1:0:5: +-%25llb: -0b1:1:5:-1: +-%*25llb: -0b1:0:5: +-%25llb: -0:1:3:0: +-%*25llb: -0:0:3: +-%25llb: -0B0:1:5:0: +-%*25llb: -0B0:0:5: +-%25llb: -0b0:1:5:0: +-%*25llb: -0b0:0:5: +-%25llb: 0:1:2:0: +-%*25llb: 0:0:2: +-%25llb: 0B0:1:4:0: +-%*25llb: 0B0:0:4: +-%25llb: 0b0:1:4:0: +-%*25llb: 0b0:0:4: +-%25llb: 1:1:2:1: +-%*25llb: 1:0:2: +-%25llb: 0B1:1:4:1: +-%*25llb: 0B1:0:4: +-%25llb: 0b1:1:4:1: +-%*25llb: 0b1:0:4: +-%25llb: 101010:1:7:42: +-%*25llb: 101010:0:7: +-%25llb: 0B101010:1:9:42: +-%*25llb: 0B101010:0:9: +-%25llb: 0b101010:1:9:42: +-%*25llb: 0b101010:0:9: +-%25llb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: +-%*25llb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: +-%*25llb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: +-%*25llb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: +0:1:3:0: +-%*25llb: +0:0:3: +-%25llb: +0B0:1:5:0: +-%*25llb: +0B0:0:5: +-%25llb: +0b0:1:5:0: +-%*25llb: +0b0:0:5: +-%25llb: +1:1:3:1: +-%*25llb: +1:0:3: +-%25llb: +0B1:1:5:1: +-%*25llb: +0B1:0:5: +-%25llb: +0b1:1:5:1: +-%*25llb: +0b1:0:5: +-%25llb: +101010:1:8:42: +-%*25llb: +101010:0:8: +-%25llb: +0B101010:1:10:42: +-%*25llb: +0B101010:0:10: +-%25llb: +0b101010:1:10:42: +-%*25llb: +0b101010:0:10: +-%25llb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: +-%*25llb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25llb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: +-%*25llb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25llb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: +-%*25llb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-ushort-b.input b/stdio-common/tst-scanf-format-ushort-b.input +deleted file mode 100644 +index b41a66763a09a962..0000000000000000 +--- a/stdio-common/tst-scanf-format-ushort-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%hb::0:-1: +-%*hb::0:-1: +-%hb:-1111011:1:8:65413: +-%*hb:-1111011:0:8: +-%hb:-0B1111011:1:10:65413: +-%*hb:-0B1111011:0:10: +-%hb:-0b1111011:1:10:65413: +-%*hb:-0b1111011:0:10: +-%hb:-1:1:2:65535: +-%*hb:-1:0:2: +-%hb:-0B1:1:4:65535: +-%*hb:-0B1:0:4: +-%hb:-0b1:1:4:65535: +-%*hb:-0b1:0:4: +-%hb:-0:1:2:0: +-%*hb:-0:0:2: +-%hb:-0B0:1:4:0: +-%*hb:-0B0:0:4: +-%hb:-0b0:1:4:0: +-%*hb:-0b0:0:4: +-%hb:0:1:1:0: +-%*hb:0:0:1: +-%hb:0B0:1:3:0: +-%*hb:0B0:0:3: +-%hb:0b0:1:3:0: +-%*hb:0b0:0:3: +-%hb:1:1:1:1: +-%*hb:1:0:1: +-%hb:0B1:1:3:1: +-%*hb:0B1:0:3: +-%hb:0b1:1:3:1: +-%*hb:0b1:0:3: +-%hb:101010:1:6:42: +-%*hb:101010:0:6: +-%hb:0B101010:1:8:42: +-%*hb:0B101010:0:8: +-%hb:0b101010:1:8:42: +-%*hb:0b101010:0:8: +-%hb:1111111111111111:1:16:65535: +-%*hb:1111111111111111:0:16: +-%hb:0B1111111111111111:1:18:65535: +-%*hb:0B1111111111111111:0:18: +-%hb:0b1111111111111111:1:18:65535: +-%*hb:0b1111111111111111:0:18: +-%hb:10000000000000000:1:17:0: +-%*hb:10000000000000000:0:17: +-%hb:0B10000000000000000:1:19:0: +-%*hb:0B10000000000000000:0:19: +-%hb:0b10000000000000000:1:19:0: +-%*hb:0b10000000000000000:0:19: +-%hb:10000000000101001:1:17:41: +-%*hb:10000000000101001:0:17: +-%hb:0B10000000000101001:1:19:41: +-%*hb:0B10000000000101001:0:19: +-%hb:0b10000000000101001:1:19:41: +-%*hb:0b10000000000101001:0:19: +-%hb:+0:1:2:0: +-%*hb:+0:0:2: +-%hb:+0B0:1:4:0: +-%*hb:+0B0:0:4: +-%hb:+0b0:1:4:0: +-%*hb:+0b0:0:4: +-%hb:+1:1:2:1: +-%*hb:+1:0:2: +-%hb:+0B1:1:4:1: +-%*hb:+0B1:0:4: +-%hb:+0b1:1:4:1: +-%*hb:+0b1:0:4: +-%hb:+101010:1:7:42: +-%*hb:+101010:0:7: +-%hb:+0B101010:1:9:42: +-%*hb:+0B101010:0:9: +-%hb:+0b101010:1:9:42: +-%*hb:+0b101010:0:9: +-%hb:+1111111111111111:1:17:65535: +-%*hb:+1111111111111111:0:17: +-%hb:+0B1111111111111111:1:19:65535: +-%*hb:+0B1111111111111111:0:19: +-%hb:+0b1111111111111111:1:19:65535: +-%*hb:+0b1111111111111111:0:19: +-%hb:+10000000000000000:1:18:0: +-%*hb:+10000000000000000:0:18: +-%hb:+0B10000000000000000:1:20:0: +-%*hb:+0B10000000000000000:0:20: +-%hb:+0b10000000000000000:1:20:0: +-%*hb:+0b10000000000000000:0:20: +-%hb:+10000000000101001:1:18:41: +-%*hb:+10000000000101001:0:18: +-%hb:+0B10000000000101001:1:20:41: +-%*hb:+0B10000000000101001:0:20: +-%hb:+0b10000000000101001:1:20:41: +-%*hb:+0b10000000000101001:0:20: +-%1hb::0:-1: +-%*1hb::0:-1: +-%1hb:-1111011:0:-1: +-%*1hb:-1111011:0:-1: +-%1hb:-0B1111011:0:-1: +-%*1hb:-0B1111011:0:-1: +-%1hb:-0b1111011:0:-1: +-%*1hb:-0b1111011:0:-1: +-%1hb:-1:0:-1: +-%*1hb:-1:0:-1: +-%1hb:-0B1:0:-1: +-%*1hb:-0B1:0:-1: +-%1hb:-0b1:0:-1: +-%*1hb:-0b1:0:-1: +-%1hb:-0:0:-1: +-%*1hb:-0:0:-1: +-%1hb:-0B0:0:-1: +-%*1hb:-0B0:0:-1: +-%1hb:-0b0:0:-1: +-%*1hb:-0b0:0:-1: +-%1hb:0:1:1:0: +-%*1hb:0:0:1: +-%1hb:0B0:1:1:0: +-%*1hb:0B0:0:1: +-%1hb:0b0:1:1:0: +-%*1hb:0b0:0:1: +-%1hb:1:1:1:1: +-%*1hb:1:0:1: +-%1hb:0B1:1:1:0: +-%*1hb:0B1:0:1: +-%1hb:0b1:1:1:0: +-%*1hb:0b1:0:1: +-%1hb:101010:1:1:1: +-%*1hb:101010:0:1: +-%1hb:0B101010:1:1:0: +-%*1hb:0B101010:0:1: +-%1hb:0b101010:1:1:0: +-%*1hb:0b101010:0:1: +-%1hb:1111111111111111:1:1:1: +-%*1hb:1111111111111111:0:1: +-%1hb:0B1111111111111111:1:1:0: +-%*1hb:0B1111111111111111:0:1: +-%1hb:0b1111111111111111:1:1:0: +-%*1hb:0b1111111111111111:0:1: +-%1hb:10000000000000000:1:1:1: +-%*1hb:10000000000000000:0:1: +-%1hb:0B10000000000000000:1:1:0: +-%*1hb:0B10000000000000000:0:1: +-%1hb:0b10000000000000000:1:1:0: +-%*1hb:0b10000000000000000:0:1: +-%1hb:10000000000101001:1:1:1: +-%*1hb:10000000000101001:0:1: +-%1hb:0B10000000000101001:1:1:0: +-%*1hb:0B10000000000101001:0:1: +-%1hb:0b10000000000101001:1:1:0: +-%*1hb:0b10000000000101001:0:1: +-%1hb:+0:0:-1: +-%*1hb:+0:0:-1: +-%1hb:+0B0:0:-1: +-%*1hb:+0B0:0:-1: +-%1hb:+0b0:0:-1: +-%*1hb:+0b0:0:-1: +-%1hb:+1:0:-1: +-%*1hb:+1:0:-1: +-%1hb:+0B1:0:-1: +-%*1hb:+0B1:0:-1: +-%1hb:+0b1:0:-1: +-%*1hb:+0b1:0:-1: +-%1hb:+101010:0:-1: +-%*1hb:+101010:0:-1: +-%1hb:+0B101010:0:-1: +-%*1hb:+0B101010:0:-1: +-%1hb:+0b101010:0:-1: +-%*1hb:+0b101010:0:-1: +-%1hb:+1111111111111111:0:-1: +-%*1hb:+1111111111111111:0:-1: +-%1hb:+0B1111111111111111:0:-1: +-%*1hb:+0B1111111111111111:0:-1: +-%1hb:+0b1111111111111111:0:-1: +-%*1hb:+0b1111111111111111:0:-1: +-%1hb:+10000000000000000:0:-1: +-%*1hb:+10000000000000000:0:-1: +-%1hb:+0B10000000000000000:0:-1: +-%*1hb:+0B10000000000000000:0:-1: +-%1hb:+0b10000000000000000:0:-1: +-%*1hb:+0b10000000000000000:0:-1: +-%1hb:+10000000000101001:0:-1: +-%*1hb:+10000000000101001:0:-1: +-%1hb:+0B10000000000101001:0:-1: +-%*1hb:+0B10000000000101001:0:-1: +-%1hb:+0b10000000000101001:0:-1: +-%*1hb:+0b10000000000101001:0:-1: +-%2hb::0:-1: +-%*2hb::0:-1: +-%2hb:-1111011:1:2:65535: +-%*2hb:-1111011:0:2: +-%2hb:-0B1111011:1:2:0: +-%*2hb:-0B1111011:0:2: +-%2hb:-0b1111011:1:2:0: +-%*2hb:-0b1111011:0:2: +-%2hb:-1:1:2:65535: +-%*2hb:-1:0:2: +-%2hb:-0B1:1:2:0: +-%*2hb:-0B1:0:2: +-%2hb:-0b1:1:2:0: +-%*2hb:-0b1:0:2: +-%2hb:-0:1:2:0: +-%*2hb:-0:0:2: +-%2hb:-0B0:1:2:0: +-%*2hb:-0B0:0:2: +-%2hb:-0b0:1:2:0: +-%*2hb:-0b0:0:2: +-%2hb:0:1:1:0: +-%*2hb:0:0:1: +-# BZ12701 %2hb:0B0:0:-1: +-# BZ12701 %*2hb:0B0:0:-1: +-# BZ12701 %2hb:0b0:0:-1: +-# BZ12701 %*2hb:0b0:0:-1: +-%2hb:1:1:1:1: +-%*2hb:1:0:1: +-# BZ12701 %2hb:0B1:0:-1: +-# BZ12701 %*2hb:0B1:0:-1: +-# BZ12701 %2hb:0b1:0:-1: +-# BZ12701 %*2hb:0b1:0:-1: +-%2hb:101010:1:2:2: +-%*2hb:101010:0:2: +-# BZ12701 %2hb:0B101010:0:-1: +-# BZ12701 %*2hb:0B101010:0:-1: +-# BZ12701 %2hb:0b101010:0:-1: +-# BZ12701 %*2hb:0b101010:0:-1: +-%2hb:1111111111111111:1:2:3: +-%*2hb:1111111111111111:0:2: +-# BZ12701 %2hb:0B1111111111111111:0:-1: +-# BZ12701 %*2hb:0B1111111111111111:0:-1: +-# BZ12701 %2hb:0b1111111111111111:0:-1: +-# BZ12701 %*2hb:0b1111111111111111:0:-1: +-%2hb:10000000000000000:1:2:2: +-%*2hb:10000000000000000:0:2: +-# BZ12701 %2hb:0B10000000000000000:0:-1: +-# BZ12701 %*2hb:0B10000000000000000:0:-1: +-# BZ12701 %2hb:0b10000000000000000:0:-1: +-# BZ12701 %*2hb:0b10000000000000000:0:-1: +-%2hb:10000000000101001:1:2:2: +-%*2hb:10000000000101001:0:2: +-# BZ12701 %2hb:0B10000000000101001:0:-1: +-# BZ12701 %*2hb:0B10000000000101001:0:-1: +-# BZ12701 %2hb:0b10000000000101001:0:-1: +-# BZ12701 %*2hb:0b10000000000101001:0:-1: +-%2hb:+0:1:2:0: +-%*2hb:+0:0:2: +-%2hb:+0B0:1:2:0: +-%*2hb:+0B0:0:2: +-%2hb:+0b0:1:2:0: +-%*2hb:+0b0:0:2: +-%2hb:+1:1:2:1: +-%*2hb:+1:0:2: +-%2hb:+0B1:1:2:0: +-%*2hb:+0B1:0:2: +-%2hb:+0b1:1:2:0: +-%*2hb:+0b1:0:2: +-%2hb:+101010:1:2:1: +-%*2hb:+101010:0:2: +-%2hb:+0B101010:1:2:0: +-%*2hb:+0B101010:0:2: +-%2hb:+0b101010:1:2:0: +-%*2hb:+0b101010:0:2: +-%2hb:+1111111111111111:1:2:1: +-%*2hb:+1111111111111111:0:2: +-%2hb:+0B1111111111111111:1:2:0: +-%*2hb:+0B1111111111111111:0:2: +-%2hb:+0b1111111111111111:1:2:0: +-%*2hb:+0b1111111111111111:0:2: +-%2hb:+10000000000000000:1:2:1: +-%*2hb:+10000000000000000:0:2: +-%2hb:+0B10000000000000000:1:2:0: +-%*2hb:+0B10000000000000000:0:2: +-%2hb:+0b10000000000000000:1:2:0: +-%*2hb:+0b10000000000000000:0:2: +-%2hb:+10000000000101001:1:2:1: +-%*2hb:+10000000000101001:0:2: +-%2hb:+0B10000000000101001:1:2:0: +-%*2hb:+0B10000000000101001:0:2: +-%2hb:+0b10000000000101001:1:2:0: +-%*2hb:+0b10000000000101001:0:2: +-%4hb::0:-1: +-%*4hb::0:-1: +-%4hb:-1111011:1:4:65529: +-%*4hb:-1111011:0:4: +-%4hb:-0B1111011:1:4:65535: +-%*4hb:-0B1111011:0:4: +-%4hb:-0b1111011:1:4:65535: +-%*4hb:-0b1111011:0:4: +-%4hb:-1:1:2:65535: +-%*4hb:-1:0:2: +-%4hb:-0B1:1:4:65535: +-%*4hb:-0B1:0:4: +-%4hb:-0b1:1:4:65535: +-%*4hb:-0b1:0:4: +-%4hb:-0:1:2:0: +-%*4hb:-0:0:2: +-%4hb:-0B0:1:4:0: +-%*4hb:-0B0:0:4: +-%4hb:-0b0:1:4:0: +-%*4hb:-0b0:0:4: +-%4hb:0:1:1:0: +-%*4hb:0:0:1: +-%4hb:0B0:1:3:0: +-%*4hb:0B0:0:3: +-%4hb:0b0:1:3:0: +-%*4hb:0b0:0:3: +-%4hb:1:1:1:1: +-%*4hb:1:0:1: +-%4hb:0B1:1:3:1: +-%*4hb:0B1:0:3: +-%4hb:0b1:1:3:1: +-%*4hb:0b1:0:3: +-%4hb:101010:1:4:10: +-%*4hb:101010:0:4: +-%4hb:0B101010:1:4:2: +-%*4hb:0B101010:0:4: +-%4hb:0b101010:1:4:2: +-%*4hb:0b101010:0:4: +-%4hb:1111111111111111:1:4:15: +-%*4hb:1111111111111111:0:4: +-%4hb:0B1111111111111111:1:4:3: +-%*4hb:0B1111111111111111:0:4: +-%4hb:0b1111111111111111:1:4:3: +-%*4hb:0b1111111111111111:0:4: +-%4hb:10000000000000000:1:4:8: +-%*4hb:10000000000000000:0:4: +-%4hb:0B10000000000000000:1:4:2: +-%*4hb:0B10000000000000000:0:4: +-%4hb:0b10000000000000000:1:4:2: +-%*4hb:0b10000000000000000:0:4: +-%4hb:10000000000101001:1:4:8: +-%*4hb:10000000000101001:0:4: +-%4hb:0B10000000000101001:1:4:2: +-%*4hb:0B10000000000101001:0:4: +-%4hb:0b10000000000101001:1:4:2: +-%*4hb:0b10000000000101001:0:4: +-%4hb:+0:1:2:0: +-%*4hb:+0:0:2: +-%4hb:+0B0:1:4:0: +-%*4hb:+0B0:0:4: +-%4hb:+0b0:1:4:0: +-%*4hb:+0b0:0:4: +-%4hb:+1:1:2:1: +-%*4hb:+1:0:2: +-%4hb:+0B1:1:4:1: +-%*4hb:+0B1:0:4: +-%4hb:+0b1:1:4:1: +-%*4hb:+0b1:0:4: +-%4hb:+101010:1:4:5: +-%*4hb:+101010:0:4: +-%4hb:+0B101010:1:4:1: +-%*4hb:+0B101010:0:4: +-%4hb:+0b101010:1:4:1: +-%*4hb:+0b101010:0:4: +-%4hb:+1111111111111111:1:4:7: +-%*4hb:+1111111111111111:0:4: +-%4hb:+0B1111111111111111:1:4:1: +-%*4hb:+0B1111111111111111:0:4: +-%4hb:+0b1111111111111111:1:4:1: +-%*4hb:+0b1111111111111111:0:4: +-%4hb:+10000000000000000:1:4:4: +-%*4hb:+10000000000000000:0:4: +-%4hb:+0B10000000000000000:1:4:1: +-%*4hb:+0B10000000000000000:0:4: +-%4hb:+0b10000000000000000:1:4:1: +-%*4hb:+0b10000000000000000:0:4: +-%4hb:+10000000000101001:1:4:4: +-%*4hb:+10000000000101001:0:4: +-%4hb:+0B10000000000101001:1:4:1: +-%*4hb:+0B10000000000101001:0:4: +-%4hb:+0b10000000000101001:1:4:1: +-%*4hb:+0b10000000000101001:0:4: +-%7hb::0:-1: +-%*7hb::0:-1: +-%7hb:-1111011:1:7:65475: +-%*7hb:-1111011:0:7: +-%7hb:-0B1111011:1:7:65521: +-%*7hb:-0B1111011:0:7: +-%7hb:-0b1111011:1:7:65521: +-%*7hb:-0b1111011:0:7: +-%7hb:-1:1:2:65535: +-%*7hb:-1:0:2: +-%7hb:-0B1:1:4:65535: +-%*7hb:-0B1:0:4: +-%7hb:-0b1:1:4:65535: +-%*7hb:-0b1:0:4: +-%7hb:-0:1:2:0: +-%*7hb:-0:0:2: +-%7hb:-0B0:1:4:0: +-%*7hb:-0B0:0:4: +-%7hb:-0b0:1:4:0: +-%*7hb:-0b0:0:4: +-%7hb:0:1:1:0: +-%*7hb:0:0:1: +-%7hb:0B0:1:3:0: +-%*7hb:0B0:0:3: +-%7hb:0b0:1:3:0: +-%*7hb:0b0:0:3: +-%7hb:1:1:1:1: +-%*7hb:1:0:1: +-%7hb:0B1:1:3:1: +-%*7hb:0B1:0:3: +-%7hb:0b1:1:3:1: +-%*7hb:0b1:0:3: +-%7hb:101010:1:6:42: +-%*7hb:101010:0:6: +-%7hb:0B101010:1:7:21: +-%*7hb:0B101010:0:7: +-%7hb:0b101010:1:7:21: +-%*7hb:0b101010:0:7: +-%7hb:1111111111111111:1:7:127: +-%*7hb:1111111111111111:0:7: +-%7hb:0B1111111111111111:1:7:31: +-%*7hb:0B1111111111111111:0:7: +-%7hb:0b1111111111111111:1:7:31: +-%*7hb:0b1111111111111111:0:7: +-%7hb:10000000000000000:1:7:64: +-%*7hb:10000000000000000:0:7: +-%7hb:0B10000000000000000:1:7:16: +-%*7hb:0B10000000000000000:0:7: +-%7hb:0b10000000000000000:1:7:16: +-%*7hb:0b10000000000000000:0:7: +-%7hb:10000000000101001:1:7:64: +-%*7hb:10000000000101001:0:7: +-%7hb:0B10000000000101001:1:7:16: +-%*7hb:0B10000000000101001:0:7: +-%7hb:0b10000000000101001:1:7:16: +-%*7hb:0b10000000000101001:0:7: +-%7hb:+0:1:2:0: +-%*7hb:+0:0:2: +-%7hb:+0B0:1:4:0: +-%*7hb:+0B0:0:4: +-%7hb:+0b0:1:4:0: +-%*7hb:+0b0:0:4: +-%7hb:+1:1:2:1: +-%*7hb:+1:0:2: +-%7hb:+0B1:1:4:1: +-%*7hb:+0B1:0:4: +-%7hb:+0b1:1:4:1: +-%*7hb:+0b1:0:4: +-%7hb:+101010:1:7:42: +-%*7hb:+101010:0:7: +-%7hb:+0B101010:1:7:10: +-%*7hb:+0B101010:0:7: +-%7hb:+0b101010:1:7:10: +-%*7hb:+0b101010:0:7: +-%7hb:+1111111111111111:1:7:63: +-%*7hb:+1111111111111111:0:7: +-%7hb:+0B1111111111111111:1:7:15: +-%*7hb:+0B1111111111111111:0:7: +-%7hb:+0b1111111111111111:1:7:15: +-%*7hb:+0b1111111111111111:0:7: +-%7hb:+10000000000000000:1:7:32: +-%*7hb:+10000000000000000:0:7: +-%7hb:+0B10000000000000000:1:7:8: +-%*7hb:+0B10000000000000000:0:7: +-%7hb:+0b10000000000000000:1:7:8: +-%*7hb:+0b10000000000000000:0:7: +-%7hb:+10000000000101001:1:7:32: +-%*7hb:+10000000000101001:0:7: +-%7hb:+0B10000000000101001:1:7:8: +-%*7hb:+0B10000000000101001:0:7: +-%7hb:+0b10000000000101001:1:7:8: +-%*7hb:+0b10000000000101001:0:7: +-%2hb: :0:-1: +-%*2hb: :0:-1: +-%2hb: -1111011:1:3:65535: +-%*2hb: -1111011:0:3: +-%2hb: -0B1111011:1:3:0: +-%*2hb: -0B1111011:0:3: +-%2hb: -0b1111011:1:3:0: +-%*2hb: -0b1111011:0:3: +-%2hb: -1:1:3:65535: +-%*2hb: -1:0:3: +-%2hb: -0B1:1:3:0: +-%*2hb: -0B1:0:3: +-%2hb: -0b1:1:3:0: +-%*2hb: -0b1:0:3: +-%2hb: -0:1:3:0: +-%*2hb: -0:0:3: +-%2hb: -0B0:1:3:0: +-%*2hb: -0B0:0:3: +-%2hb: -0b0:1:3:0: +-%*2hb: -0b0:0:3: +-%2hb: 0:1:2:0: +-%*2hb: 0:0:2: +-# BZ12701 %2hb: 0B0:0:-1: +-# BZ12701 %*2hb: 0B0:0:-1: +-# BZ12701 %2hb: 0b0:0:-1: +-# BZ12701 %*2hb: 0b0:0:-1: +-%2hb: 1:1:2:1: +-%*2hb: 1:0:2: +-# BZ12701 %2hb: 0B1:0:-1: +-# BZ12701 %*2hb: 0B1:0:-1: +-# BZ12701 %2hb: 0b1:0:-1: +-# BZ12701 %*2hb: 0b1:0:-1: +-%2hb: 101010:1:3:2: +-%*2hb: 101010:0:3: +-# BZ12701 %2hb: 0B101010:0:-1: +-# BZ12701 %*2hb: 0B101010:0:-1: +-# BZ12701 %2hb: 0b101010:0:-1: +-# BZ12701 %*2hb: 0b101010:0:-1: +-%2hb: 1111111111111111:1:3:3: +-%*2hb: 1111111111111111:0:3: +-# BZ12701 %2hb: 0B1111111111111111:0:-1: +-# BZ12701 %*2hb: 0B1111111111111111:0:-1: +-# BZ12701 %2hb: 0b1111111111111111:0:-1: +-# BZ12701 %*2hb: 0b1111111111111111:0:-1: +-%2hb: 10000000000000000:1:3:2: +-%*2hb: 10000000000000000:0:3: +-# BZ12701 %2hb: 0B10000000000000000:0:-1: +-# BZ12701 %*2hb: 0B10000000000000000:0:-1: +-# BZ12701 %2hb: 0b10000000000000000:0:-1: +-# BZ12701 %*2hb: 0b10000000000000000:0:-1: +-%2hb: 10000000000101001:1:3:2: +-%*2hb: 10000000000101001:0:3: +-# BZ12701 %2hb: 0B10000000000101001:0:-1: +-# BZ12701 %*2hb: 0B10000000000101001:0:-1: +-# BZ12701 %2hb: 0b10000000000101001:0:-1: +-# BZ12701 %*2hb: 0b10000000000101001:0:-1: +-%2hb: +0:1:3:0: +-%*2hb: +0:0:3: +-%2hb: +0B0:1:3:0: +-%*2hb: +0B0:0:3: +-%2hb: +0b0:1:3:0: +-%*2hb: +0b0:0:3: +-%2hb: +1:1:3:1: +-%*2hb: +1:0:3: +-%2hb: +0B1:1:3:0: +-%*2hb: +0B1:0:3: +-%2hb: +0b1:1:3:0: +-%*2hb: +0b1:0:3: +-%2hb: +101010:1:3:1: +-%*2hb: +101010:0:3: +-%2hb: +0B101010:1:3:0: +-%*2hb: +0B101010:0:3: +-%2hb: +0b101010:1:3:0: +-%*2hb: +0b101010:0:3: +-%2hb: +1111111111111111:1:3:1: +-%*2hb: +1111111111111111:0:3: +-%2hb: +0B1111111111111111:1:3:0: +-%*2hb: +0B1111111111111111:0:3: +-%2hb: +0b1111111111111111:1:3:0: +-%*2hb: +0b1111111111111111:0:3: +-%2hb: +10000000000000000:1:3:1: +-%*2hb: +10000000000000000:0:3: +-%2hb: +0B10000000000000000:1:3:0: +-%*2hb: +0B10000000000000000:0:3: +-%2hb: +0b10000000000000000:1:3:0: +-%*2hb: +0b10000000000000000:0:3: +-%2hb: +10000000000101001:1:3:1: +-%*2hb: +10000000000101001:0:3: +-%2hb: +0B10000000000101001:1:3:0: +-%*2hb: +0B10000000000101001:0:3: +-%2hb: +0b10000000000101001:1:3:0: +-%*2hb: +0b10000000000101001:0:3: +-%7hb: :0:-1: +-%*7hb: :0:-1: +-%7hb: -1111011:1:8:65475: +-%*7hb: -1111011:0:8: +-%7hb: -0B1111011:1:8:65521: +-%*7hb: -0B1111011:0:8: +-%7hb: -0b1111011:1:8:65521: +-%*7hb: -0b1111011:0:8: +-%7hb: -1:1:3:65535: +-%*7hb: -1:0:3: +-%7hb: -0B1:1:5:65535: +-%*7hb: -0B1:0:5: +-%7hb: -0b1:1:5:65535: +-%*7hb: -0b1:0:5: +-%7hb: -0:1:3:0: +-%*7hb: -0:0:3: +-%7hb: -0B0:1:5:0: +-%*7hb: -0B0:0:5: +-%7hb: -0b0:1:5:0: +-%*7hb: -0b0:0:5: +-%7hb: 0:1:2:0: +-%*7hb: 0:0:2: +-%7hb: 0B0:1:4:0: +-%*7hb: 0B0:0:4: +-%7hb: 0b0:1:4:0: +-%*7hb: 0b0:0:4: +-%7hb: 1:1:2:1: +-%*7hb: 1:0:2: +-%7hb: 0B1:1:4:1: +-%*7hb: 0B1:0:4: +-%7hb: 0b1:1:4:1: +-%*7hb: 0b1:0:4: +-%7hb: 101010:1:7:42: +-%*7hb: 101010:0:7: +-%7hb: 0B101010:1:8:21: +-%*7hb: 0B101010:0:8: +-%7hb: 0b101010:1:8:21: +-%*7hb: 0b101010:0:8: +-%7hb: 1111111111111111:1:8:127: +-%*7hb: 1111111111111111:0:8: +-%7hb: 0B1111111111111111:1:8:31: +-%*7hb: 0B1111111111111111:0:8: +-%7hb: 0b1111111111111111:1:8:31: +-%*7hb: 0b1111111111111111:0:8: +-%7hb: 10000000000000000:1:8:64: +-%*7hb: 10000000000000000:0:8: +-%7hb: 0B10000000000000000:1:8:16: +-%*7hb: 0B10000000000000000:0:8: +-%7hb: 0b10000000000000000:1:8:16: +-%*7hb: 0b10000000000000000:0:8: +-%7hb: 10000000000101001:1:8:64: +-%*7hb: 10000000000101001:0:8: +-%7hb: 0B10000000000101001:1:8:16: +-%*7hb: 0B10000000000101001:0:8: +-%7hb: 0b10000000000101001:1:8:16: +-%*7hb: 0b10000000000101001:0:8: +-%7hb: +0:1:3:0: +-%*7hb: +0:0:3: +-%7hb: +0B0:1:5:0: +-%*7hb: +0B0:0:5: +-%7hb: +0b0:1:5:0: +-%*7hb: +0b0:0:5: +-%7hb: +1:1:3:1: +-%*7hb: +1:0:3: +-%7hb: +0B1:1:5:1: +-%*7hb: +0B1:0:5: +-%7hb: +0b1:1:5:1: +-%*7hb: +0b1:0:5: +-%7hb: +101010:1:8:42: +-%*7hb: +101010:0:8: +-%7hb: +0B101010:1:8:10: +-%*7hb: +0B101010:0:8: +-%7hb: +0b101010:1:8:10: +-%*7hb: +0b101010:0:8: +-%7hb: +1111111111111111:1:8:63: +-%*7hb: +1111111111111111:0:8: +-%7hb: +0B1111111111111111:1:8:15: +-%*7hb: +0B1111111111111111:0:8: +-%7hb: +0b1111111111111111:1:8:15: +-%*7hb: +0b1111111111111111:0:8: +-%7hb: +10000000000000000:1:8:32: +-%*7hb: +10000000000000000:0:8: +-%7hb: +0B10000000000000000:1:8:8: +-%*7hb: +0B10000000000000000:0:8: +-%7hb: +0b10000000000000000:1:8:8: +-%*7hb: +0b10000000000000000:0:8: +-%7hb: +10000000000101001:1:8:32: +-%*7hb: +10000000000101001:0:8: +-%7hb: +0B10000000000101001:1:8:8: +-%*7hb: +0B10000000000101001:0:8: +-%7hb: +0b10000000000101001:1:8:8: +-%*7hb: +0b10000000000101001:0:8: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +index 9d50b08b0b7aed3a..f25c8b68fbd2e1f2 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +@@ -16,14 +16,14 @@ + %*la:-0x0p+0:0:7: + %la:-0x0p0:1:6:-0x0: + %*la:-0x0p0:0:6: +-%la:-nan(09A_Zaz):1:13:-nan: +-%*la:-nan(09A_Zaz):0:13: +-%la:-nan():1:6:-nan: +-%*la:-nan():0:6: +-%la:nan():1:5:nan: +-%*la:nan():0:5: +-%la:nan(09A_Zaz):1:12:nan: +-%*la:nan(09A_Zaz):0:12: ++# BZ30647 %la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*la:-nan(09A_Zaz):0:13: ++# BZ30647 %la:-nan():1:6:-nan: ++# BZ30647 %*la:-nan():0:6: ++# BZ30647 %la:nan():1:5:nan: ++# BZ30647 %*la:nan():0:5: ++# BZ30647 %la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*la:nan(09A_Zaz):0:12: + %la:0x0p0:1:5:0x0: + %*la:0x0p0:0:5: + %la:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*la:0xf.ffffffffffff8p+1020:0:23: + %la:infinity:1:8:inf: + %*la:infinity:0:8: +-%la:+nan():1:6:nan: +-%*la:+nan():0:6: +-%la:+nan(09A_Zaz):1:13:nan: +-%*la:+nan(09A_Zaz):0:13: ++# BZ30647 %la:+nan():1:6:nan: ++# BZ30647 %*la:+nan():0:6: ++# BZ30647 %la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*la:+nan(09A_Zaz):0:13: + %la:+0x0p0:1:6:0x0: + %*la:+0x0p0:0:6: + %la:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1la:-0x0p+0:0:-1: + %1la:-0x0p0:0:-1: + %*1la:-0x0p0:0:-1: +-%1la:-nan(09A_Zaz):0:-1: +-%*1la:-nan(09A_Zaz):0:-1: +-%1la:-nan():0:-1: +-%*1la:-nan():0:-1: +-%1la:nan():0:-1: +-%*1la:nan():0:-1: +-%1la:nan(09A_Zaz):0:-1: +-%*1la:nan(09A_Zaz):0:-1: ++# BZ30647 %1la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:-nan(09A_Zaz):0:-1: ++# BZ30647 %1la:-nan():0:-1: ++# BZ30647 %*1la:-nan():0:-1: ++# BZ30647 %1la:nan():0:-1: ++# BZ30647 %*1la:nan():0:-1: ++# BZ30647 %1la:nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:nan(09A_Zaz):0:-1: + %1la:0x0p0:1:1:0x0: + %*1la:0x0p0:0:1: + %1la:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1la:0xf.ffffffffffff8p+1020:0:1: + %1la:infinity:0:-1: + %*1la:infinity:0:-1: +-%1la:+nan():0:-1: +-%*1la:+nan():0:-1: +-%1la:+nan(09A_Zaz):0:-1: +-%*1la:+nan(09A_Zaz):0:-1: ++# BZ30647 %1la:+nan():0:-1: ++# BZ30647 %*1la:+nan():0:-1: ++# BZ30647 %1la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:+nan(09A_Zaz):0:-1: + %1la:+0x0p0:0:-1: + %*1la:+0x0p0:0:-1: + %1la:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2la:-0x0p+0:0:2: + %2la:-0x0p0:1:2:-0x0: + %*2la:-0x0p0:0:2: +-%2la:-nan(09A_Zaz):0:-1: +-%*2la:-nan(09A_Zaz):0:-1: +-%2la:-nan():0:-1: +-%*2la:-nan():0:-1: +-%2la:nan():0:-1: +-%*2la:nan():0:-1: +-%2la:nan(09A_Zaz):0:-1: +-%*2la:nan(09A_Zaz):0:-1: ++# BZ30647 %2la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:-nan(09A_Zaz):0:-1: ++# BZ30647 %2la:-nan():0:-1: ++# BZ30647 %*2la:-nan():0:-1: ++# BZ30647 %2la:nan():0:-1: ++# BZ30647 %*2la:nan():0:-1: ++# BZ30647 %2la:nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:nan(09A_Zaz):0:-1: + # BZ12701 %2la:0x0p0:0:-1: + # BZ12701 %*2la:0x0p0:0:-1: + # BZ12701 %2la:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2la:0xf.ffffffffffff8p+1020:0:-1: + %2la:infinity:0:-1: + %*2la:infinity:0:-1: +-%2la:+nan():0:-1: +-%*2la:+nan():0:-1: +-%2la:+nan(09A_Zaz):0:-1: +-%*2la:+nan(09A_Zaz):0:-1: ++# BZ30647 %2la:+nan():0:-1: ++# BZ30647 %*2la:+nan():0:-1: ++# BZ30647 %2la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:+nan(09A_Zaz):0:-1: + %2la:+0x0p0:1:2:0x0: + %*2la:+0x0p0:0:2: + %2la:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3la:-0x0p+0:0:-1: + # BZ12701 %3la:-0x0p0:0:-1: + # BZ12701 %*3la:-0x0p0:0:-1: +-%3la:-nan(09A_Zaz):0:-1: +-%*3la:-nan(09A_Zaz):0:-1: +-%3la:-nan():0:-1: +-%*3la:-nan():0:-1: +-%3la:nan():1:3:nan: +-%*3la:nan():0:3: +-%3la:nan(09A_Zaz):1:3:nan: +-%*3la:nan(09A_Zaz):0:3: ++# BZ30647 %3la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3la:-nan(09A_Zaz):0:-1: ++# BZ30647 %3la:-nan():0:-1: ++# BZ30647 %*3la:-nan():0:-1: ++# BZ30647 %3la:nan():1:3:nan: ++# BZ30647 %*3la:nan():0:3: ++# BZ30647 %3la:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3la:nan(09A_Zaz):0:3: + %3la:0x0p0:1:3:0x0: + %*3la:0x0p0:0:3: + %3la:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3la:0xf.ffffffffffff8p+1020:0:3: + %3la:infinity:1:3:inf: + %*3la:infinity:0:3: +-%3la:+nan():0:-1: +-%*3la:+nan():0:-1: +-%3la:+nan(09A_Zaz):0:-1: +-%*3la:+nan(09A_Zaz):0:-1: ++# BZ30647 %3la:+nan():0:-1: ++# BZ30647 %*3la:+nan():0:-1: ++# BZ30647 %3la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3la:+nan(09A_Zaz):0:-1: + # BZ12701 %3la:+0x0p0:0:-1: + # BZ12701 %*3la:+0x0p0:0:-1: + # BZ12701 %3la:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4la:-0x0p+0:0:4: + %4la:-0x0p0:1:4:-0x0: + %*4la:-0x0p0:0:4: +-%4la:-nan(09A_Zaz):1:4:-nan: +-%*4la:-nan(09A_Zaz):0:4: +-%4la:-nan():1:4:-nan: +-%*4la:-nan():0:4: +-%4la:nan():0:-1: +-%*4la:nan():0:-1: +-%4la:nan(09A_Zaz):0:-1: +-%*4la:nan(09A_Zaz):0:-1: ++# BZ30647 %4la:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4la:-nan(09A_Zaz):0:4: ++# BZ30647 %4la:-nan():1:4:-nan: ++# BZ30647 %*4la:-nan():0:4: ++# BZ30647 %4la:nan():0:-1: ++# BZ30647 %*4la:nan():0:-1: ++# BZ30647 %4la:nan(09A_Zaz):0:-1: ++# BZ30647 %*4la:nan(09A_Zaz):0:-1: + # BZ12701 %4la:0x0p0:0:-1: + # BZ12701 %*4la:0x0p0:0:-1: + # BZ12701 %4la:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4la:0xf.ffffffffffff8p+1020:0:4: + %4la:infinity:0:-1: + %*4la:infinity:0:-1: +-%4la:+nan():1:4:nan: +-%*4la:+nan():0:4: +-%4la:+nan(09A_Zaz):1:4:nan: +-%*4la:+nan(09A_Zaz):0:4: ++# BZ30647 %4la:+nan():1:4:nan: ++# BZ30647 %*4la:+nan():0:4: ++# BZ30647 %4la:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4la:+nan(09A_Zaz):0:4: + %4la:+0x0p0:1:4:0x0: + %*4la:+0x0p0:0:4: + %4la:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5la:-0x0p+0:0:-1: + # BZ12701 %5la:-0x0p0:0:-1: + # BZ12701 %*5la:-0x0p0:0:-1: +-%5la:-nan(09A_Zaz):0:-1: +-%*5la:-nan(09A_Zaz):0:-1: +-%5la:-nan():0:-1: +-%*5la:-nan():0:-1: +-%5la:nan():1:5:nan: +-%*5la:nan():0:5: +-%5la:nan(09A_Zaz):0:-1: +-%*5la:nan(09A_Zaz):0:-1: ++# BZ30647 %5la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:-nan(09A_Zaz):0:-1: ++# BZ30647 %5la:-nan():0:-1: ++# BZ30647 %*5la:-nan():0:-1: ++# BZ30647 %5la:nan():1:5:nan: ++# BZ30647 %*5la:nan():0:5: ++# BZ30647 %5la:nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:nan(09A_Zaz):0:-1: + %5la:0x0p0:1:5:0x0: + %*5la:0x0p0:0:5: + # BZ12701 %5la:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5la:0xf.ffffffffffff8p+1020:0:5: + %5la:infinity:0:-1: + %*5la:infinity:0:-1: +-%5la:+nan():0:-1: +-%*5la:+nan():0:-1: +-%5la:+nan(09A_Zaz):0:-1: +-%*5la:+nan(09A_Zaz):0:-1: ++# BZ30647 %5la:+nan():0:-1: ++# BZ30647 %*5la:+nan():0:-1: ++# BZ30647 %5la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:+nan(09A_Zaz):0:-1: + # BZ12701 %5la:+0x0p0:0:-1: + # BZ12701 %*5la:+0x0p0:0:-1: + # BZ12701 %5la:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6la:-0x0p+0:0:-1: + %6la:-0x0p0:1:6:-0x0: + %*6la:-0x0p0:0:6: +-%6la:-nan(09A_Zaz):0:-1: +-%*6la:-nan(09A_Zaz):0:-1: +-%6la:-nan():1:6:-nan: +-%*6la:-nan():0:6: +-%6la:nan():1:5:nan: +-%*6la:nan():0:5: +-%6la:nan(09A_Zaz):0:-1: +-%*6la:nan(09A_Zaz):0:-1: ++# BZ30647 %6la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:-nan(09A_Zaz):0:-1: ++# BZ30647 %6la:-nan():1:6:-nan: ++# BZ30647 %*6la:-nan():0:6: ++# BZ30647 %6la:nan():1:5:nan: ++# BZ30647 %*6la:nan():0:5: ++# BZ30647 %6la:nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:nan(09A_Zaz):0:-1: + %6la:0x0p0:1:5:0x0: + %*6la:0x0p0:0:5: + %6la:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6la:0xf.ffffffffffff8p+1020:0:6: + %6la:infinity:0:-1: + %*6la:infinity:0:-1: +-%6la:+nan():1:6:nan: +-%*6la:+nan():0:6: +-%6la:+nan(09A_Zaz):0:-1: +-%*6la:+nan(09A_Zaz):0:-1: ++# BZ30647 %6la:+nan():1:6:nan: ++# BZ30647 %*6la:+nan():0:6: ++# BZ30647 %6la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:+nan(09A_Zaz):0:-1: + %6la:+0x0p0:1:6:0x0: + %*6la:+0x0p0:0:6: + # BZ12701 %6la:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20la:-0x0p+0:0:7: + %20la:-0x0p0:1:6:-0x0: + %*20la:-0x0p0:0:6: +-%20la:-nan(09A_Zaz):1:13:-nan: +-%*20la:-nan(09A_Zaz):0:13: +-%20la:-nan():1:6:-nan: +-%*20la:-nan():0:6: +-%20la:nan():1:5:nan: +-%*20la:nan():0:5: +-%20la:nan(09A_Zaz):1:12:nan: +-%*20la:nan(09A_Zaz):0:12: ++# BZ30647 %20la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20la:-nan(09A_Zaz):0:13: ++# BZ30647 %20la:-nan():1:6:-nan: ++# BZ30647 %*20la:-nan():0:6: ++# BZ30647 %20la:nan():1:5:nan: ++# BZ30647 %*20la:nan():0:5: ++# BZ30647 %20la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20la:nan(09A_Zaz):0:12: + %20la:0x0p0:1:5:0x0: + %*20la:0x0p0:0:5: + %20la:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20la:0xf.ffffffffffff8p+1020:0:20: + %20la:infinity:1:8:inf: + %*20la:infinity:0:8: +-%20la:+nan():1:6:nan: +-%*20la:+nan():0:6: +-%20la:+nan(09A_Zaz):1:13:nan: +-%*20la:+nan(09A_Zaz):0:13: ++# BZ30647 %20la:+nan():1:6:nan: ++# BZ30647 %*20la:+nan():0:6: ++# BZ30647 %20la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20la:+nan(09A_Zaz):0:13: + %20la:+0x0p0:1:6:0x0: + %*20la:+0x0p0:0:6: + %20la:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32la:-0x0p+0:0:7: + %32la:-0x0p0:1:6:-0x0: + %*32la:-0x0p0:0:6: +-%32la:-nan(09A_Zaz):1:13:-nan: +-%*32la:-nan(09A_Zaz):0:13: +-%32la:-nan():1:6:-nan: +-%*32la:-nan():0:6: +-%32la:nan():1:5:nan: +-%*32la:nan():0:5: +-%32la:nan(09A_Zaz):1:12:nan: +-%*32la:nan(09A_Zaz):0:12: ++# BZ30647 %32la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32la:-nan(09A_Zaz):0:13: ++# BZ30647 %32la:-nan():1:6:-nan: ++# BZ30647 %*32la:-nan():0:6: ++# BZ30647 %32la:nan():1:5:nan: ++# BZ30647 %*32la:nan():0:5: ++# BZ30647 %32la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32la:nan(09A_Zaz):0:12: + %32la:0x0p0:1:5:0x0: + %*32la:0x0p0:0:5: + %32la:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32la:0xf.ffffffffffff8p+1020:0:23: + %32la:infinity:1:8:inf: + %*32la:infinity:0:8: +-%32la:+nan():1:6:nan: +-%*32la:+nan():0:6: +-%32la:+nan(09A_Zaz):1:13:nan: +-%*32la:+nan(09A_Zaz):0:13: ++# BZ30647 %32la:+nan():1:6:nan: ++# BZ30647 %*32la:+nan():0:6: ++# BZ30647 %32la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32la:+nan(09A_Zaz):0:13: + %32la:+0x0p0:1:6:0x0: + %*32la:+0x0p0:0:6: + %32la:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5la: -0x0p+0:0:-1: + # BZ12701 %5la: -0x0p0:0:-1: + # BZ12701 %*5la: -0x0p0:0:-1: +-%5la: -nan(09A_Zaz):0:-1: +-%*5la: -nan(09A_Zaz):0:-1: +-%5la: -nan():0:-1: +-%*5la: -nan():0:-1: +-%5la: nan():1:6:nan: +-%*5la: nan():0:6: +-%5la: nan(09A_Zaz):0:-1: +-%*5la: nan(09A_Zaz):0:-1: ++# BZ30647 %5la: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: -nan(09A_Zaz):0:-1: ++# BZ30647 %5la: -nan():0:-1: ++# BZ30647 %*5la: -nan():0:-1: ++# BZ30647 %5la: nan():1:6:nan: ++# BZ30647 %*5la: nan():0:6: ++# BZ30647 %5la: nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: nan(09A_Zaz):0:-1: + %5la: 0x0p0:1:6:0x0: + %*5la: 0x0p0:0:6: + # BZ12701 %5la: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5la: 0xf.ffffffffffff8p+1020:0:6: + %5la: infinity:0:-1: + %*5la: infinity:0:-1: +-%5la: +nan():0:-1: +-%*5la: +nan():0:-1: +-%5la: +nan(09A_Zaz):0:-1: +-%*5la: +nan(09A_Zaz):0:-1: ++# BZ30647 %5la: +nan():0:-1: ++# BZ30647 %*5la: +nan():0:-1: ++# BZ30647 %5la: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: +nan(09A_Zaz):0:-1: + # BZ12701 %5la: +0x0p0:0:-1: + # BZ12701 %*5la: +0x0p0:0:-1: + # BZ12701 %5la: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32la: -0x0p+0:0:8: + %32la: -0x0p0:1:7:-0x0: + %*32la: -0x0p0:0:7: +-%32la: -nan(09A_Zaz):1:14:-nan: +-%*32la: -nan(09A_Zaz):0:14: +-%32la: -nan():1:7:-nan: +-%*32la: -nan():0:7: +-%32la: nan():1:6:nan: +-%*32la: nan():0:6: +-%32la: nan(09A_Zaz):1:13:nan: +-%*32la: nan(09A_Zaz):0:13: ++# BZ30647 %32la: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32la: -nan(09A_Zaz):0:14: ++# BZ30647 %32la: -nan():1:7:-nan: ++# BZ30647 %*32la: -nan():0:7: ++# BZ30647 %32la: nan():1:6:nan: ++# BZ30647 %*32la: nan():0:6: ++# BZ30647 %32la: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32la: nan(09A_Zaz):0:13: + %32la: 0x0p0:1:6:0x0: + %*32la: 0x0p0:0:6: + %32la: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32la: 0xf.ffffffffffff8p+1020:0:24: + %32la: infinity:1:9:inf: + %*32la: infinity:0:9: +-%32la: +nan():1:7:nan: +-%*32la: +nan():0:7: +-%32la: +nan(09A_Zaz):1:14:nan: +-%*32la: +nan(09A_Zaz):0:14: ++# BZ30647 %32la: +nan():1:7:nan: ++# BZ30647 %*32la: +nan():0:7: ++# BZ30647 %32la: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32la: +nan(09A_Zaz):0:14: + %32la: +0x0p0:1:7:0x0: + %*32la: +0x0p0:0:7: + %32la: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +index 3b5a4fe81268339e..adf5b3dd4e72e7eb 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +@@ -16,14 +16,14 @@ + %*lA:-0X0P+0:0:7: + %lA:-0X0P0:1:6:-0x0: + %*lA:-0X0P0:0:6: +-%lA:-NAN(09A_Zaz):1:13:-nan: +-%*lA:-NAN(09A_Zaz):0:13: +-%lA:-NAN():1:6:-nan: +-%*lA:-NAN():0:6: +-%lA:NAN():1:5:nan: +-%*lA:NAN():0:5: +-%lA:NAN(09A_Zaz):1:12:nan: +-%*lA:NAN(09A_Zaz):0:12: ++# BZ30647 %lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %lA:-NAN():1:6:-nan: ++# BZ30647 %*lA:-NAN():0:6: ++# BZ30647 %lA:NAN():1:5:nan: ++# BZ30647 %*lA:NAN():0:5: ++# BZ30647 %lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lA:NAN(09A_Zaz):0:12: + %lA:0X0P0:1:5:0x0: + %*lA:0X0P0:0:5: + %lA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %lA:INFINITY:1:8:inf: + %*lA:INFINITY:0:8: +-%lA:+NAN():1:6:nan: +-%*lA:+NAN():0:6: +-%lA:+NAN(09A_Zaz):1:13:nan: +-%*lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %lA:+NAN():1:6:nan: ++# BZ30647 %*lA:+NAN():0:6: ++# BZ30647 %lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lA:+NAN(09A_Zaz):0:13: + %lA:+0X0P0:1:6:0x0: + %*lA:+0X0P0:0:6: + %lA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lA:-0X0P+0:0:-1: + %1lA:-0X0P0:0:-1: + %*1lA:-0X0P0:0:-1: +-%1lA:-NAN(09A_Zaz):0:-1: +-%*1lA:-NAN(09A_Zaz):0:-1: +-%1lA:-NAN():0:-1: +-%*1lA:-NAN():0:-1: +-%1lA:NAN():0:-1: +-%*1lA:NAN():0:-1: +-%1lA:NAN(09A_Zaz):0:-1: +-%*1lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:-NAN():0:-1: ++# BZ30647 %*1lA:-NAN():0:-1: ++# BZ30647 %1lA:NAN():0:-1: ++# BZ30647 %*1lA:NAN():0:-1: ++# BZ30647 %1lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:NAN(09A_Zaz):0:-1: + %1lA:0X0P0:1:1:0x0: + %*1lA:0X0P0:0:1: + %1lA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lA:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1lA:INFINITY:0:-1: + %*1lA:INFINITY:0:-1: +-%1lA:+NAN():0:-1: +-%*1lA:+NAN():0:-1: +-%1lA:+NAN(09A_Zaz):0:-1: +-%*1lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:+NAN():0:-1: ++# BZ30647 %*1lA:+NAN():0:-1: ++# BZ30647 %1lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:+NAN(09A_Zaz):0:-1: + %1lA:+0X0P0:0:-1: + %*1lA:+0X0P0:0:-1: + %1lA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lA:-0X0P+0:0:2: + %2lA:-0X0P0:1:2:-0x0: + %*2lA:-0X0P0:0:2: +-%2lA:-NAN(09A_Zaz):0:-1: +-%*2lA:-NAN(09A_Zaz):0:-1: +-%2lA:-NAN():0:-1: +-%*2lA:-NAN():0:-1: +-%2lA:NAN():0:-1: +-%*2lA:NAN():0:-1: +-%2lA:NAN(09A_Zaz):0:-1: +-%*2lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:-NAN():0:-1: ++# BZ30647 %*2lA:-NAN():0:-1: ++# BZ30647 %2lA:NAN():0:-1: ++# BZ30647 %*2lA:NAN():0:-1: ++# BZ30647 %2lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:NAN(09A_Zaz):0:-1: + # BZ12701 %2lA:0X0P0:0:-1: + # BZ12701 %*2lA:0X0P0:0:-1: + # BZ12701 %2lA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2lA:INFINITY:0:-1: + %*2lA:INFINITY:0:-1: +-%2lA:+NAN():0:-1: +-%*2lA:+NAN():0:-1: +-%2lA:+NAN(09A_Zaz):0:-1: +-%*2lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:+NAN():0:-1: ++# BZ30647 %*2lA:+NAN():0:-1: ++# BZ30647 %2lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:+NAN(09A_Zaz):0:-1: + %2lA:+0X0P0:1:2:0x0: + %*2lA:+0X0P0:0:2: + %2lA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lA:-0X0P+0:0:-1: + # BZ12701 %3lA:-0X0P0:0:-1: + # BZ12701 %*3lA:-0X0P0:0:-1: +-%3lA:-NAN(09A_Zaz):0:-1: +-%*3lA:-NAN(09A_Zaz):0:-1: +-%3lA:-NAN():0:-1: +-%*3lA:-NAN():0:-1: +-%3lA:NAN():1:3:nan: +-%*3lA:NAN():0:3: +-%3lA:NAN(09A_Zaz):1:3:nan: +-%*3lA:NAN(09A_Zaz):0:3: ++# BZ30647 %3lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lA:-NAN():0:-1: ++# BZ30647 %*3lA:-NAN():0:-1: ++# BZ30647 %3lA:NAN():1:3:nan: ++# BZ30647 %*3lA:NAN():0:3: ++# BZ30647 %3lA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lA:NAN(09A_Zaz):0:3: + %3lA:0X0P0:1:3:0x0: + %*3lA:0X0P0:0:3: + %3lA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lA:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3lA:INFINITY:1:3:inf: + %*3lA:INFINITY:0:3: +-%3lA:+NAN():0:-1: +-%*3lA:+NAN():0:-1: +-%3lA:+NAN(09A_Zaz):0:-1: +-%*3lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lA:+NAN():0:-1: ++# BZ30647 %*3lA:+NAN():0:-1: ++# BZ30647 %3lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lA:+0X0P0:0:-1: + # BZ12701 %*3lA:+0X0P0:0:-1: + # BZ12701 %3lA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lA:-0X0P+0:0:4: + %4lA:-0X0P0:1:4:-0x0: + %*4lA:-0X0P0:0:4: +-%4lA:-NAN(09A_Zaz):1:4:-nan: +-%*4lA:-NAN(09A_Zaz):0:4: +-%4lA:-NAN():1:4:-nan: +-%*4lA:-NAN():0:4: +-%4lA:NAN():0:-1: +-%*4lA:NAN():0:-1: +-%4lA:NAN(09A_Zaz):0:-1: +-%*4lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lA:-NAN():1:4:-nan: ++# BZ30647 %*4lA:-NAN():0:4: ++# BZ30647 %4lA:NAN():0:-1: ++# BZ30647 %*4lA:NAN():0:-1: ++# BZ30647 %4lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lA:NAN(09A_Zaz):0:-1: + # BZ12701 %4lA:0X0P0:0:-1: + # BZ12701 %*4lA:0X0P0:0:-1: + # BZ12701 %4lA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lA:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4lA:INFINITY:0:-1: + %*4lA:INFINITY:0:-1: +-%4lA:+NAN():1:4:nan: +-%*4lA:+NAN():0:4: +-%4lA:+NAN(09A_Zaz):1:4:nan: +-%*4lA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lA:+NAN():1:4:nan: ++# BZ30647 %*4lA:+NAN():0:4: ++# BZ30647 %4lA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lA:+NAN(09A_Zaz):0:4: + %4lA:+0X0P0:1:4:0x0: + %*4lA:+0X0P0:0:4: + %4lA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lA:-0X0P+0:0:-1: + # BZ12701 %5lA:-0X0P0:0:-1: + # BZ12701 %*5lA:-0X0P0:0:-1: +-%5lA:-NAN(09A_Zaz):0:-1: +-%*5lA:-NAN(09A_Zaz):0:-1: +-%5lA:-NAN():0:-1: +-%*5lA:-NAN():0:-1: +-%5lA:NAN():1:5:nan: +-%*5lA:NAN():0:5: +-%5lA:NAN(09A_Zaz):0:-1: +-%*5lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:-NAN():0:-1: ++# BZ30647 %*5lA:-NAN():0:-1: ++# BZ30647 %5lA:NAN():1:5:nan: ++# BZ30647 %*5lA:NAN():0:5: ++# BZ30647 %5lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:NAN(09A_Zaz):0:-1: + %5lA:0X0P0:1:5:0x0: + %*5lA:0X0P0:0:5: + # BZ12701 %5lA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lA:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5lA:INFINITY:0:-1: + %*5lA:INFINITY:0:-1: +-%5lA:+NAN():0:-1: +-%*5lA:+NAN():0:-1: +-%5lA:+NAN(09A_Zaz):0:-1: +-%*5lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:+NAN():0:-1: ++# BZ30647 %*5lA:+NAN():0:-1: ++# BZ30647 %5lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5lA:+0X0P0:0:-1: + # BZ12701 %*5lA:+0X0P0:0:-1: + # BZ12701 %5lA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lA:-0X0P+0:0:-1: + %6lA:-0X0P0:1:6:-0x0: + %*6lA:-0X0P0:0:6: +-%6lA:-NAN(09A_Zaz):0:-1: +-%*6lA:-NAN(09A_Zaz):0:-1: +-%6lA:-NAN():1:6:-nan: +-%*6lA:-NAN():0:6: +-%6lA:NAN():1:5:nan: +-%*6lA:NAN():0:5: +-%6lA:NAN(09A_Zaz):0:-1: +-%*6lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:-NAN():1:6:-nan: ++# BZ30647 %*6lA:-NAN():0:6: ++# BZ30647 %6lA:NAN():1:5:nan: ++# BZ30647 %*6lA:NAN():0:5: ++# BZ30647 %6lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:NAN(09A_Zaz):0:-1: + %6lA:0X0P0:1:5:0x0: + %*6lA:0X0P0:0:5: + %6lA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lA:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6lA:INFINITY:0:-1: + %*6lA:INFINITY:0:-1: +-%6lA:+NAN():1:6:nan: +-%*6lA:+NAN():0:6: +-%6lA:+NAN(09A_Zaz):0:-1: +-%*6lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:+NAN():1:6:nan: ++# BZ30647 %*6lA:+NAN():0:6: ++# BZ30647 %6lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:+NAN(09A_Zaz):0:-1: + %6lA:+0X0P0:1:6:0x0: + %*6lA:+0X0P0:0:6: + # BZ12701 %6lA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lA:-0X0P+0:0:7: + %20lA:-0X0P0:1:6:-0x0: + %*20lA:-0X0P0:0:6: +-%20lA:-NAN(09A_Zaz):1:13:-nan: +-%*20lA:-NAN(09A_Zaz):0:13: +-%20lA:-NAN():1:6:-nan: +-%*20lA:-NAN():0:6: +-%20lA:NAN():1:5:nan: +-%*20lA:NAN():0:5: +-%20lA:NAN(09A_Zaz):1:12:nan: +-%*20lA:NAN(09A_Zaz):0:12: ++# BZ30647 %20lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %20lA:-NAN():1:6:-nan: ++# BZ30647 %*20lA:-NAN():0:6: ++# BZ30647 %20lA:NAN():1:5:nan: ++# BZ30647 %*20lA:NAN():0:5: ++# BZ30647 %20lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20lA:NAN(09A_Zaz):0:12: + %20lA:0X0P0:1:5:0x0: + %*20lA:0X0P0:0:5: + %20lA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lA:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20lA:INFINITY:1:8:inf: + %*20lA:INFINITY:0:8: +-%20lA:+NAN():1:6:nan: +-%*20lA:+NAN():0:6: +-%20lA:+NAN(09A_Zaz):1:13:nan: +-%*20lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %20lA:+NAN():1:6:nan: ++# BZ30647 %*20lA:+NAN():0:6: ++# BZ30647 %20lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20lA:+NAN(09A_Zaz):0:13: + %20lA:+0X0P0:1:6:0x0: + %*20lA:+0X0P0:0:6: + %20lA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lA:-0X0P+0:0:7: + %32lA:-0X0P0:1:6:-0x0: + %*32lA:-0X0P0:0:6: +-%32lA:-NAN(09A_Zaz):1:13:-nan: +-%*32lA:-NAN(09A_Zaz):0:13: +-%32lA:-NAN():1:6:-nan: +-%*32lA:-NAN():0:6: +-%32lA:NAN():1:5:nan: +-%*32lA:NAN():0:5: +-%32lA:NAN(09A_Zaz):1:12:nan: +-%*32lA:NAN(09A_Zaz):0:12: ++# BZ30647 %32lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %32lA:-NAN():1:6:-nan: ++# BZ30647 %*32lA:-NAN():0:6: ++# BZ30647 %32lA:NAN():1:5:nan: ++# BZ30647 %*32lA:NAN():0:5: ++# BZ30647 %32lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32lA:NAN(09A_Zaz):0:12: + %32lA:0X0P0:1:5:0x0: + %*32lA:0X0P0:0:5: + %32lA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32lA:INFINITY:1:8:inf: + %*32lA:INFINITY:0:8: +-%32lA:+NAN():1:6:nan: +-%*32lA:+NAN():0:6: +-%32lA:+NAN(09A_Zaz):1:13:nan: +-%*32lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %32lA:+NAN():1:6:nan: ++# BZ30647 %*32lA:+NAN():0:6: ++# BZ30647 %32lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lA:+NAN(09A_Zaz):0:13: + %32lA:+0X0P0:1:6:0x0: + %*32lA:+0X0P0:0:6: + %32lA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lA: -0X0P+0:0:-1: + # BZ12701 %5lA: -0X0P0:0:-1: + # BZ12701 %*5lA: -0X0P0:0:-1: +-%5lA: -NAN(09A_Zaz):0:-1: +-%*5lA: -NAN(09A_Zaz):0:-1: +-%5lA: -NAN():0:-1: +-%*5lA: -NAN():0:-1: +-%5lA: NAN():1:6:nan: +-%*5lA: NAN():0:6: +-%5lA: NAN(09A_Zaz):0:-1: +-%*5lA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: -NAN():0:-1: ++# BZ30647 %*5lA: -NAN():0:-1: ++# BZ30647 %5lA: NAN():1:6:nan: ++# BZ30647 %*5lA: NAN():0:6: ++# BZ30647 %5lA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: NAN(09A_Zaz):0:-1: + %5lA: 0X0P0:1:6:0x0: + %*5lA: 0X0P0:0:6: + # BZ12701 %5lA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lA: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5lA: INFINITY:0:-1: + %*5lA: INFINITY:0:-1: +-%5lA: +NAN():0:-1: +-%*5lA: +NAN():0:-1: +-%5lA: +NAN(09A_Zaz):0:-1: +-%*5lA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: +NAN():0:-1: ++# BZ30647 %*5lA: +NAN():0:-1: ++# BZ30647 %5lA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5lA: +0X0P0:0:-1: + # BZ12701 %*5lA: +0X0P0:0:-1: + # BZ12701 %5lA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lA: -0X0P+0:0:8: + %32lA: -0X0P0:1:7:-0x0: + %*32lA: -0X0P0:0:7: +-%32lA: -NAN(09A_Zaz):1:14:-nan: +-%*32lA: -NAN(09A_Zaz):0:14: +-%32lA: -NAN():1:7:-nan: +-%*32lA: -NAN():0:7: +-%32lA: NAN():1:6:nan: +-%*32lA: NAN():0:6: +-%32lA: NAN(09A_Zaz):1:13:nan: +-%*32lA: NAN(09A_Zaz):0:13: ++# BZ30647 %32lA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lA: -NAN(09A_Zaz):0:14: ++# BZ30647 %32lA: -NAN():1:7:-nan: ++# BZ30647 %*32lA: -NAN():0:7: ++# BZ30647 %32lA: NAN():1:6:nan: ++# BZ30647 %*32lA: NAN():0:6: ++# BZ30647 %32lA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lA: NAN(09A_Zaz):0:13: + %32lA: 0X0P0:1:6:0x0: + %*32lA: 0X0P0:0:6: + %32lA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lA: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32lA: INFINITY:1:9:inf: + %*32lA: INFINITY:0:9: +-%32lA: +NAN():1:7:nan: +-%*32lA: +NAN():0:7: +-%32lA: +NAN(09A_Zaz):1:14:nan: +-%*32lA: +NAN(09A_Zaz):0:14: ++# BZ30647 %32lA: +NAN():1:7:nan: ++# BZ30647 %*32lA: +NAN():0:7: ++# BZ30647 %32lA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32lA: +NAN(09A_Zaz):0:14: + %32lA: +0X0P0:1:7:0x0: + %*32lA: +0X0P0:0:7: + %32lA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +index cf1ea542c94e4082..703d785642b58e51 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +@@ -16,14 +16,14 @@ + %*le:-0e+0:0:5: + %le:-0e0:1:4:-0x0: + %*le:-0e0:0:4: +-%le:-nan(09A_Zaz):1:13:-nan: +-%*le:-nan(09A_Zaz):0:13: +-%le:-nan():1:6:-nan: +-%*le:-nan():0:6: +-%le:nan():1:5:nan: +-%*le:nan():0:5: +-%le:nan(09A_Zaz):1:12:nan: +-%*le:nan(09A_Zaz):0:12: ++# BZ30647 %le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*le:-nan(09A_Zaz):0:13: ++# BZ30647 %le:-nan():1:6:-nan: ++# BZ30647 %*le:-nan():0:6: ++# BZ30647 %le:nan():1:5:nan: ++# BZ30647 %*le:nan():0:5: ++# BZ30647 %le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*le:nan(09A_Zaz):0:12: + %le:0e0:1:3:0x0: + %*le:0e0:0:3: + %le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*le:1.79769313486231570814527423731704357e+308:0:42: + %le:infinity:1:8:inf: + %*le:infinity:0:8: +-%le:+nan():1:6:nan: +-%*le:+nan():0:6: +-%le:+nan(09A_Zaz):1:13:nan: +-%*le:+nan(09A_Zaz):0:13: ++# BZ30647 %le:+nan():1:6:nan: ++# BZ30647 %*le:+nan():0:6: ++# BZ30647 %le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*le:+nan(09A_Zaz):0:13: + %le:+0e0:1:4:0x0: + %*le:+0e0:0:4: + %le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1le:-0e+0:0:-1: + %1le:-0e0:0:-1: + %*1le:-0e0:0:-1: +-%1le:-nan(09A_Zaz):0:-1: +-%*1le:-nan(09A_Zaz):0:-1: +-%1le:-nan():0:-1: +-%*1le:-nan():0:-1: +-%1le:nan():0:-1: +-%*1le:nan():0:-1: +-%1le:nan(09A_Zaz):0:-1: +-%*1le:nan(09A_Zaz):0:-1: ++# BZ30647 %1le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1le:-nan():0:-1: ++# BZ30647 %*1le:-nan():0:-1: ++# BZ30647 %1le:nan():0:-1: ++# BZ30647 %*1le:nan():0:-1: ++# BZ30647 %1le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:nan(09A_Zaz):0:-1: + %1le:0e0:1:1:0x0: + %*1le:0e0:0:1: + %1le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1le:1.79769313486231570814527423731704357e+308:0:1: + %1le:infinity:0:-1: + %*1le:infinity:0:-1: +-%1le:+nan():0:-1: +-%*1le:+nan():0:-1: +-%1le:+nan(09A_Zaz):0:-1: +-%*1le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1le:+nan():0:-1: ++# BZ30647 %*1le:+nan():0:-1: ++# BZ30647 %1le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:+nan(09A_Zaz):0:-1: + %1le:+0e0:0:-1: + %*1le:+0e0:0:-1: + %1le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2le:-0e+0:0:2: + %2le:-0e0:1:2:-0x0: + %*2le:-0e0:0:2: +-%2le:-nan(09A_Zaz):0:-1: +-%*2le:-nan(09A_Zaz):0:-1: +-%2le:-nan():0:-1: +-%*2le:-nan():0:-1: +-%2le:nan():0:-1: +-%*2le:nan():0:-1: +-%2le:nan(09A_Zaz):0:-1: +-%*2le:nan(09A_Zaz):0:-1: ++# BZ30647 %2le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2le:-nan():0:-1: ++# BZ30647 %*2le:-nan():0:-1: ++# BZ30647 %2le:nan():0:-1: ++# BZ30647 %*2le:nan():0:-1: ++# BZ30647 %2le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:nan(09A_Zaz):0:-1: + # BZ12701 %2le:0e0:0:-1: + # BZ12701 %*2le:0e0:0:-1: + # BZ12701 %2le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2le:1.79769313486231570814527423731704357e+308:0:2: + %2le:infinity:0:-1: + %*2le:infinity:0:-1: +-%2le:+nan():0:-1: +-%*2le:+nan():0:-1: +-%2le:+nan(09A_Zaz):0:-1: +-%*2le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2le:+nan():0:-1: ++# BZ30647 %*2le:+nan():0:-1: ++# BZ30647 %2le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:+nan(09A_Zaz):0:-1: + %2le:+0e0:1:2:0x0: + %*2le:+0e0:0:2: + %2le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3le:-0e+0:0:-1: + # BZ12701 %3le:-0e0:0:-1: + # BZ12701 %*3le:-0e0:0:-1: +-%3le:-nan(09A_Zaz):0:-1: +-%*3le:-nan(09A_Zaz):0:-1: +-%3le:-nan():0:-1: +-%*3le:-nan():0:-1: +-%3le:nan():1:3:nan: +-%*3le:nan():0:3: +-%3le:nan(09A_Zaz):1:3:nan: +-%*3le:nan(09A_Zaz):0:3: ++# BZ30647 %3le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3le:-nan():0:-1: ++# BZ30647 %*3le:-nan():0:-1: ++# BZ30647 %3le:nan():1:3:nan: ++# BZ30647 %*3le:nan():0:3: ++# BZ30647 %3le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3le:nan(09A_Zaz):0:3: + %3le:0e0:1:3:0x0: + %*3le:0e0:0:3: + # BZ12701 %3le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3le:1.79769313486231570814527423731704357e+308:0:3: + %3le:infinity:1:3:inf: + %*3le:infinity:0:3: +-%3le:+nan():0:-1: +-%*3le:+nan():0:-1: +-%3le:+nan(09A_Zaz):0:-1: +-%*3le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3le:+nan():0:-1: ++# BZ30647 %*3le:+nan():0:-1: ++# BZ30647 %3le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3le:+nan(09A_Zaz):0:-1: + # BZ12701 %3le:+0e0:0:-1: + # BZ12701 %*3le:+0e0:0:-1: + # BZ12701 %3le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4le:-0e+0:0:-1: + %4le:-0e0:1:4:-0x0: + %*4le:-0e0:0:4: +-%4le:-nan(09A_Zaz):1:4:-nan: +-%*4le:-nan(09A_Zaz):0:4: +-%4le:-nan():1:4:-nan: +-%*4le:-nan():0:4: +-%4le:nan():0:-1: +-%*4le:nan():0:-1: +-%4le:nan(09A_Zaz):0:-1: +-%*4le:nan(09A_Zaz):0:-1: ++# BZ30647 %4le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4le:-nan(09A_Zaz):0:4: ++# BZ30647 %4le:-nan():1:4:-nan: ++# BZ30647 %*4le:-nan():0:4: ++# BZ30647 %4le:nan():0:-1: ++# BZ30647 %*4le:nan():0:-1: ++# BZ30647 %4le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4le:nan(09A_Zaz):0:-1: + %4le:0e0:1:3:0x0: + %*4le:0e0:0:3: + %4le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4le:1.79769313486231570814527423731704357e+308:0:4: + %4le:infinity:0:-1: + %*4le:infinity:0:-1: +-%4le:+nan():1:4:nan: +-%*4le:+nan():0:4: +-%4le:+nan(09A_Zaz):1:4:nan: +-%*4le:+nan(09A_Zaz):0:4: ++# BZ30647 %4le:+nan():1:4:nan: ++# BZ30647 %*4le:+nan():0:4: ++# BZ30647 %4le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4le:+nan(09A_Zaz):0:4: + %4le:+0e0:1:4:0x0: + %*4le:+0e0:0:4: + # BZ12701 %4le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40le:-0e+0:0:5: + %40le:-0e0:1:4:-0x0: + %*40le:-0e0:0:4: +-%40le:-nan(09A_Zaz):1:13:-nan: +-%*40le:-nan(09A_Zaz):0:13: +-%40le:-nan():1:6:-nan: +-%*40le:-nan():0:6: +-%40le:nan():1:5:nan: +-%*40le:nan():0:5: +-%40le:nan(09A_Zaz):1:12:nan: +-%*40le:nan(09A_Zaz):0:12: ++# BZ30647 %40le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40le:-nan(09A_Zaz):0:13: ++# BZ30647 %40le:-nan():1:6:-nan: ++# BZ30647 %*40le:-nan():0:6: ++# BZ30647 %40le:nan():1:5:nan: ++# BZ30647 %*40le:nan():0:5: ++# BZ30647 %40le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40le:nan(09A_Zaz):0:12: + %40le:0e0:1:3:0x0: + %*40le:0e0:0:3: + %40le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40le:1.79769313486231570814527423731704357e+308:0:40: + %40le:infinity:1:8:inf: + %*40le:infinity:0:8: +-%40le:+nan():1:6:nan: +-%*40le:+nan():0:6: +-%40le:+nan(09A_Zaz):1:13:nan: +-%*40le:+nan(09A_Zaz):0:13: ++# BZ30647 %40le:+nan():1:6:nan: ++# BZ30647 %*40le:+nan():0:6: ++# BZ30647 %40le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40le:+nan(09A_Zaz):0:13: + %40le:+0e0:1:4:0x0: + %*40le:+0e0:0:4: + %40le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48le:-0e+0:0:5: + %48le:-0e0:1:4:-0x0: + %*48le:-0e0:0:4: +-%48le:-nan(09A_Zaz):1:13:-nan: +-%*48le:-nan(09A_Zaz):0:13: +-%48le:-nan():1:6:-nan: +-%*48le:-nan():0:6: +-%48le:nan():1:5:nan: +-%*48le:nan():0:5: +-%48le:nan(09A_Zaz):1:12:nan: +-%*48le:nan(09A_Zaz):0:12: ++# BZ30647 %48le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48le:-nan(09A_Zaz):0:13: ++# BZ30647 %48le:-nan():1:6:-nan: ++# BZ30647 %*48le:-nan():0:6: ++# BZ30647 %48le:nan():1:5:nan: ++# BZ30647 %*48le:nan():0:5: ++# BZ30647 %48le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48le:nan(09A_Zaz):0:12: + %48le:0e0:1:3:0x0: + %*48le:0e0:0:3: + %48le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48le:1.79769313486231570814527423731704357e+308:0:42: + %48le:infinity:1:8:inf: + %*48le:infinity:0:8: +-%48le:+nan():1:6:nan: +-%*48le:+nan():0:6: +-%48le:+nan(09A_Zaz):1:13:nan: +-%*48le:+nan(09A_Zaz):0:13: ++# BZ30647 %48le:+nan():1:6:nan: ++# BZ30647 %*48le:+nan():0:6: ++# BZ30647 %48le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48le:+nan(09A_Zaz):0:13: + %48le:+0e0:1:4:0x0: + %*48le:+0e0:0:4: + %48le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3le: -0e+0:0:-1: + # BZ12701 %3le: -0e0:0:-1: + # BZ12701 %*3le: -0e0:0:-1: +-%3le: -nan(09A_Zaz):0:-1: +-%*3le: -nan(09A_Zaz):0:-1: +-%3le: -nan():0:-1: +-%*3le: -nan():0:-1: +-%3le: nan():1:4:nan: +-%*3le: nan():0:4: +-%3le: nan(09A_Zaz):1:4:nan: +-%*3le: nan(09A_Zaz):0:4: ++# BZ30647 %3le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3le: -nan():0:-1: ++# BZ30647 %*3le: -nan():0:-1: ++# BZ30647 %3le: nan():1:4:nan: ++# BZ30647 %*3le: nan():0:4: ++# BZ30647 %3le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3le: nan(09A_Zaz):0:4: + %3le: 0e0:1:4:0x0: + %*3le: 0e0:0:4: + # BZ12701 %3le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3le: 1.79769313486231570814527423731704357e+308:0:4: + %3le: infinity:1:4:inf: + %*3le: infinity:0:4: +-%3le: +nan():0:-1: +-%*3le: +nan():0:-1: +-%3le: +nan(09A_Zaz):0:-1: +-%*3le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3le: +nan():0:-1: ++# BZ30647 %*3le: +nan():0:-1: ++# BZ30647 %3le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3le: +nan(09A_Zaz):0:-1: + # BZ12701 %3le: +0e0:0:-1: + # BZ12701 %*3le: +0e0:0:-1: + # BZ12701 %3le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48le: -0e+0:0:6: + %48le: -0e0:1:5:-0x0: + %*48le: -0e0:0:5: +-%48le: -nan(09A_Zaz):1:14:-nan: +-%*48le: -nan(09A_Zaz):0:14: +-%48le: -nan():1:7:-nan: +-%*48le: -nan():0:7: +-%48le: nan():1:6:nan: +-%*48le: nan():0:6: +-%48le: nan(09A_Zaz):1:13:nan: +-%*48le: nan(09A_Zaz):0:13: ++# BZ30647 %48le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48le: -nan(09A_Zaz):0:14: ++# BZ30647 %48le: -nan():1:7:-nan: ++# BZ30647 %*48le: -nan():0:7: ++# BZ30647 %48le: nan():1:6:nan: ++# BZ30647 %*48le: nan():0:6: ++# BZ30647 %48le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48le: nan(09A_Zaz):0:13: + %48le: 0e0:1:4:0x0: + %*48le: 0e0:0:4: + %48le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48le: 1.79769313486231570814527423731704357e+308:0:43: + %48le: infinity:1:9:inf: + %*48le: infinity:0:9: +-%48le: +nan():1:7:nan: +-%*48le: +nan():0:7: +-%48le: +nan(09A_Zaz):1:14:nan: +-%*48le: +nan(09A_Zaz):0:14: ++# BZ30647 %48le: +nan():1:7:nan: ++# BZ30647 %*48le: +nan():0:7: ++# BZ30647 %48le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48le: +nan(09A_Zaz):0:14: + %48le: +0e0:1:5:0x0: + %*48le: +0e0:0:5: + %48le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +index ba9d5cbb45cfb659..e7100e8740954725 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +@@ -16,14 +16,14 @@ + %*lE:-0E+0:0:5: + %lE:-0E0:1:4:-0x0: + %*lE:-0E0:0:4: +-%lE:-NAN(09A_Zaz):1:13:-nan: +-%*lE:-NAN(09A_Zaz):0:13: +-%lE:-NAN():1:6:-nan: +-%*lE:-NAN():0:6: +-%lE:NAN():1:5:nan: +-%*lE:NAN():0:5: +-%lE:NAN(09A_Zaz):1:12:nan: +-%*lE:NAN(09A_Zaz):0:12: ++# BZ30647 %lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %lE:-NAN():1:6:-nan: ++# BZ30647 %*lE:-NAN():0:6: ++# BZ30647 %lE:NAN():1:5:nan: ++# BZ30647 %*lE:NAN():0:5: ++# BZ30647 %lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lE:NAN(09A_Zaz):0:12: + %lE:0E0:1:3:0x0: + %*lE:0E0:0:3: + %lE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*lE:1.79769313486231570814527423731704357E+308:0:42: + %lE:INFINITY:1:8:inf: + %*lE:INFINITY:0:8: +-%lE:+NAN():1:6:nan: +-%*lE:+NAN():0:6: +-%lE:+NAN(09A_Zaz):1:13:nan: +-%*lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %lE:+NAN():1:6:nan: ++# BZ30647 %*lE:+NAN():0:6: ++# BZ30647 %lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lE:+NAN(09A_Zaz):0:13: + %lE:+0E0:1:4:0x0: + %*lE:+0E0:0:4: + %lE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1lE:-0E+0:0:-1: + %1lE:-0E0:0:-1: + %*1lE:-0E0:0:-1: +-%1lE:-NAN(09A_Zaz):0:-1: +-%*1lE:-NAN(09A_Zaz):0:-1: +-%1lE:-NAN():0:-1: +-%*1lE:-NAN():0:-1: +-%1lE:NAN():0:-1: +-%*1lE:NAN():0:-1: +-%1lE:NAN(09A_Zaz):0:-1: +-%*1lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:-NAN():0:-1: ++# BZ30647 %*1lE:-NAN():0:-1: ++# BZ30647 %1lE:NAN():0:-1: ++# BZ30647 %*1lE:NAN():0:-1: ++# BZ30647 %1lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:NAN(09A_Zaz):0:-1: + %1lE:0E0:1:1:0x0: + %*1lE:0E0:0:1: + %1lE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lE:1.79769313486231570814527423731704357E+308:0:1: + %1lE:INFINITY:0:-1: + %*1lE:INFINITY:0:-1: +-%1lE:+NAN():0:-1: +-%*1lE:+NAN():0:-1: +-%1lE:+NAN(09A_Zaz):0:-1: +-%*1lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:+NAN():0:-1: ++# BZ30647 %*1lE:+NAN():0:-1: ++# BZ30647 %1lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:+NAN(09A_Zaz):0:-1: + %1lE:+0E0:0:-1: + %*1lE:+0E0:0:-1: + %1lE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lE:-0E+0:0:2: + %2lE:-0E0:1:2:-0x0: + %*2lE:-0E0:0:2: +-%2lE:-NAN(09A_Zaz):0:-1: +-%*2lE:-NAN(09A_Zaz):0:-1: +-%2lE:-NAN():0:-1: +-%*2lE:-NAN():0:-1: +-%2lE:NAN():0:-1: +-%*2lE:NAN():0:-1: +-%2lE:NAN(09A_Zaz):0:-1: +-%*2lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:-NAN():0:-1: ++# BZ30647 %*2lE:-NAN():0:-1: ++# BZ30647 %2lE:NAN():0:-1: ++# BZ30647 %*2lE:NAN():0:-1: ++# BZ30647 %2lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:NAN(09A_Zaz):0:-1: + # BZ12701 %2lE:0E0:0:-1: + # BZ12701 %*2lE:0E0:0:-1: + # BZ12701 %2lE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2lE:1.79769313486231570814527423731704357E+308:0:2: + %2lE:INFINITY:0:-1: + %*2lE:INFINITY:0:-1: +-%2lE:+NAN():0:-1: +-%*2lE:+NAN():0:-1: +-%2lE:+NAN(09A_Zaz):0:-1: +-%*2lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:+NAN():0:-1: ++# BZ30647 %*2lE:+NAN():0:-1: ++# BZ30647 %2lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:+NAN(09A_Zaz):0:-1: + %2lE:+0E0:1:2:0x0: + %*2lE:+0E0:0:2: + %2lE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lE:-0E+0:0:-1: + # BZ12701 %3lE:-0E0:0:-1: + # BZ12701 %*3lE:-0E0:0:-1: +-%3lE:-NAN(09A_Zaz):0:-1: +-%*3lE:-NAN(09A_Zaz):0:-1: +-%3lE:-NAN():0:-1: +-%*3lE:-NAN():0:-1: +-%3lE:NAN():1:3:nan: +-%*3lE:NAN():0:3: +-%3lE:NAN(09A_Zaz):1:3:nan: +-%*3lE:NAN(09A_Zaz):0:3: ++# BZ30647 %3lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE:-NAN():0:-1: ++# BZ30647 %*3lE:-NAN():0:-1: ++# BZ30647 %3lE:NAN():1:3:nan: ++# BZ30647 %*3lE:NAN():0:3: ++# BZ30647 %3lE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lE:NAN(09A_Zaz):0:3: + %3lE:0E0:1:3:0x0: + %*3lE:0E0:0:3: + # BZ12701 %3lE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3lE:1.79769313486231570814527423731704357E+308:0:3: + %3lE:INFINITY:1:3:inf: + %*3lE:INFINITY:0:3: +-%3lE:+NAN():0:-1: +-%*3lE:+NAN():0:-1: +-%3lE:+NAN(09A_Zaz):0:-1: +-%*3lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE:+NAN():0:-1: ++# BZ30647 %*3lE:+NAN():0:-1: ++# BZ30647 %3lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lE:+0E0:0:-1: + # BZ12701 %*3lE:+0E0:0:-1: + # BZ12701 %3lE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4lE:-0E+0:0:-1: + %4lE:-0E0:1:4:-0x0: + %*4lE:-0E0:0:4: +-%4lE:-NAN(09A_Zaz):1:4:-nan: +-%*4lE:-NAN(09A_Zaz):0:4: +-%4lE:-NAN():1:4:-nan: +-%*4lE:-NAN():0:4: +-%4lE:NAN():0:-1: +-%*4lE:NAN():0:-1: +-%4lE:NAN(09A_Zaz):0:-1: +-%*4lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lE:-NAN():1:4:-nan: ++# BZ30647 %*4lE:-NAN():0:4: ++# BZ30647 %4lE:NAN():0:-1: ++# BZ30647 %*4lE:NAN():0:-1: ++# BZ30647 %4lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lE:NAN(09A_Zaz):0:-1: + %4lE:0E0:1:3:0x0: + %*4lE:0E0:0:3: + %4lE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4lE:1.79769313486231570814527423731704357E+308:0:4: + %4lE:INFINITY:0:-1: + %*4lE:INFINITY:0:-1: +-%4lE:+NAN():1:4:nan: +-%*4lE:+NAN():0:4: +-%4lE:+NAN(09A_Zaz):1:4:nan: +-%*4lE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lE:+NAN():1:4:nan: ++# BZ30647 %*4lE:+NAN():0:4: ++# BZ30647 %4lE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lE:+NAN(09A_Zaz):0:4: + %4lE:+0E0:1:4:0x0: + %*4lE:+0E0:0:4: + # BZ12701 %4lE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40lE:-0E+0:0:5: + %40lE:-0E0:1:4:-0x0: + %*40lE:-0E0:0:4: +-%40lE:-NAN(09A_Zaz):1:13:-nan: +-%*40lE:-NAN(09A_Zaz):0:13: +-%40lE:-NAN():1:6:-nan: +-%*40lE:-NAN():0:6: +-%40lE:NAN():1:5:nan: +-%*40lE:NAN():0:5: +-%40lE:NAN(09A_Zaz):1:12:nan: +-%*40lE:NAN(09A_Zaz):0:12: ++# BZ30647 %40lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40lE:-NAN():1:6:-nan: ++# BZ30647 %*40lE:-NAN():0:6: ++# BZ30647 %40lE:NAN():1:5:nan: ++# BZ30647 %*40lE:NAN():0:5: ++# BZ30647 %40lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40lE:NAN(09A_Zaz):0:12: + %40lE:0E0:1:3:0x0: + %*40lE:0E0:0:3: + %40lE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40lE:1.79769313486231570814527423731704357E+308:0:40: + %40lE:INFINITY:1:8:inf: + %*40lE:INFINITY:0:8: +-%40lE:+NAN():1:6:nan: +-%*40lE:+NAN():0:6: +-%40lE:+NAN(09A_Zaz):1:13:nan: +-%*40lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40lE:+NAN():1:6:nan: ++# BZ30647 %*40lE:+NAN():0:6: ++# BZ30647 %40lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40lE:+NAN(09A_Zaz):0:13: + %40lE:+0E0:1:4:0x0: + %*40lE:+0E0:0:4: + %40lE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48lE:-0E+0:0:5: + %48lE:-0E0:1:4:-0x0: + %*48lE:-0E0:0:4: +-%48lE:-NAN(09A_Zaz):1:13:-nan: +-%*48lE:-NAN(09A_Zaz):0:13: +-%48lE:-NAN():1:6:-nan: +-%*48lE:-NAN():0:6: +-%48lE:NAN():1:5:nan: +-%*48lE:NAN():0:5: +-%48lE:NAN(09A_Zaz):1:12:nan: +-%*48lE:NAN(09A_Zaz):0:12: ++# BZ30647 %48lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48lE:-NAN():1:6:-nan: ++# BZ30647 %*48lE:-NAN():0:6: ++# BZ30647 %48lE:NAN():1:5:nan: ++# BZ30647 %*48lE:NAN():0:5: ++# BZ30647 %48lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48lE:NAN(09A_Zaz):0:12: + %48lE:0E0:1:3:0x0: + %*48lE:0E0:0:3: + %48lE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48lE:1.79769313486231570814527423731704357E+308:0:42: + %48lE:INFINITY:1:8:inf: + %*48lE:INFINITY:0:8: +-%48lE:+NAN():1:6:nan: +-%*48lE:+NAN():0:6: +-%48lE:+NAN(09A_Zaz):1:13:nan: +-%*48lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48lE:+NAN():1:6:nan: ++# BZ30647 %*48lE:+NAN():0:6: ++# BZ30647 %48lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48lE:+NAN(09A_Zaz):0:13: + %48lE:+0E0:1:4:0x0: + %*48lE:+0E0:0:4: + %48lE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3lE: -0E+0:0:-1: + # BZ12701 %3lE: -0E0:0:-1: + # BZ12701 %*3lE: -0E0:0:-1: +-%3lE: -NAN(09A_Zaz):0:-1: +-%*3lE: -NAN(09A_Zaz):0:-1: +-%3lE: -NAN():0:-1: +-%*3lE: -NAN():0:-1: +-%3lE: NAN():1:4:nan: +-%*3lE: NAN():0:4: +-%3lE: NAN(09A_Zaz):1:4:nan: +-%*3lE: NAN(09A_Zaz):0:4: ++# BZ30647 %3lE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE: -NAN():0:-1: ++# BZ30647 %*3lE: -NAN():0:-1: ++# BZ30647 %3lE: NAN():1:4:nan: ++# BZ30647 %*3lE: NAN():0:4: ++# BZ30647 %3lE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3lE: NAN(09A_Zaz):0:4: + %3lE: 0E0:1:4:0x0: + %*3lE: 0E0:0:4: + # BZ12701 %3lE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3lE: 1.79769313486231570814527423731704357E+308:0:4: + %3lE: INFINITY:1:4:inf: + %*3lE: INFINITY:0:4: +-%3lE: +NAN():0:-1: +-%*3lE: +NAN():0:-1: +-%3lE: +NAN(09A_Zaz):0:-1: +-%*3lE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE: +NAN():0:-1: ++# BZ30647 %*3lE: +NAN():0:-1: ++# BZ30647 %3lE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3lE: +0E0:0:-1: + # BZ12701 %*3lE: +0E0:0:-1: + # BZ12701 %3lE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48lE: -0E+0:0:6: + %48lE: -0E0:1:5:-0x0: + %*48lE: -0E0:0:5: +-%48lE: -NAN(09A_Zaz):1:14:-nan: +-%*48lE: -NAN(09A_Zaz):0:14: +-%48lE: -NAN():1:7:-nan: +-%*48lE: -NAN():0:7: +-%48lE: NAN():1:6:nan: +-%*48lE: NAN():0:6: +-%48lE: NAN(09A_Zaz):1:13:nan: +-%*48lE: NAN(09A_Zaz):0:13: ++# BZ30647 %48lE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48lE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48lE: -NAN():1:7:-nan: ++# BZ30647 %*48lE: -NAN():0:7: ++# BZ30647 %48lE: NAN():1:6:nan: ++# BZ30647 %*48lE: NAN():0:6: ++# BZ30647 %48lE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48lE: NAN(09A_Zaz):0:13: + %48lE: 0E0:1:4:0x0: + %*48lE: 0E0:0:4: + %48lE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48lE: 1.79769313486231570814527423731704357E+308:0:43: + %48lE: INFINITY:1:9:inf: + %*48lE: INFINITY:0:9: +-%48lE: +NAN():1:7:nan: +-%*48lE: +NAN():0:7: +-%48lE: +NAN(09A_Zaz):1:14:nan: +-%*48lE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48lE: +NAN():1:7:nan: ++# BZ30647 %*48lE: +NAN():0:7: ++# BZ30647 %48lE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48lE: +NAN(09A_Zaz):0:14: + %48lE: +0E0:1:5:0x0: + %*48lE: +0E0:0:5: + %48lE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +index 22b9fdc4f62cfa08..630437ea49587620 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +@@ -16,14 +16,14 @@ + %*lf:-0.0:0:4: + %lf:-0:1:2:-0x0: + %*lf:-0:0:2: +-%lf:-nan(09A_Zaz):1:13:-nan: +-%*lf:-nan(09A_Zaz):0:13: +-%lf:-nan():1:6:-nan: +-%*lf:-nan():0:6: +-%lf:nan():1:5:nan: +-%*lf:nan():0:5: +-%lf:nan(09A_Zaz):1:12:nan: +-%*lf:nan(09A_Zaz):0:12: ++# BZ30647 %lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*lf:-nan(09A_Zaz):0:13: ++# BZ30647 %lf:-nan():1:6:-nan: ++# BZ30647 %*lf:-nan():0:6: ++# BZ30647 %lf:nan():1:5:nan: ++# BZ30647 %*lf:nan():0:5: ++# BZ30647 %lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*lf:nan(09A_Zaz):0:12: + %lf:0:1:1:0x0: + %*lf:0:0:1: + %lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %lf:infinity:1:8:inf: + %*lf:infinity:0:8: +-%lf:+nan():1:6:nan: +-%*lf:+nan():0:6: +-%lf:+nan(09A_Zaz):1:13:nan: +-%*lf:+nan(09A_Zaz):0:13: ++# BZ30647 %lf:+nan():1:6:nan: ++# BZ30647 %*lf:+nan():0:6: ++# BZ30647 %lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*lf:+nan(09A_Zaz):0:13: + %lf:+0:1:2:0x0: + %*lf:+0:0:2: + %lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1lf:-0.0:0:-1: + %1lf:-0:0:-1: + %*1lf:-0:0:-1: +-%1lf:-nan(09A_Zaz):0:-1: +-%*1lf:-nan(09A_Zaz):0:-1: +-%1lf:-nan():0:-1: +-%*1lf:-nan():0:-1: +-%1lf:nan():0:-1: +-%*1lf:nan():0:-1: +-%1lf:nan(09A_Zaz):0:-1: +-%*1lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:-nan():0:-1: ++# BZ30647 %*1lf:-nan():0:-1: ++# BZ30647 %1lf:nan():0:-1: ++# BZ30647 %*1lf:nan():0:-1: ++# BZ30647 %1lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:nan(09A_Zaz):0:-1: + %1lf:0:1:1:0x0: + %*1lf:0:0:1: + %1lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1lf:infinity:0:-1: + %*1lf:infinity:0:-1: +-%1lf:+nan():0:-1: +-%*1lf:+nan():0:-1: +-%1lf:+nan(09A_Zaz):0:-1: +-%*1lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:+nan():0:-1: ++# BZ30647 %*1lf:+nan():0:-1: ++# BZ30647 %1lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:+nan(09A_Zaz):0:-1: + %1lf:+0:0:-1: + %*1lf:+0:0:-1: + %1lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2lf:-0.0:0:2: + %2lf:-0:1:2:-0x0: + %*2lf:-0:0:2: +-%2lf:-nan(09A_Zaz):0:-1: +-%*2lf:-nan(09A_Zaz):0:-1: +-%2lf:-nan():0:-1: +-%*2lf:-nan():0:-1: +-%2lf:nan():0:-1: +-%*2lf:nan():0:-1: +-%2lf:nan(09A_Zaz):0:-1: +-%*2lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:-nan():0:-1: ++# BZ30647 %*2lf:-nan():0:-1: ++# BZ30647 %2lf:nan():0:-1: ++# BZ30647 %*2lf:nan():0:-1: ++# BZ30647 %2lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:nan(09A_Zaz):0:-1: + %2lf:0:1:1:0x0: + %*2lf:0:0:1: + %2lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2lf:infinity:0:-1: + %*2lf:infinity:0:-1: +-%2lf:+nan():0:-1: +-%*2lf:+nan():0:-1: +-%2lf:+nan(09A_Zaz):0:-1: +-%*2lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:+nan():0:-1: ++# BZ30647 %*2lf:+nan():0:-1: ++# BZ30647 %2lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:+nan(09A_Zaz):0:-1: + %2lf:+0:1:2:0x0: + %*2lf:+0:0:2: + %2lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3lf:-0.0:0:3: + %3lf:-0:1:2:-0x0: + %*3lf:-0:0:2: +-%3lf:-nan(09A_Zaz):0:-1: +-%*3lf:-nan(09A_Zaz):0:-1: +-%3lf:-nan():0:-1: +-%*3lf:-nan():0:-1: +-%3lf:nan():1:3:nan: +-%*3lf:nan():0:3: +-%3lf:nan(09A_Zaz):1:3:nan: +-%*3lf:nan(09A_Zaz):0:3: ++# BZ30647 %3lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3lf:-nan():0:-1: ++# BZ30647 %*3lf:-nan():0:-1: ++# BZ30647 %3lf:nan():1:3:nan: ++# BZ30647 %*3lf:nan():0:3: ++# BZ30647 %3lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3lf:nan(09A_Zaz):0:3: + %3lf:0:1:1:0x0: + %*3lf:0:0:1: + %3lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3lf:infinity:1:3:inf: + %*3lf:infinity:0:3: +-%3lf:+nan():0:-1: +-%*3lf:+nan():0:-1: +-%3lf:+nan(09A_Zaz):0:-1: +-%*3lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3lf:+nan():0:-1: ++# BZ30647 %*3lf:+nan():0:-1: ++# BZ30647 %3lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf:+nan(09A_Zaz):0:-1: + %3lf:+0:1:2:0x0: + %*3lf:+0:0:2: + %3lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4lf:-0.0:0:4: + %4lf:-0:1:2:-0x0: + %*4lf:-0:0:2: +-%4lf:-nan(09A_Zaz):1:4:-nan: +-%*4lf:-nan(09A_Zaz):0:4: +-%4lf:-nan():1:4:-nan: +-%*4lf:-nan():0:4: +-%4lf:nan():0:-1: +-%*4lf:nan():0:-1: +-%4lf:nan(09A_Zaz):0:-1: +-%*4lf:nan(09A_Zaz):0:-1: ++# BZ30647 %4lf:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lf:-nan(09A_Zaz):0:4: ++# BZ30647 %4lf:-nan():1:4:-nan: ++# BZ30647 %*4lf:-nan():0:4: ++# BZ30647 %4lf:nan():0:-1: ++# BZ30647 %*4lf:nan():0:-1: ++# BZ30647 %4lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*4lf:nan(09A_Zaz):0:-1: + %4lf:0:1:1:0x0: + %*4lf:0:0:1: + %4lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4lf:infinity:0:-1: + %*4lf:infinity:0:-1: +-%4lf:+nan():1:4:nan: +-%*4lf:+nan():0:4: +-%4lf:+nan(09A_Zaz):1:4:nan: +-%*4lf:+nan(09A_Zaz):0:4: ++# BZ30647 %4lf:+nan():1:4:nan: ++# BZ30647 %*4lf:+nan():0:4: ++# BZ30647 %4lf:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4lf:+nan(09A_Zaz):0:4: + %4lf:+0:1:2:0x0: + %*4lf:+0:0:2: + %4lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311lf:-0.0:0:4: + %311lf:-0:1:2:-0x0: + %*311lf:-0:0:2: +-%311lf:-nan(09A_Zaz):1:13:-nan: +-%*311lf:-nan(09A_Zaz):0:13: +-%311lf:-nan():1:6:-nan: +-%*311lf:-nan():0:6: +-%311lf:nan():1:5:nan: +-%*311lf:nan():0:5: +-%311lf:nan(09A_Zaz):1:12:nan: +-%*311lf:nan(09A_Zaz):0:12: ++# BZ30647 %311lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*311lf:-nan(09A_Zaz):0:13: ++# BZ30647 %311lf:-nan():1:6:-nan: ++# BZ30647 %*311lf:-nan():0:6: ++# BZ30647 %311lf:nan():1:5:nan: ++# BZ30647 %*311lf:nan():0:5: ++# BZ30647 %311lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*311lf:nan(09A_Zaz):0:12: + %311lf:0:1:1:0x0: + %*311lf:0:0:1: + %311lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311lf:infinity:1:8:inf: + %*311lf:infinity:0:8: +-%311lf:+nan():1:6:nan: +-%*311lf:+nan():0:6: +-%311lf:+nan(09A_Zaz):1:13:nan: +-%*311lf:+nan(09A_Zaz):0:13: ++# BZ30647 %311lf:+nan():1:6:nan: ++# BZ30647 %*311lf:+nan():0:6: ++# BZ30647 %311lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*311lf:+nan(09A_Zaz):0:13: + %311lf:+0:1:2:0x0: + %*311lf:+0:0:2: + %311lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350lf:-0.0:0:4: + %350lf:-0:1:2:-0x0: + %*350lf:-0:0:2: +-%350lf:-nan(09A_Zaz):1:13:-nan: +-%*350lf:-nan(09A_Zaz):0:13: +-%350lf:-nan():1:6:-nan: +-%*350lf:-nan():0:6: +-%350lf:nan():1:5:nan: +-%*350lf:nan():0:5: +-%350lf:nan(09A_Zaz):1:12:nan: +-%*350lf:nan(09A_Zaz):0:12: ++# BZ30647 %350lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*350lf:-nan(09A_Zaz):0:13: ++# BZ30647 %350lf:-nan():1:6:-nan: ++# BZ30647 %*350lf:-nan():0:6: ++# BZ30647 %350lf:nan():1:5:nan: ++# BZ30647 %*350lf:nan():0:5: ++# BZ30647 %350lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*350lf:nan(09A_Zaz):0:12: + %350lf:0:1:1:0x0: + %*350lf:0:0:1: + %350lf:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350lf:infinity:1:8:inf: + %*350lf:infinity:0:8: +-%350lf:+nan():1:6:nan: +-%*350lf:+nan():0:6: +-%350lf:+nan(09A_Zaz):1:13:nan: +-%*350lf:+nan(09A_Zaz):0:13: ++# BZ30647 %350lf:+nan():1:6:nan: ++# BZ30647 %*350lf:+nan():0:6: ++# BZ30647 %350lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350lf:+nan(09A_Zaz):0:13: + %350lf:+0:1:2:0x0: + %*350lf:+0:0:2: + %350lf:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3lf: -0.0:0:4: + %3lf: -0:1:3:-0x0: + %*3lf: -0:0:3: +-%3lf: -nan(09A_Zaz):0:-1: +-%*3lf: -nan(09A_Zaz):0:-1: +-%3lf: -nan():0:-1: +-%*3lf: -nan():0:-1: +-%3lf: nan():1:4:nan: +-%*3lf: nan():0:4: +-%3lf: nan(09A_Zaz):1:4:nan: +-%*3lf: nan(09A_Zaz):0:4: ++# BZ30647 %3lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3lf: -nan():0:-1: ++# BZ30647 %*3lf: -nan():0:-1: ++# BZ30647 %3lf: nan():1:4:nan: ++# BZ30647 %*3lf: nan():0:4: ++# BZ30647 %3lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3lf: nan(09A_Zaz):0:4: + %3lf: 0:1:2:0x0: + %*3lf: 0:0:2: + %3lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3lf: infinity:1:4:inf: + %*3lf: infinity:0:4: +-%3lf: +nan():0:-1: +-%*3lf: +nan():0:-1: +-%3lf: +nan(09A_Zaz):0:-1: +-%*3lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3lf: +nan():0:-1: ++# BZ30647 %*3lf: +nan():0:-1: ++# BZ30647 %3lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf: +nan(09A_Zaz):0:-1: + %3lf: +0:1:3:0x0: + %*3lf: +0:0:3: + %3lf: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350lf: -0.0:0:5: + %350lf: -0:1:3:-0x0: + %*350lf: -0:0:3: +-%350lf: -nan(09A_Zaz):1:14:-nan: +-%*350lf: -nan(09A_Zaz):0:14: +-%350lf: -nan():1:7:-nan: +-%*350lf: -nan():0:7: +-%350lf: nan():1:6:nan: +-%*350lf: nan():0:6: +-%350lf: nan(09A_Zaz):1:13:nan: +-%*350lf: nan(09A_Zaz):0:13: ++# BZ30647 %350lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*350lf: -nan(09A_Zaz):0:14: ++# BZ30647 %350lf: -nan():1:7:-nan: ++# BZ30647 %*350lf: -nan():0:7: ++# BZ30647 %350lf: nan():1:6:nan: ++# BZ30647 %*350lf: nan():0:6: ++# BZ30647 %350lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350lf: nan(09A_Zaz):0:13: + %350lf: 0:1:2:0x0: + %*350lf: 0:0:2: + %350lf: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350lf: infinity:1:9:inf: + %*350lf: infinity:0:9: +-%350lf: +nan():1:7:nan: +-%*350lf: +nan():0:7: +-%350lf: +nan(09A_Zaz):1:14:nan: +-%*350lf: +nan(09A_Zaz):0:14: ++# BZ30647 %350lf: +nan():1:7:nan: ++# BZ30647 %*350lf: +nan():0:7: ++# BZ30647 %350lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*350lf: +nan(09A_Zaz):0:14: + %350lf: +0:1:3:0x0: + %*350lf: +0:0:3: + %350lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +index 6168884e133d78d3..ce6599fb1a108899 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +@@ -16,14 +16,14 @@ + %*lF:-0.0:0:4: + %lF:-0:1:2:-0x0: + %*lF:-0:0:2: +-%lF:-NAN(09A_Zaz):1:13:-nan: +-%*lF:-NAN(09A_Zaz):0:13: +-%lF:-NAN():1:6:-nan: +-%*lF:-NAN():0:6: +-%lF:NAN():1:5:nan: +-%*lF:NAN():0:5: +-%lF:NAN(09A_Zaz):1:12:nan: +-%*lF:NAN(09A_Zaz):0:12: ++# BZ30647 %lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %lF:-NAN():1:6:-nan: ++# BZ30647 %*lF:-NAN():0:6: ++# BZ30647 %lF:NAN():1:5:nan: ++# BZ30647 %*lF:NAN():0:5: ++# BZ30647 %lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lF:NAN(09A_Zaz):0:12: + %lF:0:1:1:0x0: + %*lF:0:0:1: + %lF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %lF:INFINITY:1:8:inf: + %*lF:INFINITY:0:8: +-%lF:+NAN():1:6:nan: +-%*lF:+NAN():0:6: +-%lF:+NAN(09A_Zaz):1:13:nan: +-%*lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %lF:+NAN():1:6:nan: ++# BZ30647 %*lF:+NAN():0:6: ++# BZ30647 %lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lF:+NAN(09A_Zaz):0:13: + %lF:+0:1:2:0x0: + %*lF:+0:0:2: + %lF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1lF:-0.0:0:-1: + %1lF:-0:0:-1: + %*1lF:-0:0:-1: +-%1lF:-NAN(09A_Zaz):0:-1: +-%*1lF:-NAN(09A_Zaz):0:-1: +-%1lF:-NAN():0:-1: +-%*1lF:-NAN():0:-1: +-%1lF:NAN():0:-1: +-%*1lF:NAN():0:-1: +-%1lF:NAN(09A_Zaz):0:-1: +-%*1lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:-NAN():0:-1: ++# BZ30647 %*1lF:-NAN():0:-1: ++# BZ30647 %1lF:NAN():0:-1: ++# BZ30647 %*1lF:NAN():0:-1: ++# BZ30647 %1lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:NAN(09A_Zaz):0:-1: + %1lF:0:1:1:0x0: + %*1lF:0:0:1: + %1lF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1lF:INFINITY:0:-1: + %*1lF:INFINITY:0:-1: +-%1lF:+NAN():0:-1: +-%*1lF:+NAN():0:-1: +-%1lF:+NAN(09A_Zaz):0:-1: +-%*1lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:+NAN():0:-1: ++# BZ30647 %*1lF:+NAN():0:-1: ++# BZ30647 %1lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:+NAN(09A_Zaz):0:-1: + %1lF:+0:0:-1: + %*1lF:+0:0:-1: + %1lF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2lF:-0.0:0:2: + %2lF:-0:1:2:-0x0: + %*2lF:-0:0:2: +-%2lF:-NAN(09A_Zaz):0:-1: +-%*2lF:-NAN(09A_Zaz):0:-1: +-%2lF:-NAN():0:-1: +-%*2lF:-NAN():0:-1: +-%2lF:NAN():0:-1: +-%*2lF:NAN():0:-1: +-%2lF:NAN(09A_Zaz):0:-1: +-%*2lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:-NAN():0:-1: ++# BZ30647 %*2lF:-NAN():0:-1: ++# BZ30647 %2lF:NAN():0:-1: ++# BZ30647 %*2lF:NAN():0:-1: ++# BZ30647 %2lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:NAN(09A_Zaz):0:-1: + %2lF:0:1:1:0x0: + %*2lF:0:0:1: + %2lF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2lF:INFINITY:0:-1: + %*2lF:INFINITY:0:-1: +-%2lF:+NAN():0:-1: +-%*2lF:+NAN():0:-1: +-%2lF:+NAN(09A_Zaz):0:-1: +-%*2lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:+NAN():0:-1: ++# BZ30647 %*2lF:+NAN():0:-1: ++# BZ30647 %2lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:+NAN(09A_Zaz):0:-1: + %2lF:+0:1:2:0x0: + %*2lF:+0:0:2: + %2lF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3lF:-0.0:0:3: + %3lF:-0:1:2:-0x0: + %*3lF:-0:0:2: +-%3lF:-NAN(09A_Zaz):0:-1: +-%*3lF:-NAN(09A_Zaz):0:-1: +-%3lF:-NAN():0:-1: +-%*3lF:-NAN():0:-1: +-%3lF:NAN():1:3:nan: +-%*3lF:NAN():0:3: +-%3lF:NAN(09A_Zaz):1:3:nan: +-%*3lF:NAN(09A_Zaz):0:3: ++# BZ30647 %3lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF:-NAN():0:-1: ++# BZ30647 %*3lF:-NAN():0:-1: ++# BZ30647 %3lF:NAN():1:3:nan: ++# BZ30647 %*3lF:NAN():0:3: ++# BZ30647 %3lF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lF:NAN(09A_Zaz):0:3: + %3lF:0:1:1:0x0: + %*3lF:0:0:1: + %3lF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3lF:INFINITY:1:3:inf: + %*3lF:INFINITY:0:3: +-%3lF:+NAN():0:-1: +-%*3lF:+NAN():0:-1: +-%3lF:+NAN(09A_Zaz):0:-1: +-%*3lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF:+NAN():0:-1: ++# BZ30647 %*3lF:+NAN():0:-1: ++# BZ30647 %3lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF:+NAN(09A_Zaz):0:-1: + %3lF:+0:1:2:0x0: + %*3lF:+0:0:2: + %3lF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4lF:-0.0:0:4: + %4lF:-0:1:2:-0x0: + %*4lF:-0:0:2: +-%4lF:-NAN(09A_Zaz):1:4:-nan: +-%*4lF:-NAN(09A_Zaz):0:4: +-%4lF:-NAN():1:4:-nan: +-%*4lF:-NAN():0:4: +-%4lF:NAN():0:-1: +-%*4lF:NAN():0:-1: +-%4lF:NAN(09A_Zaz):0:-1: +-%*4lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lF:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lF:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lF:-NAN():1:4:-nan: ++# BZ30647 %*4lF:-NAN():0:4: ++# BZ30647 %4lF:NAN():0:-1: ++# BZ30647 %*4lF:NAN():0:-1: ++# BZ30647 %4lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lF:NAN(09A_Zaz):0:-1: + %4lF:0:1:1:0x0: + %*4lF:0:0:1: + %4lF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4lF:INFINITY:0:-1: + %*4lF:INFINITY:0:-1: +-%4lF:+NAN():1:4:nan: +-%*4lF:+NAN():0:4: +-%4lF:+NAN(09A_Zaz):1:4:nan: +-%*4lF:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lF:+NAN():1:4:nan: ++# BZ30647 %*4lF:+NAN():0:4: ++# BZ30647 %4lF:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lF:+NAN(09A_Zaz):0:4: + %4lF:+0:1:2:0x0: + %*4lF:+0:0:2: + %4lF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311lF:-0.0:0:4: + %311lF:-0:1:2:-0x0: + %*311lF:-0:0:2: +-%311lF:-NAN(09A_Zaz):1:13:-nan: +-%*311lF:-NAN(09A_Zaz):0:13: +-%311lF:-NAN():1:6:-nan: +-%*311lF:-NAN():0:6: +-%311lF:NAN():1:5:nan: +-%*311lF:NAN():0:5: +-%311lF:NAN(09A_Zaz):1:12:nan: +-%*311lF:NAN(09A_Zaz):0:12: ++# BZ30647 %311lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*311lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %311lF:-NAN():1:6:-nan: ++# BZ30647 %*311lF:-NAN():0:6: ++# BZ30647 %311lF:NAN():1:5:nan: ++# BZ30647 %*311lF:NAN():0:5: ++# BZ30647 %311lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*311lF:NAN(09A_Zaz):0:12: + %311lF:0:1:1:0x0: + %*311lF:0:0:1: + %311lF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311lF:INFINITY:1:8:inf: + %*311lF:INFINITY:0:8: +-%311lF:+NAN():1:6:nan: +-%*311lF:+NAN():0:6: +-%311lF:+NAN(09A_Zaz):1:13:nan: +-%*311lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %311lF:+NAN():1:6:nan: ++# BZ30647 %*311lF:+NAN():0:6: ++# BZ30647 %311lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*311lF:+NAN(09A_Zaz):0:13: + %311lF:+0:1:2:0x0: + %*311lF:+0:0:2: + %311lF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350lF:-0.0:0:4: + %350lF:-0:1:2:-0x0: + %*350lF:-0:0:2: +-%350lF:-NAN(09A_Zaz):1:13:-nan: +-%*350lF:-NAN(09A_Zaz):0:13: +-%350lF:-NAN():1:6:-nan: +-%*350lF:-NAN():0:6: +-%350lF:NAN():1:5:nan: +-%*350lF:NAN():0:5: +-%350lF:NAN(09A_Zaz):1:12:nan: +-%*350lF:NAN(09A_Zaz):0:12: ++# BZ30647 %350lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*350lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %350lF:-NAN():1:6:-nan: ++# BZ30647 %*350lF:-NAN():0:6: ++# BZ30647 %350lF:NAN():1:5:nan: ++# BZ30647 %*350lF:NAN():0:5: ++# BZ30647 %350lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*350lF:NAN(09A_Zaz):0:12: + %350lF:0:1:1:0x0: + %*350lF:0:0:1: + %350lF:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350lF:INFINITY:1:8:inf: + %*350lF:INFINITY:0:8: +-%350lF:+NAN():1:6:nan: +-%*350lF:+NAN():0:6: +-%350lF:+NAN(09A_Zaz):1:13:nan: +-%*350lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %350lF:+NAN():1:6:nan: ++# BZ30647 %*350lF:+NAN():0:6: ++# BZ30647 %350lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350lF:+NAN(09A_Zaz):0:13: + %350lF:+0:1:2:0x0: + %*350lF:+0:0:2: + %350lF:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3lF: -0.0:0:4: + %3lF: -0:1:3:-0x0: + %*3lF: -0:0:3: +-%3lF: -NAN(09A_Zaz):0:-1: +-%*3lF: -NAN(09A_Zaz):0:-1: +-%3lF: -NAN():0:-1: +-%*3lF: -NAN():0:-1: +-%3lF: NAN():1:4:nan: +-%*3lF: NAN():0:4: +-%3lF: NAN(09A_Zaz):1:4:nan: +-%*3lF: NAN(09A_Zaz):0:4: ++# BZ30647 %3lF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF: -NAN():0:-1: ++# BZ30647 %*3lF: -NAN():0:-1: ++# BZ30647 %3lF: NAN():1:4:nan: ++# BZ30647 %*3lF: NAN():0:4: ++# BZ30647 %3lF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3lF: NAN(09A_Zaz):0:4: + %3lF: 0:1:2:0x0: + %*3lF: 0:0:2: + %3lF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3lF: INFINITY:1:4:inf: + %*3lF: INFINITY:0:4: +-%3lF: +NAN():0:-1: +-%*3lF: +NAN():0:-1: +-%3lF: +NAN(09A_Zaz):0:-1: +-%*3lF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF: +NAN():0:-1: ++# BZ30647 %*3lF: +NAN():0:-1: ++# BZ30647 %3lF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF: +NAN(09A_Zaz):0:-1: + %3lF: +0:1:3:0x0: + %*3lF: +0:0:3: + %3lF: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350lF: -0.0:0:5: + %350lF: -0:1:3:-0x0: + %*350lF: -0:0:3: +-%350lF: -NAN(09A_Zaz):1:14:-nan: +-%*350lF: -NAN(09A_Zaz):0:14: +-%350lF: -NAN():1:7:-nan: +-%*350lF: -NAN():0:7: +-%350lF: NAN():1:6:nan: +-%*350lF: NAN():0:6: +-%350lF: NAN(09A_Zaz):1:13:nan: +-%*350lF: NAN(09A_Zaz):0:13: ++# BZ30647 %350lF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*350lF: -NAN(09A_Zaz):0:14: ++# BZ30647 %350lF: -NAN():1:7:-nan: ++# BZ30647 %*350lF: -NAN():0:7: ++# BZ30647 %350lF: NAN():1:6:nan: ++# BZ30647 %*350lF: NAN():0:6: ++# BZ30647 %350lF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350lF: NAN(09A_Zaz):0:13: + %350lF: 0:1:2:0x0: + %*350lF: 0:0:2: + %350lF: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350lF: INFINITY:1:9:inf: + %*350lF: INFINITY:0:9: +-%350lF: +NAN():1:7:nan: +-%*350lF: +NAN():0:7: +-%350lF: +NAN(09A_Zaz):1:14:nan: +-%*350lF: +NAN(09A_Zaz):0:14: ++# BZ30647 %350lF: +NAN():1:7:nan: ++# BZ30647 %*350lF: +NAN():0:7: ++# BZ30647 %350lF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*350lF: +NAN(09A_Zaz):0:14: + %350lF: +0:1:3:0x0: + %*350lF: +0:0:3: + %350lF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +index d499303451083898..cfbb71ebc4fa9558 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +@@ -16,14 +16,14 @@ + %*lg:-0x0p+0:0:7: + %lg:-0x0p0:1:6:-0x0: + %*lg:-0x0p0:0:6: +-%lg:-nan(09A_Zaz):1:13:-nan: +-%*lg:-nan(09A_Zaz):0:13: +-%lg:-nan():1:6:-nan: +-%*lg:-nan():0:6: +-%lg:nan():1:5:nan: +-%*lg:nan():0:5: +-%lg:nan(09A_Zaz):1:12:nan: +-%*lg:nan(09A_Zaz):0:12: ++# BZ30647 %lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*lg:-nan(09A_Zaz):0:13: ++# BZ30647 %lg:-nan():1:6:-nan: ++# BZ30647 %*lg:-nan():0:6: ++# BZ30647 %lg:nan():1:5:nan: ++# BZ30647 %*lg:nan():0:5: ++# BZ30647 %lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*lg:nan(09A_Zaz):0:12: + %lg:0x0p0:1:5:0x0: + %*lg:0x0p0:0:5: + %lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lg:0xf.ffffffffffff8p+1020:0:23: + %lg:infinity:1:8:inf: + %*lg:infinity:0:8: +-%lg:+nan():1:6:nan: +-%*lg:+nan():0:6: +-%lg:+nan(09A_Zaz):1:13:nan: +-%*lg:+nan(09A_Zaz):0:13: ++# BZ30647 %lg:+nan():1:6:nan: ++# BZ30647 %*lg:+nan():0:6: ++# BZ30647 %lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*lg:+nan(09A_Zaz):0:13: + %lg:+0x0p0:1:6:0x0: + %*lg:+0x0p0:0:6: + %lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lg:-0x0p+0:0:-1: + %1lg:-0x0p0:0:-1: + %*1lg:-0x0p0:0:-1: +-%1lg:-nan(09A_Zaz):0:-1: +-%*1lg:-nan(09A_Zaz):0:-1: +-%1lg:-nan():0:-1: +-%*1lg:-nan():0:-1: +-%1lg:nan():0:-1: +-%*1lg:nan():0:-1: +-%1lg:nan(09A_Zaz):0:-1: +-%*1lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:-nan():0:-1: ++# BZ30647 %*1lg:-nan():0:-1: ++# BZ30647 %1lg:nan():0:-1: ++# BZ30647 %*1lg:nan():0:-1: ++# BZ30647 %1lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:nan(09A_Zaz):0:-1: + %1lg:0x0p0:1:1:0x0: + %*1lg:0x0p0:0:1: + %1lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lg:0xf.ffffffffffff8p+1020:0:1: + %1lg:infinity:0:-1: + %*1lg:infinity:0:-1: +-%1lg:+nan():0:-1: +-%*1lg:+nan():0:-1: +-%1lg:+nan(09A_Zaz):0:-1: +-%*1lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:+nan():0:-1: ++# BZ30647 %*1lg:+nan():0:-1: ++# BZ30647 %1lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:+nan(09A_Zaz):0:-1: + %1lg:+0x0p0:0:-1: + %*1lg:+0x0p0:0:-1: + %1lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lg:-0x0p+0:0:2: + %2lg:-0x0p0:1:2:-0x0: + %*2lg:-0x0p0:0:2: +-%2lg:-nan(09A_Zaz):0:-1: +-%*2lg:-nan(09A_Zaz):0:-1: +-%2lg:-nan():0:-1: +-%*2lg:-nan():0:-1: +-%2lg:nan():0:-1: +-%*2lg:nan():0:-1: +-%2lg:nan(09A_Zaz):0:-1: +-%*2lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:-nan():0:-1: ++# BZ30647 %*2lg:-nan():0:-1: ++# BZ30647 %2lg:nan():0:-1: ++# BZ30647 %*2lg:nan():0:-1: ++# BZ30647 %2lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:nan(09A_Zaz):0:-1: + # BZ12701 %2lg:0x0p0:0:-1: + # BZ12701 %*2lg:0x0p0:0:-1: + # BZ12701 %2lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lg:0xf.ffffffffffff8p+1020:0:-1: + %2lg:infinity:0:-1: + %*2lg:infinity:0:-1: +-%2lg:+nan():0:-1: +-%*2lg:+nan():0:-1: +-%2lg:+nan(09A_Zaz):0:-1: +-%*2lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:+nan():0:-1: ++# BZ30647 %*2lg:+nan():0:-1: ++# BZ30647 %2lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:+nan(09A_Zaz):0:-1: + %2lg:+0x0p0:1:2:0x0: + %*2lg:+0x0p0:0:2: + %2lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lg:-0x0p+0:0:-1: + # BZ12701 %3lg:-0x0p0:0:-1: + # BZ12701 %*3lg:-0x0p0:0:-1: +-%3lg:-nan(09A_Zaz):0:-1: +-%*3lg:-nan(09A_Zaz):0:-1: +-%3lg:-nan():0:-1: +-%*3lg:-nan():0:-1: +-%3lg:nan():1:3:nan: +-%*3lg:nan():0:3: +-%3lg:nan(09A_Zaz):1:3:nan: +-%*3lg:nan(09A_Zaz):0:3: ++# BZ30647 %3lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3lg:-nan():0:-1: ++# BZ30647 %*3lg:-nan():0:-1: ++# BZ30647 %3lg:nan():1:3:nan: ++# BZ30647 %*3lg:nan():0:3: ++# BZ30647 %3lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3lg:nan(09A_Zaz):0:3: + %3lg:0x0p0:1:3:0x0: + %*3lg:0x0p0:0:3: + %3lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lg:0xf.ffffffffffff8p+1020:0:3: + %3lg:infinity:1:3:inf: + %*3lg:infinity:0:3: +-%3lg:+nan():0:-1: +-%*3lg:+nan():0:-1: +-%3lg:+nan(09A_Zaz):0:-1: +-%*3lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3lg:+nan():0:-1: ++# BZ30647 %*3lg:+nan():0:-1: ++# BZ30647 %3lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3lg:+0x0p0:0:-1: + # BZ12701 %*3lg:+0x0p0:0:-1: + # BZ12701 %3lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lg:-0x0p+0:0:4: + %4lg:-0x0p0:1:4:-0x0: + %*4lg:-0x0p0:0:4: +-%4lg:-nan(09A_Zaz):1:4:-nan: +-%*4lg:-nan(09A_Zaz):0:4: +-%4lg:-nan():1:4:-nan: +-%*4lg:-nan():0:4: +-%4lg:nan():0:-1: +-%*4lg:nan():0:-1: +-%4lg:nan(09A_Zaz):0:-1: +-%*4lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4lg:-nan():1:4:-nan: ++# BZ30647 %*4lg:-nan():0:4: ++# BZ30647 %4lg:nan():0:-1: ++# BZ30647 %*4lg:nan():0:-1: ++# BZ30647 %4lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4lg:nan(09A_Zaz):0:-1: + # BZ12701 %4lg:0x0p0:0:-1: + # BZ12701 %*4lg:0x0p0:0:-1: + # BZ12701 %4lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lg:0xf.ffffffffffff8p+1020:0:4: + %4lg:infinity:0:-1: + %*4lg:infinity:0:-1: +-%4lg:+nan():1:4:nan: +-%*4lg:+nan():0:4: +-%4lg:+nan(09A_Zaz):1:4:nan: +-%*4lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4lg:+nan():1:4:nan: ++# BZ30647 %*4lg:+nan():0:4: ++# BZ30647 %4lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4lg:+nan(09A_Zaz):0:4: + %4lg:+0x0p0:1:4:0x0: + %*4lg:+0x0p0:0:4: + %4lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lg:-0x0p+0:0:-1: + # BZ12701 %5lg:-0x0p0:0:-1: + # BZ12701 %*5lg:-0x0p0:0:-1: +-%5lg:-nan(09A_Zaz):0:-1: +-%*5lg:-nan(09A_Zaz):0:-1: +-%5lg:-nan():0:-1: +-%*5lg:-nan():0:-1: +-%5lg:nan():1:5:nan: +-%*5lg:nan():0:5: +-%5lg:nan(09A_Zaz):0:-1: +-%*5lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:-nan():0:-1: ++# BZ30647 %*5lg:-nan():0:-1: ++# BZ30647 %5lg:nan():1:5:nan: ++# BZ30647 %*5lg:nan():0:5: ++# BZ30647 %5lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:nan(09A_Zaz):0:-1: + %5lg:0x0p0:1:5:0x0: + %*5lg:0x0p0:0:5: + # BZ12701 %5lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lg:0xf.ffffffffffff8p+1020:0:5: + %5lg:infinity:0:-1: + %*5lg:infinity:0:-1: +-%5lg:+nan():0:-1: +-%*5lg:+nan():0:-1: +-%5lg:+nan(09A_Zaz):0:-1: +-%*5lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:+nan():0:-1: ++# BZ30647 %*5lg:+nan():0:-1: ++# BZ30647 %5lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5lg:+0x0p0:0:-1: + # BZ12701 %*5lg:+0x0p0:0:-1: + # BZ12701 %5lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lg:-0x0p+0:0:-1: + %6lg:-0x0p0:1:6:-0x0: + %*6lg:-0x0p0:0:6: +-%6lg:-nan(09A_Zaz):0:-1: +-%*6lg:-nan(09A_Zaz):0:-1: +-%6lg:-nan():1:6:-nan: +-%*6lg:-nan():0:6: +-%6lg:nan():1:5:nan: +-%*6lg:nan():0:5: +-%6lg:nan(09A_Zaz):0:-1: +-%*6lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:-nan():1:6:-nan: ++# BZ30647 %*6lg:-nan():0:6: ++# BZ30647 %6lg:nan():1:5:nan: ++# BZ30647 %*6lg:nan():0:5: ++# BZ30647 %6lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:nan(09A_Zaz):0:-1: + %6lg:0x0p0:1:5:0x0: + %*6lg:0x0p0:0:5: + %6lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lg:0xf.ffffffffffff8p+1020:0:6: + %6lg:infinity:0:-1: + %*6lg:infinity:0:-1: +-%6lg:+nan():1:6:nan: +-%*6lg:+nan():0:6: +-%6lg:+nan(09A_Zaz):0:-1: +-%*6lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:+nan():1:6:nan: ++# BZ30647 %*6lg:+nan():0:6: ++# BZ30647 %6lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:+nan(09A_Zaz):0:-1: + %6lg:+0x0p0:1:6:0x0: + %*6lg:+0x0p0:0:6: + # BZ12701 %6lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lg:-0x0p+0:0:7: + %20lg:-0x0p0:1:6:-0x0: + %*20lg:-0x0p0:0:6: +-%20lg:-nan(09A_Zaz):1:13:-nan: +-%*20lg:-nan(09A_Zaz):0:13: +-%20lg:-nan():1:6:-nan: +-%*20lg:-nan():0:6: +-%20lg:nan():1:5:nan: +-%*20lg:nan():0:5: +-%20lg:nan(09A_Zaz):1:12:nan: +-%*20lg:nan(09A_Zaz):0:12: ++# BZ30647 %20lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lg:-nan(09A_Zaz):0:13: ++# BZ30647 %20lg:-nan():1:6:-nan: ++# BZ30647 %*20lg:-nan():0:6: ++# BZ30647 %20lg:nan():1:5:nan: ++# BZ30647 %*20lg:nan():0:5: ++# BZ30647 %20lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20lg:nan(09A_Zaz):0:12: + %20lg:0x0p0:1:5:0x0: + %*20lg:0x0p0:0:5: + %20lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lg:0xf.ffffffffffff8p+1020:0:20: + %20lg:infinity:1:8:inf: + %*20lg:infinity:0:8: +-%20lg:+nan():1:6:nan: +-%*20lg:+nan():0:6: +-%20lg:+nan(09A_Zaz):1:13:nan: +-%*20lg:+nan(09A_Zaz):0:13: ++# BZ30647 %20lg:+nan():1:6:nan: ++# BZ30647 %*20lg:+nan():0:6: ++# BZ30647 %20lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20lg:+nan(09A_Zaz):0:13: + %20lg:+0x0p0:1:6:0x0: + %*20lg:+0x0p0:0:6: + %20lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lg:-0x0p+0:0:7: + %32lg:-0x0p0:1:6:-0x0: + %*32lg:-0x0p0:0:6: +-%32lg:-nan(09A_Zaz):1:13:-nan: +-%*32lg:-nan(09A_Zaz):0:13: +-%32lg:-nan():1:6:-nan: +-%*32lg:-nan():0:6: +-%32lg:nan():1:5:nan: +-%*32lg:nan():0:5: +-%32lg:nan(09A_Zaz):1:12:nan: +-%*32lg:nan(09A_Zaz):0:12: ++# BZ30647 %32lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lg:-nan(09A_Zaz):0:13: ++# BZ30647 %32lg:-nan():1:6:-nan: ++# BZ30647 %*32lg:-nan():0:6: ++# BZ30647 %32lg:nan():1:5:nan: ++# BZ30647 %*32lg:nan():0:5: ++# BZ30647 %32lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32lg:nan(09A_Zaz):0:12: + %32lg:0x0p0:1:5:0x0: + %*32lg:0x0p0:0:5: + %32lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lg:0xf.ffffffffffff8p+1020:0:23: + %32lg:infinity:1:8:inf: + %*32lg:infinity:0:8: +-%32lg:+nan():1:6:nan: +-%*32lg:+nan():0:6: +-%32lg:+nan(09A_Zaz):1:13:nan: +-%*32lg:+nan(09A_Zaz):0:13: ++# BZ30647 %32lg:+nan():1:6:nan: ++# BZ30647 %*32lg:+nan():0:6: ++# BZ30647 %32lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32lg:+nan(09A_Zaz):0:13: + %32lg:+0x0p0:1:6:0x0: + %*32lg:+0x0p0:0:6: + %32lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lg: -0x0p+0:0:-1: + # BZ12701 %5lg: -0x0p0:0:-1: + # BZ12701 %*5lg: -0x0p0:0:-1: +-%5lg: -nan(09A_Zaz):0:-1: +-%*5lg: -nan(09A_Zaz):0:-1: +-%5lg: -nan():0:-1: +-%*5lg: -nan():0:-1: +-%5lg: nan():1:6:nan: +-%*5lg: nan():0:6: +-%5lg: nan(09A_Zaz):0:-1: +-%*5lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: -nan():0:-1: ++# BZ30647 %*5lg: -nan():0:-1: ++# BZ30647 %5lg: nan():1:6:nan: ++# BZ30647 %*5lg: nan():0:6: ++# BZ30647 %5lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: nan(09A_Zaz):0:-1: + %5lg: 0x0p0:1:6:0x0: + %*5lg: 0x0p0:0:6: + # BZ12701 %5lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lg: 0xf.ffffffffffff8p+1020:0:6: + %5lg: infinity:0:-1: + %*5lg: infinity:0:-1: +-%5lg: +nan():0:-1: +-%*5lg: +nan():0:-1: +-%5lg: +nan(09A_Zaz):0:-1: +-%*5lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: +nan():0:-1: ++# BZ30647 %*5lg: +nan():0:-1: ++# BZ30647 %5lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5lg: +0x0p0:0:-1: + # BZ12701 %*5lg: +0x0p0:0:-1: + # BZ12701 %5lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lg: -0x0p+0:0:8: + %32lg: -0x0p0:1:7:-0x0: + %*32lg: -0x0p0:0:7: +-%32lg: -nan(09A_Zaz):1:14:-nan: +-%*32lg: -nan(09A_Zaz):0:14: +-%32lg: -nan():1:7:-nan: +-%*32lg: -nan():0:7: +-%32lg: nan():1:6:nan: +-%*32lg: nan():0:6: +-%32lg: nan(09A_Zaz):1:13:nan: +-%*32lg: nan(09A_Zaz):0:13: ++# BZ30647 %32lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lg: -nan(09A_Zaz):0:14: ++# BZ30647 %32lg: -nan():1:7:-nan: ++# BZ30647 %*32lg: -nan():0:7: ++# BZ30647 %32lg: nan():1:6:nan: ++# BZ30647 %*32lg: nan():0:6: ++# BZ30647 %32lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32lg: nan(09A_Zaz):0:13: + %32lg: 0x0p0:1:6:0x0: + %*32lg: 0x0p0:0:6: + %32lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lg: 0xf.ffffffffffff8p+1020:0:24: + %32lg: infinity:1:9:inf: + %*32lg: infinity:0:9: +-%32lg: +nan():1:7:nan: +-%*32lg: +nan():0:7: +-%32lg: +nan(09A_Zaz):1:14:nan: +-%*32lg: +nan(09A_Zaz):0:14: ++# BZ30647 %32lg: +nan():1:7:nan: ++# BZ30647 %*32lg: +nan():0:7: ++# BZ30647 %32lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32lg: +nan(09A_Zaz):0:14: + %32lg: +0x0p0:1:7:0x0: + %*32lg: +0x0p0:0:7: + %32lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +index eb8bb9f48ebddc7c..04255525e87c3aa3 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +@@ -16,14 +16,14 @@ + %*lG:-0X0P+0:0:7: + %lG:-0X0P0:1:6:-0x0: + %*lG:-0X0P0:0:6: +-%lG:-NAN(09A_Zaz):1:13:-nan: +-%*lG:-NAN(09A_Zaz):0:13: +-%lG:-NAN():1:6:-nan: +-%*lG:-NAN():0:6: +-%lG:NAN():1:5:nan: +-%*lG:NAN():0:5: +-%lG:NAN(09A_Zaz):1:12:nan: +-%*lG:NAN(09A_Zaz):0:12: ++# BZ30647 %lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %lG:-NAN():1:6:-nan: ++# BZ30647 %*lG:-NAN():0:6: ++# BZ30647 %lG:NAN():1:5:nan: ++# BZ30647 %*lG:NAN():0:5: ++# BZ30647 %lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lG:NAN(09A_Zaz):0:12: + %lG:0X0P0:1:5:0x0: + %*lG:0X0P0:0:5: + %lG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %lG:INFINITY:1:8:inf: + %*lG:INFINITY:0:8: +-%lG:+NAN():1:6:nan: +-%*lG:+NAN():0:6: +-%lG:+NAN(09A_Zaz):1:13:nan: +-%*lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %lG:+NAN():1:6:nan: ++# BZ30647 %*lG:+NAN():0:6: ++# BZ30647 %lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lG:+NAN(09A_Zaz):0:13: + %lG:+0X0P0:1:6:0x0: + %*lG:+0X0P0:0:6: + %lG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lG:-0X0P+0:0:-1: + %1lG:-0X0P0:0:-1: + %*1lG:-0X0P0:0:-1: +-%1lG:-NAN(09A_Zaz):0:-1: +-%*1lG:-NAN(09A_Zaz):0:-1: +-%1lG:-NAN():0:-1: +-%*1lG:-NAN():0:-1: +-%1lG:NAN():0:-1: +-%*1lG:NAN():0:-1: +-%1lG:NAN(09A_Zaz):0:-1: +-%*1lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:-NAN():0:-1: ++# BZ30647 %*1lG:-NAN():0:-1: ++# BZ30647 %1lG:NAN():0:-1: ++# BZ30647 %*1lG:NAN():0:-1: ++# BZ30647 %1lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:NAN(09A_Zaz):0:-1: + %1lG:0X0P0:1:1:0x0: + %*1lG:0X0P0:0:1: + %1lG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lG:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1lG:INFINITY:0:-1: + %*1lG:INFINITY:0:-1: +-%1lG:+NAN():0:-1: +-%*1lG:+NAN():0:-1: +-%1lG:+NAN(09A_Zaz):0:-1: +-%*1lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:+NAN():0:-1: ++# BZ30647 %*1lG:+NAN():0:-1: ++# BZ30647 %1lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:+NAN(09A_Zaz):0:-1: + %1lG:+0X0P0:0:-1: + %*1lG:+0X0P0:0:-1: + %1lG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lG:-0X0P+0:0:2: + %2lG:-0X0P0:1:2:-0x0: + %*2lG:-0X0P0:0:2: +-%2lG:-NAN(09A_Zaz):0:-1: +-%*2lG:-NAN(09A_Zaz):0:-1: +-%2lG:-NAN():0:-1: +-%*2lG:-NAN():0:-1: +-%2lG:NAN():0:-1: +-%*2lG:NAN():0:-1: +-%2lG:NAN(09A_Zaz):0:-1: +-%*2lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:-NAN():0:-1: ++# BZ30647 %*2lG:-NAN():0:-1: ++# BZ30647 %2lG:NAN():0:-1: ++# BZ30647 %*2lG:NAN():0:-1: ++# BZ30647 %2lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:NAN(09A_Zaz):0:-1: + # BZ12701 %2lG:0X0P0:0:-1: + # BZ12701 %*2lG:0X0P0:0:-1: + # BZ12701 %2lG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2lG:INFINITY:0:-1: + %*2lG:INFINITY:0:-1: +-%2lG:+NAN():0:-1: +-%*2lG:+NAN():0:-1: +-%2lG:+NAN(09A_Zaz):0:-1: +-%*2lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:+NAN():0:-1: ++# BZ30647 %*2lG:+NAN():0:-1: ++# BZ30647 %2lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:+NAN(09A_Zaz):0:-1: + %2lG:+0X0P0:1:2:0x0: + %*2lG:+0X0P0:0:2: + %2lG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lG:-0X0P+0:0:-1: + # BZ12701 %3lG:-0X0P0:0:-1: + # BZ12701 %*3lG:-0X0P0:0:-1: +-%3lG:-NAN(09A_Zaz):0:-1: +-%*3lG:-NAN(09A_Zaz):0:-1: +-%3lG:-NAN():0:-1: +-%*3lG:-NAN():0:-1: +-%3lG:NAN():1:3:nan: +-%*3lG:NAN():0:3: +-%3lG:NAN(09A_Zaz):1:3:nan: +-%*3lG:NAN(09A_Zaz):0:3: ++# BZ30647 %3lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lG:-NAN():0:-1: ++# BZ30647 %*3lG:-NAN():0:-1: ++# BZ30647 %3lG:NAN():1:3:nan: ++# BZ30647 %*3lG:NAN():0:3: ++# BZ30647 %3lG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lG:NAN(09A_Zaz):0:3: + %3lG:0X0P0:1:3:0x0: + %*3lG:0X0P0:0:3: + %3lG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lG:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3lG:INFINITY:1:3:inf: + %*3lG:INFINITY:0:3: +-%3lG:+NAN():0:-1: +-%*3lG:+NAN():0:-1: +-%3lG:+NAN(09A_Zaz):0:-1: +-%*3lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lG:+NAN():0:-1: ++# BZ30647 %*3lG:+NAN():0:-1: ++# BZ30647 %3lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lG:+0X0P0:0:-1: + # BZ12701 %*3lG:+0X0P0:0:-1: + # BZ12701 %3lG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lG:-0X0P+0:0:4: + %4lG:-0X0P0:1:4:-0x0: + %*4lG:-0X0P0:0:4: +-%4lG:-NAN(09A_Zaz):1:4:-nan: +-%*4lG:-NAN(09A_Zaz):0:4: +-%4lG:-NAN():1:4:-nan: +-%*4lG:-NAN():0:4: +-%4lG:NAN():0:-1: +-%*4lG:NAN():0:-1: +-%4lG:NAN(09A_Zaz):0:-1: +-%*4lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lG:-NAN():1:4:-nan: ++# BZ30647 %*4lG:-NAN():0:4: ++# BZ30647 %4lG:NAN():0:-1: ++# BZ30647 %*4lG:NAN():0:-1: ++# BZ30647 %4lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lG:NAN(09A_Zaz):0:-1: + # BZ12701 %4lG:0X0P0:0:-1: + # BZ12701 %*4lG:0X0P0:0:-1: + # BZ12701 %4lG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lG:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4lG:INFINITY:0:-1: + %*4lG:INFINITY:0:-1: +-%4lG:+NAN():1:4:nan: +-%*4lG:+NAN():0:4: +-%4lG:+NAN(09A_Zaz):1:4:nan: +-%*4lG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lG:+NAN():1:4:nan: ++# BZ30647 %*4lG:+NAN():0:4: ++# BZ30647 %4lG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lG:+NAN(09A_Zaz):0:4: + %4lG:+0X0P0:1:4:0x0: + %*4lG:+0X0P0:0:4: + %4lG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lG:-0X0P+0:0:-1: + # BZ12701 %5lG:-0X0P0:0:-1: + # BZ12701 %*5lG:-0X0P0:0:-1: +-%5lG:-NAN(09A_Zaz):0:-1: +-%*5lG:-NAN(09A_Zaz):0:-1: +-%5lG:-NAN():0:-1: +-%*5lG:-NAN():0:-1: +-%5lG:NAN():1:5:nan: +-%*5lG:NAN():0:5: +-%5lG:NAN(09A_Zaz):0:-1: +-%*5lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:-NAN():0:-1: ++# BZ30647 %*5lG:-NAN():0:-1: ++# BZ30647 %5lG:NAN():1:5:nan: ++# BZ30647 %*5lG:NAN():0:5: ++# BZ30647 %5lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:NAN(09A_Zaz):0:-1: + %5lG:0X0P0:1:5:0x0: + %*5lG:0X0P0:0:5: + # BZ12701 %5lG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lG:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5lG:INFINITY:0:-1: + %*5lG:INFINITY:0:-1: +-%5lG:+NAN():0:-1: +-%*5lG:+NAN():0:-1: +-%5lG:+NAN(09A_Zaz):0:-1: +-%*5lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:+NAN():0:-1: ++# BZ30647 %*5lG:+NAN():0:-1: ++# BZ30647 %5lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5lG:+0X0P0:0:-1: + # BZ12701 %*5lG:+0X0P0:0:-1: + # BZ12701 %5lG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lG:-0X0P+0:0:-1: + %6lG:-0X0P0:1:6:-0x0: + %*6lG:-0X0P0:0:6: +-%6lG:-NAN(09A_Zaz):0:-1: +-%*6lG:-NAN(09A_Zaz):0:-1: +-%6lG:-NAN():1:6:-nan: +-%*6lG:-NAN():0:6: +-%6lG:NAN():1:5:nan: +-%*6lG:NAN():0:5: +-%6lG:NAN(09A_Zaz):0:-1: +-%*6lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:-NAN():1:6:-nan: ++# BZ30647 %*6lG:-NAN():0:6: ++# BZ30647 %6lG:NAN():1:5:nan: ++# BZ30647 %*6lG:NAN():0:5: ++# BZ30647 %6lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:NAN(09A_Zaz):0:-1: + %6lG:0X0P0:1:5:0x0: + %*6lG:0X0P0:0:5: + %6lG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lG:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6lG:INFINITY:0:-1: + %*6lG:INFINITY:0:-1: +-%6lG:+NAN():1:6:nan: +-%*6lG:+NAN():0:6: +-%6lG:+NAN(09A_Zaz):0:-1: +-%*6lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:+NAN():1:6:nan: ++# BZ30647 %*6lG:+NAN():0:6: ++# BZ30647 %6lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:+NAN(09A_Zaz):0:-1: + %6lG:+0X0P0:1:6:0x0: + %*6lG:+0X0P0:0:6: + # BZ12701 %6lG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lG:-0X0P+0:0:7: + %20lG:-0X0P0:1:6:-0x0: + %*20lG:-0X0P0:0:6: +-%20lG:-NAN(09A_Zaz):1:13:-nan: +-%*20lG:-NAN(09A_Zaz):0:13: +-%20lG:-NAN():1:6:-nan: +-%*20lG:-NAN():0:6: +-%20lG:NAN():1:5:nan: +-%*20lG:NAN():0:5: +-%20lG:NAN(09A_Zaz):1:12:nan: +-%*20lG:NAN(09A_Zaz):0:12: ++# BZ30647 %20lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %20lG:-NAN():1:6:-nan: ++# BZ30647 %*20lG:-NAN():0:6: ++# BZ30647 %20lG:NAN():1:5:nan: ++# BZ30647 %*20lG:NAN():0:5: ++# BZ30647 %20lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20lG:NAN(09A_Zaz):0:12: + %20lG:0X0P0:1:5:0x0: + %*20lG:0X0P0:0:5: + %20lG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lG:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20lG:INFINITY:1:8:inf: + %*20lG:INFINITY:0:8: +-%20lG:+NAN():1:6:nan: +-%*20lG:+NAN():0:6: +-%20lG:+NAN(09A_Zaz):1:13:nan: +-%*20lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %20lG:+NAN():1:6:nan: ++# BZ30647 %*20lG:+NAN():0:6: ++# BZ30647 %20lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20lG:+NAN(09A_Zaz):0:13: + %20lG:+0X0P0:1:6:0x0: + %*20lG:+0X0P0:0:6: + %20lG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lG:-0X0P+0:0:7: + %32lG:-0X0P0:1:6:-0x0: + %*32lG:-0X0P0:0:6: +-%32lG:-NAN(09A_Zaz):1:13:-nan: +-%*32lG:-NAN(09A_Zaz):0:13: +-%32lG:-NAN():1:6:-nan: +-%*32lG:-NAN():0:6: +-%32lG:NAN():1:5:nan: +-%*32lG:NAN():0:5: +-%32lG:NAN(09A_Zaz):1:12:nan: +-%*32lG:NAN(09A_Zaz):0:12: ++# BZ30647 %32lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %32lG:-NAN():1:6:-nan: ++# BZ30647 %*32lG:-NAN():0:6: ++# BZ30647 %32lG:NAN():1:5:nan: ++# BZ30647 %*32lG:NAN():0:5: ++# BZ30647 %32lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32lG:NAN(09A_Zaz):0:12: + %32lG:0X0P0:1:5:0x0: + %*32lG:0X0P0:0:5: + %32lG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32lG:INFINITY:1:8:inf: + %*32lG:INFINITY:0:8: +-%32lG:+NAN():1:6:nan: +-%*32lG:+NAN():0:6: +-%32lG:+NAN(09A_Zaz):1:13:nan: +-%*32lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %32lG:+NAN():1:6:nan: ++# BZ30647 %*32lG:+NAN():0:6: ++# BZ30647 %32lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lG:+NAN(09A_Zaz):0:13: + %32lG:+0X0P0:1:6:0x0: + %*32lG:+0X0P0:0:6: + %32lG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lG: -0X0P+0:0:-1: + # BZ12701 %5lG: -0X0P0:0:-1: + # BZ12701 %*5lG: -0X0P0:0:-1: +-%5lG: -NAN(09A_Zaz):0:-1: +-%*5lG: -NAN(09A_Zaz):0:-1: +-%5lG: -NAN():0:-1: +-%*5lG: -NAN():0:-1: +-%5lG: NAN():1:6:nan: +-%*5lG: NAN():0:6: +-%5lG: NAN(09A_Zaz):0:-1: +-%*5lG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: -NAN():0:-1: ++# BZ30647 %*5lG: -NAN():0:-1: ++# BZ30647 %5lG: NAN():1:6:nan: ++# BZ30647 %*5lG: NAN():0:6: ++# BZ30647 %5lG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: NAN(09A_Zaz):0:-1: + %5lG: 0X0P0:1:6:0x0: + %*5lG: 0X0P0:0:6: + # BZ12701 %5lG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lG: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5lG: INFINITY:0:-1: + %*5lG: INFINITY:0:-1: +-%5lG: +NAN():0:-1: +-%*5lG: +NAN():0:-1: +-%5lG: +NAN(09A_Zaz):0:-1: +-%*5lG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: +NAN():0:-1: ++# BZ30647 %*5lG: +NAN():0:-1: ++# BZ30647 %5lG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5lG: +0X0P0:0:-1: + # BZ12701 %*5lG: +0X0P0:0:-1: + # BZ12701 %5lG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lG: -0X0P+0:0:8: + %32lG: -0X0P0:1:7:-0x0: + %*32lG: -0X0P0:0:7: +-%32lG: -NAN(09A_Zaz):1:14:-nan: +-%*32lG: -NAN(09A_Zaz):0:14: +-%32lG: -NAN():1:7:-nan: +-%*32lG: -NAN():0:7: +-%32lG: NAN():1:6:nan: +-%*32lG: NAN():0:6: +-%32lG: NAN(09A_Zaz):1:13:nan: +-%*32lG: NAN(09A_Zaz):0:13: ++# BZ30647 %32lG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lG: -NAN(09A_Zaz):0:14: ++# BZ30647 %32lG: -NAN():1:7:-nan: ++# BZ30647 %*32lG: -NAN():0:7: ++# BZ30647 %32lG: NAN():1:6:nan: ++# BZ30647 %*32lG: NAN():0:6: ++# BZ30647 %32lG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lG: NAN(09A_Zaz):0:13: + %32lG: 0X0P0:1:6:0x0: + %*32lG: 0X0P0:0:6: + %32lG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lG: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32lG: INFINITY:1:9:inf: + %*32lG: INFINITY:0:9: +-%32lG: +NAN():1:7:nan: +-%*32lG: +NAN():0:7: +-%32lG: +NAN(09A_Zaz):1:14:nan: +-%*32lG: +NAN(09A_Zaz):0:14: ++# BZ30647 %32lG: +NAN():1:7:nan: ++# BZ30647 %*32lG: +NAN():0:7: ++# BZ30647 %32lG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32lG: +NAN(09A_Zaz):0:14: + %32lG: +0X0P0:1:7:0x0: + %*32lG: +0X0P0:0:7: + %32lG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +index 196cb734b277653e..6e32c8d4b1390ab0 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +@@ -16,14 +16,14 @@ + %*a:-0x0p+0:0:7: + %a:-0x0p0:1:6:-0x0: + %*a:-0x0p0:0:6: +-%a:-nan(09A_Zaz):1:13:-nan: +-%*a:-nan(09A_Zaz):0:13: +-%a:-nan():1:6:-nan: +-%*a:-nan():0:6: +-%a:nan():1:5:nan: +-%*a:nan():0:5: +-%a:nan(09A_Zaz):1:12:nan: +-%*a:nan(09A_Zaz):0:12: ++# BZ30647 %a:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*a:-nan(09A_Zaz):0:13: ++# BZ30647 %a:-nan():1:6:-nan: ++# BZ30647 %*a:-nan():0:6: ++# BZ30647 %a:nan():1:5:nan: ++# BZ30647 %*a:nan():0:5: ++# BZ30647 %a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*a:nan(09A_Zaz):0:12: + %a:0x0p0:1:5:0x0: + %*a:0x0p0:0:5: + %a:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*a:0xf.fffffp+124:0:14: + %a:infinity:1:8:inf: + %*a:infinity:0:8: +-%a:+nan():1:6:nan: +-%*a:+nan():0:6: +-%a:+nan(09A_Zaz):1:13:nan: +-%*a:+nan(09A_Zaz):0:13: ++# BZ30647 %a:+nan():1:6:nan: ++# BZ30647 %*a:+nan():0:6: ++# BZ30647 %a:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*a:+nan(09A_Zaz):0:13: + %a:+0x0p0:1:6:0x0: + %*a:+0x0p0:0:6: + %a:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1a:-0x0p+0:0:-1: + %1a:-0x0p0:0:-1: + %*1a:-0x0p0:0:-1: +-%1a:-nan(09A_Zaz):0:-1: +-%*1a:-nan(09A_Zaz):0:-1: +-%1a:-nan():0:-1: +-%*1a:-nan():0:-1: +-%1a:nan():0:-1: +-%*1a:nan():0:-1: +-%1a:nan(09A_Zaz):0:-1: +-%*1a:nan(09A_Zaz):0:-1: ++# BZ30647 %1a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:-nan(09A_Zaz):0:-1: ++# BZ30647 %1a:-nan():0:-1: ++# BZ30647 %*1a:-nan():0:-1: ++# BZ30647 %1a:nan():0:-1: ++# BZ30647 %*1a:nan():0:-1: ++# BZ30647 %1a:nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:nan(09A_Zaz):0:-1: + %1a:0x0p0:1:1:0x0: + %*1a:0x0p0:0:1: + %1a:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1a:0xf.fffffp+124:0:1: + %1a:infinity:0:-1: + %*1a:infinity:0:-1: +-%1a:+nan():0:-1: +-%*1a:+nan():0:-1: +-%1a:+nan(09A_Zaz):0:-1: +-%*1a:+nan(09A_Zaz):0:-1: ++# BZ30647 %1a:+nan():0:-1: ++# BZ30647 %*1a:+nan():0:-1: ++# BZ30647 %1a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:+nan(09A_Zaz):0:-1: + %1a:+0x0p0:0:-1: + %*1a:+0x0p0:0:-1: + %1a:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2a:-0x0p+0:0:2: + %2a:-0x0p0:1:2:-0x0: + %*2a:-0x0p0:0:2: +-%2a:-nan(09A_Zaz):0:-1: +-%*2a:-nan(09A_Zaz):0:-1: +-%2a:-nan():0:-1: +-%*2a:-nan():0:-1: +-%2a:nan():0:-1: +-%*2a:nan():0:-1: +-%2a:nan(09A_Zaz):0:-1: +-%*2a:nan(09A_Zaz):0:-1: ++# BZ30647 %2a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:-nan(09A_Zaz):0:-1: ++# BZ30647 %2a:-nan():0:-1: ++# BZ30647 %*2a:-nan():0:-1: ++# BZ30647 %2a:nan():0:-1: ++# BZ30647 %*2a:nan():0:-1: ++# BZ30647 %2a:nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:nan(09A_Zaz):0:-1: + # BZ12701 %2a:0x0p0:0:-1: + # BZ12701 %*2a:0x0p0:0:-1: + # BZ12701 %2a:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2a:0xf.fffffp+124:0:-1: + %2a:infinity:0:-1: + %*2a:infinity:0:-1: +-%2a:+nan():0:-1: +-%*2a:+nan():0:-1: +-%2a:+nan(09A_Zaz):0:-1: +-%*2a:+nan(09A_Zaz):0:-1: ++# BZ30647 %2a:+nan():0:-1: ++# BZ30647 %*2a:+nan():0:-1: ++# BZ30647 %2a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:+nan(09A_Zaz):0:-1: + %2a:+0x0p0:1:2:0x0: + %*2a:+0x0p0:0:2: + %2a:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3a:-0x0p+0:0:-1: + # BZ12701 %3a:-0x0p0:0:-1: + # BZ12701 %*3a:-0x0p0:0:-1: +-%3a:-nan(09A_Zaz):0:-1: +-%*3a:-nan(09A_Zaz):0:-1: +-%3a:-nan():0:-1: +-%*3a:-nan():0:-1: +-%3a:nan():1:3:nan: +-%*3a:nan():0:3: +-%3a:nan(09A_Zaz):1:3:nan: +-%*3a:nan(09A_Zaz):0:3: ++# BZ30647 %3a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3a:-nan(09A_Zaz):0:-1: ++# BZ30647 %3a:-nan():0:-1: ++# BZ30647 %*3a:-nan():0:-1: ++# BZ30647 %3a:nan():1:3:nan: ++# BZ30647 %*3a:nan():0:3: ++# BZ30647 %3a:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3a:nan(09A_Zaz):0:3: + %3a:0x0p0:1:3:0x0: + %*3a:0x0p0:0:3: + %3a:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3a:0xf.fffffp+124:0:3: + %3a:infinity:1:3:inf: + %*3a:infinity:0:3: +-%3a:+nan():0:-1: +-%*3a:+nan():0:-1: +-%3a:+nan(09A_Zaz):0:-1: +-%*3a:+nan(09A_Zaz):0:-1: ++# BZ30647 %3a:+nan():0:-1: ++# BZ30647 %*3a:+nan():0:-1: ++# BZ30647 %3a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3a:+nan(09A_Zaz):0:-1: + # BZ12701 %3a:+0x0p0:0:-1: + # BZ12701 %*3a:+0x0p0:0:-1: + # BZ12701 %3a:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4a:-0x0p+0:0:4: + %4a:-0x0p0:1:4:-0x0: + %*4a:-0x0p0:0:4: +-%4a:-nan(09A_Zaz):1:4:-nan: +-%*4a:-nan(09A_Zaz):0:4: +-%4a:-nan():1:4:-nan: +-%*4a:-nan():0:4: +-%4a:nan():0:-1: +-%*4a:nan():0:-1: +-%4a:nan(09A_Zaz):0:-1: +-%*4a:nan(09A_Zaz):0:-1: ++# BZ30647 %4a:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4a:-nan(09A_Zaz):0:4: ++# BZ30647 %4a:-nan():1:4:-nan: ++# BZ30647 %*4a:-nan():0:4: ++# BZ30647 %4a:nan():0:-1: ++# BZ30647 %*4a:nan():0:-1: ++# BZ30647 %4a:nan(09A_Zaz):0:-1: ++# BZ30647 %*4a:nan(09A_Zaz):0:-1: + # BZ12701 %4a:0x0p0:0:-1: + # BZ12701 %*4a:0x0p0:0:-1: + # BZ12701 %4a:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4a:0xf.fffffp+124:0:4: + %4a:infinity:0:-1: + %*4a:infinity:0:-1: +-%4a:+nan():1:4:nan: +-%*4a:+nan():0:4: +-%4a:+nan(09A_Zaz):1:4:nan: +-%*4a:+nan(09A_Zaz):0:4: ++# BZ30647 %4a:+nan():1:4:nan: ++# BZ30647 %*4a:+nan():0:4: ++# BZ30647 %4a:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4a:+nan(09A_Zaz):0:4: + %4a:+0x0p0:1:4:0x0: + %*4a:+0x0p0:0:4: + %4a:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5a:-0x0p+0:0:-1: + # BZ12701 %5a:-0x0p0:0:-1: + # BZ12701 %*5a:-0x0p0:0:-1: +-%5a:-nan(09A_Zaz):0:-1: +-%*5a:-nan(09A_Zaz):0:-1: +-%5a:-nan():0:-1: +-%*5a:-nan():0:-1: +-%5a:nan():1:5:nan: +-%*5a:nan():0:5: +-%5a:nan(09A_Zaz):0:-1: +-%*5a:nan(09A_Zaz):0:-1: ++# BZ30647 %5a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:-nan(09A_Zaz):0:-1: ++# BZ30647 %5a:-nan():0:-1: ++# BZ30647 %*5a:-nan():0:-1: ++# BZ30647 %5a:nan():1:5:nan: ++# BZ30647 %*5a:nan():0:5: ++# BZ30647 %5a:nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:nan(09A_Zaz):0:-1: + %5a:0x0p0:1:5:0x0: + %*5a:0x0p0:0:5: + # BZ12701 %5a:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5a:0xf.fffffp+124:0:5: + %5a:infinity:0:-1: + %*5a:infinity:0:-1: +-%5a:+nan():0:-1: +-%*5a:+nan():0:-1: +-%5a:+nan(09A_Zaz):0:-1: +-%*5a:+nan(09A_Zaz):0:-1: ++# BZ30647 %5a:+nan():0:-1: ++# BZ30647 %*5a:+nan():0:-1: ++# BZ30647 %5a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:+nan(09A_Zaz):0:-1: + # BZ12701 %5a:+0x0p0:0:-1: + # BZ12701 %*5a:+0x0p0:0:-1: + # BZ12701 %5a:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6a:-0x0p+0:0:-1: + %6a:-0x0p0:1:6:-0x0: + %*6a:-0x0p0:0:6: +-%6a:-nan(09A_Zaz):0:-1: +-%*6a:-nan(09A_Zaz):0:-1: +-%6a:-nan():1:6:-nan: +-%*6a:-nan():0:6: +-%6a:nan():1:5:nan: +-%*6a:nan():0:5: +-%6a:nan(09A_Zaz):0:-1: +-%*6a:nan(09A_Zaz):0:-1: ++# BZ30647 %6a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:-nan(09A_Zaz):0:-1: ++# BZ30647 %6a:-nan():1:6:-nan: ++# BZ30647 %*6a:-nan():0:6: ++# BZ30647 %6a:nan():1:5:nan: ++# BZ30647 %*6a:nan():0:5: ++# BZ30647 %6a:nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:nan(09A_Zaz):0:-1: + %6a:0x0p0:1:5:0x0: + %*6a:0x0p0:0:5: + %6a:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6a:0xf.fffffp+124:0:6: + %6a:infinity:0:-1: + %*6a:infinity:0:-1: +-%6a:+nan():1:6:nan: +-%*6a:+nan():0:6: +-%6a:+nan(09A_Zaz):0:-1: +-%*6a:+nan(09A_Zaz):0:-1: ++# BZ30647 %6a:+nan():1:6:nan: ++# BZ30647 %*6a:+nan():0:6: ++# BZ30647 %6a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:+nan(09A_Zaz):0:-1: + %6a:+0x0p0:1:6:0x0: + %*6a:+0x0p0:0:6: + # BZ12701 %6a:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*12a:-0x0p+0:0:7: + %12a:-0x0p0:1:6:-0x0: + %*12a:-0x0p0:0:6: +-%12a:-nan(09A_Zaz):0:-1: +-%*12a:-nan(09A_Zaz):0:-1: +-%12a:-nan():1:6:-nan: +-%*12a:-nan():0:6: +-%12a:nan():1:5:nan: +-%*12a:nan():0:5: +-%12a:nan(09A_Zaz):1:12:nan: +-%*12a:nan(09A_Zaz):0:12: ++# BZ30647 %12a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*12a:-nan(09A_Zaz):0:-1: ++# BZ30647 %12a:-nan():1:6:-nan: ++# BZ30647 %*12a:-nan():0:6: ++# BZ30647 %12a:nan():1:5:nan: ++# BZ30647 %*12a:nan():0:5: ++# BZ30647 %12a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*12a:nan(09A_Zaz):0:12: + %12a:0x0p0:1:5:0x0: + %*12a:0x0p0:0:5: + %12a:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12a:0xf.fffffp+124:0:12: + %12a:infinity:1:8:inf: + %*12a:infinity:0:8: +-%12a:+nan():1:6:nan: +-%*12a:+nan():0:6: +-%12a:+nan(09A_Zaz):0:-1: +-%*12a:+nan(09A_Zaz):0:-1: ++# BZ30647 %12a:+nan():1:6:nan: ++# BZ30647 %*12a:+nan():0:6: ++# BZ30647 %12a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*12a:+nan(09A_Zaz):0:-1: + %12a:+0x0p0:1:6:0x0: + %*12a:+0x0p0:0:6: + %12a:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18a:-0x0p+0:0:7: + %18a:-0x0p0:1:6:-0x0: + %*18a:-0x0p0:0:6: +-%18a:-nan(09A_Zaz):1:13:-nan: +-%*18a:-nan(09A_Zaz):0:13: +-%18a:-nan():1:6:-nan: +-%*18a:-nan():0:6: +-%18a:nan():1:5:nan: +-%*18a:nan():0:5: +-%18a:nan(09A_Zaz):1:12:nan: +-%*18a:nan(09A_Zaz):0:12: ++# BZ30647 %18a:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*18a:-nan(09A_Zaz):0:13: ++# BZ30647 %18a:-nan():1:6:-nan: ++# BZ30647 %*18a:-nan():0:6: ++# BZ30647 %18a:nan():1:5:nan: ++# BZ30647 %*18a:nan():0:5: ++# BZ30647 %18a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*18a:nan(09A_Zaz):0:12: + %18a:0x0p0:1:5:0x0: + %*18a:0x0p0:0:5: + %18a:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18a:0xf.fffffp+124:0:14: + %18a:infinity:1:8:inf: + %*18a:infinity:0:8: +-%18a:+nan():1:6:nan: +-%*18a:+nan():0:6: +-%18a:+nan(09A_Zaz):1:13:nan: +-%*18a:+nan(09A_Zaz):0:13: ++# BZ30647 %18a:+nan():1:6:nan: ++# BZ30647 %*18a:+nan():0:6: ++# BZ30647 %18a:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18a:+nan(09A_Zaz):0:13: + %18a:+0x0p0:1:6:0x0: + %*18a:+0x0p0:0:6: + %18a:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5a: -0x0p+0:0:-1: + # BZ12701 %5a: -0x0p0:0:-1: + # BZ12701 %*5a: -0x0p0:0:-1: +-%5a: -nan(09A_Zaz):0:-1: +-%*5a: -nan(09A_Zaz):0:-1: +-%5a: -nan():0:-1: +-%*5a: -nan():0:-1: +-%5a: nan():1:6:nan: +-%*5a: nan():0:6: +-%5a: nan(09A_Zaz):0:-1: +-%*5a: nan(09A_Zaz):0:-1: ++# BZ30647 %5a: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: -nan(09A_Zaz):0:-1: ++# BZ30647 %5a: -nan():0:-1: ++# BZ30647 %*5a: -nan():0:-1: ++# BZ30647 %5a: nan():1:6:nan: ++# BZ30647 %*5a: nan():0:6: ++# BZ30647 %5a: nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: nan(09A_Zaz):0:-1: + %5a: 0x0p0:1:6:0x0: + %*5a: 0x0p0:0:6: + # BZ12701 %5a: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5a: 0xf.fffffp+124:0:6: + %5a: infinity:0:-1: + %*5a: infinity:0:-1: +-%5a: +nan():0:-1: +-%*5a: +nan():0:-1: +-%5a: +nan(09A_Zaz):0:-1: +-%*5a: +nan(09A_Zaz):0:-1: ++# BZ30647 %5a: +nan():0:-1: ++# BZ30647 %*5a: +nan():0:-1: ++# BZ30647 %5a: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: +nan(09A_Zaz):0:-1: + # BZ12701 %5a: +0x0p0:0:-1: + # BZ12701 %*5a: +0x0p0:0:-1: + # BZ12701 %5a: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*18a: -0x0p+0:0:8: + %18a: -0x0p0:1:7:-0x0: + %*18a: -0x0p0:0:7: +-%18a: -nan(09A_Zaz):1:14:-nan: +-%*18a: -nan(09A_Zaz):0:14: +-%18a: -nan():1:7:-nan: +-%*18a: -nan():0:7: +-%18a: nan():1:6:nan: +-%*18a: nan():0:6: +-%18a: nan(09A_Zaz):1:13:nan: +-%*18a: nan(09A_Zaz):0:13: ++# BZ30647 %18a: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*18a: -nan(09A_Zaz):0:14: ++# BZ30647 %18a: -nan():1:7:-nan: ++# BZ30647 %*18a: -nan():0:7: ++# BZ30647 %18a: nan():1:6:nan: ++# BZ30647 %*18a: nan():0:6: ++# BZ30647 %18a: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18a: nan(09A_Zaz):0:13: + %18a: 0x0p0:1:6:0x0: + %*18a: 0x0p0:0:6: + %18a: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18a: 0xf.fffffp+124:0:15: + %18a: infinity:1:9:inf: + %*18a: infinity:0:9: +-%18a: +nan():1:7:nan: +-%*18a: +nan():0:7: +-%18a: +nan(09A_Zaz):1:14:nan: +-%*18a: +nan(09A_Zaz):0:14: ++# BZ30647 %18a: +nan():1:7:nan: ++# BZ30647 %*18a: +nan():0:7: ++# BZ30647 %18a: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*18a: +nan(09A_Zaz):0:14: + %18a: +0x0p0:1:7:0x0: + %*18a: +0x0p0:0:7: + %18a: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +index 9f541217605c0b7a..255d1368c0d844c0 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +@@ -16,14 +16,14 @@ + %*A:-0X0P+0:0:7: + %A:-0X0P0:1:6:-0x0: + %*A:-0X0P0:0:6: +-%A:-NAN(09A_Zaz):1:13:-nan: +-%*A:-NAN(09A_Zaz):0:13: +-%A:-NAN():1:6:-nan: +-%*A:-NAN():0:6: +-%A:NAN():1:5:nan: +-%*A:NAN():0:5: +-%A:NAN(09A_Zaz):1:12:nan: +-%*A:NAN(09A_Zaz):0:12: ++# BZ30647 %A:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*A:-NAN(09A_Zaz):0:13: ++# BZ30647 %A:-NAN():1:6:-nan: ++# BZ30647 %*A:-NAN():0:6: ++# BZ30647 %A:NAN():1:5:nan: ++# BZ30647 %*A:NAN():0:5: ++# BZ30647 %A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*A:NAN(09A_Zaz):0:12: + %A:0X0P0:1:5:0x0: + %*A:0X0P0:0:5: + %A:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*A:0XF.FFFFFP+124:0:14: + %A:INFINITY:1:8:inf: + %*A:INFINITY:0:8: +-%A:+NAN():1:6:nan: +-%*A:+NAN():0:6: +-%A:+NAN(09A_Zaz):1:13:nan: +-%*A:+NAN(09A_Zaz):0:13: ++# BZ30647 %A:+NAN():1:6:nan: ++# BZ30647 %*A:+NAN():0:6: ++# BZ30647 %A:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*A:+NAN(09A_Zaz):0:13: + %A:+0X0P0:1:6:0x0: + %*A:+0X0P0:0:6: + %A:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1A:-0X0P+0:0:-1: + %1A:-0X0P0:0:-1: + %*1A:-0X0P0:0:-1: +-%1A:-NAN(09A_Zaz):0:-1: +-%*1A:-NAN(09A_Zaz):0:-1: +-%1A:-NAN():0:-1: +-%*1A:-NAN():0:-1: +-%1A:NAN():0:-1: +-%*1A:NAN():0:-1: +-%1A:NAN(09A_Zaz):0:-1: +-%*1A:NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:-NAN():0:-1: ++# BZ30647 %*1A:-NAN():0:-1: ++# BZ30647 %1A:NAN():0:-1: ++# BZ30647 %*1A:NAN():0:-1: ++# BZ30647 %1A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:NAN(09A_Zaz):0:-1: + %1A:0X0P0:1:1:0x0: + %*1A:0X0P0:0:1: + %1A:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1A:0XF.FFFFFP+124:0:1: + %1A:INFINITY:0:-1: + %*1A:INFINITY:0:-1: +-%1A:+NAN():0:-1: +-%*1A:+NAN():0:-1: +-%1A:+NAN(09A_Zaz):0:-1: +-%*1A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:+NAN():0:-1: ++# BZ30647 %*1A:+NAN():0:-1: ++# BZ30647 %1A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:+NAN(09A_Zaz):0:-1: + %1A:+0X0P0:0:-1: + %*1A:+0X0P0:0:-1: + %1A:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2A:-0X0P+0:0:2: + %2A:-0X0P0:1:2:-0x0: + %*2A:-0X0P0:0:2: +-%2A:-NAN(09A_Zaz):0:-1: +-%*2A:-NAN(09A_Zaz):0:-1: +-%2A:-NAN():0:-1: +-%*2A:-NAN():0:-1: +-%2A:NAN():0:-1: +-%*2A:NAN():0:-1: +-%2A:NAN(09A_Zaz):0:-1: +-%*2A:NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:-NAN():0:-1: ++# BZ30647 %*2A:-NAN():0:-1: ++# BZ30647 %2A:NAN():0:-1: ++# BZ30647 %*2A:NAN():0:-1: ++# BZ30647 %2A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:NAN(09A_Zaz):0:-1: + # BZ12701 %2A:0X0P0:0:-1: + # BZ12701 %*2A:0X0P0:0:-1: + # BZ12701 %2A:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2A:0XF.FFFFFP+124:0:-1: + %2A:INFINITY:0:-1: + %*2A:INFINITY:0:-1: +-%2A:+NAN():0:-1: +-%*2A:+NAN():0:-1: +-%2A:+NAN(09A_Zaz):0:-1: +-%*2A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:+NAN():0:-1: ++# BZ30647 %*2A:+NAN():0:-1: ++# BZ30647 %2A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:+NAN(09A_Zaz):0:-1: + %2A:+0X0P0:1:2:0x0: + %*2A:+0X0P0:0:2: + %2A:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3A:-0X0P+0:0:-1: + # BZ12701 %3A:-0X0P0:0:-1: + # BZ12701 %*3A:-0X0P0:0:-1: +-%3A:-NAN(09A_Zaz):0:-1: +-%*3A:-NAN(09A_Zaz):0:-1: +-%3A:-NAN():0:-1: +-%*3A:-NAN():0:-1: +-%3A:NAN():1:3:nan: +-%*3A:NAN():0:3: +-%3A:NAN(09A_Zaz):1:3:nan: +-%*3A:NAN(09A_Zaz):0:3: ++# BZ30647 %3A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3A:-NAN():0:-1: ++# BZ30647 %*3A:-NAN():0:-1: ++# BZ30647 %3A:NAN():1:3:nan: ++# BZ30647 %*3A:NAN():0:3: ++# BZ30647 %3A:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3A:NAN(09A_Zaz):0:3: + %3A:0X0P0:1:3:0x0: + %*3A:0X0P0:0:3: + %3A:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3A:0XF.FFFFFP+124:0:3: + %3A:INFINITY:1:3:inf: + %*3A:INFINITY:0:3: +-%3A:+NAN():0:-1: +-%*3A:+NAN():0:-1: +-%3A:+NAN(09A_Zaz):0:-1: +-%*3A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3A:+NAN():0:-1: ++# BZ30647 %*3A:+NAN():0:-1: ++# BZ30647 %3A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3A:+NAN(09A_Zaz):0:-1: + # BZ12701 %3A:+0X0P0:0:-1: + # BZ12701 %*3A:+0X0P0:0:-1: + # BZ12701 %3A:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4A:-0X0P+0:0:4: + %4A:-0X0P0:1:4:-0x0: + %*4A:-0X0P0:0:4: +-%4A:-NAN(09A_Zaz):1:4:-nan: +-%*4A:-NAN(09A_Zaz):0:4: +-%4A:-NAN():1:4:-nan: +-%*4A:-NAN():0:4: +-%4A:NAN():0:-1: +-%*4A:NAN():0:-1: +-%4A:NAN(09A_Zaz):0:-1: +-%*4A:NAN(09A_Zaz):0:-1: ++# BZ30647 %4A:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4A:-NAN(09A_Zaz):0:4: ++# BZ30647 %4A:-NAN():1:4:-nan: ++# BZ30647 %*4A:-NAN():0:4: ++# BZ30647 %4A:NAN():0:-1: ++# BZ30647 %*4A:NAN():0:-1: ++# BZ30647 %4A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4A:NAN(09A_Zaz):0:-1: + # BZ12701 %4A:0X0P0:0:-1: + # BZ12701 %*4A:0X0P0:0:-1: + # BZ12701 %4A:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4A:0XF.FFFFFP+124:0:4: + %4A:INFINITY:0:-1: + %*4A:INFINITY:0:-1: +-%4A:+NAN():1:4:nan: +-%*4A:+NAN():0:4: +-%4A:+NAN(09A_Zaz):1:4:nan: +-%*4A:+NAN(09A_Zaz):0:4: ++# BZ30647 %4A:+NAN():1:4:nan: ++# BZ30647 %*4A:+NAN():0:4: ++# BZ30647 %4A:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4A:+NAN(09A_Zaz):0:4: + %4A:+0X0P0:1:4:0x0: + %*4A:+0X0P0:0:4: + %4A:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5A:-0X0P+0:0:-1: + # BZ12701 %5A:-0X0P0:0:-1: + # BZ12701 %*5A:-0X0P0:0:-1: +-%5A:-NAN(09A_Zaz):0:-1: +-%*5A:-NAN(09A_Zaz):0:-1: +-%5A:-NAN():0:-1: +-%*5A:-NAN():0:-1: +-%5A:NAN():1:5:nan: +-%*5A:NAN():0:5: +-%5A:NAN(09A_Zaz):0:-1: +-%*5A:NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:-NAN():0:-1: ++# BZ30647 %*5A:-NAN():0:-1: ++# BZ30647 %5A:NAN():1:5:nan: ++# BZ30647 %*5A:NAN():0:5: ++# BZ30647 %5A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:NAN(09A_Zaz):0:-1: + %5A:0X0P0:1:5:0x0: + %*5A:0X0P0:0:5: + # BZ12701 %5A:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5A:0XF.FFFFFP+124:0:5: + %5A:INFINITY:0:-1: + %*5A:INFINITY:0:-1: +-%5A:+NAN():0:-1: +-%*5A:+NAN():0:-1: +-%5A:+NAN(09A_Zaz):0:-1: +-%*5A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:+NAN():0:-1: ++# BZ30647 %*5A:+NAN():0:-1: ++# BZ30647 %5A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:+NAN(09A_Zaz):0:-1: + # BZ12701 %5A:+0X0P0:0:-1: + # BZ12701 %*5A:+0X0P0:0:-1: + # BZ12701 %5A:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6A:-0X0P+0:0:-1: + %6A:-0X0P0:1:6:-0x0: + %*6A:-0X0P0:0:6: +-%6A:-NAN(09A_Zaz):0:-1: +-%*6A:-NAN(09A_Zaz):0:-1: +-%6A:-NAN():1:6:-nan: +-%*6A:-NAN():0:6: +-%6A:NAN():1:5:nan: +-%*6A:NAN():0:5: +-%6A:NAN(09A_Zaz):0:-1: +-%*6A:NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:-NAN():1:6:-nan: ++# BZ30647 %*6A:-NAN():0:6: ++# BZ30647 %6A:NAN():1:5:nan: ++# BZ30647 %*6A:NAN():0:5: ++# BZ30647 %6A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:NAN(09A_Zaz):0:-1: + %6A:0X0P0:1:5:0x0: + %*6A:0X0P0:0:5: + %6A:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6A:0XF.FFFFFP+124:0:6: + %6A:INFINITY:0:-1: + %*6A:INFINITY:0:-1: +-%6A:+NAN():1:6:nan: +-%*6A:+NAN():0:6: +-%6A:+NAN(09A_Zaz):0:-1: +-%*6A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:+NAN():1:6:nan: ++# BZ30647 %*6A:+NAN():0:6: ++# BZ30647 %6A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:+NAN(09A_Zaz):0:-1: + %6A:+0X0P0:1:6:0x0: + %*6A:+0X0P0:0:6: + # BZ12701 %6A:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*12A:-0X0P+0:0:7: + %12A:-0X0P0:1:6:-0x0: + %*12A:-0X0P0:0:6: +-%12A:-NAN(09A_Zaz):0:-1: +-%*12A:-NAN(09A_Zaz):0:-1: +-%12A:-NAN():1:6:-nan: +-%*12A:-NAN():0:6: +-%12A:NAN():1:5:nan: +-%*12A:NAN():0:5: +-%12A:NAN(09A_Zaz):1:12:nan: +-%*12A:NAN(09A_Zaz):0:12: ++# BZ30647 %12A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*12A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %12A:-NAN():1:6:-nan: ++# BZ30647 %*12A:-NAN():0:6: ++# BZ30647 %12A:NAN():1:5:nan: ++# BZ30647 %*12A:NAN():0:5: ++# BZ30647 %12A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*12A:NAN(09A_Zaz):0:12: + %12A:0X0P0:1:5:0x0: + %*12A:0X0P0:0:5: + %12A:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12A:0XF.FFFFFP+124:0:12: + %12A:INFINITY:1:8:inf: + %*12A:INFINITY:0:8: +-%12A:+NAN():1:6:nan: +-%*12A:+NAN():0:6: +-%12A:+NAN(09A_Zaz):0:-1: +-%*12A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %12A:+NAN():1:6:nan: ++# BZ30647 %*12A:+NAN():0:6: ++# BZ30647 %12A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*12A:+NAN(09A_Zaz):0:-1: + %12A:+0X0P0:1:6:0x0: + %*12A:+0X0P0:0:6: + %12A:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18A:-0X0P+0:0:7: + %18A:-0X0P0:1:6:-0x0: + %*18A:-0X0P0:0:6: +-%18A:-NAN(09A_Zaz):1:13:-nan: +-%*18A:-NAN(09A_Zaz):0:13: +-%18A:-NAN():1:6:-nan: +-%*18A:-NAN():0:6: +-%18A:NAN():1:5:nan: +-%*18A:NAN():0:5: +-%18A:NAN(09A_Zaz):1:12:nan: +-%*18A:NAN(09A_Zaz):0:12: ++# BZ30647 %18A:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*18A:-NAN(09A_Zaz):0:13: ++# BZ30647 %18A:-NAN():1:6:-nan: ++# BZ30647 %*18A:-NAN():0:6: ++# BZ30647 %18A:NAN():1:5:nan: ++# BZ30647 %*18A:NAN():0:5: ++# BZ30647 %18A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*18A:NAN(09A_Zaz):0:12: + %18A:0X0P0:1:5:0x0: + %*18A:0X0P0:0:5: + %18A:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18A:0XF.FFFFFP+124:0:14: + %18A:INFINITY:1:8:inf: + %*18A:INFINITY:0:8: +-%18A:+NAN():1:6:nan: +-%*18A:+NAN():0:6: +-%18A:+NAN(09A_Zaz):1:13:nan: +-%*18A:+NAN(09A_Zaz):0:13: ++# BZ30647 %18A:+NAN():1:6:nan: ++# BZ30647 %*18A:+NAN():0:6: ++# BZ30647 %18A:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18A:+NAN(09A_Zaz):0:13: + %18A:+0X0P0:1:6:0x0: + %*18A:+0X0P0:0:6: + %18A:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5A: -0X0P+0:0:-1: + # BZ12701 %5A: -0X0P0:0:-1: + # BZ12701 %*5A: -0X0P0:0:-1: +-%5A: -NAN(09A_Zaz):0:-1: +-%*5A: -NAN(09A_Zaz):0:-1: +-%5A: -NAN():0:-1: +-%*5A: -NAN():0:-1: +-%5A: NAN():1:6:nan: +-%*5A: NAN():0:6: +-%5A: NAN(09A_Zaz):0:-1: +-%*5A: NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: -NAN():0:-1: ++# BZ30647 %*5A: -NAN():0:-1: ++# BZ30647 %5A: NAN():1:6:nan: ++# BZ30647 %*5A: NAN():0:6: ++# BZ30647 %5A: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: NAN(09A_Zaz):0:-1: + %5A: 0X0P0:1:6:0x0: + %*5A: 0X0P0:0:6: + # BZ12701 %5A: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5A: 0XF.FFFFFP+124:0:6: + %5A: INFINITY:0:-1: + %*5A: INFINITY:0:-1: +-%5A: +NAN():0:-1: +-%*5A: +NAN():0:-1: +-%5A: +NAN(09A_Zaz):0:-1: +-%*5A: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: +NAN():0:-1: ++# BZ30647 %*5A: +NAN():0:-1: ++# BZ30647 %5A: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: +NAN(09A_Zaz):0:-1: + # BZ12701 %5A: +0X0P0:0:-1: + # BZ12701 %*5A: +0X0P0:0:-1: + # BZ12701 %5A: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*18A: -0X0P+0:0:8: + %18A: -0X0P0:1:7:-0x0: + %*18A: -0X0P0:0:7: +-%18A: -NAN(09A_Zaz):1:14:-nan: +-%*18A: -NAN(09A_Zaz):0:14: +-%18A: -NAN():1:7:-nan: +-%*18A: -NAN():0:7: +-%18A: NAN():1:6:nan: +-%*18A: NAN():0:6: +-%18A: NAN(09A_Zaz):1:13:nan: +-%*18A: NAN(09A_Zaz):0:13: ++# BZ30647 %18A: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*18A: -NAN(09A_Zaz):0:14: ++# BZ30647 %18A: -NAN():1:7:-nan: ++# BZ30647 %*18A: -NAN():0:7: ++# BZ30647 %18A: NAN():1:6:nan: ++# BZ30647 %*18A: NAN():0:6: ++# BZ30647 %18A: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18A: NAN(09A_Zaz):0:13: + %18A: 0X0P0:1:6:0x0: + %*18A: 0X0P0:0:6: + %18A: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18A: 0XF.FFFFFP+124:0:15: + %18A: INFINITY:1:9:inf: + %*18A: INFINITY:0:9: +-%18A: +NAN():1:7:nan: +-%*18A: +NAN():0:7: +-%18A: +NAN(09A_Zaz):1:14:nan: +-%*18A: +NAN(09A_Zaz):0:14: ++# BZ30647 %18A: +NAN():1:7:nan: ++# BZ30647 %*18A: +NAN():0:7: ++# BZ30647 %18A: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*18A: +NAN(09A_Zaz):0:14: + %18A: +0X0P0:1:7:0x0: + %*18A: +0X0P0:0:7: + %18A: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +index e555bb47b9c86bbe..c75034244e7ef86e 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +@@ -16,14 +16,14 @@ + %*e:-0e+0:0:5: + %e:-0e0:1:4:-0x0: + %*e:-0e0:0:4: +-%e:-nan(09A_Zaz):1:13:-nan: +-%*e:-nan(09A_Zaz):0:13: +-%e:-nan():1:6:-nan: +-%*e:-nan():0:6: +-%e:nan():1:5:nan: +-%*e:nan():0:5: +-%e:nan(09A_Zaz):1:12:nan: +-%*e:nan(09A_Zaz):0:12: ++# BZ30647 %e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*e:-nan(09A_Zaz):0:13: ++# BZ30647 %e:-nan():1:6:-nan: ++# BZ30647 %*e:-nan():0:6: ++# BZ30647 %e:nan():1:5:nan: ++# BZ30647 %*e:nan():0:5: ++# BZ30647 %e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*e:nan(09A_Zaz):0:12: + %e:0e0:1:3:0x0: + %*e:0e0:0:3: + %e:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*e:3.40282346638528859811704183484516925e+38:0:41: + %e:infinity:1:8:inf: + %*e:infinity:0:8: +-%e:+nan():1:6:nan: +-%*e:+nan():0:6: +-%e:+nan(09A_Zaz):1:13:nan: +-%*e:+nan(09A_Zaz):0:13: ++# BZ30647 %e:+nan():1:6:nan: ++# BZ30647 %*e:+nan():0:6: ++# BZ30647 %e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*e:+nan(09A_Zaz):0:13: + %e:+0e0:1:4:0x0: + %*e:+0e0:0:4: + %e:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1e:-0e+0:0:-1: + %1e:-0e0:0:-1: + %*1e:-0e0:0:-1: +-%1e:-nan(09A_Zaz):0:-1: +-%*1e:-nan(09A_Zaz):0:-1: +-%1e:-nan():0:-1: +-%*1e:-nan():0:-1: +-%1e:nan():0:-1: +-%*1e:nan():0:-1: +-%1e:nan(09A_Zaz):0:-1: +-%*1e:nan(09A_Zaz):0:-1: ++# BZ30647 %1e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:-nan(09A_Zaz):0:-1: ++# BZ30647 %1e:-nan():0:-1: ++# BZ30647 %*1e:-nan():0:-1: ++# BZ30647 %1e:nan():0:-1: ++# BZ30647 %*1e:nan():0:-1: ++# BZ30647 %1e:nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:nan(09A_Zaz):0:-1: + %1e:0e0:1:1:0x0: + %*1e:0e0:0:1: + %1e:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1e:3.40282346638528859811704183484516925e+38:0:1: + %1e:infinity:0:-1: + %*1e:infinity:0:-1: +-%1e:+nan():0:-1: +-%*1e:+nan():0:-1: +-%1e:+nan(09A_Zaz):0:-1: +-%*1e:+nan(09A_Zaz):0:-1: ++# BZ30647 %1e:+nan():0:-1: ++# BZ30647 %*1e:+nan():0:-1: ++# BZ30647 %1e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:+nan(09A_Zaz):0:-1: + %1e:+0e0:0:-1: + %*1e:+0e0:0:-1: + %1e:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2e:-0e+0:0:2: + %2e:-0e0:1:2:-0x0: + %*2e:-0e0:0:2: +-%2e:-nan(09A_Zaz):0:-1: +-%*2e:-nan(09A_Zaz):0:-1: +-%2e:-nan():0:-1: +-%*2e:-nan():0:-1: +-%2e:nan():0:-1: +-%*2e:nan():0:-1: +-%2e:nan(09A_Zaz):0:-1: +-%*2e:nan(09A_Zaz):0:-1: ++# BZ30647 %2e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:-nan(09A_Zaz):0:-1: ++# BZ30647 %2e:-nan():0:-1: ++# BZ30647 %*2e:-nan():0:-1: ++# BZ30647 %2e:nan():0:-1: ++# BZ30647 %*2e:nan():0:-1: ++# BZ30647 %2e:nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:nan(09A_Zaz):0:-1: + # BZ12701 %2e:0e0:0:-1: + # BZ12701 %*2e:0e0:0:-1: + # BZ12701 %2e:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2e:3.40282346638528859811704183484516925e+38:0:2: + %2e:infinity:0:-1: + %*2e:infinity:0:-1: +-%2e:+nan():0:-1: +-%*2e:+nan():0:-1: +-%2e:+nan(09A_Zaz):0:-1: +-%*2e:+nan(09A_Zaz):0:-1: ++# BZ30647 %2e:+nan():0:-1: ++# BZ30647 %*2e:+nan():0:-1: ++# BZ30647 %2e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:+nan(09A_Zaz):0:-1: + %2e:+0e0:1:2:0x0: + %*2e:+0e0:0:2: + %2e:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3e:-0e+0:0:-1: + # BZ12701 %3e:-0e0:0:-1: + # BZ12701 %*3e:-0e0:0:-1: +-%3e:-nan(09A_Zaz):0:-1: +-%*3e:-nan(09A_Zaz):0:-1: +-%3e:-nan():0:-1: +-%*3e:-nan():0:-1: +-%3e:nan():1:3:nan: +-%*3e:nan():0:3: +-%3e:nan(09A_Zaz):1:3:nan: +-%*3e:nan(09A_Zaz):0:3: ++# BZ30647 %3e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3e:-nan(09A_Zaz):0:-1: ++# BZ30647 %3e:-nan():0:-1: ++# BZ30647 %*3e:-nan():0:-1: ++# BZ30647 %3e:nan():1:3:nan: ++# BZ30647 %*3e:nan():0:3: ++# BZ30647 %3e:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3e:nan(09A_Zaz):0:3: + %3e:0e0:1:3:0x0: + %*3e:0e0:0:3: + # BZ12701 %3e:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3e:3.40282346638528859811704183484516925e+38:0:3: + %3e:infinity:1:3:inf: + %*3e:infinity:0:3: +-%3e:+nan():0:-1: +-%*3e:+nan():0:-1: +-%3e:+nan(09A_Zaz):0:-1: +-%*3e:+nan(09A_Zaz):0:-1: ++# BZ30647 %3e:+nan():0:-1: ++# BZ30647 %*3e:+nan():0:-1: ++# BZ30647 %3e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3e:+nan(09A_Zaz):0:-1: + # BZ12701 %3e:+0e0:0:-1: + # BZ12701 %*3e:+0e0:0:-1: + # BZ12701 %3e:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4e:-0e+0:0:-1: + %4e:-0e0:1:4:-0x0: + %*4e:-0e0:0:4: +-%4e:-nan(09A_Zaz):1:4:-nan: +-%*4e:-nan(09A_Zaz):0:4: +-%4e:-nan():1:4:-nan: +-%*4e:-nan():0:4: +-%4e:nan():0:-1: +-%*4e:nan():0:-1: +-%4e:nan(09A_Zaz):0:-1: +-%*4e:nan(09A_Zaz):0:-1: ++# BZ30647 %4e:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4e:-nan(09A_Zaz):0:4: ++# BZ30647 %4e:-nan():1:4:-nan: ++# BZ30647 %*4e:-nan():0:4: ++# BZ30647 %4e:nan():0:-1: ++# BZ30647 %*4e:nan():0:-1: ++# BZ30647 %4e:nan(09A_Zaz):0:-1: ++# BZ30647 %*4e:nan(09A_Zaz):0:-1: + %4e:0e0:1:3:0x0: + %*4e:0e0:0:3: + %4e:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4e:3.40282346638528859811704183484516925e+38:0:4: + %4e:infinity:0:-1: + %*4e:infinity:0:-1: +-%4e:+nan():1:4:nan: +-%*4e:+nan():0:4: +-%4e:+nan(09A_Zaz):1:4:nan: +-%*4e:+nan(09A_Zaz):0:4: ++# BZ30647 %4e:+nan():1:4:nan: ++# BZ30647 %*4e:+nan():0:4: ++# BZ30647 %4e:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4e:+nan(09A_Zaz):0:4: + %4e:+0e0:1:4:0x0: + %*4e:+0e0:0:4: + # BZ12701 %4e:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40e:-0e+0:0:5: + %40e:-0e0:1:4:-0x0: + %*40e:-0e0:0:4: +-%40e:-nan(09A_Zaz):1:13:-nan: +-%*40e:-nan(09A_Zaz):0:13: +-%40e:-nan():1:6:-nan: +-%*40e:-nan():0:6: +-%40e:nan():1:5:nan: +-%*40e:nan():0:5: +-%40e:nan(09A_Zaz):1:12:nan: +-%*40e:nan(09A_Zaz):0:12: ++# BZ30647 %40e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40e:-nan(09A_Zaz):0:13: ++# BZ30647 %40e:-nan():1:6:-nan: ++# BZ30647 %*40e:-nan():0:6: ++# BZ30647 %40e:nan():1:5:nan: ++# BZ30647 %*40e:nan():0:5: ++# BZ30647 %40e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40e:nan(09A_Zaz):0:12: + %40e:0e0:1:3:0x0: + %*40e:0e0:0:3: + %40e:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40e:3.40282346638528859811704183484516925e+38:0:40: + %40e:infinity:1:8:inf: + %*40e:infinity:0:8: +-%40e:+nan():1:6:nan: +-%*40e:+nan():0:6: +-%40e:+nan(09A_Zaz):1:13:nan: +-%*40e:+nan(09A_Zaz):0:13: ++# BZ30647 %40e:+nan():1:6:nan: ++# BZ30647 %*40e:+nan():0:6: ++# BZ30647 %40e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40e:+nan(09A_Zaz):0:13: + %40e:+0e0:1:4:0x0: + %*40e:+0e0:0:4: + %40e:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48e:-0e+0:0:5: + %48e:-0e0:1:4:-0x0: + %*48e:-0e0:0:4: +-%48e:-nan(09A_Zaz):1:13:-nan: +-%*48e:-nan(09A_Zaz):0:13: +-%48e:-nan():1:6:-nan: +-%*48e:-nan():0:6: +-%48e:nan():1:5:nan: +-%*48e:nan():0:5: +-%48e:nan(09A_Zaz):1:12:nan: +-%*48e:nan(09A_Zaz):0:12: ++# BZ30647 %48e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48e:-nan(09A_Zaz):0:13: ++# BZ30647 %48e:-nan():1:6:-nan: ++# BZ30647 %*48e:-nan():0:6: ++# BZ30647 %48e:nan():1:5:nan: ++# BZ30647 %*48e:nan():0:5: ++# BZ30647 %48e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48e:nan(09A_Zaz):0:12: + %48e:0e0:1:3:0x0: + %*48e:0e0:0:3: + %48e:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48e:3.40282346638528859811704183484516925e+38:0:41: + %48e:infinity:1:8:inf: + %*48e:infinity:0:8: +-%48e:+nan():1:6:nan: +-%*48e:+nan():0:6: +-%48e:+nan(09A_Zaz):1:13:nan: +-%*48e:+nan(09A_Zaz):0:13: ++# BZ30647 %48e:+nan():1:6:nan: ++# BZ30647 %*48e:+nan():0:6: ++# BZ30647 %48e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48e:+nan(09A_Zaz):0:13: + %48e:+0e0:1:4:0x0: + %*48e:+0e0:0:4: + %48e:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3e: -0e+0:0:-1: + # BZ12701 %3e: -0e0:0:-1: + # BZ12701 %*3e: -0e0:0:-1: +-%3e: -nan(09A_Zaz):0:-1: +-%*3e: -nan(09A_Zaz):0:-1: +-%3e: -nan():0:-1: +-%*3e: -nan():0:-1: +-%3e: nan():1:4:nan: +-%*3e: nan():0:4: +-%3e: nan(09A_Zaz):1:4:nan: +-%*3e: nan(09A_Zaz):0:4: ++# BZ30647 %3e: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3e: -nan(09A_Zaz):0:-1: ++# BZ30647 %3e: -nan():0:-1: ++# BZ30647 %*3e: -nan():0:-1: ++# BZ30647 %3e: nan():1:4:nan: ++# BZ30647 %*3e: nan():0:4: ++# BZ30647 %3e: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3e: nan(09A_Zaz):0:4: + %3e: 0e0:1:4:0x0: + %*3e: 0e0:0:4: + # BZ12701 %3e: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3e: 3.40282346638528859811704183484516925e+38:0:4: + %3e: infinity:1:4:inf: + %*3e: infinity:0:4: +-%3e: +nan():0:-1: +-%*3e: +nan():0:-1: +-%3e: +nan(09A_Zaz):0:-1: +-%*3e: +nan(09A_Zaz):0:-1: ++# BZ30647 %3e: +nan():0:-1: ++# BZ30647 %*3e: +nan():0:-1: ++# BZ30647 %3e: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3e: +nan(09A_Zaz):0:-1: + # BZ12701 %3e: +0e0:0:-1: + # BZ12701 %*3e: +0e0:0:-1: + # BZ12701 %3e: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48e: -0e+0:0:6: + %48e: -0e0:1:5:-0x0: + %*48e: -0e0:0:5: +-%48e: -nan(09A_Zaz):1:14:-nan: +-%*48e: -nan(09A_Zaz):0:14: +-%48e: -nan():1:7:-nan: +-%*48e: -nan():0:7: +-%48e: nan():1:6:nan: +-%*48e: nan():0:6: +-%48e: nan(09A_Zaz):1:13:nan: +-%*48e: nan(09A_Zaz):0:13: ++# BZ30647 %48e: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48e: -nan(09A_Zaz):0:14: ++# BZ30647 %48e: -nan():1:7:-nan: ++# BZ30647 %*48e: -nan():0:7: ++# BZ30647 %48e: nan():1:6:nan: ++# BZ30647 %*48e: nan():0:6: ++# BZ30647 %48e: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48e: nan(09A_Zaz):0:13: + %48e: 0e0:1:4:0x0: + %*48e: 0e0:0:4: + %48e: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48e: 3.40282346638528859811704183484516925e+38:0:42: + %48e: infinity:1:9:inf: + %*48e: infinity:0:9: +-%48e: +nan():1:7:nan: +-%*48e: +nan():0:7: +-%48e: +nan(09A_Zaz):1:14:nan: +-%*48e: +nan(09A_Zaz):0:14: ++# BZ30647 %48e: +nan():1:7:nan: ++# BZ30647 %*48e: +nan():0:7: ++# BZ30647 %48e: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48e: +nan(09A_Zaz):0:14: + %48e: +0e0:1:5:0x0: + %*48e: +0e0:0:5: + %48e: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +index a5aa4175ee0a4641..aa467b9c0ea8a973 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +@@ -16,14 +16,14 @@ + %*E:-0E+0:0:5: + %E:-0E0:1:4:-0x0: + %*E:-0E0:0:4: +-%E:-NAN(09A_Zaz):1:13:-nan: +-%*E:-NAN(09A_Zaz):0:13: +-%E:-NAN():1:6:-nan: +-%*E:-NAN():0:6: +-%E:NAN():1:5:nan: +-%*E:NAN():0:5: +-%E:NAN(09A_Zaz):1:12:nan: +-%*E:NAN(09A_Zaz):0:12: ++# BZ30647 %E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*E:-NAN(09A_Zaz):0:13: ++# BZ30647 %E:-NAN():1:6:-nan: ++# BZ30647 %*E:-NAN():0:6: ++# BZ30647 %E:NAN():1:5:nan: ++# BZ30647 %*E:NAN():0:5: ++# BZ30647 %E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*E:NAN(09A_Zaz):0:12: + %E:0E0:1:3:0x0: + %*E:0E0:0:3: + %E:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*E:3.40282346638528859811704183484516925E+38:0:41: + %E:INFINITY:1:8:inf: + %*E:INFINITY:0:8: +-%E:+NAN():1:6:nan: +-%*E:+NAN():0:6: +-%E:+NAN(09A_Zaz):1:13:nan: +-%*E:+NAN(09A_Zaz):0:13: ++# BZ30647 %E:+NAN():1:6:nan: ++# BZ30647 %*E:+NAN():0:6: ++# BZ30647 %E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*E:+NAN(09A_Zaz):0:13: + %E:+0E0:1:4:0x0: + %*E:+0E0:0:4: + %E:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1E:-0E+0:0:-1: + %1E:-0E0:0:-1: + %*1E:-0E0:0:-1: +-%1E:-NAN(09A_Zaz):0:-1: +-%*1E:-NAN(09A_Zaz):0:-1: +-%1E:-NAN():0:-1: +-%*1E:-NAN():0:-1: +-%1E:NAN():0:-1: +-%*1E:NAN():0:-1: +-%1E:NAN(09A_Zaz):0:-1: +-%*1E:NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:-NAN():0:-1: ++# BZ30647 %*1E:-NAN():0:-1: ++# BZ30647 %1E:NAN():0:-1: ++# BZ30647 %*1E:NAN():0:-1: ++# BZ30647 %1E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:NAN(09A_Zaz):0:-1: + %1E:0E0:1:1:0x0: + %*1E:0E0:0:1: + %1E:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1E:3.40282346638528859811704183484516925E+38:0:1: + %1E:INFINITY:0:-1: + %*1E:INFINITY:0:-1: +-%1E:+NAN():0:-1: +-%*1E:+NAN():0:-1: +-%1E:+NAN(09A_Zaz):0:-1: +-%*1E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:+NAN():0:-1: ++# BZ30647 %*1E:+NAN():0:-1: ++# BZ30647 %1E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:+NAN(09A_Zaz):0:-1: + %1E:+0E0:0:-1: + %*1E:+0E0:0:-1: + %1E:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2E:-0E+0:0:2: + %2E:-0E0:1:2:-0x0: + %*2E:-0E0:0:2: +-%2E:-NAN(09A_Zaz):0:-1: +-%*2E:-NAN(09A_Zaz):0:-1: +-%2E:-NAN():0:-1: +-%*2E:-NAN():0:-1: +-%2E:NAN():0:-1: +-%*2E:NAN():0:-1: +-%2E:NAN(09A_Zaz):0:-1: +-%*2E:NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:-NAN():0:-1: ++# BZ30647 %*2E:-NAN():0:-1: ++# BZ30647 %2E:NAN():0:-1: ++# BZ30647 %*2E:NAN():0:-1: ++# BZ30647 %2E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:NAN(09A_Zaz):0:-1: + # BZ12701 %2E:0E0:0:-1: + # BZ12701 %*2E:0E0:0:-1: + # BZ12701 %2E:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2E:3.40282346638528859811704183484516925E+38:0:2: + %2E:INFINITY:0:-1: + %*2E:INFINITY:0:-1: +-%2E:+NAN():0:-1: +-%*2E:+NAN():0:-1: +-%2E:+NAN(09A_Zaz):0:-1: +-%*2E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:+NAN():0:-1: ++# BZ30647 %*2E:+NAN():0:-1: ++# BZ30647 %2E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:+NAN(09A_Zaz):0:-1: + %2E:+0E0:1:2:0x0: + %*2E:+0E0:0:2: + %2E:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3E:-0E+0:0:-1: + # BZ12701 %3E:-0E0:0:-1: + # BZ12701 %*3E:-0E0:0:-1: +-%3E:-NAN(09A_Zaz):0:-1: +-%*3E:-NAN(09A_Zaz):0:-1: +-%3E:-NAN():0:-1: +-%*3E:-NAN():0:-1: +-%3E:NAN():1:3:nan: +-%*3E:NAN():0:3: +-%3E:NAN(09A_Zaz):1:3:nan: +-%*3E:NAN(09A_Zaz):0:3: ++# BZ30647 %3E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3E:-NAN():0:-1: ++# BZ30647 %*3E:-NAN():0:-1: ++# BZ30647 %3E:NAN():1:3:nan: ++# BZ30647 %*3E:NAN():0:3: ++# BZ30647 %3E:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3E:NAN(09A_Zaz):0:3: + %3E:0E0:1:3:0x0: + %*3E:0E0:0:3: + # BZ12701 %3E:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3E:3.40282346638528859811704183484516925E+38:0:3: + %3E:INFINITY:1:3:inf: + %*3E:INFINITY:0:3: +-%3E:+NAN():0:-1: +-%*3E:+NAN():0:-1: +-%3E:+NAN(09A_Zaz):0:-1: +-%*3E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3E:+NAN():0:-1: ++# BZ30647 %*3E:+NAN():0:-1: ++# BZ30647 %3E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E:+NAN(09A_Zaz):0:-1: + # BZ12701 %3E:+0E0:0:-1: + # BZ12701 %*3E:+0E0:0:-1: + # BZ12701 %3E:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4E:-0E+0:0:-1: + %4E:-0E0:1:4:-0x0: + %*4E:-0E0:0:4: +-%4E:-NAN(09A_Zaz):1:4:-nan: +-%*4E:-NAN(09A_Zaz):0:4: +-%4E:-NAN():1:4:-nan: +-%*4E:-NAN():0:4: +-%4E:NAN():0:-1: +-%*4E:NAN():0:-1: +-%4E:NAN(09A_Zaz):0:-1: +-%*4E:NAN(09A_Zaz):0:-1: ++# BZ30647 %4E:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4E:-NAN(09A_Zaz):0:4: ++# BZ30647 %4E:-NAN():1:4:-nan: ++# BZ30647 %*4E:-NAN():0:4: ++# BZ30647 %4E:NAN():0:-1: ++# BZ30647 %*4E:NAN():0:-1: ++# BZ30647 %4E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4E:NAN(09A_Zaz):0:-1: + %4E:0E0:1:3:0x0: + %*4E:0E0:0:3: + %4E:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4E:3.40282346638528859811704183484516925E+38:0:4: + %4E:INFINITY:0:-1: + %*4E:INFINITY:0:-1: +-%4E:+NAN():1:4:nan: +-%*4E:+NAN():0:4: +-%4E:+NAN(09A_Zaz):1:4:nan: +-%*4E:+NAN(09A_Zaz):0:4: ++# BZ30647 %4E:+NAN():1:4:nan: ++# BZ30647 %*4E:+NAN():0:4: ++# BZ30647 %4E:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4E:+NAN(09A_Zaz):0:4: + %4E:+0E0:1:4:0x0: + %*4E:+0E0:0:4: + # BZ12701 %4E:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40E:-0E+0:0:5: + %40E:-0E0:1:4:-0x0: + %*40E:-0E0:0:4: +-%40E:-NAN(09A_Zaz):1:13:-nan: +-%*40E:-NAN(09A_Zaz):0:13: +-%40E:-NAN():1:6:-nan: +-%*40E:-NAN():0:6: +-%40E:NAN():1:5:nan: +-%*40E:NAN():0:5: +-%40E:NAN(09A_Zaz):1:12:nan: +-%*40E:NAN(09A_Zaz):0:12: ++# BZ30647 %40E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40E:-NAN(09A_Zaz):0:13: ++# BZ30647 %40E:-NAN():1:6:-nan: ++# BZ30647 %*40E:-NAN():0:6: ++# BZ30647 %40E:NAN():1:5:nan: ++# BZ30647 %*40E:NAN():0:5: ++# BZ30647 %40E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40E:NAN(09A_Zaz):0:12: + %40E:0E0:1:3:0x0: + %*40E:0E0:0:3: + %40E:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40E:3.40282346638528859811704183484516925E+38:0:40: + %40E:INFINITY:1:8:inf: + %*40E:INFINITY:0:8: +-%40E:+NAN():1:6:nan: +-%*40E:+NAN():0:6: +-%40E:+NAN(09A_Zaz):1:13:nan: +-%*40E:+NAN(09A_Zaz):0:13: ++# BZ30647 %40E:+NAN():1:6:nan: ++# BZ30647 %*40E:+NAN():0:6: ++# BZ30647 %40E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40E:+NAN(09A_Zaz):0:13: + %40E:+0E0:1:4:0x0: + %*40E:+0E0:0:4: + %40E:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48E:-0E+0:0:5: + %48E:-0E0:1:4:-0x0: + %*48E:-0E0:0:4: +-%48E:-NAN(09A_Zaz):1:13:-nan: +-%*48E:-NAN(09A_Zaz):0:13: +-%48E:-NAN():1:6:-nan: +-%*48E:-NAN():0:6: +-%48E:NAN():1:5:nan: +-%*48E:NAN():0:5: +-%48E:NAN(09A_Zaz):1:12:nan: +-%*48E:NAN(09A_Zaz):0:12: ++# BZ30647 %48E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48E:-NAN(09A_Zaz):0:13: ++# BZ30647 %48E:-NAN():1:6:-nan: ++# BZ30647 %*48E:-NAN():0:6: ++# BZ30647 %48E:NAN():1:5:nan: ++# BZ30647 %*48E:NAN():0:5: ++# BZ30647 %48E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48E:NAN(09A_Zaz):0:12: + %48E:0E0:1:3:0x0: + %*48E:0E0:0:3: + %48E:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48E:3.40282346638528859811704183484516925E+38:0:41: + %48E:INFINITY:1:8:inf: + %*48E:INFINITY:0:8: +-%48E:+NAN():1:6:nan: +-%*48E:+NAN():0:6: +-%48E:+NAN(09A_Zaz):1:13:nan: +-%*48E:+NAN(09A_Zaz):0:13: ++# BZ30647 %48E:+NAN():1:6:nan: ++# BZ30647 %*48E:+NAN():0:6: ++# BZ30647 %48E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48E:+NAN(09A_Zaz):0:13: + %48E:+0E0:1:4:0x0: + %*48E:+0E0:0:4: + %48E:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3E: -0E+0:0:-1: + # BZ12701 %3E: -0E0:0:-1: + # BZ12701 %*3E: -0E0:0:-1: +-%3E: -NAN(09A_Zaz):0:-1: +-%*3E: -NAN(09A_Zaz):0:-1: +-%3E: -NAN():0:-1: +-%*3E: -NAN():0:-1: +-%3E: NAN():1:4:nan: +-%*3E: NAN():0:4: +-%3E: NAN(09A_Zaz):1:4:nan: +-%*3E: NAN(09A_Zaz):0:4: ++# BZ30647 %3E: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3E: -NAN():0:-1: ++# BZ30647 %*3E: -NAN():0:-1: ++# BZ30647 %3E: NAN():1:4:nan: ++# BZ30647 %*3E: NAN():0:4: ++# BZ30647 %3E: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3E: NAN(09A_Zaz):0:4: + %3E: 0E0:1:4:0x0: + %*3E: 0E0:0:4: + # BZ12701 %3E: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3E: 3.40282346638528859811704183484516925E+38:0:4: + %3E: INFINITY:1:4:inf: + %*3E: INFINITY:0:4: +-%3E: +NAN():0:-1: +-%*3E: +NAN():0:-1: +-%3E: +NAN(09A_Zaz):0:-1: +-%*3E: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3E: +NAN():0:-1: ++# BZ30647 %*3E: +NAN():0:-1: ++# BZ30647 %3E: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E: +NAN(09A_Zaz):0:-1: + # BZ12701 %3E: +0E0:0:-1: + # BZ12701 %*3E: +0E0:0:-1: + # BZ12701 %3E: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48E: -0E+0:0:6: + %48E: -0E0:1:5:-0x0: + %*48E: -0E0:0:5: +-%48E: -NAN(09A_Zaz):1:14:-nan: +-%*48E: -NAN(09A_Zaz):0:14: +-%48E: -NAN():1:7:-nan: +-%*48E: -NAN():0:7: +-%48E: NAN():1:6:nan: +-%*48E: NAN():0:6: +-%48E: NAN(09A_Zaz):1:13:nan: +-%*48E: NAN(09A_Zaz):0:13: ++# BZ30647 %48E: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48E: -NAN(09A_Zaz):0:14: ++# BZ30647 %48E: -NAN():1:7:-nan: ++# BZ30647 %*48E: -NAN():0:7: ++# BZ30647 %48E: NAN():1:6:nan: ++# BZ30647 %*48E: NAN():0:6: ++# BZ30647 %48E: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48E: NAN(09A_Zaz):0:13: + %48E: 0E0:1:4:0x0: + %*48E: 0E0:0:4: + %48E: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48E: 3.40282346638528859811704183484516925E+38:0:42: + %48E: INFINITY:1:9:inf: + %*48E: INFINITY:0:9: +-%48E: +NAN():1:7:nan: +-%*48E: +NAN():0:7: +-%48E: +NAN(09A_Zaz):1:14:nan: +-%*48E: +NAN(09A_Zaz):0:14: ++# BZ30647 %48E: +NAN():1:7:nan: ++# BZ30647 %*48E: +NAN():0:7: ++# BZ30647 %48E: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48E: +NAN(09A_Zaz):0:14: + %48E: +0E0:1:5:0x0: + %*48E: +0E0:0:5: + %48E: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +index 57d9677b1b9650db..18e64459901711db 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +@@ -16,14 +16,14 @@ + %*f:-0.0:0:4: + %f:-0:1:2:-0x0: + %*f:-0:0:2: +-%f:-nan(09A_Zaz):1:13:-nan: +-%*f:-nan(09A_Zaz):0:13: +-%f:-nan():1:6:-nan: +-%*f:-nan():0:6: +-%f:nan():1:5:nan: +-%*f:nan():0:5: +-%f:nan(09A_Zaz):1:12:nan: +-%*f:nan(09A_Zaz):0:12: ++# BZ30647 %f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*f:-nan(09A_Zaz):0:13: ++# BZ30647 %f:-nan():1:6:-nan: ++# BZ30647 %*f:-nan():0:6: ++# BZ30647 %f:nan():1:5:nan: ++# BZ30647 %*f:nan():0:5: ++# BZ30647 %f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*f:nan(09A_Zaz):0:12: + %f:0:1:1:0x0: + %*f:0:0:1: + %f:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*f:0340282346638528859811704183484516925440.0:0:42: + %f:infinity:1:8:inf: + %*f:infinity:0:8: +-%f:+nan():1:6:nan: +-%*f:+nan():0:6: +-%f:+nan(09A_Zaz):1:13:nan: +-%*f:+nan(09A_Zaz):0:13: ++# BZ30647 %f:+nan():1:6:nan: ++# BZ30647 %*f:+nan():0:6: ++# BZ30647 %f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*f:+nan(09A_Zaz):0:13: + %f:+0:1:2:0x0: + %*f:+0:0:2: + %f:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1f:-0.0:0:-1: + %1f:-0:0:-1: + %*1f:-0:0:-1: +-%1f:-nan(09A_Zaz):0:-1: +-%*1f:-nan(09A_Zaz):0:-1: +-%1f:-nan():0:-1: +-%*1f:-nan():0:-1: +-%1f:nan():0:-1: +-%*1f:nan():0:-1: +-%1f:nan(09A_Zaz):0:-1: +-%*1f:nan(09A_Zaz):0:-1: ++# BZ30647 %1f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:-nan(09A_Zaz):0:-1: ++# BZ30647 %1f:-nan():0:-1: ++# BZ30647 %*1f:-nan():0:-1: ++# BZ30647 %1f:nan():0:-1: ++# BZ30647 %*1f:nan():0:-1: ++# BZ30647 %1f:nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:nan(09A_Zaz):0:-1: + %1f:0:1:1:0x0: + %*1f:0:0:1: + %1f:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1f:0340282346638528859811704183484516925440.0:0:1: + %1f:infinity:0:-1: + %*1f:infinity:0:-1: +-%1f:+nan():0:-1: +-%*1f:+nan():0:-1: +-%1f:+nan(09A_Zaz):0:-1: +-%*1f:+nan(09A_Zaz):0:-1: ++# BZ30647 %1f:+nan():0:-1: ++# BZ30647 %*1f:+nan():0:-1: ++# BZ30647 %1f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:+nan(09A_Zaz):0:-1: + %1f:+0:0:-1: + %*1f:+0:0:-1: + %1f:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2f:-0.0:0:2: + %2f:-0:1:2:-0x0: + %*2f:-0:0:2: +-%2f:-nan(09A_Zaz):0:-1: +-%*2f:-nan(09A_Zaz):0:-1: +-%2f:-nan():0:-1: +-%*2f:-nan():0:-1: +-%2f:nan():0:-1: +-%*2f:nan():0:-1: +-%2f:nan(09A_Zaz):0:-1: +-%*2f:nan(09A_Zaz):0:-1: ++# BZ30647 %2f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:-nan(09A_Zaz):0:-1: ++# BZ30647 %2f:-nan():0:-1: ++# BZ30647 %*2f:-nan():0:-1: ++# BZ30647 %2f:nan():0:-1: ++# BZ30647 %*2f:nan():0:-1: ++# BZ30647 %2f:nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:nan(09A_Zaz):0:-1: + %2f:0:1:1:0x0: + %*2f:0:0:1: + %2f:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2f:0340282346638528859811704183484516925440.0:0:2: + %2f:infinity:0:-1: + %*2f:infinity:0:-1: +-%2f:+nan():0:-1: +-%*2f:+nan():0:-1: +-%2f:+nan(09A_Zaz):0:-1: +-%*2f:+nan(09A_Zaz):0:-1: ++# BZ30647 %2f:+nan():0:-1: ++# BZ30647 %*2f:+nan():0:-1: ++# BZ30647 %2f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:+nan(09A_Zaz):0:-1: + %2f:+0:1:2:0x0: + %*2f:+0:0:2: + %2f:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3f:-0.0:0:3: + %3f:-0:1:2:-0x0: + %*3f:-0:0:2: +-%3f:-nan(09A_Zaz):0:-1: +-%*3f:-nan(09A_Zaz):0:-1: +-%3f:-nan():0:-1: +-%*3f:-nan():0:-1: +-%3f:nan():1:3:nan: +-%*3f:nan():0:3: +-%3f:nan(09A_Zaz):1:3:nan: +-%*3f:nan(09A_Zaz):0:3: ++# BZ30647 %3f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3f:-nan(09A_Zaz):0:-1: ++# BZ30647 %3f:-nan():0:-1: ++# BZ30647 %*3f:-nan():0:-1: ++# BZ30647 %3f:nan():1:3:nan: ++# BZ30647 %*3f:nan():0:3: ++# BZ30647 %3f:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3f:nan(09A_Zaz):0:3: + %3f:0:1:1:0x0: + %*3f:0:0:1: + %3f:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3f:0340282346638528859811704183484516925440.0:0:3: + %3f:infinity:1:3:inf: + %*3f:infinity:0:3: +-%3f:+nan():0:-1: +-%*3f:+nan():0:-1: +-%3f:+nan(09A_Zaz):0:-1: +-%*3f:+nan(09A_Zaz):0:-1: ++# BZ30647 %3f:+nan():0:-1: ++# BZ30647 %*3f:+nan():0:-1: ++# BZ30647 %3f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3f:+nan(09A_Zaz):0:-1: + %3f:+0:1:2:0x0: + %*3f:+0:0:2: + %3f:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4f:-0.0:0:4: + %4f:-0:1:2:-0x0: + %*4f:-0:0:2: +-%4f:-nan(09A_Zaz):1:4:-nan: +-%*4f:-nan(09A_Zaz):0:4: +-%4f:-nan():1:4:-nan: +-%*4f:-nan():0:4: +-%4f:nan():0:-1: +-%*4f:nan():0:-1: +-%4f:nan(09A_Zaz):0:-1: +-%*4f:nan(09A_Zaz):0:-1: ++# BZ30647 %4f:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4f:-nan(09A_Zaz):0:4: ++# BZ30647 %4f:-nan():1:4:-nan: ++# BZ30647 %*4f:-nan():0:4: ++# BZ30647 %4f:nan():0:-1: ++# BZ30647 %*4f:nan():0:-1: ++# BZ30647 %4f:nan(09A_Zaz):0:-1: ++# BZ30647 %*4f:nan(09A_Zaz):0:-1: + %4f:0:1:1:0x0: + %*4f:0:0:1: + %4f:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4f:0340282346638528859811704183484516925440.0:0:4: + %4f:infinity:0:-1: + %*4f:infinity:0:-1: +-%4f:+nan():1:4:nan: +-%*4f:+nan():0:4: +-%4f:+nan(09A_Zaz):1:4:nan: +-%*4f:+nan(09A_Zaz):0:4: ++# BZ30647 %4f:+nan():1:4:nan: ++# BZ30647 %*4f:+nan():0:4: ++# BZ30647 %4f:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4f:+nan(09A_Zaz):0:4: + %4f:+0:1:2:0x0: + %*4f:+0:0:2: + %4f:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*41f:-0.0:0:4: + %41f:-0:1:2:-0x0: + %*41f:-0:0:2: +-%41f:-nan(09A_Zaz):1:13:-nan: +-%*41f:-nan(09A_Zaz):0:13: +-%41f:-nan():1:6:-nan: +-%*41f:-nan():0:6: +-%41f:nan():1:5:nan: +-%*41f:nan():0:5: +-%41f:nan(09A_Zaz):1:12:nan: +-%*41f:nan(09A_Zaz):0:12: ++# BZ30647 %41f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*41f:-nan(09A_Zaz):0:13: ++# BZ30647 %41f:-nan():1:6:-nan: ++# BZ30647 %*41f:-nan():0:6: ++# BZ30647 %41f:nan():1:5:nan: ++# BZ30647 %*41f:nan():0:5: ++# BZ30647 %41f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*41f:nan(09A_Zaz):0:12: + %41f:0:1:1:0x0: + %*41f:0:0:1: + %41f:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*41f:0340282346638528859811704183484516925440.0:0:41: + %41f:infinity:1:8:inf: + %*41f:infinity:0:8: +-%41f:+nan():1:6:nan: +-%*41f:+nan():0:6: +-%41f:+nan(09A_Zaz):1:13:nan: +-%*41f:+nan(09A_Zaz):0:13: ++# BZ30647 %41f:+nan():1:6:nan: ++# BZ30647 %*41f:+nan():0:6: ++# BZ30647 %41f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*41f:+nan(09A_Zaz):0:13: + %41f:+0:1:2:0x0: + %*41f:+0:0:2: + %41f:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*80f:-0.0:0:4: + %80f:-0:1:2:-0x0: + %*80f:-0:0:2: +-%80f:-nan(09A_Zaz):1:13:-nan: +-%*80f:-nan(09A_Zaz):0:13: +-%80f:-nan():1:6:-nan: +-%*80f:-nan():0:6: +-%80f:nan():1:5:nan: +-%*80f:nan():0:5: +-%80f:nan(09A_Zaz):1:12:nan: +-%*80f:nan(09A_Zaz):0:12: ++# BZ30647 %80f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*80f:-nan(09A_Zaz):0:13: ++# BZ30647 %80f:-nan():1:6:-nan: ++# BZ30647 %*80f:-nan():0:6: ++# BZ30647 %80f:nan():1:5:nan: ++# BZ30647 %*80f:nan():0:5: ++# BZ30647 %80f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*80f:nan(09A_Zaz):0:12: + %80f:0:1:1:0x0: + %*80f:0:0:1: + %80f:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*80f:0340282346638528859811704183484516925440.0:0:42: + %80f:infinity:1:8:inf: + %*80f:infinity:0:8: +-%80f:+nan():1:6:nan: +-%*80f:+nan():0:6: +-%80f:+nan(09A_Zaz):1:13:nan: +-%*80f:+nan(09A_Zaz):0:13: ++# BZ30647 %80f:+nan():1:6:nan: ++# BZ30647 %*80f:+nan():0:6: ++# BZ30647 %80f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*80f:+nan(09A_Zaz):0:13: + %80f:+0:1:2:0x0: + %*80f:+0:0:2: + %80f:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3f: -0.0:0:4: + %3f: -0:1:3:-0x0: + %*3f: -0:0:3: +-%3f: -nan(09A_Zaz):0:-1: +-%*3f: -nan(09A_Zaz):0:-1: +-%3f: -nan():0:-1: +-%*3f: -nan():0:-1: +-%3f: nan():1:4:nan: +-%*3f: nan():0:4: +-%3f: nan(09A_Zaz):1:4:nan: +-%*3f: nan(09A_Zaz):0:4: ++# BZ30647 %3f: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3f: -nan(09A_Zaz):0:-1: ++# BZ30647 %3f: -nan():0:-1: ++# BZ30647 %*3f: -nan():0:-1: ++# BZ30647 %3f: nan():1:4:nan: ++# BZ30647 %*3f: nan():0:4: ++# BZ30647 %3f: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3f: nan(09A_Zaz):0:4: + %3f: 0:1:2:0x0: + %*3f: 0:0:2: + %3f: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3f: 0340282346638528859811704183484516925440.0:0:4: + %3f: infinity:1:4:inf: + %*3f: infinity:0:4: +-%3f: +nan():0:-1: +-%*3f: +nan():0:-1: +-%3f: +nan(09A_Zaz):0:-1: +-%*3f: +nan(09A_Zaz):0:-1: ++# BZ30647 %3f: +nan():0:-1: ++# BZ30647 %*3f: +nan():0:-1: ++# BZ30647 %3f: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3f: +nan(09A_Zaz):0:-1: + %3f: +0:1:3:0x0: + %*3f: +0:0:3: + %3f: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*80f: -0.0:0:5: + %80f: -0:1:3:-0x0: + %*80f: -0:0:3: +-%80f: -nan(09A_Zaz):1:14:-nan: +-%*80f: -nan(09A_Zaz):0:14: +-%80f: -nan():1:7:-nan: +-%*80f: -nan():0:7: +-%80f: nan():1:6:nan: +-%*80f: nan():0:6: +-%80f: nan(09A_Zaz):1:13:nan: +-%*80f: nan(09A_Zaz):0:13: ++# BZ30647 %80f: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*80f: -nan(09A_Zaz):0:14: ++# BZ30647 %80f: -nan():1:7:-nan: ++# BZ30647 %*80f: -nan():0:7: ++# BZ30647 %80f: nan():1:6:nan: ++# BZ30647 %*80f: nan():0:6: ++# BZ30647 %80f: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*80f: nan(09A_Zaz):0:13: + %80f: 0:1:2:0x0: + %*80f: 0:0:2: + %80f: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*80f: 0340282346638528859811704183484516925440.0:0:43: + %80f: infinity:1:9:inf: + %*80f: infinity:0:9: +-%80f: +nan():1:7:nan: +-%*80f: +nan():0:7: +-%80f: +nan(09A_Zaz):1:14:nan: +-%*80f: +nan(09A_Zaz):0:14: ++# BZ30647 %80f: +nan():1:7:nan: ++# BZ30647 %*80f: +nan():0:7: ++# BZ30647 %80f: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*80f: +nan(09A_Zaz):0:14: + %80f: +0:1:3:0x0: + %*80f: +0:0:3: + %80f: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +index 3ec8ed0e8f7069be..521ea247b140b17d 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +@@ -16,14 +16,14 @@ + %*F:-0.0:0:4: + %F:-0:1:2:-0x0: + %*F:-0:0:2: +-%F:-NAN(09A_Zaz):1:13:-nan: +-%*F:-NAN(09A_Zaz):0:13: +-%F:-NAN():1:6:-nan: +-%*F:-NAN():0:6: +-%F:NAN():1:5:nan: +-%*F:NAN():0:5: +-%F:NAN(09A_Zaz):1:12:nan: +-%*F:NAN(09A_Zaz):0:12: ++# BZ30647 %F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*F:-NAN(09A_Zaz):0:13: ++# BZ30647 %F:-NAN():1:6:-nan: ++# BZ30647 %*F:-NAN():0:6: ++# BZ30647 %F:NAN():1:5:nan: ++# BZ30647 %*F:NAN():0:5: ++# BZ30647 %F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*F:NAN(09A_Zaz):0:12: + %F:0:1:1:0x0: + %*F:0:0:1: + %F:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*F:0340282346638528859811704183484516925440.0:0:42: + %F:INFINITY:1:8:inf: + %*F:INFINITY:0:8: +-%F:+NAN():1:6:nan: +-%*F:+NAN():0:6: +-%F:+NAN(09A_Zaz):1:13:nan: +-%*F:+NAN(09A_Zaz):0:13: ++# BZ30647 %F:+NAN():1:6:nan: ++# BZ30647 %*F:+NAN():0:6: ++# BZ30647 %F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*F:+NAN(09A_Zaz):0:13: + %F:+0:1:2:0x0: + %*F:+0:0:2: + %F:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1F:-0.0:0:-1: + %1F:-0:0:-1: + %*1F:-0:0:-1: +-%1F:-NAN(09A_Zaz):0:-1: +-%*1F:-NAN(09A_Zaz):0:-1: +-%1F:-NAN():0:-1: +-%*1F:-NAN():0:-1: +-%1F:NAN():0:-1: +-%*1F:NAN():0:-1: +-%1F:NAN(09A_Zaz):0:-1: +-%*1F:NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:-NAN():0:-1: ++# BZ30647 %*1F:-NAN():0:-1: ++# BZ30647 %1F:NAN():0:-1: ++# BZ30647 %*1F:NAN():0:-1: ++# BZ30647 %1F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:NAN(09A_Zaz):0:-1: + %1F:0:1:1:0x0: + %*1F:0:0:1: + %1F:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1F:0340282346638528859811704183484516925440.0:0:1: + %1F:INFINITY:0:-1: + %*1F:INFINITY:0:-1: +-%1F:+NAN():0:-1: +-%*1F:+NAN():0:-1: +-%1F:+NAN(09A_Zaz):0:-1: +-%*1F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:+NAN():0:-1: ++# BZ30647 %*1F:+NAN():0:-1: ++# BZ30647 %1F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:+NAN(09A_Zaz):0:-1: + %1F:+0:0:-1: + %*1F:+0:0:-1: + %1F:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2F:-0.0:0:2: + %2F:-0:1:2:-0x0: + %*2F:-0:0:2: +-%2F:-NAN(09A_Zaz):0:-1: +-%*2F:-NAN(09A_Zaz):0:-1: +-%2F:-NAN():0:-1: +-%*2F:-NAN():0:-1: +-%2F:NAN():0:-1: +-%*2F:NAN():0:-1: +-%2F:NAN(09A_Zaz):0:-1: +-%*2F:NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:-NAN():0:-1: ++# BZ30647 %*2F:-NAN():0:-1: ++# BZ30647 %2F:NAN():0:-1: ++# BZ30647 %*2F:NAN():0:-1: ++# BZ30647 %2F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:NAN(09A_Zaz):0:-1: + %2F:0:1:1:0x0: + %*2F:0:0:1: + %2F:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2F:0340282346638528859811704183484516925440.0:0:2: + %2F:INFINITY:0:-1: + %*2F:INFINITY:0:-1: +-%2F:+NAN():0:-1: +-%*2F:+NAN():0:-1: +-%2F:+NAN(09A_Zaz):0:-1: +-%*2F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:+NAN():0:-1: ++# BZ30647 %*2F:+NAN():0:-1: ++# BZ30647 %2F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:+NAN(09A_Zaz):0:-1: + %2F:+0:1:2:0x0: + %*2F:+0:0:2: + %2F:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3F:-0.0:0:3: + %3F:-0:1:2:-0x0: + %*3F:-0:0:2: +-%3F:-NAN(09A_Zaz):0:-1: +-%*3F:-NAN(09A_Zaz):0:-1: +-%3F:-NAN():0:-1: +-%*3F:-NAN():0:-1: +-%3F:NAN():1:3:nan: +-%*3F:NAN():0:3: +-%3F:NAN(09A_Zaz):1:3:nan: +-%*3F:NAN(09A_Zaz):0:3: ++# BZ30647 %3F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3F:-NAN():0:-1: ++# BZ30647 %*3F:-NAN():0:-1: ++# BZ30647 %3F:NAN():1:3:nan: ++# BZ30647 %*3F:NAN():0:3: ++# BZ30647 %3F:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3F:NAN(09A_Zaz):0:3: + %3F:0:1:1:0x0: + %*3F:0:0:1: + %3F:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3F:0340282346638528859811704183484516925440.0:0:3: + %3F:INFINITY:1:3:inf: + %*3F:INFINITY:0:3: +-%3F:+NAN():0:-1: +-%*3F:+NAN():0:-1: +-%3F:+NAN(09A_Zaz):0:-1: +-%*3F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3F:+NAN():0:-1: ++# BZ30647 %*3F:+NAN():0:-1: ++# BZ30647 %3F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F:+NAN(09A_Zaz):0:-1: + %3F:+0:1:2:0x0: + %*3F:+0:0:2: + %3F:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4F:-0.0:0:4: + %4F:-0:1:2:-0x0: + %*4F:-0:0:2: +-%4F:-NAN(09A_Zaz):1:4:-nan: +-%*4F:-NAN(09A_Zaz):0:4: +-%4F:-NAN():1:4:-nan: +-%*4F:-NAN():0:4: +-%4F:NAN():0:-1: +-%*4F:NAN():0:-1: +-%4F:NAN(09A_Zaz):0:-1: +-%*4F:NAN(09A_Zaz):0:-1: ++# BZ30647 %4F:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4F:-NAN(09A_Zaz):0:4: ++# BZ30647 %4F:-NAN():1:4:-nan: ++# BZ30647 %*4F:-NAN():0:4: ++# BZ30647 %4F:NAN():0:-1: ++# BZ30647 %*4F:NAN():0:-1: ++# BZ30647 %4F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4F:NAN(09A_Zaz):0:-1: + %4F:0:1:1:0x0: + %*4F:0:0:1: + %4F:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4F:0340282346638528859811704183484516925440.0:0:4: + %4F:INFINITY:0:-1: + %*4F:INFINITY:0:-1: +-%4F:+NAN():1:4:nan: +-%*4F:+NAN():0:4: +-%4F:+NAN(09A_Zaz):1:4:nan: +-%*4F:+NAN(09A_Zaz):0:4: ++# BZ30647 %4F:+NAN():1:4:nan: ++# BZ30647 %*4F:+NAN():0:4: ++# BZ30647 %4F:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4F:+NAN(09A_Zaz):0:4: + %4F:+0:1:2:0x0: + %*4F:+0:0:2: + %4F:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*41F:-0.0:0:4: + %41F:-0:1:2:-0x0: + %*41F:-0:0:2: +-%41F:-NAN(09A_Zaz):1:13:-nan: +-%*41F:-NAN(09A_Zaz):0:13: +-%41F:-NAN():1:6:-nan: +-%*41F:-NAN():0:6: +-%41F:NAN():1:5:nan: +-%*41F:NAN():0:5: +-%41F:NAN(09A_Zaz):1:12:nan: +-%*41F:NAN(09A_Zaz):0:12: ++# BZ30647 %41F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*41F:-NAN(09A_Zaz):0:13: ++# BZ30647 %41F:-NAN():1:6:-nan: ++# BZ30647 %*41F:-NAN():0:6: ++# BZ30647 %41F:NAN():1:5:nan: ++# BZ30647 %*41F:NAN():0:5: ++# BZ30647 %41F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*41F:NAN(09A_Zaz):0:12: + %41F:0:1:1:0x0: + %*41F:0:0:1: + %41F:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*41F:0340282346638528859811704183484516925440.0:0:41: + %41F:INFINITY:1:8:inf: + %*41F:INFINITY:0:8: +-%41F:+NAN():1:6:nan: +-%*41F:+NAN():0:6: +-%41F:+NAN(09A_Zaz):1:13:nan: +-%*41F:+NAN(09A_Zaz):0:13: ++# BZ30647 %41F:+NAN():1:6:nan: ++# BZ30647 %*41F:+NAN():0:6: ++# BZ30647 %41F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*41F:+NAN(09A_Zaz):0:13: + %41F:+0:1:2:0x0: + %*41F:+0:0:2: + %41F:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*80F:-0.0:0:4: + %80F:-0:1:2:-0x0: + %*80F:-0:0:2: +-%80F:-NAN(09A_Zaz):1:13:-nan: +-%*80F:-NAN(09A_Zaz):0:13: +-%80F:-NAN():1:6:-nan: +-%*80F:-NAN():0:6: +-%80F:NAN():1:5:nan: +-%*80F:NAN():0:5: +-%80F:NAN(09A_Zaz):1:12:nan: +-%*80F:NAN(09A_Zaz):0:12: ++# BZ30647 %80F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*80F:-NAN(09A_Zaz):0:13: ++# BZ30647 %80F:-NAN():1:6:-nan: ++# BZ30647 %*80F:-NAN():0:6: ++# BZ30647 %80F:NAN():1:5:nan: ++# BZ30647 %*80F:NAN():0:5: ++# BZ30647 %80F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*80F:NAN(09A_Zaz):0:12: + %80F:0:1:1:0x0: + %*80F:0:0:1: + %80F:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*80F:0340282346638528859811704183484516925440.0:0:42: + %80F:INFINITY:1:8:inf: + %*80F:INFINITY:0:8: +-%80F:+NAN():1:6:nan: +-%*80F:+NAN():0:6: +-%80F:+NAN(09A_Zaz):1:13:nan: +-%*80F:+NAN(09A_Zaz):0:13: ++# BZ30647 %80F:+NAN():1:6:nan: ++# BZ30647 %*80F:+NAN():0:6: ++# BZ30647 %80F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*80F:+NAN(09A_Zaz):0:13: + %80F:+0:1:2:0x0: + %*80F:+0:0:2: + %80F:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3F: -0.0:0:4: + %3F: -0:1:3:-0x0: + %*3F: -0:0:3: +-%3F: -NAN(09A_Zaz):0:-1: +-%*3F: -NAN(09A_Zaz):0:-1: +-%3F: -NAN():0:-1: +-%*3F: -NAN():0:-1: +-%3F: NAN():1:4:nan: +-%*3F: NAN():0:4: +-%3F: NAN(09A_Zaz):1:4:nan: +-%*3F: NAN(09A_Zaz):0:4: ++# BZ30647 %3F: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3F: -NAN():0:-1: ++# BZ30647 %*3F: -NAN():0:-1: ++# BZ30647 %3F: NAN():1:4:nan: ++# BZ30647 %*3F: NAN():0:4: ++# BZ30647 %3F: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3F: NAN(09A_Zaz):0:4: + %3F: 0:1:2:0x0: + %*3F: 0:0:2: + %3F: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3F: 0340282346638528859811704183484516925440.0:0:4: + %3F: INFINITY:1:4:inf: + %*3F: INFINITY:0:4: +-%3F: +NAN():0:-1: +-%*3F: +NAN():0:-1: +-%3F: +NAN(09A_Zaz):0:-1: +-%*3F: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3F: +NAN():0:-1: ++# BZ30647 %*3F: +NAN():0:-1: ++# BZ30647 %3F: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F: +NAN(09A_Zaz):0:-1: + %3F: +0:1:3:0x0: + %*3F: +0:0:3: + %3F: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*80F: -0.0:0:5: + %80F: -0:1:3:-0x0: + %*80F: -0:0:3: +-%80F: -NAN(09A_Zaz):1:14:-nan: +-%*80F: -NAN(09A_Zaz):0:14: +-%80F: -NAN():1:7:-nan: +-%*80F: -NAN():0:7: +-%80F: NAN():1:6:nan: +-%*80F: NAN():0:6: +-%80F: NAN(09A_Zaz):1:13:nan: +-%*80F: NAN(09A_Zaz):0:13: ++# BZ30647 %80F: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*80F: -NAN(09A_Zaz):0:14: ++# BZ30647 %80F: -NAN():1:7:-nan: ++# BZ30647 %*80F: -NAN():0:7: ++# BZ30647 %80F: NAN():1:6:nan: ++# BZ30647 %*80F: NAN():0:6: ++# BZ30647 %80F: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*80F: NAN(09A_Zaz):0:13: + %80F: 0:1:2:0x0: + %*80F: 0:0:2: + %80F: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*80F: 0340282346638528859811704183484516925440.0:0:43: + %80F: INFINITY:1:9:inf: + %*80F: INFINITY:0:9: +-%80F: +NAN():1:7:nan: +-%*80F: +NAN():0:7: +-%80F: +NAN(09A_Zaz):1:14:nan: +-%*80F: +NAN(09A_Zaz):0:14: ++# BZ30647 %80F: +NAN():1:7:nan: ++# BZ30647 %*80F: +NAN():0:7: ++# BZ30647 %80F: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*80F: +NAN(09A_Zaz):0:14: + %80F: +0:1:3:0x0: + %*80F: +0:0:3: + %80F: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +index 81462cd764def99b..5b7b481e2b549682 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +@@ -16,14 +16,14 @@ + %*g:-0x0p+0:0:7: + %g:-0x0p0:1:6:-0x0: + %*g:-0x0p0:0:6: +-%g:-nan(09A_Zaz):1:13:-nan: +-%*g:-nan(09A_Zaz):0:13: +-%g:-nan():1:6:-nan: +-%*g:-nan():0:6: +-%g:nan():1:5:nan: +-%*g:nan():0:5: +-%g:nan(09A_Zaz):1:12:nan: +-%*g:nan(09A_Zaz):0:12: ++# BZ30647 %g:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*g:-nan(09A_Zaz):0:13: ++# BZ30647 %g:-nan():1:6:-nan: ++# BZ30647 %*g:-nan():0:6: ++# BZ30647 %g:nan():1:5:nan: ++# BZ30647 %*g:nan():0:5: ++# BZ30647 %g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*g:nan(09A_Zaz):0:12: + %g:0x0p0:1:5:0x0: + %*g:0x0p0:0:5: + %g:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*g:0xf.fffffp+124:0:14: + %g:infinity:1:8:inf: + %*g:infinity:0:8: +-%g:+nan():1:6:nan: +-%*g:+nan():0:6: +-%g:+nan(09A_Zaz):1:13:nan: +-%*g:+nan(09A_Zaz):0:13: ++# BZ30647 %g:+nan():1:6:nan: ++# BZ30647 %*g:+nan():0:6: ++# BZ30647 %g:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*g:+nan(09A_Zaz):0:13: + %g:+0x0p0:1:6:0x0: + %*g:+0x0p0:0:6: + %g:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1g:-0x0p+0:0:-1: + %1g:-0x0p0:0:-1: + %*1g:-0x0p0:0:-1: +-%1g:-nan(09A_Zaz):0:-1: +-%*1g:-nan(09A_Zaz):0:-1: +-%1g:-nan():0:-1: +-%*1g:-nan():0:-1: +-%1g:nan():0:-1: +-%*1g:nan():0:-1: +-%1g:nan(09A_Zaz):0:-1: +-%*1g:nan(09A_Zaz):0:-1: ++# BZ30647 %1g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:-nan(09A_Zaz):0:-1: ++# BZ30647 %1g:-nan():0:-1: ++# BZ30647 %*1g:-nan():0:-1: ++# BZ30647 %1g:nan():0:-1: ++# BZ30647 %*1g:nan():0:-1: ++# BZ30647 %1g:nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:nan(09A_Zaz):0:-1: + %1g:0x0p0:1:1:0x0: + %*1g:0x0p0:0:1: + %1g:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1g:0xf.fffffp+124:0:1: + %1g:infinity:0:-1: + %*1g:infinity:0:-1: +-%1g:+nan():0:-1: +-%*1g:+nan():0:-1: +-%1g:+nan(09A_Zaz):0:-1: +-%*1g:+nan(09A_Zaz):0:-1: ++# BZ30647 %1g:+nan():0:-1: ++# BZ30647 %*1g:+nan():0:-1: ++# BZ30647 %1g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:+nan(09A_Zaz):0:-1: + %1g:+0x0p0:0:-1: + %*1g:+0x0p0:0:-1: + %1g:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2g:-0x0p+0:0:2: + %2g:-0x0p0:1:2:-0x0: + %*2g:-0x0p0:0:2: +-%2g:-nan(09A_Zaz):0:-1: +-%*2g:-nan(09A_Zaz):0:-1: +-%2g:-nan():0:-1: +-%*2g:-nan():0:-1: +-%2g:nan():0:-1: +-%*2g:nan():0:-1: +-%2g:nan(09A_Zaz):0:-1: +-%*2g:nan(09A_Zaz):0:-1: ++# BZ30647 %2g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:-nan(09A_Zaz):0:-1: ++# BZ30647 %2g:-nan():0:-1: ++# BZ30647 %*2g:-nan():0:-1: ++# BZ30647 %2g:nan():0:-1: ++# BZ30647 %*2g:nan():0:-1: ++# BZ30647 %2g:nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:nan(09A_Zaz):0:-1: + # BZ12701 %2g:0x0p0:0:-1: + # BZ12701 %*2g:0x0p0:0:-1: + # BZ12701 %2g:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2g:0xf.fffffp+124:0:-1: + %2g:infinity:0:-1: + %*2g:infinity:0:-1: +-%2g:+nan():0:-1: +-%*2g:+nan():0:-1: +-%2g:+nan(09A_Zaz):0:-1: +-%*2g:+nan(09A_Zaz):0:-1: ++# BZ30647 %2g:+nan():0:-1: ++# BZ30647 %*2g:+nan():0:-1: ++# BZ30647 %2g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:+nan(09A_Zaz):0:-1: + %2g:+0x0p0:1:2:0x0: + %*2g:+0x0p0:0:2: + %2g:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3g:-0x0p+0:0:-1: + # BZ12701 %3g:-0x0p0:0:-1: + # BZ12701 %*3g:-0x0p0:0:-1: +-%3g:-nan(09A_Zaz):0:-1: +-%*3g:-nan(09A_Zaz):0:-1: +-%3g:-nan():0:-1: +-%*3g:-nan():0:-1: +-%3g:nan():1:3:nan: +-%*3g:nan():0:3: +-%3g:nan(09A_Zaz):1:3:nan: +-%*3g:nan(09A_Zaz):0:3: ++# BZ30647 %3g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3g:-nan(09A_Zaz):0:-1: ++# BZ30647 %3g:-nan():0:-1: ++# BZ30647 %*3g:-nan():0:-1: ++# BZ30647 %3g:nan():1:3:nan: ++# BZ30647 %*3g:nan():0:3: ++# BZ30647 %3g:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3g:nan(09A_Zaz):0:3: + %3g:0x0p0:1:3:0x0: + %*3g:0x0p0:0:3: + %3g:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3g:0xf.fffffp+124:0:3: + %3g:infinity:1:3:inf: + %*3g:infinity:0:3: +-%3g:+nan():0:-1: +-%*3g:+nan():0:-1: +-%3g:+nan(09A_Zaz):0:-1: +-%*3g:+nan(09A_Zaz):0:-1: ++# BZ30647 %3g:+nan():0:-1: ++# BZ30647 %*3g:+nan():0:-1: ++# BZ30647 %3g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3g:+nan(09A_Zaz):0:-1: + # BZ12701 %3g:+0x0p0:0:-1: + # BZ12701 %*3g:+0x0p0:0:-1: + # BZ12701 %3g:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4g:-0x0p+0:0:4: + %4g:-0x0p0:1:4:-0x0: + %*4g:-0x0p0:0:4: +-%4g:-nan(09A_Zaz):1:4:-nan: +-%*4g:-nan(09A_Zaz):0:4: +-%4g:-nan():1:4:-nan: +-%*4g:-nan():0:4: +-%4g:nan():0:-1: +-%*4g:nan():0:-1: +-%4g:nan(09A_Zaz):0:-1: +-%*4g:nan(09A_Zaz):0:-1: ++# BZ30647 %4g:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4g:-nan(09A_Zaz):0:4: ++# BZ30647 %4g:-nan():1:4:-nan: ++# BZ30647 %*4g:-nan():0:4: ++# BZ30647 %4g:nan():0:-1: ++# BZ30647 %*4g:nan():0:-1: ++# BZ30647 %4g:nan(09A_Zaz):0:-1: ++# BZ30647 %*4g:nan(09A_Zaz):0:-1: + # BZ12701 %4g:0x0p0:0:-1: + # BZ12701 %*4g:0x0p0:0:-1: + # BZ12701 %4g:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4g:0xf.fffffp+124:0:4: + %4g:infinity:0:-1: + %*4g:infinity:0:-1: +-%4g:+nan():1:4:nan: +-%*4g:+nan():0:4: +-%4g:+nan(09A_Zaz):1:4:nan: +-%*4g:+nan(09A_Zaz):0:4: ++# BZ30647 %4g:+nan():1:4:nan: ++# BZ30647 %*4g:+nan():0:4: ++# BZ30647 %4g:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4g:+nan(09A_Zaz):0:4: + %4g:+0x0p0:1:4:0x0: + %*4g:+0x0p0:0:4: + %4g:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5g:-0x0p+0:0:-1: + # BZ12701 %5g:-0x0p0:0:-1: + # BZ12701 %*5g:-0x0p0:0:-1: +-%5g:-nan(09A_Zaz):0:-1: +-%*5g:-nan(09A_Zaz):0:-1: +-%5g:-nan():0:-1: +-%*5g:-nan():0:-1: +-%5g:nan():1:5:nan: +-%*5g:nan():0:5: +-%5g:nan(09A_Zaz):0:-1: +-%*5g:nan(09A_Zaz):0:-1: ++# BZ30647 %5g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:-nan(09A_Zaz):0:-1: ++# BZ30647 %5g:-nan():0:-1: ++# BZ30647 %*5g:-nan():0:-1: ++# BZ30647 %5g:nan():1:5:nan: ++# BZ30647 %*5g:nan():0:5: ++# BZ30647 %5g:nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:nan(09A_Zaz):0:-1: + %5g:0x0p0:1:5:0x0: + %*5g:0x0p0:0:5: + # BZ12701 %5g:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5g:0xf.fffffp+124:0:5: + %5g:infinity:0:-1: + %*5g:infinity:0:-1: +-%5g:+nan():0:-1: +-%*5g:+nan():0:-1: +-%5g:+nan(09A_Zaz):0:-1: +-%*5g:+nan(09A_Zaz):0:-1: ++# BZ30647 %5g:+nan():0:-1: ++# BZ30647 %*5g:+nan():0:-1: ++# BZ30647 %5g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:+nan(09A_Zaz):0:-1: + # BZ12701 %5g:+0x0p0:0:-1: + # BZ12701 %*5g:+0x0p0:0:-1: + # BZ12701 %5g:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6g:-0x0p+0:0:-1: + %6g:-0x0p0:1:6:-0x0: + %*6g:-0x0p0:0:6: +-%6g:-nan(09A_Zaz):0:-1: +-%*6g:-nan(09A_Zaz):0:-1: +-%6g:-nan():1:6:-nan: +-%*6g:-nan():0:6: +-%6g:nan():1:5:nan: +-%*6g:nan():0:5: +-%6g:nan(09A_Zaz):0:-1: +-%*6g:nan(09A_Zaz):0:-1: ++# BZ30647 %6g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:-nan(09A_Zaz):0:-1: ++# BZ30647 %6g:-nan():1:6:-nan: ++# BZ30647 %*6g:-nan():0:6: ++# BZ30647 %6g:nan():1:5:nan: ++# BZ30647 %*6g:nan():0:5: ++# BZ30647 %6g:nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:nan(09A_Zaz):0:-1: + %6g:0x0p0:1:5:0x0: + %*6g:0x0p0:0:5: + %6g:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6g:0xf.fffffp+124:0:6: + %6g:infinity:0:-1: + %*6g:infinity:0:-1: +-%6g:+nan():1:6:nan: +-%*6g:+nan():0:6: +-%6g:+nan(09A_Zaz):0:-1: +-%*6g:+nan(09A_Zaz):0:-1: ++# BZ30647 %6g:+nan():1:6:nan: ++# BZ30647 %*6g:+nan():0:6: ++# BZ30647 %6g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:+nan(09A_Zaz):0:-1: + %6g:+0x0p0:1:6:0x0: + %*6g:+0x0p0:0:6: + # BZ12701 %6g:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*12g:-0x0p+0:0:7: + %12g:-0x0p0:1:6:-0x0: + %*12g:-0x0p0:0:6: +-%12g:-nan(09A_Zaz):0:-1: +-%*12g:-nan(09A_Zaz):0:-1: +-%12g:-nan():1:6:-nan: +-%*12g:-nan():0:6: +-%12g:nan():1:5:nan: +-%*12g:nan():0:5: +-%12g:nan(09A_Zaz):1:12:nan: +-%*12g:nan(09A_Zaz):0:12: ++# BZ30647 %12g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*12g:-nan(09A_Zaz):0:-1: ++# BZ30647 %12g:-nan():1:6:-nan: ++# BZ30647 %*12g:-nan():0:6: ++# BZ30647 %12g:nan():1:5:nan: ++# BZ30647 %*12g:nan():0:5: ++# BZ30647 %12g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*12g:nan(09A_Zaz):0:12: + %12g:0x0p0:1:5:0x0: + %*12g:0x0p0:0:5: + %12g:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12g:0xf.fffffp+124:0:12: + %12g:infinity:1:8:inf: + %*12g:infinity:0:8: +-%12g:+nan():1:6:nan: +-%*12g:+nan():0:6: +-%12g:+nan(09A_Zaz):0:-1: +-%*12g:+nan(09A_Zaz):0:-1: ++# BZ30647 %12g:+nan():1:6:nan: ++# BZ30647 %*12g:+nan():0:6: ++# BZ30647 %12g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*12g:+nan(09A_Zaz):0:-1: + %12g:+0x0p0:1:6:0x0: + %*12g:+0x0p0:0:6: + %12g:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18g:-0x0p+0:0:7: + %18g:-0x0p0:1:6:-0x0: + %*18g:-0x0p0:0:6: +-%18g:-nan(09A_Zaz):1:13:-nan: +-%*18g:-nan(09A_Zaz):0:13: +-%18g:-nan():1:6:-nan: +-%*18g:-nan():0:6: +-%18g:nan():1:5:nan: +-%*18g:nan():0:5: +-%18g:nan(09A_Zaz):1:12:nan: +-%*18g:nan(09A_Zaz):0:12: ++# BZ30647 %18g:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*18g:-nan(09A_Zaz):0:13: ++# BZ30647 %18g:-nan():1:6:-nan: ++# BZ30647 %*18g:-nan():0:6: ++# BZ30647 %18g:nan():1:5:nan: ++# BZ30647 %*18g:nan():0:5: ++# BZ30647 %18g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*18g:nan(09A_Zaz):0:12: + %18g:0x0p0:1:5:0x0: + %*18g:0x0p0:0:5: + %18g:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18g:0xf.fffffp+124:0:14: + %18g:infinity:1:8:inf: + %*18g:infinity:0:8: +-%18g:+nan():1:6:nan: +-%*18g:+nan():0:6: +-%18g:+nan(09A_Zaz):1:13:nan: +-%*18g:+nan(09A_Zaz):0:13: ++# BZ30647 %18g:+nan():1:6:nan: ++# BZ30647 %*18g:+nan():0:6: ++# BZ30647 %18g:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18g:+nan(09A_Zaz):0:13: + %18g:+0x0p0:1:6:0x0: + %*18g:+0x0p0:0:6: + %18g:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5g: -0x0p+0:0:-1: + # BZ12701 %5g: -0x0p0:0:-1: + # BZ12701 %*5g: -0x0p0:0:-1: +-%5g: -nan(09A_Zaz):0:-1: +-%*5g: -nan(09A_Zaz):0:-1: +-%5g: -nan():0:-1: +-%*5g: -nan():0:-1: +-%5g: nan():1:6:nan: +-%*5g: nan():0:6: +-%5g: nan(09A_Zaz):0:-1: +-%*5g: nan(09A_Zaz):0:-1: ++# BZ30647 %5g: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: -nan(09A_Zaz):0:-1: ++# BZ30647 %5g: -nan():0:-1: ++# BZ30647 %*5g: -nan():0:-1: ++# BZ30647 %5g: nan():1:6:nan: ++# BZ30647 %*5g: nan():0:6: ++# BZ30647 %5g: nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: nan(09A_Zaz):0:-1: + %5g: 0x0p0:1:6:0x0: + %*5g: 0x0p0:0:6: + # BZ12701 %5g: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5g: 0xf.fffffp+124:0:6: + %5g: infinity:0:-1: + %*5g: infinity:0:-1: +-%5g: +nan():0:-1: +-%*5g: +nan():0:-1: +-%5g: +nan(09A_Zaz):0:-1: +-%*5g: +nan(09A_Zaz):0:-1: ++# BZ30647 %5g: +nan():0:-1: ++# BZ30647 %*5g: +nan():0:-1: ++# BZ30647 %5g: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: +nan(09A_Zaz):0:-1: + # BZ12701 %5g: +0x0p0:0:-1: + # BZ12701 %*5g: +0x0p0:0:-1: + # BZ12701 %5g: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*18g: -0x0p+0:0:8: + %18g: -0x0p0:1:7:-0x0: + %*18g: -0x0p0:0:7: +-%18g: -nan(09A_Zaz):1:14:-nan: +-%*18g: -nan(09A_Zaz):0:14: +-%18g: -nan():1:7:-nan: +-%*18g: -nan():0:7: +-%18g: nan():1:6:nan: +-%*18g: nan():0:6: +-%18g: nan(09A_Zaz):1:13:nan: +-%*18g: nan(09A_Zaz):0:13: ++# BZ30647 %18g: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*18g: -nan(09A_Zaz):0:14: ++# BZ30647 %18g: -nan():1:7:-nan: ++# BZ30647 %*18g: -nan():0:7: ++# BZ30647 %18g: nan():1:6:nan: ++# BZ30647 %*18g: nan():0:6: ++# BZ30647 %18g: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18g: nan(09A_Zaz):0:13: + %18g: 0x0p0:1:6:0x0: + %*18g: 0x0p0:0:6: + %18g: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18g: 0xf.fffffp+124:0:15: + %18g: infinity:1:9:inf: + %*18g: infinity:0:9: +-%18g: +nan():1:7:nan: +-%*18g: +nan():0:7: +-%18g: +nan(09A_Zaz):1:14:nan: +-%*18g: +nan(09A_Zaz):0:14: ++# BZ30647 %18g: +nan():1:7:nan: ++# BZ30647 %*18g: +nan():0:7: ++# BZ30647 %18g: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*18g: +nan(09A_Zaz):0:14: + %18g: +0x0p0:1:7:0x0: + %*18g: +0x0p0:0:7: + %18g: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +index 4236ea9f247c13cc..1f6f92d1aa6e23ef 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +@@ -16,14 +16,14 @@ + %*G:-0X0P+0:0:7: + %G:-0X0P0:1:6:-0x0: + %*G:-0X0P0:0:6: +-%G:-NAN(09A_Zaz):1:13:-nan: +-%*G:-NAN(09A_Zaz):0:13: +-%G:-NAN():1:6:-nan: +-%*G:-NAN():0:6: +-%G:NAN():1:5:nan: +-%*G:NAN():0:5: +-%G:NAN(09A_Zaz):1:12:nan: +-%*G:NAN(09A_Zaz):0:12: ++# BZ30647 %G:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*G:-NAN(09A_Zaz):0:13: ++# BZ30647 %G:-NAN():1:6:-nan: ++# BZ30647 %*G:-NAN():0:6: ++# BZ30647 %G:NAN():1:5:nan: ++# BZ30647 %*G:NAN():0:5: ++# BZ30647 %G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*G:NAN(09A_Zaz):0:12: + %G:0X0P0:1:5:0x0: + %*G:0X0P0:0:5: + %G:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*G:0XF.FFFFFP+124:0:14: + %G:INFINITY:1:8:inf: + %*G:INFINITY:0:8: +-%G:+NAN():1:6:nan: +-%*G:+NAN():0:6: +-%G:+NAN(09A_Zaz):1:13:nan: +-%*G:+NAN(09A_Zaz):0:13: ++# BZ30647 %G:+NAN():1:6:nan: ++# BZ30647 %*G:+NAN():0:6: ++# BZ30647 %G:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*G:+NAN(09A_Zaz):0:13: + %G:+0X0P0:1:6:0x0: + %*G:+0X0P0:0:6: + %G:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1G:-0X0P+0:0:-1: + %1G:-0X0P0:0:-1: + %*1G:-0X0P0:0:-1: +-%1G:-NAN(09A_Zaz):0:-1: +-%*1G:-NAN(09A_Zaz):0:-1: +-%1G:-NAN():0:-1: +-%*1G:-NAN():0:-1: +-%1G:NAN():0:-1: +-%*1G:NAN():0:-1: +-%1G:NAN(09A_Zaz):0:-1: +-%*1G:NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:-NAN():0:-1: ++# BZ30647 %*1G:-NAN():0:-1: ++# BZ30647 %1G:NAN():0:-1: ++# BZ30647 %*1G:NAN():0:-1: ++# BZ30647 %1G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:NAN(09A_Zaz):0:-1: + %1G:0X0P0:1:1:0x0: + %*1G:0X0P0:0:1: + %1G:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1G:0XF.FFFFFP+124:0:1: + %1G:INFINITY:0:-1: + %*1G:INFINITY:0:-1: +-%1G:+NAN():0:-1: +-%*1G:+NAN():0:-1: +-%1G:+NAN(09A_Zaz):0:-1: +-%*1G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:+NAN():0:-1: ++# BZ30647 %*1G:+NAN():0:-1: ++# BZ30647 %1G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:+NAN(09A_Zaz):0:-1: + %1G:+0X0P0:0:-1: + %*1G:+0X0P0:0:-1: + %1G:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2G:-0X0P+0:0:2: + %2G:-0X0P0:1:2:-0x0: + %*2G:-0X0P0:0:2: +-%2G:-NAN(09A_Zaz):0:-1: +-%*2G:-NAN(09A_Zaz):0:-1: +-%2G:-NAN():0:-1: +-%*2G:-NAN():0:-1: +-%2G:NAN():0:-1: +-%*2G:NAN():0:-1: +-%2G:NAN(09A_Zaz):0:-1: +-%*2G:NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:-NAN():0:-1: ++# BZ30647 %*2G:-NAN():0:-1: ++# BZ30647 %2G:NAN():0:-1: ++# BZ30647 %*2G:NAN():0:-1: ++# BZ30647 %2G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:NAN(09A_Zaz):0:-1: + # BZ12701 %2G:0X0P0:0:-1: + # BZ12701 %*2G:0X0P0:0:-1: + # BZ12701 %2G:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2G:0XF.FFFFFP+124:0:-1: + %2G:INFINITY:0:-1: + %*2G:INFINITY:0:-1: +-%2G:+NAN():0:-1: +-%*2G:+NAN():0:-1: +-%2G:+NAN(09A_Zaz):0:-1: +-%*2G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:+NAN():0:-1: ++# BZ30647 %*2G:+NAN():0:-1: ++# BZ30647 %2G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:+NAN(09A_Zaz):0:-1: + %2G:+0X0P0:1:2:0x0: + %*2G:+0X0P0:0:2: + %2G:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3G:-0X0P+0:0:-1: + # BZ12701 %3G:-0X0P0:0:-1: + # BZ12701 %*3G:-0X0P0:0:-1: +-%3G:-NAN(09A_Zaz):0:-1: +-%*3G:-NAN(09A_Zaz):0:-1: +-%3G:-NAN():0:-1: +-%*3G:-NAN():0:-1: +-%3G:NAN():1:3:nan: +-%*3G:NAN():0:3: +-%3G:NAN(09A_Zaz):1:3:nan: +-%*3G:NAN(09A_Zaz):0:3: ++# BZ30647 %3G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3G:-NAN():0:-1: ++# BZ30647 %*3G:-NAN():0:-1: ++# BZ30647 %3G:NAN():1:3:nan: ++# BZ30647 %*3G:NAN():0:3: ++# BZ30647 %3G:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3G:NAN(09A_Zaz):0:3: + %3G:0X0P0:1:3:0x0: + %*3G:0X0P0:0:3: + %3G:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3G:0XF.FFFFFP+124:0:3: + %3G:INFINITY:1:3:inf: + %*3G:INFINITY:0:3: +-%3G:+NAN():0:-1: +-%*3G:+NAN():0:-1: +-%3G:+NAN(09A_Zaz):0:-1: +-%*3G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3G:+NAN():0:-1: ++# BZ30647 %*3G:+NAN():0:-1: ++# BZ30647 %3G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3G:+NAN(09A_Zaz):0:-1: + # BZ12701 %3G:+0X0P0:0:-1: + # BZ12701 %*3G:+0X0P0:0:-1: + # BZ12701 %3G:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4G:-0X0P+0:0:4: + %4G:-0X0P0:1:4:-0x0: + %*4G:-0X0P0:0:4: +-%4G:-NAN(09A_Zaz):1:4:-nan: +-%*4G:-NAN(09A_Zaz):0:4: +-%4G:-NAN():1:4:-nan: +-%*4G:-NAN():0:4: +-%4G:NAN():0:-1: +-%*4G:NAN():0:-1: +-%4G:NAN(09A_Zaz):0:-1: +-%*4G:NAN(09A_Zaz):0:-1: ++# BZ30647 %4G:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4G:-NAN(09A_Zaz):0:4: ++# BZ30647 %4G:-NAN():1:4:-nan: ++# BZ30647 %*4G:-NAN():0:4: ++# BZ30647 %4G:NAN():0:-1: ++# BZ30647 %*4G:NAN():0:-1: ++# BZ30647 %4G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4G:NAN(09A_Zaz):0:-1: + # BZ12701 %4G:0X0P0:0:-1: + # BZ12701 %*4G:0X0P0:0:-1: + # BZ12701 %4G:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4G:0XF.FFFFFP+124:0:4: + %4G:INFINITY:0:-1: + %*4G:INFINITY:0:-1: +-%4G:+NAN():1:4:nan: +-%*4G:+NAN():0:4: +-%4G:+NAN(09A_Zaz):1:4:nan: +-%*4G:+NAN(09A_Zaz):0:4: ++# BZ30647 %4G:+NAN():1:4:nan: ++# BZ30647 %*4G:+NAN():0:4: ++# BZ30647 %4G:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4G:+NAN(09A_Zaz):0:4: + %4G:+0X0P0:1:4:0x0: + %*4G:+0X0P0:0:4: + %4G:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5G:-0X0P+0:0:-1: + # BZ12701 %5G:-0X0P0:0:-1: + # BZ12701 %*5G:-0X0P0:0:-1: +-%5G:-NAN(09A_Zaz):0:-1: +-%*5G:-NAN(09A_Zaz):0:-1: +-%5G:-NAN():0:-1: +-%*5G:-NAN():0:-1: +-%5G:NAN():1:5:nan: +-%*5G:NAN():0:5: +-%5G:NAN(09A_Zaz):0:-1: +-%*5G:NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:-NAN():0:-1: ++# BZ30647 %*5G:-NAN():0:-1: ++# BZ30647 %5G:NAN():1:5:nan: ++# BZ30647 %*5G:NAN():0:5: ++# BZ30647 %5G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:NAN(09A_Zaz):0:-1: + %5G:0X0P0:1:5:0x0: + %*5G:0X0P0:0:5: + # BZ12701 %5G:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5G:0XF.FFFFFP+124:0:5: + %5G:INFINITY:0:-1: + %*5G:INFINITY:0:-1: +-%5G:+NAN():0:-1: +-%*5G:+NAN():0:-1: +-%5G:+NAN(09A_Zaz):0:-1: +-%*5G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:+NAN():0:-1: ++# BZ30647 %*5G:+NAN():0:-1: ++# BZ30647 %5G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:+NAN(09A_Zaz):0:-1: + # BZ12701 %5G:+0X0P0:0:-1: + # BZ12701 %*5G:+0X0P0:0:-1: + # BZ12701 %5G:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6G:-0X0P+0:0:-1: + %6G:-0X0P0:1:6:-0x0: + %*6G:-0X0P0:0:6: +-%6G:-NAN(09A_Zaz):0:-1: +-%*6G:-NAN(09A_Zaz):0:-1: +-%6G:-NAN():1:6:-nan: +-%*6G:-NAN():0:6: +-%6G:NAN():1:5:nan: +-%*6G:NAN():0:5: +-%6G:NAN(09A_Zaz):0:-1: +-%*6G:NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:-NAN():1:6:-nan: ++# BZ30647 %*6G:-NAN():0:6: ++# BZ30647 %6G:NAN():1:5:nan: ++# BZ30647 %*6G:NAN():0:5: ++# BZ30647 %6G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:NAN(09A_Zaz):0:-1: + %6G:0X0P0:1:5:0x0: + %*6G:0X0P0:0:5: + %6G:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6G:0XF.FFFFFP+124:0:6: + %6G:INFINITY:0:-1: + %*6G:INFINITY:0:-1: +-%6G:+NAN():1:6:nan: +-%*6G:+NAN():0:6: +-%6G:+NAN(09A_Zaz):0:-1: +-%*6G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:+NAN():1:6:nan: ++# BZ30647 %*6G:+NAN():0:6: ++# BZ30647 %6G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:+NAN(09A_Zaz):0:-1: + %6G:+0X0P0:1:6:0x0: + %*6G:+0X0P0:0:6: + # BZ12701 %6G:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*12G:-0X0P+0:0:7: + %12G:-0X0P0:1:6:-0x0: + %*12G:-0X0P0:0:6: +-%12G:-NAN(09A_Zaz):0:-1: +-%*12G:-NAN(09A_Zaz):0:-1: +-%12G:-NAN():1:6:-nan: +-%*12G:-NAN():0:6: +-%12G:NAN():1:5:nan: +-%*12G:NAN():0:5: +-%12G:NAN(09A_Zaz):1:12:nan: +-%*12G:NAN(09A_Zaz):0:12: ++# BZ30647 %12G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*12G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %12G:-NAN():1:6:-nan: ++# BZ30647 %*12G:-NAN():0:6: ++# BZ30647 %12G:NAN():1:5:nan: ++# BZ30647 %*12G:NAN():0:5: ++# BZ30647 %12G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*12G:NAN(09A_Zaz):0:12: + %12G:0X0P0:1:5:0x0: + %*12G:0X0P0:0:5: + %12G:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12G:0XF.FFFFFP+124:0:12: + %12G:INFINITY:1:8:inf: + %*12G:INFINITY:0:8: +-%12G:+NAN():1:6:nan: +-%*12G:+NAN():0:6: +-%12G:+NAN(09A_Zaz):0:-1: +-%*12G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %12G:+NAN():1:6:nan: ++# BZ30647 %*12G:+NAN():0:6: ++# BZ30647 %12G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*12G:+NAN(09A_Zaz):0:-1: + %12G:+0X0P0:1:6:0x0: + %*12G:+0X0P0:0:6: + %12G:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18G:-0X0P+0:0:7: + %18G:-0X0P0:1:6:-0x0: + %*18G:-0X0P0:0:6: +-%18G:-NAN(09A_Zaz):1:13:-nan: +-%*18G:-NAN(09A_Zaz):0:13: +-%18G:-NAN():1:6:-nan: +-%*18G:-NAN():0:6: +-%18G:NAN():1:5:nan: +-%*18G:NAN():0:5: +-%18G:NAN(09A_Zaz):1:12:nan: +-%*18G:NAN(09A_Zaz):0:12: ++# BZ30647 %18G:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*18G:-NAN(09A_Zaz):0:13: ++# BZ30647 %18G:-NAN():1:6:-nan: ++# BZ30647 %*18G:-NAN():0:6: ++# BZ30647 %18G:NAN():1:5:nan: ++# BZ30647 %*18G:NAN():0:5: ++# BZ30647 %18G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*18G:NAN(09A_Zaz):0:12: + %18G:0X0P0:1:5:0x0: + %*18G:0X0P0:0:5: + %18G:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18G:0XF.FFFFFP+124:0:14: + %18G:INFINITY:1:8:inf: + %*18G:INFINITY:0:8: +-%18G:+NAN():1:6:nan: +-%*18G:+NAN():0:6: +-%18G:+NAN(09A_Zaz):1:13:nan: +-%*18G:+NAN(09A_Zaz):0:13: ++# BZ30647 %18G:+NAN():1:6:nan: ++# BZ30647 %*18G:+NAN():0:6: ++# BZ30647 %18G:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18G:+NAN(09A_Zaz):0:13: + %18G:+0X0P0:1:6:0x0: + %*18G:+0X0P0:0:6: + %18G:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5G: -0X0P+0:0:-1: + # BZ12701 %5G: -0X0P0:0:-1: + # BZ12701 %*5G: -0X0P0:0:-1: +-%5G: -NAN(09A_Zaz):0:-1: +-%*5G: -NAN(09A_Zaz):0:-1: +-%5G: -NAN():0:-1: +-%*5G: -NAN():0:-1: +-%5G: NAN():1:6:nan: +-%*5G: NAN():0:6: +-%5G: NAN(09A_Zaz):0:-1: +-%*5G: NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: -NAN():0:-1: ++# BZ30647 %*5G: -NAN():0:-1: ++# BZ30647 %5G: NAN():1:6:nan: ++# BZ30647 %*5G: NAN():0:6: ++# BZ30647 %5G: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: NAN(09A_Zaz):0:-1: + %5G: 0X0P0:1:6:0x0: + %*5G: 0X0P0:0:6: + # BZ12701 %5G: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5G: 0XF.FFFFFP+124:0:6: + %5G: INFINITY:0:-1: + %*5G: INFINITY:0:-1: +-%5G: +NAN():0:-1: +-%*5G: +NAN():0:-1: +-%5G: +NAN(09A_Zaz):0:-1: +-%*5G: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: +NAN():0:-1: ++# BZ30647 %*5G: +NAN():0:-1: ++# BZ30647 %5G: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: +NAN(09A_Zaz):0:-1: + # BZ12701 %5G: +0X0P0:0:-1: + # BZ12701 %*5G: +0X0P0:0:-1: + # BZ12701 %5G: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*18G: -0X0P+0:0:8: + %18G: -0X0P0:1:7:-0x0: + %*18G: -0X0P0:0:7: +-%18G: -NAN(09A_Zaz):1:14:-nan: +-%*18G: -NAN(09A_Zaz):0:14: +-%18G: -NAN():1:7:-nan: +-%*18G: -NAN():0:7: +-%18G: NAN():1:6:nan: +-%*18G: NAN():0:6: +-%18G: NAN(09A_Zaz):1:13:nan: +-%*18G: NAN(09A_Zaz):0:13: ++# BZ30647 %18G: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*18G: -NAN(09A_Zaz):0:14: ++# BZ30647 %18G: -NAN():1:7:-nan: ++# BZ30647 %*18G: -NAN():0:7: ++# BZ30647 %18G: NAN():1:6:nan: ++# BZ30647 %*18G: NAN():0:6: ++# BZ30647 %18G: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18G: NAN(09A_Zaz):0:13: + %18G: 0X0P0:1:6:0x0: + %*18G: 0X0P0:0:6: + %18G: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18G: 0XF.FFFFFP+124:0:15: + %18G: INFINITY:1:9:inf: + %*18G: INFINITY:0:9: +-%18G: +NAN():1:7:nan: +-%*18G: +NAN():0:7: +-%18G: +NAN(09A_Zaz):1:14:nan: +-%*18G: +NAN(09A_Zaz):0:14: ++# BZ30647 %18G: +NAN():1:7:nan: ++# BZ30647 %*18G: +NAN():0:7: ++# BZ30647 %18G: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*18G: +NAN(09A_Zaz):0:14: + %18G: +0X0P0:1:7:0x0: + %*18G: +0X0P0:0:7: + %18G: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +index 41fe52ffa0e50613..f6893043b2f0b970 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.fffffffffffffffffffffffffff8p+16380:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.fffffffffffffffffffffffffff8p+16380:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.fffffffffffffffffffffffffff8p+16380:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.fffffffffffffffffffffffffff8p+16380:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*35La:-0x0p+0:0:7: + %35La:-0x0p0:1:6:-0x0: + %*35La:-0x0p0:0:6: +-%35La:-nan(09A_Zaz):1:13:-nan: +-%*35La:-nan(09A_Zaz):0:13: +-%35La:-nan():1:6:-nan: +-%*35La:-nan():0:6: +-%35La:nan():1:5:nan: +-%*35La:nan():0:5: +-%35La:nan(09A_Zaz):1:12:nan: +-%*35La:nan(09A_Zaz):0:12: ++# BZ30647 %35La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*35La:-nan(09A_Zaz):0:13: ++# BZ30647 %35La:-nan():1:6:-nan: ++# BZ30647 %*35La:-nan():0:6: ++# BZ30647 %35La:nan():1:5:nan: ++# BZ30647 %*35La:nan():0:5: ++# BZ30647 %35La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*35La:nan(09A_Zaz):0:12: + %35La:0x0p0:1:5:0x0: + %*35La:0x0p0:0:5: + %35La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35La:0xf.fffffffffffffffffffffffffff8p+16380:0:35: + %35La:infinity:1:8:inf: + %*35La:infinity:0:8: +-%35La:+nan():1:6:nan: +-%*35La:+nan():0:6: +-%35La:+nan(09A_Zaz):1:13:nan: +-%*35La:+nan(09A_Zaz):0:13: ++# BZ30647 %35La:+nan():1:6:nan: ++# BZ30647 %*35La:+nan():0:6: ++# BZ30647 %35La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*35La:+nan(09A_Zaz):0:13: + %35La:+0x0p0:1:6:0x0: + %*35La:+0x0p0:0:6: + %35La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53La:-0x0p+0:0:7: + %53La:-0x0p0:1:6:-0x0: + %*53La:-0x0p0:0:6: +-%53La:-nan(09A_Zaz):1:13:-nan: +-%*53La:-nan(09A_Zaz):0:13: +-%53La:-nan():1:6:-nan: +-%*53La:-nan():0:6: +-%53La:nan():1:5:nan: +-%*53La:nan():0:5: +-%53La:nan(09A_Zaz):1:12:nan: +-%*53La:nan(09A_Zaz):0:12: ++# BZ30647 %53La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*53La:-nan(09A_Zaz):0:13: ++# BZ30647 %53La:-nan():1:6:-nan: ++# BZ30647 %*53La:-nan():0:6: ++# BZ30647 %53La:nan():1:5:nan: ++# BZ30647 %*53La:nan():0:5: ++# BZ30647 %53La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*53La:nan(09A_Zaz):0:12: + %53La:0x0p0:1:5:0x0: + %*53La:0x0p0:0:5: + %53La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %53La:infinity:1:8:inf: + %*53La:infinity:0:8: +-%53La:+nan():1:6:nan: +-%*53La:+nan():0:6: +-%53La:+nan(09A_Zaz):1:13:nan: +-%*53La:+nan(09A_Zaz):0:13: ++# BZ30647 %53La:+nan():1:6:nan: ++# BZ30647 %*53La:+nan():0:6: ++# BZ30647 %53La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53La:+nan(09A_Zaz):0:13: + %53La:+0x0p0:1:6:0x0: + %*53La:+0x0p0:0:6: + %53La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*53La: -0x0p+0:0:8: + %53La: -0x0p0:1:7:-0x0: + %*53La: -0x0p0:0:7: +-%53La: -nan(09A_Zaz):1:14:-nan: +-%*53La: -nan(09A_Zaz):0:14: +-%53La: -nan():1:7:-nan: +-%*53La: -nan():0:7: +-%53La: nan():1:6:nan: +-%*53La: nan():0:6: +-%53La: nan(09A_Zaz):1:13:nan: +-%*53La: nan(09A_Zaz):0:13: ++# BZ30647 %53La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*53La: -nan(09A_Zaz):0:14: ++# BZ30647 %53La: -nan():1:7:-nan: ++# BZ30647 %*53La: -nan():0:7: ++# BZ30647 %53La: nan():1:6:nan: ++# BZ30647 %*53La: nan():0:6: ++# BZ30647 %53La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53La: nan(09A_Zaz):0:13: + %53La: 0x0p0:1:6:0x0: + %*53La: 0x0p0:0:6: + %53La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53La: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: + %53La: infinity:1:9:inf: + %*53La: infinity:0:9: +-%53La: +nan():1:7:nan: +-%*53La: +nan():0:7: +-%53La: +nan(09A_Zaz):1:14:nan: +-%*53La: +nan(09A_Zaz):0:14: ++# BZ30647 %53La: +nan():1:7:nan: ++# BZ30647 %*53La: +nan():0:7: ++# BZ30647 %53La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*53La: +nan(09A_Zaz):0:14: + %53La: +0x0p0:1:7:0x0: + %*53La: +0x0p0:0:7: + %53La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +index 7208c6e37b10942d..ddf7cf5308ecd210 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*35LA:-0X0P+0:0:7: + %35LA:-0X0P0:1:6:-0x0: + %*35LA:-0X0P0:0:6: +-%35LA:-NAN(09A_Zaz):1:13:-nan: +-%*35LA:-NAN(09A_Zaz):0:13: +-%35LA:-NAN():1:6:-nan: +-%*35LA:-NAN():0:6: +-%35LA:NAN():1:5:nan: +-%*35LA:NAN():0:5: +-%35LA:NAN(09A_Zaz):1:12:nan: +-%*35LA:NAN(09A_Zaz):0:12: ++# BZ30647 %35LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*35LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %35LA:-NAN():1:6:-nan: ++# BZ30647 %*35LA:-NAN():0:6: ++# BZ30647 %35LA:NAN():1:5:nan: ++# BZ30647 %*35LA:NAN():0:5: ++# BZ30647 %35LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*35LA:NAN(09A_Zaz):0:12: + %35LA:0X0P0:1:5:0x0: + %*35LA:0X0P0:0:5: + %35LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: + %35LA:INFINITY:1:8:inf: + %*35LA:INFINITY:0:8: +-%35LA:+NAN():1:6:nan: +-%*35LA:+NAN():0:6: +-%35LA:+NAN(09A_Zaz):1:13:nan: +-%*35LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %35LA:+NAN():1:6:nan: ++# BZ30647 %*35LA:+NAN():0:6: ++# BZ30647 %35LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*35LA:+NAN(09A_Zaz):0:13: + %35LA:+0X0P0:1:6:0x0: + %*35LA:+0X0P0:0:6: + %35LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53LA:-0X0P+0:0:7: + %53LA:-0X0P0:1:6:-0x0: + %*53LA:-0X0P0:0:6: +-%53LA:-NAN(09A_Zaz):1:13:-nan: +-%*53LA:-NAN(09A_Zaz):0:13: +-%53LA:-NAN():1:6:-nan: +-%*53LA:-NAN():0:6: +-%53LA:NAN():1:5:nan: +-%*53LA:NAN():0:5: +-%53LA:NAN(09A_Zaz):1:12:nan: +-%*53LA:NAN(09A_Zaz):0:12: ++# BZ30647 %53LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*53LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %53LA:-NAN():1:6:-nan: ++# BZ30647 %*53LA:-NAN():0:6: ++# BZ30647 %53LA:NAN():1:5:nan: ++# BZ30647 %*53LA:NAN():0:5: ++# BZ30647 %53LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*53LA:NAN(09A_Zaz):0:12: + %53LA:0X0P0:1:5:0x0: + %*53LA:0X0P0:0:5: + %53LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %53LA:INFINITY:1:8:inf: + %*53LA:INFINITY:0:8: +-%53LA:+NAN():1:6:nan: +-%*53LA:+NAN():0:6: +-%53LA:+NAN(09A_Zaz):1:13:nan: +-%*53LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %53LA:+NAN():1:6:nan: ++# BZ30647 %*53LA:+NAN():0:6: ++# BZ30647 %53LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LA:+NAN(09A_Zaz):0:13: + %53LA:+0X0P0:1:6:0x0: + %*53LA:+0X0P0:0:6: + %53LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*53LA: -0X0P+0:0:8: + %53LA: -0X0P0:1:7:-0x0: + %*53LA: -0X0P0:0:7: +-%53LA: -NAN(09A_Zaz):1:14:-nan: +-%*53LA: -NAN(09A_Zaz):0:14: +-%53LA: -NAN():1:7:-nan: +-%*53LA: -NAN():0:7: +-%53LA: NAN():1:6:nan: +-%*53LA: NAN():0:6: +-%53LA: NAN(09A_Zaz):1:13:nan: +-%*53LA: NAN(09A_Zaz):0:13: ++# BZ30647 %53LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*53LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %53LA: -NAN():1:7:-nan: ++# BZ30647 %*53LA: -NAN():0:7: ++# BZ30647 %53LA: NAN():1:6:nan: ++# BZ30647 %*53LA: NAN():0:6: ++# BZ30647 %53LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LA: NAN(09A_Zaz):0:13: + %53LA: 0X0P0:1:6:0x0: + %*53LA: 0X0P0:0:6: + %53LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: + %53LA: INFINITY:1:9:inf: + %*53LA: INFINITY:0:9: +-%53LA: +NAN():1:7:nan: +-%*53LA: +NAN():0:7: +-%53LA: +NAN(09A_Zaz):1:14:nan: +-%*53LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %53LA: +NAN():1:7:nan: ++# BZ30647 %*53LA: +NAN():0:7: ++# BZ30647 %53LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*53LA: +NAN(09A_Zaz):0:14: + %53LA: +0X0P0:1:7:0x0: + %*53LA: +0X0P0:0:7: + %53LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +index 0e65a3706cce1ce0..53f8cdf609836624 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.18973149535723176508575932662800702e+4932:0:43: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.18973149535723176508575932662800702e+4932:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.18973149535723176508575932662800702e+4932:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.18973149535723176508575932662800702e+4932:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.18973149535723176508575932662800702e+4932:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.18973149535723176508575932662800702e+4932:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.18973149535723176508575932662800702e+4932:0:43: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.18973149535723176508575932662800702e+4932:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.18973149535723176508575932662800702e+4932:0:44: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +index 8992c73c91384735..9d3882fddff4503b 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.18973149535723176508575932662800702E+4932:0:43: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.18973149535723176508575932662800702E+4932:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.18973149535723176508575932662800702E+4932:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.18973149535723176508575932662800702E+4932:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.18973149535723176508575932662800702E+4932:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.18973149535723176508575932662800702E+4932:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.18973149535723176508575932662800702E+4932:0:43: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.18973149535723176508575932662800702E+4932:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.18973149535723176508575932662800702E+4932:0:44: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +index 955ef173eb417670..23666ef5731ec708 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935Lf:-0.0:0:4: + %4935Lf:-0:1:2:-0x0: + %*4935Lf:-0:0:2: +-%4935Lf:-nan(09A_Zaz):1:13:-nan: +-%*4935Lf:-nan(09A_Zaz):0:13: +-%4935Lf:-nan():1:6:-nan: +-%*4935Lf:-nan():0:6: +-%4935Lf:nan():1:5:nan: +-%*4935Lf:nan():0:5: +-%4935Lf:nan(09A_Zaz):1:12:nan: +-%*4935Lf:nan(09A_Zaz):0:12: ++# BZ30647 %4935Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:-nan():1:6:-nan: ++# BZ30647 %*4935Lf:-nan():0:6: ++# BZ30647 %4935Lf:nan():1:5:nan: ++# BZ30647 %*4935Lf:nan():0:5: ++# BZ30647 %4935Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*4935Lf:nan(09A_Zaz):0:12: + %4935Lf:0:1:1:0x0: + %*4935Lf:0:0:1: + %4935Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: + %4935Lf:infinity:1:8:inf: + %*4935Lf:infinity:0:8: +-%4935Lf:+nan():1:6:nan: +-%*4935Lf:+nan():0:6: +-%4935Lf:+nan(09A_Zaz):1:13:nan: +-%*4935Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:+nan():1:6:nan: ++# BZ30647 %*4935Lf:+nan():0:6: ++# BZ30647 %4935Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*4935Lf:+nan(09A_Zaz):0:13: + %4935Lf:+0:1:2:0x0: + %*4935Lf:+0:0:2: + %4935Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000Lf:-0.0:0:4: + %5000Lf:-0:1:2:-0x0: + %*5000Lf:-0:0:2: +-%5000Lf:-nan(09A_Zaz):1:13:-nan: +-%*5000Lf:-nan(09A_Zaz):0:13: +-%5000Lf:-nan():1:6:-nan: +-%*5000Lf:-nan():0:6: +-%5000Lf:nan():1:5:nan: +-%*5000Lf:nan():0:5: +-%5000Lf:nan(09A_Zaz):1:12:nan: +-%*5000Lf:nan(09A_Zaz):0:12: ++# BZ30647 %5000Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:-nan():1:6:-nan: ++# BZ30647 %*5000Lf:-nan():0:6: ++# BZ30647 %5000Lf:nan():1:5:nan: ++# BZ30647 %*5000Lf:nan():0:5: ++# BZ30647 %5000Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*5000Lf:nan(09A_Zaz):0:12: + %5000Lf:0:1:1:0x0: + %*5000Lf:0:0:1: + %5000Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %5000Lf:infinity:1:8:inf: + %*5000Lf:infinity:0:8: +-%5000Lf:+nan():1:6:nan: +-%*5000Lf:+nan():0:6: +-%5000Lf:+nan(09A_Zaz):1:13:nan: +-%*5000Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:+nan():1:6:nan: ++# BZ30647 %*5000Lf:+nan():0:6: ++# BZ30647 %5000Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf:+nan(09A_Zaz):0:13: + %5000Lf:+0:1:2:0x0: + %*5000Lf:+0:0:2: + %5000Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000Lf: -0.0:0:5: + %5000Lf: -0:1:3:-0x0: + %*5000Lf: -0:0:3: +-%5000Lf: -nan(09A_Zaz):1:14:-nan: +-%*5000Lf: -nan(09A_Zaz):0:14: +-%5000Lf: -nan():1:7:-nan: +-%*5000Lf: -nan():0:7: +-%5000Lf: nan():1:6:nan: +-%*5000Lf: nan():0:6: +-%5000Lf: nan(09A_Zaz):1:13:nan: +-%*5000Lf: nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: -nan():1:7:-nan: ++# BZ30647 %*5000Lf: -nan():0:7: ++# BZ30647 %5000Lf: nan():1:6:nan: ++# BZ30647 %*5000Lf: nan():0:6: ++# BZ30647 %5000Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf: nan(09A_Zaz):0:13: + %5000Lf: 0:1:2:0x0: + %*5000Lf: 0:0:2: + %5000Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: + %5000Lf: infinity:1:9:inf: + %*5000Lf: infinity:0:9: +-%5000Lf: +nan():1:7:nan: +-%*5000Lf: +nan():0:7: +-%5000Lf: +nan(09A_Zaz):1:14:nan: +-%*5000Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: +nan():1:7:nan: ++# BZ30647 %*5000Lf: +nan():0:7: ++# BZ30647 %5000Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*5000Lf: +nan(09A_Zaz):0:14: + %5000Lf: +0:1:3:0x0: + %*5000Lf: +0:0:3: + %5000Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +index b3e73df5d359fca7..b88246dce4da083b 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935LF:-0.0:0:4: + %4935LF:-0:1:2:-0x0: + %*4935LF:-0:0:2: +-%4935LF:-NAN(09A_Zaz):1:13:-nan: +-%*4935LF:-NAN(09A_Zaz):0:13: +-%4935LF:-NAN():1:6:-nan: +-%*4935LF:-NAN():0:6: +-%4935LF:NAN():1:5:nan: +-%*4935LF:NAN():0:5: +-%4935LF:NAN(09A_Zaz):1:12:nan: +-%*4935LF:NAN(09A_Zaz):0:12: ++# BZ30647 %4935LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:-NAN():1:6:-nan: ++# BZ30647 %*4935LF:-NAN():0:6: ++# BZ30647 %4935LF:NAN():1:5:nan: ++# BZ30647 %*4935LF:NAN():0:5: ++# BZ30647 %4935LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*4935LF:NAN(09A_Zaz):0:12: + %4935LF:0:1:1:0x0: + %*4935LF:0:0:1: + %4935LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: + %4935LF:INFINITY:1:8:inf: + %*4935LF:INFINITY:0:8: +-%4935LF:+NAN():1:6:nan: +-%*4935LF:+NAN():0:6: +-%4935LF:+NAN(09A_Zaz):1:13:nan: +-%*4935LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:+NAN():1:6:nan: ++# BZ30647 %*4935LF:+NAN():0:6: ++# BZ30647 %4935LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*4935LF:+NAN(09A_Zaz):0:13: + %4935LF:+0:1:2:0x0: + %*4935LF:+0:0:2: + %4935LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000LF:-0.0:0:4: + %5000LF:-0:1:2:-0x0: + %*5000LF:-0:0:2: +-%5000LF:-NAN(09A_Zaz):1:13:-nan: +-%*5000LF:-NAN(09A_Zaz):0:13: +-%5000LF:-NAN():1:6:-nan: +-%*5000LF:-NAN():0:6: +-%5000LF:NAN():1:5:nan: +-%*5000LF:NAN():0:5: +-%5000LF:NAN(09A_Zaz):1:12:nan: +-%*5000LF:NAN(09A_Zaz):0:12: ++# BZ30647 %5000LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:-NAN():1:6:-nan: ++# BZ30647 %*5000LF:-NAN():0:6: ++# BZ30647 %5000LF:NAN():1:5:nan: ++# BZ30647 %*5000LF:NAN():0:5: ++# BZ30647 %5000LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*5000LF:NAN(09A_Zaz):0:12: + %5000LF:0:1:1:0x0: + %*5000LF:0:0:1: + %5000LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %5000LF:INFINITY:1:8:inf: + %*5000LF:INFINITY:0:8: +-%5000LF:+NAN():1:6:nan: +-%*5000LF:+NAN():0:6: +-%5000LF:+NAN(09A_Zaz):1:13:nan: +-%*5000LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:+NAN():1:6:nan: ++# BZ30647 %*5000LF:+NAN():0:6: ++# BZ30647 %5000LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF:+NAN(09A_Zaz):0:13: + %5000LF:+0:1:2:0x0: + %*5000LF:+0:0:2: + %5000LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000LF: -0.0:0:5: + %5000LF: -0:1:3:-0x0: + %*5000LF: -0:0:3: +-%5000LF: -NAN(09A_Zaz):1:14:-nan: +-%*5000LF: -NAN(09A_Zaz):0:14: +-%5000LF: -NAN():1:7:-nan: +-%*5000LF: -NAN():0:7: +-%5000LF: NAN():1:6:nan: +-%*5000LF: NAN():0:6: +-%5000LF: NAN(09A_Zaz):1:13:nan: +-%*5000LF: NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: -NAN():1:7:-nan: ++# BZ30647 %*5000LF: -NAN():0:7: ++# BZ30647 %5000LF: NAN():1:6:nan: ++# BZ30647 %*5000LF: NAN():0:6: ++# BZ30647 %5000LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF: NAN(09A_Zaz):0:13: + %5000LF: 0:1:2:0x0: + %*5000LF: 0:0:2: + %5000LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: + %5000LF: INFINITY:1:9:inf: + %*5000LF: INFINITY:0:9: +-%5000LF: +NAN():1:7:nan: +-%*5000LF: +NAN():0:7: +-%5000LF: +NAN(09A_Zaz):1:14:nan: +-%*5000LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: +NAN():1:7:nan: ++# BZ30647 %*5000LF: +NAN():0:7: ++# BZ30647 %5000LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*5000LF: +NAN(09A_Zaz):0:14: + %5000LF: +0:1:3:0x0: + %*5000LF: +0:0:3: + %5000LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +index 64560b8b9900015b..2ab11b0bd393735c 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*35Lg:-0x0p+0:0:7: + %35Lg:-0x0p0:1:6:-0x0: + %*35Lg:-0x0p0:0:6: +-%35Lg:-nan(09A_Zaz):1:13:-nan: +-%*35Lg:-nan(09A_Zaz):0:13: +-%35Lg:-nan():1:6:-nan: +-%*35Lg:-nan():0:6: +-%35Lg:nan():1:5:nan: +-%*35Lg:nan():0:5: +-%35Lg:nan(09A_Zaz):1:12:nan: +-%*35Lg:nan(09A_Zaz):0:12: ++# BZ30647 %35Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*35Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %35Lg:-nan():1:6:-nan: ++# BZ30647 %*35Lg:-nan():0:6: ++# BZ30647 %35Lg:nan():1:5:nan: ++# BZ30647 %*35Lg:nan():0:5: ++# BZ30647 %35Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*35Lg:nan(09A_Zaz):0:12: + %35Lg:0x0p0:1:5:0x0: + %*35Lg:0x0p0:0:5: + %35Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:35: + %35Lg:infinity:1:8:inf: + %*35Lg:infinity:0:8: +-%35Lg:+nan():1:6:nan: +-%*35Lg:+nan():0:6: +-%35Lg:+nan(09A_Zaz):1:13:nan: +-%*35Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %35Lg:+nan():1:6:nan: ++# BZ30647 %*35Lg:+nan():0:6: ++# BZ30647 %35Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*35Lg:+nan(09A_Zaz):0:13: + %35Lg:+0x0p0:1:6:0x0: + %*35Lg:+0x0p0:0:6: + %35Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53Lg:-0x0p+0:0:7: + %53Lg:-0x0p0:1:6:-0x0: + %*53Lg:-0x0p0:0:6: +-%53Lg:-nan(09A_Zaz):1:13:-nan: +-%*53Lg:-nan(09A_Zaz):0:13: +-%53Lg:-nan():1:6:-nan: +-%*53Lg:-nan():0:6: +-%53Lg:nan():1:5:nan: +-%*53Lg:nan():0:5: +-%53Lg:nan(09A_Zaz):1:12:nan: +-%*53Lg:nan(09A_Zaz):0:12: ++# BZ30647 %53Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*53Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %53Lg:-nan():1:6:-nan: ++# BZ30647 %*53Lg:-nan():0:6: ++# BZ30647 %53Lg:nan():1:5:nan: ++# BZ30647 %*53Lg:nan():0:5: ++# BZ30647 %53Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*53Lg:nan(09A_Zaz):0:12: + %53Lg:0x0p0:1:5:0x0: + %*53Lg:0x0p0:0:5: + %53Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %53Lg:infinity:1:8:inf: + %*53Lg:infinity:0:8: +-%53Lg:+nan():1:6:nan: +-%*53Lg:+nan():0:6: +-%53Lg:+nan(09A_Zaz):1:13:nan: +-%*53Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %53Lg:+nan():1:6:nan: ++# BZ30647 %*53Lg:+nan():0:6: ++# BZ30647 %53Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53Lg:+nan(09A_Zaz):0:13: + %53Lg:+0x0p0:1:6:0x0: + %*53Lg:+0x0p0:0:6: + %53Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*53Lg: -0x0p+0:0:8: + %53Lg: -0x0p0:1:7:-0x0: + %*53Lg: -0x0p0:0:7: +-%53Lg: -nan(09A_Zaz):1:14:-nan: +-%*53Lg: -nan(09A_Zaz):0:14: +-%53Lg: -nan():1:7:-nan: +-%*53Lg: -nan():0:7: +-%53Lg: nan():1:6:nan: +-%*53Lg: nan():0:6: +-%53Lg: nan(09A_Zaz):1:13:nan: +-%*53Lg: nan(09A_Zaz):0:13: ++# BZ30647 %53Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*53Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %53Lg: -nan():1:7:-nan: ++# BZ30647 %*53Lg: -nan():0:7: ++# BZ30647 %53Lg: nan():1:6:nan: ++# BZ30647 %*53Lg: nan():0:6: ++# BZ30647 %53Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53Lg: nan(09A_Zaz):0:13: + %53Lg: 0x0p0:1:6:0x0: + %*53Lg: 0x0p0:0:6: + %53Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: + %53Lg: infinity:1:9:inf: + %*53Lg: infinity:0:9: +-%53Lg: +nan():1:7:nan: +-%*53Lg: +nan():0:7: +-%53Lg: +nan(09A_Zaz):1:14:nan: +-%*53Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %53Lg: +nan():1:7:nan: ++# BZ30647 %*53Lg: +nan():0:7: ++# BZ30647 %53Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*53Lg: +nan(09A_Zaz):0:14: + %53Lg: +0x0p0:1:7:0x0: + %*53Lg: +0x0p0:0:7: + %53Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +index 7b370c54a727857a..e09c6a51c06d0bb0 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*35LG:-0X0P+0:0:7: + %35LG:-0X0P0:1:6:-0x0: + %*35LG:-0X0P0:0:6: +-%35LG:-NAN(09A_Zaz):1:13:-nan: +-%*35LG:-NAN(09A_Zaz):0:13: +-%35LG:-NAN():1:6:-nan: +-%*35LG:-NAN():0:6: +-%35LG:NAN():1:5:nan: +-%*35LG:NAN():0:5: +-%35LG:NAN(09A_Zaz):1:12:nan: +-%*35LG:NAN(09A_Zaz):0:12: ++# BZ30647 %35LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*35LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %35LG:-NAN():1:6:-nan: ++# BZ30647 %*35LG:-NAN():0:6: ++# BZ30647 %35LG:NAN():1:5:nan: ++# BZ30647 %*35LG:NAN():0:5: ++# BZ30647 %35LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*35LG:NAN(09A_Zaz):0:12: + %35LG:0X0P0:1:5:0x0: + %*35LG:0X0P0:0:5: + %35LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: + %35LG:INFINITY:1:8:inf: + %*35LG:INFINITY:0:8: +-%35LG:+NAN():1:6:nan: +-%*35LG:+NAN():0:6: +-%35LG:+NAN(09A_Zaz):1:13:nan: +-%*35LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %35LG:+NAN():1:6:nan: ++# BZ30647 %*35LG:+NAN():0:6: ++# BZ30647 %35LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*35LG:+NAN(09A_Zaz):0:13: + %35LG:+0X0P0:1:6:0x0: + %*35LG:+0X0P0:0:6: + %35LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53LG:-0X0P+0:0:7: + %53LG:-0X0P0:1:6:-0x0: + %*53LG:-0X0P0:0:6: +-%53LG:-NAN(09A_Zaz):1:13:-nan: +-%*53LG:-NAN(09A_Zaz):0:13: +-%53LG:-NAN():1:6:-nan: +-%*53LG:-NAN():0:6: +-%53LG:NAN():1:5:nan: +-%*53LG:NAN():0:5: +-%53LG:NAN(09A_Zaz):1:12:nan: +-%*53LG:NAN(09A_Zaz):0:12: ++# BZ30647 %53LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*53LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %53LG:-NAN():1:6:-nan: ++# BZ30647 %*53LG:-NAN():0:6: ++# BZ30647 %53LG:NAN():1:5:nan: ++# BZ30647 %*53LG:NAN():0:5: ++# BZ30647 %53LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*53LG:NAN(09A_Zaz):0:12: + %53LG:0X0P0:1:5:0x0: + %*53LG:0X0P0:0:5: + %53LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %53LG:INFINITY:1:8:inf: + %*53LG:INFINITY:0:8: +-%53LG:+NAN():1:6:nan: +-%*53LG:+NAN():0:6: +-%53LG:+NAN(09A_Zaz):1:13:nan: +-%*53LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %53LG:+NAN():1:6:nan: ++# BZ30647 %*53LG:+NAN():0:6: ++# BZ30647 %53LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LG:+NAN(09A_Zaz):0:13: + %53LG:+0X0P0:1:6:0x0: + %*53LG:+0X0P0:0:6: + %53LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*53LG: -0X0P+0:0:8: + %53LG: -0X0P0:1:7:-0x0: + %*53LG: -0X0P0:0:7: +-%53LG: -NAN(09A_Zaz):1:14:-nan: +-%*53LG: -NAN(09A_Zaz):0:14: +-%53LG: -NAN():1:7:-nan: +-%*53LG: -NAN():0:7: +-%53LG: NAN():1:6:nan: +-%*53LG: NAN():0:6: +-%53LG: NAN(09A_Zaz):1:13:nan: +-%*53LG: NAN(09A_Zaz):0:13: ++# BZ30647 %53LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*53LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %53LG: -NAN():1:7:-nan: ++# BZ30647 %*53LG: -NAN():0:7: ++# BZ30647 %53LG: NAN():1:6:nan: ++# BZ30647 %*53LG: NAN():0:6: ++# BZ30647 %53LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LG: NAN(09A_Zaz):0:13: + %53LG: 0X0P0:1:6:0x0: + %*53LG: 0X0P0:0:6: + %53LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: + %53LG: INFINITY:1:9:inf: + %*53LG: INFINITY:0:9: +-%53LG: +NAN():1:7:nan: +-%*53LG: +NAN():0:7: +-%53LG: +NAN(09A_Zaz):1:14:nan: +-%*53LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %53LG: +NAN():1:7:nan: ++# BZ30647 %*53LG: +NAN():0:7: ++# BZ30647 %53LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*53LG: +NAN(09A_Zaz):0:14: + %53LG: +0X0P0:1:7:0x0: + %*53LG: +0X0P0:0:7: + %53LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +index a7377d55575f2d75..b06b73ed4071a7f9 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.ffffffffffffbffffffffffffcp+1020:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.ffffffffffffbffffffffffffcp+1020:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.ffffffffffffbffffffffffffcp+1020:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.ffffffffffffbffffffffffffcp+1020:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*33La:-0x0p+0:0:7: + %33La:-0x0p0:1:6:-0x0: + %*33La:-0x0p0:0:6: +-%33La:-nan(09A_Zaz):1:13:-nan: +-%*33La:-nan(09A_Zaz):0:13: +-%33La:-nan():1:6:-nan: +-%*33La:-nan():0:6: +-%33La:nan():1:5:nan: +-%*33La:nan():0:5: +-%33La:nan(09A_Zaz):1:12:nan: +-%*33La:nan(09A_Zaz):0:12: ++# BZ30647 %33La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*33La:-nan(09A_Zaz):0:13: ++# BZ30647 %33La:-nan():1:6:-nan: ++# BZ30647 %*33La:-nan():0:6: ++# BZ30647 %33La:nan():1:5:nan: ++# BZ30647 %*33La:nan():0:5: ++# BZ30647 %33La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*33La:nan(09A_Zaz):0:12: + %33La:0x0p0:1:5:0x0: + %*33La:0x0p0:0:5: + %33La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33La:0xf.ffffffffffffbffffffffffffcp+1020:0:33: + %33La:infinity:1:8:inf: + %*33La:infinity:0:8: +-%33La:+nan():1:6:nan: +-%*33La:+nan():0:6: +-%33La:+nan(09A_Zaz):1:13:nan: +-%*33La:+nan(09A_Zaz):0:13: ++# BZ30647 %33La:+nan():1:6:nan: ++# BZ30647 %*33La:+nan():0:6: ++# BZ30647 %33La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*33La:+nan(09A_Zaz):0:13: + %33La:+0x0p0:1:6:0x0: + %*33La:+0x0p0:0:6: + %33La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50La:-0x0p+0:0:7: + %50La:-0x0p0:1:6:-0x0: + %*50La:-0x0p0:0:6: +-%50La:-nan(09A_Zaz):1:13:-nan: +-%*50La:-nan(09A_Zaz):0:13: +-%50La:-nan():1:6:-nan: +-%*50La:-nan():0:6: +-%50La:nan():1:5:nan: +-%*50La:nan():0:5: +-%50La:nan(09A_Zaz):1:12:nan: +-%*50La:nan(09A_Zaz):0:12: ++# BZ30647 %50La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*50La:-nan(09A_Zaz):0:13: ++# BZ30647 %50La:-nan():1:6:-nan: ++# BZ30647 %*50La:-nan():0:6: ++# BZ30647 %50La:nan():1:5:nan: ++# BZ30647 %*50La:nan():0:5: ++# BZ30647 %50La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*50La:nan(09A_Zaz):0:12: + %50La:0x0p0:1:5:0x0: + %*50La:0x0p0:0:5: + %50La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %50La:infinity:1:8:inf: + %*50La:infinity:0:8: +-%50La:+nan():1:6:nan: +-%*50La:+nan():0:6: +-%50La:+nan(09A_Zaz):1:13:nan: +-%*50La:+nan(09A_Zaz):0:13: ++# BZ30647 %50La:+nan():1:6:nan: ++# BZ30647 %*50La:+nan():0:6: ++# BZ30647 %50La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50La:+nan(09A_Zaz):0:13: + %50La:+0x0p0:1:6:0x0: + %*50La:+0x0p0:0:6: + %50La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*50La: -0x0p+0:0:8: + %50La: -0x0p0:1:7:-0x0: + %*50La: -0x0p0:0:7: +-%50La: -nan(09A_Zaz):1:14:-nan: +-%*50La: -nan(09A_Zaz):0:14: +-%50La: -nan():1:7:-nan: +-%*50La: -nan():0:7: +-%50La: nan():1:6:nan: +-%*50La: nan():0:6: +-%50La: nan(09A_Zaz):1:13:nan: +-%*50La: nan(09A_Zaz):0:13: ++# BZ30647 %50La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*50La: -nan(09A_Zaz):0:14: ++# BZ30647 %50La: -nan():1:7:-nan: ++# BZ30647 %*50La: -nan():0:7: ++# BZ30647 %50La: nan():1:6:nan: ++# BZ30647 %*50La: nan():0:6: ++# BZ30647 %50La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50La: nan(09A_Zaz):0:13: + %50La: 0x0p0:1:6:0x0: + %*50La: 0x0p0:0:6: + %50La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50La: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: + %50La: infinity:1:9:inf: + %*50La: infinity:0:9: +-%50La: +nan():1:7:nan: +-%*50La: +nan():0:7: +-%50La: +nan(09A_Zaz):1:14:nan: +-%*50La: +nan(09A_Zaz):0:14: ++# BZ30647 %50La: +nan():1:7:nan: ++# BZ30647 %*50La: +nan():0:7: ++# BZ30647 %50La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*50La: +nan(09A_Zaz):0:14: + %50La: +0x0p0:1:7:0x0: + %*50La: +0x0p0:0:7: + %50La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +index 1dc2c558ced97273..19ebaffa122fe5ea 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*33LA:-0X0P+0:0:7: + %33LA:-0X0P0:1:6:-0x0: + %*33LA:-0X0P0:0:6: +-%33LA:-NAN(09A_Zaz):1:13:-nan: +-%*33LA:-NAN(09A_Zaz):0:13: +-%33LA:-NAN():1:6:-nan: +-%*33LA:-NAN():0:6: +-%33LA:NAN():1:5:nan: +-%*33LA:NAN():0:5: +-%33LA:NAN(09A_Zaz):1:12:nan: +-%*33LA:NAN(09A_Zaz):0:12: ++# BZ30647 %33LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*33LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %33LA:-NAN():1:6:-nan: ++# BZ30647 %*33LA:-NAN():0:6: ++# BZ30647 %33LA:NAN():1:5:nan: ++# BZ30647 %*33LA:NAN():0:5: ++# BZ30647 %33LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*33LA:NAN(09A_Zaz):0:12: + %33LA:0X0P0:1:5:0x0: + %*33LA:0X0P0:0:5: + %33LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: + %33LA:INFINITY:1:8:inf: + %*33LA:INFINITY:0:8: +-%33LA:+NAN():1:6:nan: +-%*33LA:+NAN():0:6: +-%33LA:+NAN(09A_Zaz):1:13:nan: +-%*33LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %33LA:+NAN():1:6:nan: ++# BZ30647 %*33LA:+NAN():0:6: ++# BZ30647 %33LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*33LA:+NAN(09A_Zaz):0:13: + %33LA:+0X0P0:1:6:0x0: + %*33LA:+0X0P0:0:6: + %33LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50LA:-0X0P+0:0:7: + %50LA:-0X0P0:1:6:-0x0: + %*50LA:-0X0P0:0:6: +-%50LA:-NAN(09A_Zaz):1:13:-nan: +-%*50LA:-NAN(09A_Zaz):0:13: +-%50LA:-NAN():1:6:-nan: +-%*50LA:-NAN():0:6: +-%50LA:NAN():1:5:nan: +-%*50LA:NAN():0:5: +-%50LA:NAN(09A_Zaz):1:12:nan: +-%*50LA:NAN(09A_Zaz):0:12: ++# BZ30647 %50LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*50LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %50LA:-NAN():1:6:-nan: ++# BZ30647 %*50LA:-NAN():0:6: ++# BZ30647 %50LA:NAN():1:5:nan: ++# BZ30647 %*50LA:NAN():0:5: ++# BZ30647 %50LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*50LA:NAN(09A_Zaz):0:12: + %50LA:0X0P0:1:5:0x0: + %*50LA:0X0P0:0:5: + %50LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %50LA:INFINITY:1:8:inf: + %*50LA:INFINITY:0:8: +-%50LA:+NAN():1:6:nan: +-%*50LA:+NAN():0:6: +-%50LA:+NAN(09A_Zaz):1:13:nan: +-%*50LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %50LA:+NAN():1:6:nan: ++# BZ30647 %*50LA:+NAN():0:6: ++# BZ30647 %50LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LA:+NAN(09A_Zaz):0:13: + %50LA:+0X0P0:1:6:0x0: + %*50LA:+0X0P0:0:6: + %50LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*50LA: -0X0P+0:0:8: + %50LA: -0X0P0:1:7:-0x0: + %*50LA: -0X0P0:0:7: +-%50LA: -NAN(09A_Zaz):1:14:-nan: +-%*50LA: -NAN(09A_Zaz):0:14: +-%50LA: -NAN():1:7:-nan: +-%*50LA: -NAN():0:7: +-%50LA: NAN():1:6:nan: +-%*50LA: NAN():0:6: +-%50LA: NAN(09A_Zaz):1:13:nan: +-%*50LA: NAN(09A_Zaz):0:13: ++# BZ30647 %50LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*50LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %50LA: -NAN():1:7:-nan: ++# BZ30647 %*50LA: -NAN():0:7: ++# BZ30647 %50LA: NAN():1:6:nan: ++# BZ30647 %*50LA: NAN():0:6: ++# BZ30647 %50LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LA: NAN(09A_Zaz):0:13: + %50LA: 0X0P0:1:6:0x0: + %*50LA: 0X0P0:0:6: + %50LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: + %50LA: INFINITY:1:9:inf: + %*50LA: INFINITY:0:9: +-%50LA: +NAN():1:7:nan: +-%*50LA: +NAN():0:7: +-%50LA: +NAN(09A_Zaz):1:14:nan: +-%*50LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %50LA: +NAN():1:7:nan: ++# BZ30647 %*50LA: +NAN():0:7: ++# BZ30647 %50LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*50LA: +NAN(09A_Zaz):0:14: + %50LA: +0X0P0:1:7:0x0: + %*50LA: +0X0P0:0:7: + %50LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +index f61b0d0fd382c113..7887d5fa62c09da5 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.79769313486231580793728971405301199e+308:0:42: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.79769313486231580793728971405301199e+308:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.79769313486231580793728971405301199e+308:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.79769313486231580793728971405301199e+308:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.79769313486231580793728971405301199e+308:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.79769313486231580793728971405301199e+308:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.79769313486231580793728971405301199e+308:0:42: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.79769313486231580793728971405301199e+308:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.79769313486231580793728971405301199e+308:0:43: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +index 3a543bc5366ba403..3d698c783f6644f9 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.79769313486231580793728971405301199E+308:0:42: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.79769313486231580793728971405301199E+308:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.79769313486231580793728971405301199E+308:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.79769313486231580793728971405301199E+308:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.79769313486231580793728971405301199E+308:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.79769313486231580793728971405301199E+308:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.79769313486231580793728971405301199E+308:0:42: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.79769313486231580793728971405301199E+308:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.79769313486231580793728971405301199E+308:0:43: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +index 9d4fd75fd0250a93..20b74f0d141a50b8 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*295Lf:-0.0:0:4: + %295Lf:-0:1:2:-0x0: + %*295Lf:-0:0:2: +-%295Lf:-nan(09A_Zaz):1:13:-nan: +-%*295Lf:-nan(09A_Zaz):0:13: +-%295Lf:-nan():1:6:-nan: +-%*295Lf:-nan():0:6: +-%295Lf:nan():1:5:nan: +-%*295Lf:nan():0:5: +-%295Lf:nan(09A_Zaz):1:12:nan: +-%*295Lf:nan(09A_Zaz):0:12: ++# BZ30647 %295Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*295Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %295Lf:-nan():1:6:-nan: ++# BZ30647 %*295Lf:-nan():0:6: ++# BZ30647 %295Lf:nan():1:5:nan: ++# BZ30647 %*295Lf:nan():0:5: ++# BZ30647 %295Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*295Lf:nan(09A_Zaz):0:12: + %295Lf:0:1:1:0x0: + %*295Lf:0:0:1: + %295Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: + %295Lf:infinity:1:8:inf: + %*295Lf:infinity:0:8: +-%295Lf:+nan():1:6:nan: +-%*295Lf:+nan():0:6: +-%295Lf:+nan(09A_Zaz):1:13:nan: +-%*295Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %295Lf:+nan():1:6:nan: ++# BZ30647 %*295Lf:+nan():0:6: ++# BZ30647 %295Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*295Lf:+nan(09A_Zaz):0:13: + %295Lf:+0:1:2:0x0: + %*295Lf:+0:0:2: + %295Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*340Lf:-0.0:0:4: + %340Lf:-0:1:2:-0x0: + %*340Lf:-0:0:2: +-%340Lf:-nan(09A_Zaz):1:13:-nan: +-%*340Lf:-nan(09A_Zaz):0:13: +-%340Lf:-nan():1:6:-nan: +-%*340Lf:-nan():0:6: +-%340Lf:nan():1:5:nan: +-%*340Lf:nan():0:5: +-%340Lf:nan(09A_Zaz):1:12:nan: +-%*340Lf:nan(09A_Zaz):0:12: ++# BZ30647 %340Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*340Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %340Lf:-nan():1:6:-nan: ++# BZ30647 %*340Lf:-nan():0:6: ++# BZ30647 %340Lf:nan():1:5:nan: ++# BZ30647 %*340Lf:nan():0:5: ++# BZ30647 %340Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*340Lf:nan(09A_Zaz):0:12: + %340Lf:0:1:1:0x0: + %*340Lf:0:0:1: + %340Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %340Lf:infinity:1:8:inf: + %*340Lf:infinity:0:8: +-%340Lf:+nan():1:6:nan: +-%*340Lf:+nan():0:6: +-%340Lf:+nan(09A_Zaz):1:13:nan: +-%*340Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %340Lf:+nan():1:6:nan: ++# BZ30647 %*340Lf:+nan():0:6: ++# BZ30647 %340Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*340Lf:+nan(09A_Zaz):0:13: + %340Lf:+0:1:2:0x0: + %*340Lf:+0:0:2: + %340Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*340Lf: -0.0:0:5: + %340Lf: -0:1:3:-0x0: + %*340Lf: -0:0:3: +-%340Lf: -nan(09A_Zaz):1:14:-nan: +-%*340Lf: -nan(09A_Zaz):0:14: +-%340Lf: -nan():1:7:-nan: +-%*340Lf: -nan():0:7: +-%340Lf: nan():1:6:nan: +-%*340Lf: nan():0:6: +-%340Lf: nan(09A_Zaz):1:13:nan: +-%*340Lf: nan(09A_Zaz):0:13: ++# BZ30647 %340Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*340Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %340Lf: -nan():1:7:-nan: ++# BZ30647 %*340Lf: -nan():0:7: ++# BZ30647 %340Lf: nan():1:6:nan: ++# BZ30647 %*340Lf: nan():0:6: ++# BZ30647 %340Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*340Lf: nan(09A_Zaz):0:13: + %340Lf: 0:1:2:0x0: + %*340Lf: 0:0:2: + %340Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: + %340Lf: infinity:1:9:inf: + %*340Lf: infinity:0:9: +-%340Lf: +nan():1:7:nan: +-%*340Lf: +nan():0:7: +-%340Lf: +nan(09A_Zaz):1:14:nan: +-%*340Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %340Lf: +nan():1:7:nan: ++# BZ30647 %*340Lf: +nan():0:7: ++# BZ30647 %340Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*340Lf: +nan(09A_Zaz):0:14: + %340Lf: +0:1:3:0x0: + %*340Lf: +0:0:3: + %340Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +index bb7098a00dd383b3..8f77dc99160188b8 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*295LF:-0.0:0:4: + %295LF:-0:1:2:-0x0: + %*295LF:-0:0:2: +-%295LF:-NAN(09A_Zaz):1:13:-nan: +-%*295LF:-NAN(09A_Zaz):0:13: +-%295LF:-NAN():1:6:-nan: +-%*295LF:-NAN():0:6: +-%295LF:NAN():1:5:nan: +-%*295LF:NAN():0:5: +-%295LF:NAN(09A_Zaz):1:12:nan: +-%*295LF:NAN(09A_Zaz):0:12: ++# BZ30647 %295LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*295LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %295LF:-NAN():1:6:-nan: ++# BZ30647 %*295LF:-NAN():0:6: ++# BZ30647 %295LF:NAN():1:5:nan: ++# BZ30647 %*295LF:NAN():0:5: ++# BZ30647 %295LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*295LF:NAN(09A_Zaz):0:12: + %295LF:0:1:1:0x0: + %*295LF:0:0:1: + %295LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: + %295LF:INFINITY:1:8:inf: + %*295LF:INFINITY:0:8: +-%295LF:+NAN():1:6:nan: +-%*295LF:+NAN():0:6: +-%295LF:+NAN(09A_Zaz):1:13:nan: +-%*295LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %295LF:+NAN():1:6:nan: ++# BZ30647 %*295LF:+NAN():0:6: ++# BZ30647 %295LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*295LF:+NAN(09A_Zaz):0:13: + %295LF:+0:1:2:0x0: + %*295LF:+0:0:2: + %295LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*340LF:-0.0:0:4: + %340LF:-0:1:2:-0x0: + %*340LF:-0:0:2: +-%340LF:-NAN(09A_Zaz):1:13:-nan: +-%*340LF:-NAN(09A_Zaz):0:13: +-%340LF:-NAN():1:6:-nan: +-%*340LF:-NAN():0:6: +-%340LF:NAN():1:5:nan: +-%*340LF:NAN():0:5: +-%340LF:NAN(09A_Zaz):1:12:nan: +-%*340LF:NAN(09A_Zaz):0:12: ++# BZ30647 %340LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*340LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %340LF:-NAN():1:6:-nan: ++# BZ30647 %*340LF:-NAN():0:6: ++# BZ30647 %340LF:NAN():1:5:nan: ++# BZ30647 %*340LF:NAN():0:5: ++# BZ30647 %340LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*340LF:NAN(09A_Zaz):0:12: + %340LF:0:1:1:0x0: + %*340LF:0:0:1: + %340LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %340LF:INFINITY:1:8:inf: + %*340LF:INFINITY:0:8: +-%340LF:+NAN():1:6:nan: +-%*340LF:+NAN():0:6: +-%340LF:+NAN(09A_Zaz):1:13:nan: +-%*340LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %340LF:+NAN():1:6:nan: ++# BZ30647 %*340LF:+NAN():0:6: ++# BZ30647 %340LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*340LF:+NAN(09A_Zaz):0:13: + %340LF:+0:1:2:0x0: + %*340LF:+0:0:2: + %340LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*340LF: -0.0:0:5: + %340LF: -0:1:3:-0x0: + %*340LF: -0:0:3: +-%340LF: -NAN(09A_Zaz):1:14:-nan: +-%*340LF: -NAN(09A_Zaz):0:14: +-%340LF: -NAN():1:7:-nan: +-%*340LF: -NAN():0:7: +-%340LF: NAN():1:6:nan: +-%*340LF: NAN():0:6: +-%340LF: NAN(09A_Zaz):1:13:nan: +-%*340LF: NAN(09A_Zaz):0:13: ++# BZ30647 %340LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*340LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %340LF: -NAN():1:7:-nan: ++# BZ30647 %*340LF: -NAN():0:7: ++# BZ30647 %340LF: NAN():1:6:nan: ++# BZ30647 %*340LF: NAN():0:6: ++# BZ30647 %340LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*340LF: NAN(09A_Zaz):0:13: + %340LF: 0:1:2:0x0: + %*340LF: 0:0:2: + %340LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: + %340LF: INFINITY:1:9:inf: + %*340LF: INFINITY:0:9: +-%340LF: +NAN():1:7:nan: +-%*340LF: +NAN():0:7: +-%340LF: +NAN(09A_Zaz):1:14:nan: +-%*340LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %340LF: +NAN():1:7:nan: ++# BZ30647 %*340LF: +NAN():0:7: ++# BZ30647 %340LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*340LF: +NAN(09A_Zaz):0:14: + %340LF: +0:1:3:0x0: + %*340LF: +0:0:3: + %340LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +index c500aa8d012c5c89..3ef57c2c9b7db8cd 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*33Lg:-0x0p+0:0:7: + %33Lg:-0x0p0:1:6:-0x0: + %*33Lg:-0x0p0:0:6: +-%33Lg:-nan(09A_Zaz):1:13:-nan: +-%*33Lg:-nan(09A_Zaz):0:13: +-%33Lg:-nan():1:6:-nan: +-%*33Lg:-nan():0:6: +-%33Lg:nan():1:5:nan: +-%*33Lg:nan():0:5: +-%33Lg:nan(09A_Zaz):1:12:nan: +-%*33Lg:nan(09A_Zaz):0:12: ++# BZ30647 %33Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*33Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %33Lg:-nan():1:6:-nan: ++# BZ30647 %*33Lg:-nan():0:6: ++# BZ30647 %33Lg:nan():1:5:nan: ++# BZ30647 %*33Lg:nan():0:5: ++# BZ30647 %33Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*33Lg:nan(09A_Zaz):0:12: + %33Lg:0x0p0:1:5:0x0: + %*33Lg:0x0p0:0:5: + %33Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:33: + %33Lg:infinity:1:8:inf: + %*33Lg:infinity:0:8: +-%33Lg:+nan():1:6:nan: +-%*33Lg:+nan():0:6: +-%33Lg:+nan(09A_Zaz):1:13:nan: +-%*33Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %33Lg:+nan():1:6:nan: ++# BZ30647 %*33Lg:+nan():0:6: ++# BZ30647 %33Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*33Lg:+nan(09A_Zaz):0:13: + %33Lg:+0x0p0:1:6:0x0: + %*33Lg:+0x0p0:0:6: + %33Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50Lg:-0x0p+0:0:7: + %50Lg:-0x0p0:1:6:-0x0: + %*50Lg:-0x0p0:0:6: +-%50Lg:-nan(09A_Zaz):1:13:-nan: +-%*50Lg:-nan(09A_Zaz):0:13: +-%50Lg:-nan():1:6:-nan: +-%*50Lg:-nan():0:6: +-%50Lg:nan():1:5:nan: +-%*50Lg:nan():0:5: +-%50Lg:nan(09A_Zaz):1:12:nan: +-%*50Lg:nan(09A_Zaz):0:12: ++# BZ30647 %50Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*50Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %50Lg:-nan():1:6:-nan: ++# BZ30647 %*50Lg:-nan():0:6: ++# BZ30647 %50Lg:nan():1:5:nan: ++# BZ30647 %*50Lg:nan():0:5: ++# BZ30647 %50Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*50Lg:nan(09A_Zaz):0:12: + %50Lg:0x0p0:1:5:0x0: + %*50Lg:0x0p0:0:5: + %50Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %50Lg:infinity:1:8:inf: + %*50Lg:infinity:0:8: +-%50Lg:+nan():1:6:nan: +-%*50Lg:+nan():0:6: +-%50Lg:+nan(09A_Zaz):1:13:nan: +-%*50Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %50Lg:+nan():1:6:nan: ++# BZ30647 %*50Lg:+nan():0:6: ++# BZ30647 %50Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50Lg:+nan(09A_Zaz):0:13: + %50Lg:+0x0p0:1:6:0x0: + %*50Lg:+0x0p0:0:6: + %50Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*50Lg: -0x0p+0:0:8: + %50Lg: -0x0p0:1:7:-0x0: + %*50Lg: -0x0p0:0:7: +-%50Lg: -nan(09A_Zaz):1:14:-nan: +-%*50Lg: -nan(09A_Zaz):0:14: +-%50Lg: -nan():1:7:-nan: +-%*50Lg: -nan():0:7: +-%50Lg: nan():1:6:nan: +-%*50Lg: nan():0:6: +-%50Lg: nan(09A_Zaz):1:13:nan: +-%*50Lg: nan(09A_Zaz):0:13: ++# BZ30647 %50Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*50Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %50Lg: -nan():1:7:-nan: ++# BZ30647 %*50Lg: -nan():0:7: ++# BZ30647 %50Lg: nan():1:6:nan: ++# BZ30647 %*50Lg: nan():0:6: ++# BZ30647 %50Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50Lg: nan(09A_Zaz):0:13: + %50Lg: 0x0p0:1:6:0x0: + %*50Lg: 0x0p0:0:6: + %50Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: + %50Lg: infinity:1:9:inf: + %*50Lg: infinity:0:9: +-%50Lg: +nan():1:7:nan: +-%*50Lg: +nan():0:7: +-%50Lg: +nan(09A_Zaz):1:14:nan: +-%*50Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %50Lg: +nan():1:7:nan: ++# BZ30647 %*50Lg: +nan():0:7: ++# BZ30647 %50Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*50Lg: +nan(09A_Zaz):0:14: + %50Lg: +0x0p0:1:7:0x0: + %*50Lg: +0x0p0:0:7: + %50Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +index 00e8a241e240fa13..ba2387a98dc705ed 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*33LG:-0X0P+0:0:7: + %33LG:-0X0P0:1:6:-0x0: + %*33LG:-0X0P0:0:6: +-%33LG:-NAN(09A_Zaz):1:13:-nan: +-%*33LG:-NAN(09A_Zaz):0:13: +-%33LG:-NAN():1:6:-nan: +-%*33LG:-NAN():0:6: +-%33LG:NAN():1:5:nan: +-%*33LG:NAN():0:5: +-%33LG:NAN(09A_Zaz):1:12:nan: +-%*33LG:NAN(09A_Zaz):0:12: ++# BZ30647 %33LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*33LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %33LG:-NAN():1:6:-nan: ++# BZ30647 %*33LG:-NAN():0:6: ++# BZ30647 %33LG:NAN():1:5:nan: ++# BZ30647 %*33LG:NAN():0:5: ++# BZ30647 %33LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*33LG:NAN(09A_Zaz):0:12: + %33LG:0X0P0:1:5:0x0: + %*33LG:0X0P0:0:5: + %33LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: + %33LG:INFINITY:1:8:inf: + %*33LG:INFINITY:0:8: +-%33LG:+NAN():1:6:nan: +-%*33LG:+NAN():0:6: +-%33LG:+NAN(09A_Zaz):1:13:nan: +-%*33LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %33LG:+NAN():1:6:nan: ++# BZ30647 %*33LG:+NAN():0:6: ++# BZ30647 %33LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*33LG:+NAN(09A_Zaz):0:13: + %33LG:+0X0P0:1:6:0x0: + %*33LG:+0X0P0:0:6: + %33LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50LG:-0X0P+0:0:7: + %50LG:-0X0P0:1:6:-0x0: + %*50LG:-0X0P0:0:6: +-%50LG:-NAN(09A_Zaz):1:13:-nan: +-%*50LG:-NAN(09A_Zaz):0:13: +-%50LG:-NAN():1:6:-nan: +-%*50LG:-NAN():0:6: +-%50LG:NAN():1:5:nan: +-%*50LG:NAN():0:5: +-%50LG:NAN(09A_Zaz):1:12:nan: +-%*50LG:NAN(09A_Zaz):0:12: ++# BZ30647 %50LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*50LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %50LG:-NAN():1:6:-nan: ++# BZ30647 %*50LG:-NAN():0:6: ++# BZ30647 %50LG:NAN():1:5:nan: ++# BZ30647 %*50LG:NAN():0:5: ++# BZ30647 %50LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*50LG:NAN(09A_Zaz):0:12: + %50LG:0X0P0:1:5:0x0: + %*50LG:0X0P0:0:5: + %50LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %50LG:INFINITY:1:8:inf: + %*50LG:INFINITY:0:8: +-%50LG:+NAN():1:6:nan: +-%*50LG:+NAN():0:6: +-%50LG:+NAN(09A_Zaz):1:13:nan: +-%*50LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %50LG:+NAN():1:6:nan: ++# BZ30647 %*50LG:+NAN():0:6: ++# BZ30647 %50LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LG:+NAN(09A_Zaz):0:13: + %50LG:+0X0P0:1:6:0x0: + %*50LG:+0X0P0:0:6: + %50LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*50LG: -0X0P+0:0:8: + %50LG: -0X0P0:1:7:-0x0: + %*50LG: -0X0P0:0:7: +-%50LG: -NAN(09A_Zaz):1:14:-nan: +-%*50LG: -NAN(09A_Zaz):0:14: +-%50LG: -NAN():1:7:-nan: +-%*50LG: -NAN():0:7: +-%50LG: NAN():1:6:nan: +-%*50LG: NAN():0:6: +-%50LG: NAN(09A_Zaz):1:13:nan: +-%*50LG: NAN(09A_Zaz):0:13: ++# BZ30647 %50LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*50LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %50LG: -NAN():1:7:-nan: ++# BZ30647 %*50LG: -NAN():0:7: ++# BZ30647 %50LG: NAN():1:6:nan: ++# BZ30647 %*50LG: NAN():0:6: ++# BZ30647 %50LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LG: NAN(09A_Zaz):0:13: + %50LG: 0X0P0:1:6:0x0: + %*50LG: 0X0P0:0:6: + %50LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: + %50LG: INFINITY:1:9:inf: + %*50LG: INFINITY:0:9: +-%50LG: +NAN():1:7:nan: +-%*50LG: +NAN():0:7: +-%50LG: +NAN(09A_Zaz):1:14:nan: +-%*50LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %50LG: +NAN():1:7:nan: ++# BZ30647 %*50LG: +NAN():0:7: ++# BZ30647 %50LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*50LG: +NAN(09A_Zaz):0:14: + %50LG: +0X0P0:1:7:0x0: + %*50LG: +0X0P0:0:7: + %50LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +index 0ed781ea87fb4b4a..58e0803be5d08f44 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.fffffffffffffffp+16380:0:26: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.fffffffffffffffp+16380:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.fffffffffffffffp+16380:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.fffffffffffffffp+16380:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.fffffffffffffffp+16380:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.fffffffffffffffp+16380:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.fffffffffffffffp+16380:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*22La:-0x0p+0:0:7: + %22La:-0x0p0:1:6:-0x0: + %*22La:-0x0p0:0:6: +-%22La:-nan(09A_Zaz):1:13:-nan: +-%*22La:-nan(09A_Zaz):0:13: +-%22La:-nan():1:6:-nan: +-%*22La:-nan():0:6: +-%22La:nan():1:5:nan: +-%*22La:nan():0:5: +-%22La:nan(09A_Zaz):1:12:nan: +-%*22La:nan(09A_Zaz):0:12: ++# BZ30647 %22La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*22La:-nan(09A_Zaz):0:13: ++# BZ30647 %22La:-nan():1:6:-nan: ++# BZ30647 %*22La:-nan():0:6: ++# BZ30647 %22La:nan():1:5:nan: ++# BZ30647 %*22La:nan():0:5: ++# BZ30647 %22La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*22La:nan(09A_Zaz):0:12: + %22La:0x0p0:1:5:0x0: + %*22La:0x0p0:0:5: + %22La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22La:0xf.fffffffffffffffp+16380:0:22: + %22La:infinity:1:8:inf: + %*22La:infinity:0:8: +-%22La:+nan():1:6:nan: +-%*22La:+nan():0:6: +-%22La:+nan(09A_Zaz):1:13:nan: +-%*22La:+nan(09A_Zaz):0:13: ++# BZ30647 %22La:+nan():1:6:nan: ++# BZ30647 %*22La:+nan():0:6: ++# BZ30647 %22La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*22La:+nan(09A_Zaz):0:13: + %22La:+0x0p0:1:6:0x0: + %*22La:+0x0p0:0:6: + %22La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37La:-0x0p+0:0:7: + %37La:-0x0p0:1:6:-0x0: + %*37La:-0x0p0:0:6: +-%37La:-nan(09A_Zaz):1:13:-nan: +-%*37La:-nan(09A_Zaz):0:13: +-%37La:-nan():1:6:-nan: +-%*37La:-nan():0:6: +-%37La:nan():1:5:nan: +-%*37La:nan():0:5: +-%37La:nan(09A_Zaz):1:12:nan: +-%*37La:nan(09A_Zaz):0:12: ++# BZ30647 %37La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*37La:-nan(09A_Zaz):0:13: ++# BZ30647 %37La:-nan():1:6:-nan: ++# BZ30647 %*37La:-nan():0:6: ++# BZ30647 %37La:nan():1:5:nan: ++# BZ30647 %*37La:nan():0:5: ++# BZ30647 %37La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*37La:nan(09A_Zaz):0:12: + %37La:0x0p0:1:5:0x0: + %*37La:0x0p0:0:5: + %37La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37La:0xf.fffffffffffffffp+16380:0:26: + %37La:infinity:1:8:inf: + %*37La:infinity:0:8: +-%37La:+nan():1:6:nan: +-%*37La:+nan():0:6: +-%37La:+nan(09A_Zaz):1:13:nan: +-%*37La:+nan(09A_Zaz):0:13: ++# BZ30647 %37La:+nan():1:6:nan: ++# BZ30647 %*37La:+nan():0:6: ++# BZ30647 %37La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37La:+nan(09A_Zaz):0:13: + %37La:+0x0p0:1:6:0x0: + %*37La:+0x0p0:0:6: + %37La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.fffffffffffffffp+16380:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*37La: -0x0p+0:0:8: + %37La: -0x0p0:1:7:-0x0: + %*37La: -0x0p0:0:7: +-%37La: -nan(09A_Zaz):1:14:-nan: +-%*37La: -nan(09A_Zaz):0:14: +-%37La: -nan():1:7:-nan: +-%*37La: -nan():0:7: +-%37La: nan():1:6:nan: +-%*37La: nan():0:6: +-%37La: nan(09A_Zaz):1:13:nan: +-%*37La: nan(09A_Zaz):0:13: ++# BZ30647 %37La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*37La: -nan(09A_Zaz):0:14: ++# BZ30647 %37La: -nan():1:7:-nan: ++# BZ30647 %*37La: -nan():0:7: ++# BZ30647 %37La: nan():1:6:nan: ++# BZ30647 %*37La: nan():0:6: ++# BZ30647 %37La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37La: nan(09A_Zaz):0:13: + %37La: 0x0p0:1:6:0x0: + %*37La: 0x0p0:0:6: + %37La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37La: 0xf.fffffffffffffffp+16380:0:27: + %37La: infinity:1:9:inf: + %*37La: infinity:0:9: +-%37La: +nan():1:7:nan: +-%*37La: +nan():0:7: +-%37La: +nan(09A_Zaz):1:14:nan: +-%*37La: +nan(09A_Zaz):0:14: ++# BZ30647 %37La: +nan():1:7:nan: ++# BZ30647 %*37La: +nan():0:7: ++# BZ30647 %37La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*37La: +nan(09A_Zaz):0:14: + %37La: +0x0p0:1:7:0x0: + %*37La: +0x0p0:0:7: + %37La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +index 231fc78d225363d5..ef7d64bcbe286b51 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFFFFP+16380:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFFFFP+16380:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFFFFP+16380:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFFFFP+16380:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*22LA:-0X0P+0:0:7: + %22LA:-0X0P0:1:6:-0x0: + %*22LA:-0X0P0:0:6: +-%22LA:-NAN(09A_Zaz):1:13:-nan: +-%*22LA:-NAN(09A_Zaz):0:13: +-%22LA:-NAN():1:6:-nan: +-%*22LA:-NAN():0:6: +-%22LA:NAN():1:5:nan: +-%*22LA:NAN():0:5: +-%22LA:NAN(09A_Zaz):1:12:nan: +-%*22LA:NAN(09A_Zaz):0:12: ++# BZ30647 %22LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*22LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %22LA:-NAN():1:6:-nan: ++# BZ30647 %*22LA:-NAN():0:6: ++# BZ30647 %22LA:NAN():1:5:nan: ++# BZ30647 %*22LA:NAN():0:5: ++# BZ30647 %22LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*22LA:NAN(09A_Zaz):0:12: + %22LA:0X0P0:1:5:0x0: + %*22LA:0X0P0:0:5: + %22LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22LA:0XF.FFFFFFFFFFFFFFFP+16380:0:22: + %22LA:INFINITY:1:8:inf: + %*22LA:INFINITY:0:8: +-%22LA:+NAN():1:6:nan: +-%*22LA:+NAN():0:6: +-%22LA:+NAN(09A_Zaz):1:13:nan: +-%*22LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %22LA:+NAN():1:6:nan: ++# BZ30647 %*22LA:+NAN():0:6: ++# BZ30647 %22LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*22LA:+NAN(09A_Zaz):0:13: + %22LA:+0X0P0:1:6:0x0: + %*22LA:+0X0P0:0:6: + %22LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37LA:-0X0P+0:0:7: + %37LA:-0X0P0:1:6:-0x0: + %*37LA:-0X0P0:0:6: +-%37LA:-NAN(09A_Zaz):1:13:-nan: +-%*37LA:-NAN(09A_Zaz):0:13: +-%37LA:-NAN():1:6:-nan: +-%*37LA:-NAN():0:6: +-%37LA:NAN():1:5:nan: +-%*37LA:NAN():0:5: +-%37LA:NAN(09A_Zaz):1:12:nan: +-%*37LA:NAN(09A_Zaz):0:12: ++# BZ30647 %37LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*37LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %37LA:-NAN():1:6:-nan: ++# BZ30647 %*37LA:-NAN():0:6: ++# BZ30647 %37LA:NAN():1:5:nan: ++# BZ30647 %*37LA:NAN():0:5: ++# BZ30647 %37LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*37LA:NAN(09A_Zaz):0:12: + %37LA:0X0P0:1:5:0x0: + %*37LA:0X0P0:0:5: + %37LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %37LA:INFINITY:1:8:inf: + %*37LA:INFINITY:0:8: +-%37LA:+NAN():1:6:nan: +-%*37LA:+NAN():0:6: +-%37LA:+NAN(09A_Zaz):1:13:nan: +-%*37LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %37LA:+NAN():1:6:nan: ++# BZ30647 %*37LA:+NAN():0:6: ++# BZ30647 %37LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LA:+NAN(09A_Zaz):0:13: + %37LA:+0X0P0:1:6:0x0: + %*37LA:+0X0P0:0:6: + %37LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*37LA: -0X0P+0:0:8: + %37LA: -0X0P0:1:7:-0x0: + %*37LA: -0X0P0:0:7: +-%37LA: -NAN(09A_Zaz):1:14:-nan: +-%*37LA: -NAN(09A_Zaz):0:14: +-%37LA: -NAN():1:7:-nan: +-%*37LA: -NAN():0:7: +-%37LA: NAN():1:6:nan: +-%*37LA: NAN():0:6: +-%37LA: NAN(09A_Zaz):1:13:nan: +-%*37LA: NAN(09A_Zaz):0:13: ++# BZ30647 %37LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*37LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %37LA: -NAN():1:7:-nan: ++# BZ30647 %*37LA: -NAN():0:7: ++# BZ30647 %37LA: NAN():1:6:nan: ++# BZ30647 %*37LA: NAN():0:6: ++# BZ30647 %37LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LA: NAN(09A_Zaz):0:13: + %37LA: 0X0P0:1:6:0x0: + %*37LA: 0X0P0:0:6: + %37LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: + %37LA: INFINITY:1:9:inf: + %*37LA: INFINITY:0:9: +-%37LA: +NAN():1:7:nan: +-%*37LA: +NAN():0:7: +-%37LA: +NAN(09A_Zaz):1:14:nan: +-%*37LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %37LA: +NAN():1:7:nan: ++# BZ30647 %*37LA: +NAN():0:7: ++# BZ30647 %37LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*37LA: +NAN(09A_Zaz):0:14: + %37LA: +0X0P0:1:7:0x0: + %*37LA: +0X0P0:0:7: + %37LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +index 61a9c901c205f897..b1d07a1393654580 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.18973149535723176502126385303097021e+4932:0:43: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.18973149535723176502126385303097021e+4932:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.18973149535723176502126385303097021e+4932:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.18973149535723176502126385303097021e+4932:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.18973149535723176502126385303097021e+4932:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.18973149535723176502126385303097021e+4932:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.18973149535723176502126385303097021e+4932:0:43: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.18973149535723176502126385303097021e+4932:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.18973149535723176502126385303097021e+4932:0:44: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +index 2362eab7e1e3702b..66796466c65eb61c 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.18973149535723176502126385303097021E+4932:0:43: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.18973149535723176502126385303097021E+4932:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.18973149535723176502126385303097021E+4932:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.18973149535723176502126385303097021E+4932:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.18973149535723176502126385303097021E+4932:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.18973149535723176502126385303097021E+4932:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.18973149535723176502126385303097021E+4932:0:43: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.18973149535723176502126385303097021E+4932:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.18973149535723176502126385303097021E+4932:0:44: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +index 7c06a3260a0496ba..7e1ec61a445c6a5b 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935Lf:-0.0:0:4: + %4935Lf:-0:1:2:-0x0: + %*4935Lf:-0:0:2: +-%4935Lf:-nan(09A_Zaz):1:13:-nan: +-%*4935Lf:-nan(09A_Zaz):0:13: +-%4935Lf:-nan():1:6:-nan: +-%*4935Lf:-nan():0:6: +-%4935Lf:nan():1:5:nan: +-%*4935Lf:nan():0:5: +-%4935Lf:nan(09A_Zaz):1:12:nan: +-%*4935Lf:nan(09A_Zaz):0:12: ++# BZ30647 %4935Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:-nan():1:6:-nan: ++# BZ30647 %*4935Lf:-nan():0:6: ++# BZ30647 %4935Lf:nan():1:5:nan: ++# BZ30647 %*4935Lf:nan():0:5: ++# BZ30647 %4935Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*4935Lf:nan(09A_Zaz):0:12: + %4935Lf:0:1:1:0x0: + %*4935Lf:0:0:1: + %4935Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: + %4935Lf:infinity:1:8:inf: + %*4935Lf:infinity:0:8: +-%4935Lf:+nan():1:6:nan: +-%*4935Lf:+nan():0:6: +-%4935Lf:+nan(09A_Zaz):1:13:nan: +-%*4935Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:+nan():1:6:nan: ++# BZ30647 %*4935Lf:+nan():0:6: ++# BZ30647 %4935Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*4935Lf:+nan(09A_Zaz):0:13: + %4935Lf:+0:1:2:0x0: + %*4935Lf:+0:0:2: + %4935Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000Lf:-0.0:0:4: + %5000Lf:-0:1:2:-0x0: + %*5000Lf:-0:0:2: +-%5000Lf:-nan(09A_Zaz):1:13:-nan: +-%*5000Lf:-nan(09A_Zaz):0:13: +-%5000Lf:-nan():1:6:-nan: +-%*5000Lf:-nan():0:6: +-%5000Lf:nan():1:5:nan: +-%*5000Lf:nan():0:5: +-%5000Lf:nan(09A_Zaz):1:12:nan: +-%*5000Lf:nan(09A_Zaz):0:12: ++# BZ30647 %5000Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:-nan():1:6:-nan: ++# BZ30647 %*5000Lf:-nan():0:6: ++# BZ30647 %5000Lf:nan():1:5:nan: ++# BZ30647 %*5000Lf:nan():0:5: ++# BZ30647 %5000Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*5000Lf:nan(09A_Zaz):0:12: + %5000Lf:0:1:1:0x0: + %*5000Lf:0:0:1: + %5000Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %5000Lf:infinity:1:8:inf: + %*5000Lf:infinity:0:8: +-%5000Lf:+nan():1:6:nan: +-%*5000Lf:+nan():0:6: +-%5000Lf:+nan(09A_Zaz):1:13:nan: +-%*5000Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:+nan():1:6:nan: ++# BZ30647 %*5000Lf:+nan():0:6: ++# BZ30647 %5000Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf:+nan(09A_Zaz):0:13: + %5000Lf:+0:1:2:0x0: + %*5000Lf:+0:0:2: + %5000Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000Lf: -0.0:0:5: + %5000Lf: -0:1:3:-0x0: + %*5000Lf: -0:0:3: +-%5000Lf: -nan(09A_Zaz):1:14:-nan: +-%*5000Lf: -nan(09A_Zaz):0:14: +-%5000Lf: -nan():1:7:-nan: +-%*5000Lf: -nan():0:7: +-%5000Lf: nan():1:6:nan: +-%*5000Lf: nan():0:6: +-%5000Lf: nan(09A_Zaz):1:13:nan: +-%*5000Lf: nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: -nan():1:7:-nan: ++# BZ30647 %*5000Lf: -nan():0:7: ++# BZ30647 %5000Lf: nan():1:6:nan: ++# BZ30647 %*5000Lf: nan():0:6: ++# BZ30647 %5000Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf: nan(09A_Zaz):0:13: + %5000Lf: 0:1:2:0x0: + %*5000Lf: 0:0:2: + %5000Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: + %5000Lf: infinity:1:9:inf: + %*5000Lf: infinity:0:9: +-%5000Lf: +nan():1:7:nan: +-%*5000Lf: +nan():0:7: +-%5000Lf: +nan(09A_Zaz):1:14:nan: +-%*5000Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: +nan():1:7:nan: ++# BZ30647 %*5000Lf: +nan():0:7: ++# BZ30647 %5000Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*5000Lf: +nan(09A_Zaz):0:14: + %5000Lf: +0:1:3:0x0: + %*5000Lf: +0:0:3: + %5000Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +index 1612fc41c412479e..fbbad837897269c1 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935LF:-0.0:0:4: + %4935LF:-0:1:2:-0x0: + %*4935LF:-0:0:2: +-%4935LF:-NAN(09A_Zaz):1:13:-nan: +-%*4935LF:-NAN(09A_Zaz):0:13: +-%4935LF:-NAN():1:6:-nan: +-%*4935LF:-NAN():0:6: +-%4935LF:NAN():1:5:nan: +-%*4935LF:NAN():0:5: +-%4935LF:NAN(09A_Zaz):1:12:nan: +-%*4935LF:NAN(09A_Zaz):0:12: ++# BZ30647 %4935LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:-NAN():1:6:-nan: ++# BZ30647 %*4935LF:-NAN():0:6: ++# BZ30647 %4935LF:NAN():1:5:nan: ++# BZ30647 %*4935LF:NAN():0:5: ++# BZ30647 %4935LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*4935LF:NAN(09A_Zaz):0:12: + %4935LF:0:1:1:0x0: + %*4935LF:0:0:1: + %4935LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: + %4935LF:INFINITY:1:8:inf: + %*4935LF:INFINITY:0:8: +-%4935LF:+NAN():1:6:nan: +-%*4935LF:+NAN():0:6: +-%4935LF:+NAN(09A_Zaz):1:13:nan: +-%*4935LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:+NAN():1:6:nan: ++# BZ30647 %*4935LF:+NAN():0:6: ++# BZ30647 %4935LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*4935LF:+NAN(09A_Zaz):0:13: + %4935LF:+0:1:2:0x0: + %*4935LF:+0:0:2: + %4935LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000LF:-0.0:0:4: + %5000LF:-0:1:2:-0x0: + %*5000LF:-0:0:2: +-%5000LF:-NAN(09A_Zaz):1:13:-nan: +-%*5000LF:-NAN(09A_Zaz):0:13: +-%5000LF:-NAN():1:6:-nan: +-%*5000LF:-NAN():0:6: +-%5000LF:NAN():1:5:nan: +-%*5000LF:NAN():0:5: +-%5000LF:NAN(09A_Zaz):1:12:nan: +-%*5000LF:NAN(09A_Zaz):0:12: ++# BZ30647 %5000LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:-NAN():1:6:-nan: ++# BZ30647 %*5000LF:-NAN():0:6: ++# BZ30647 %5000LF:NAN():1:5:nan: ++# BZ30647 %*5000LF:NAN():0:5: ++# BZ30647 %5000LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*5000LF:NAN(09A_Zaz):0:12: + %5000LF:0:1:1:0x0: + %*5000LF:0:0:1: + %5000LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %5000LF:INFINITY:1:8:inf: + %*5000LF:INFINITY:0:8: +-%5000LF:+NAN():1:6:nan: +-%*5000LF:+NAN():0:6: +-%5000LF:+NAN(09A_Zaz):1:13:nan: +-%*5000LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:+NAN():1:6:nan: ++# BZ30647 %*5000LF:+NAN():0:6: ++# BZ30647 %5000LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF:+NAN(09A_Zaz):0:13: + %5000LF:+0:1:2:0x0: + %*5000LF:+0:0:2: + %5000LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000LF: -0.0:0:5: + %5000LF: -0:1:3:-0x0: + %*5000LF: -0:0:3: +-%5000LF: -NAN(09A_Zaz):1:14:-nan: +-%*5000LF: -NAN(09A_Zaz):0:14: +-%5000LF: -NAN():1:7:-nan: +-%*5000LF: -NAN():0:7: +-%5000LF: NAN():1:6:nan: +-%*5000LF: NAN():0:6: +-%5000LF: NAN(09A_Zaz):1:13:nan: +-%*5000LF: NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: -NAN():1:7:-nan: ++# BZ30647 %*5000LF: -NAN():0:7: ++# BZ30647 %5000LF: NAN():1:6:nan: ++# BZ30647 %*5000LF: NAN():0:6: ++# BZ30647 %5000LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF: NAN(09A_Zaz):0:13: + %5000LF: 0:1:2:0x0: + %*5000LF: 0:0:2: + %5000LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: + %5000LF: INFINITY:1:9:inf: + %*5000LF: INFINITY:0:9: +-%5000LF: +NAN():1:7:nan: +-%*5000LF: +NAN():0:7: +-%5000LF: +NAN(09A_Zaz):1:14:nan: +-%*5000LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: +NAN():1:7:nan: ++# BZ30647 %*5000LF: +NAN():0:7: ++# BZ30647 %5000LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*5000LF: +NAN(09A_Zaz):0:14: + %5000LF: +0:1:3:0x0: + %*5000LF: +0:0:3: + %5000LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +index af43cfe2cde3b19a..ff15feec046d76da 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.fffffffffffffffp+16380:0:26: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.fffffffffffffffp+16380:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.fffffffffffffffp+16380:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.fffffffffffffffp+16380:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.fffffffffffffffp+16380:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.fffffffffffffffp+16380:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.fffffffffffffffp+16380:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*22Lg:-0x0p+0:0:7: + %22Lg:-0x0p0:1:6:-0x0: + %*22Lg:-0x0p0:0:6: +-%22Lg:-nan(09A_Zaz):1:13:-nan: +-%*22Lg:-nan(09A_Zaz):0:13: +-%22Lg:-nan():1:6:-nan: +-%*22Lg:-nan():0:6: +-%22Lg:nan():1:5:nan: +-%*22Lg:nan():0:5: +-%22Lg:nan(09A_Zaz):1:12:nan: +-%*22Lg:nan(09A_Zaz):0:12: ++# BZ30647 %22Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*22Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %22Lg:-nan():1:6:-nan: ++# BZ30647 %*22Lg:-nan():0:6: ++# BZ30647 %22Lg:nan():1:5:nan: ++# BZ30647 %*22Lg:nan():0:5: ++# BZ30647 %22Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*22Lg:nan(09A_Zaz):0:12: + %22Lg:0x0p0:1:5:0x0: + %*22Lg:0x0p0:0:5: + %22Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22Lg:0xf.fffffffffffffffp+16380:0:22: + %22Lg:infinity:1:8:inf: + %*22Lg:infinity:0:8: +-%22Lg:+nan():1:6:nan: +-%*22Lg:+nan():0:6: +-%22Lg:+nan(09A_Zaz):1:13:nan: +-%*22Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %22Lg:+nan():1:6:nan: ++# BZ30647 %*22Lg:+nan():0:6: ++# BZ30647 %22Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*22Lg:+nan(09A_Zaz):0:13: + %22Lg:+0x0p0:1:6:0x0: + %*22Lg:+0x0p0:0:6: + %22Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37Lg:-0x0p+0:0:7: + %37Lg:-0x0p0:1:6:-0x0: + %*37Lg:-0x0p0:0:6: +-%37Lg:-nan(09A_Zaz):1:13:-nan: +-%*37Lg:-nan(09A_Zaz):0:13: +-%37Lg:-nan():1:6:-nan: +-%*37Lg:-nan():0:6: +-%37Lg:nan():1:5:nan: +-%*37Lg:nan():0:5: +-%37Lg:nan(09A_Zaz):1:12:nan: +-%*37Lg:nan(09A_Zaz):0:12: ++# BZ30647 %37Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*37Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %37Lg:-nan():1:6:-nan: ++# BZ30647 %*37Lg:-nan():0:6: ++# BZ30647 %37Lg:nan():1:5:nan: ++# BZ30647 %*37Lg:nan():0:5: ++# BZ30647 %37Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*37Lg:nan(09A_Zaz):0:12: + %37Lg:0x0p0:1:5:0x0: + %*37Lg:0x0p0:0:5: + %37Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37Lg:0xf.fffffffffffffffp+16380:0:26: + %37Lg:infinity:1:8:inf: + %*37Lg:infinity:0:8: +-%37Lg:+nan():1:6:nan: +-%*37Lg:+nan():0:6: +-%37Lg:+nan(09A_Zaz):1:13:nan: +-%*37Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %37Lg:+nan():1:6:nan: ++# BZ30647 %*37Lg:+nan():0:6: ++# BZ30647 %37Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37Lg:+nan(09A_Zaz):0:13: + %37Lg:+0x0p0:1:6:0x0: + %*37Lg:+0x0p0:0:6: + %37Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.fffffffffffffffp+16380:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*37Lg: -0x0p+0:0:8: + %37Lg: -0x0p0:1:7:-0x0: + %*37Lg: -0x0p0:0:7: +-%37Lg: -nan(09A_Zaz):1:14:-nan: +-%*37Lg: -nan(09A_Zaz):0:14: +-%37Lg: -nan():1:7:-nan: +-%*37Lg: -nan():0:7: +-%37Lg: nan():1:6:nan: +-%*37Lg: nan():0:6: +-%37Lg: nan(09A_Zaz):1:13:nan: +-%*37Lg: nan(09A_Zaz):0:13: ++# BZ30647 %37Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*37Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %37Lg: -nan():1:7:-nan: ++# BZ30647 %*37Lg: -nan():0:7: ++# BZ30647 %37Lg: nan():1:6:nan: ++# BZ30647 %*37Lg: nan():0:6: ++# BZ30647 %37Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37Lg: nan(09A_Zaz):0:13: + %37Lg: 0x0p0:1:6:0x0: + %*37Lg: 0x0p0:0:6: + %37Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37Lg: 0xf.fffffffffffffffp+16380:0:27: + %37Lg: infinity:1:9:inf: + %*37Lg: infinity:0:9: +-%37Lg: +nan():1:7:nan: +-%*37Lg: +nan():0:7: +-%37Lg: +nan(09A_Zaz):1:14:nan: +-%*37Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %37Lg: +nan():1:7:nan: ++# BZ30647 %*37Lg: +nan():0:7: ++# BZ30647 %37Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*37Lg: +nan(09A_Zaz):0:14: + %37Lg: +0x0p0:1:7:0x0: + %*37Lg: +0x0p0:0:7: + %37Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +index a274698774017b4b..2d9ee63d7fe7dc9f 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFFFFP+16380:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFFFFP+16380:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFFFFP+16380:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFFFFP+16380:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*22LG:-0X0P+0:0:7: + %22LG:-0X0P0:1:6:-0x0: + %*22LG:-0X0P0:0:6: +-%22LG:-NAN(09A_Zaz):1:13:-nan: +-%*22LG:-NAN(09A_Zaz):0:13: +-%22LG:-NAN():1:6:-nan: +-%*22LG:-NAN():0:6: +-%22LG:NAN():1:5:nan: +-%*22LG:NAN():0:5: +-%22LG:NAN(09A_Zaz):1:12:nan: +-%*22LG:NAN(09A_Zaz):0:12: ++# BZ30647 %22LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*22LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %22LG:-NAN():1:6:-nan: ++# BZ30647 %*22LG:-NAN():0:6: ++# BZ30647 %22LG:NAN():1:5:nan: ++# BZ30647 %*22LG:NAN():0:5: ++# BZ30647 %22LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*22LG:NAN(09A_Zaz):0:12: + %22LG:0X0P0:1:5:0x0: + %*22LG:0X0P0:0:5: + %22LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22LG:0XF.FFFFFFFFFFFFFFFP+16380:0:22: + %22LG:INFINITY:1:8:inf: + %*22LG:INFINITY:0:8: +-%22LG:+NAN():1:6:nan: +-%*22LG:+NAN():0:6: +-%22LG:+NAN(09A_Zaz):1:13:nan: +-%*22LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %22LG:+NAN():1:6:nan: ++# BZ30647 %*22LG:+NAN():0:6: ++# BZ30647 %22LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*22LG:+NAN(09A_Zaz):0:13: + %22LG:+0X0P0:1:6:0x0: + %*22LG:+0X0P0:0:6: + %22LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37LG:-0X0P+0:0:7: + %37LG:-0X0P0:1:6:-0x0: + %*37LG:-0X0P0:0:6: +-%37LG:-NAN(09A_Zaz):1:13:-nan: +-%*37LG:-NAN(09A_Zaz):0:13: +-%37LG:-NAN():1:6:-nan: +-%*37LG:-NAN():0:6: +-%37LG:NAN():1:5:nan: +-%*37LG:NAN():0:5: +-%37LG:NAN(09A_Zaz):1:12:nan: +-%*37LG:NAN(09A_Zaz):0:12: ++# BZ30647 %37LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*37LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %37LG:-NAN():1:6:-nan: ++# BZ30647 %*37LG:-NAN():0:6: ++# BZ30647 %37LG:NAN():1:5:nan: ++# BZ30647 %*37LG:NAN():0:5: ++# BZ30647 %37LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*37LG:NAN(09A_Zaz):0:12: + %37LG:0X0P0:1:5:0x0: + %*37LG:0X0P0:0:5: + %37LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %37LG:INFINITY:1:8:inf: + %*37LG:INFINITY:0:8: +-%37LG:+NAN():1:6:nan: +-%*37LG:+NAN():0:6: +-%37LG:+NAN(09A_Zaz):1:13:nan: +-%*37LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %37LG:+NAN():1:6:nan: ++# BZ30647 %*37LG:+NAN():0:6: ++# BZ30647 %37LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LG:+NAN(09A_Zaz):0:13: + %37LG:+0X0P0:1:6:0x0: + %*37LG:+0X0P0:0:6: + %37LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*37LG: -0X0P+0:0:8: + %37LG: -0X0P0:1:7:-0x0: + %*37LG: -0X0P0:0:7: +-%37LG: -NAN(09A_Zaz):1:14:-nan: +-%*37LG: -NAN(09A_Zaz):0:14: +-%37LG: -NAN():1:7:-nan: +-%*37LG: -NAN():0:7: +-%37LG: NAN():1:6:nan: +-%*37LG: NAN():0:6: +-%37LG: NAN(09A_Zaz):1:13:nan: +-%*37LG: NAN(09A_Zaz):0:13: ++# BZ30647 %37LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*37LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %37LG: -NAN():1:7:-nan: ++# BZ30647 %*37LG: -NAN():0:7: ++# BZ30647 %37LG: NAN():1:6:nan: ++# BZ30647 %*37LG: NAN():0:6: ++# BZ30647 %37LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LG: NAN(09A_Zaz):0:13: + %37LG: 0X0P0:1:6:0x0: + %*37LG: 0X0P0:0:6: + %37LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: + %37LG: INFINITY:1:9:inf: + %*37LG: INFINITY:0:9: +-%37LG: +NAN():1:7:nan: +-%*37LG: +NAN():0:7: +-%37LG: +NAN(09A_Zaz):1:14:nan: +-%*37LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %37LG: +NAN():1:7:nan: ++# BZ30647 %*37LG: +NAN():0:7: ++# BZ30647 %37LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*37LG: +NAN(09A_Zaz):0:14: + %37LG: +0X0P0:1:7:0x0: + %*37LG: +0X0P0:0:7: + %37LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +index 42a1ffa84a834f8d..9f3ad94d450a75f7 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.ffffffffffff8p+1020:0:23: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.ffffffffffff8p+1020:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.ffffffffffff8p+1020:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.ffffffffffff8p+1020:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.ffffffffffff8p+1020:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.ffffffffffff8p+1020:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.ffffffffffff8p+1020:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20La:-0x0p+0:0:7: + %20La:-0x0p0:1:6:-0x0: + %*20La:-0x0p0:0:6: +-%20La:-nan(09A_Zaz):1:13:-nan: +-%*20La:-nan(09A_Zaz):0:13: +-%20La:-nan():1:6:-nan: +-%*20La:-nan():0:6: +-%20La:nan():1:5:nan: +-%*20La:nan():0:5: +-%20La:nan(09A_Zaz):1:12:nan: +-%*20La:nan(09A_Zaz):0:12: ++# BZ30647 %20La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20La:-nan(09A_Zaz):0:13: ++# BZ30647 %20La:-nan():1:6:-nan: ++# BZ30647 %*20La:-nan():0:6: ++# BZ30647 %20La:nan():1:5:nan: ++# BZ30647 %*20La:nan():0:5: ++# BZ30647 %20La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20La:nan(09A_Zaz):0:12: + %20La:0x0p0:1:5:0x0: + %*20La:0x0p0:0:5: + %20La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20La:0xf.ffffffffffff8p+1020:0:20: + %20La:infinity:1:8:inf: + %*20La:infinity:0:8: +-%20La:+nan():1:6:nan: +-%*20La:+nan():0:6: +-%20La:+nan(09A_Zaz):1:13:nan: +-%*20La:+nan(09A_Zaz):0:13: ++# BZ30647 %20La:+nan():1:6:nan: ++# BZ30647 %*20La:+nan():0:6: ++# BZ30647 %20La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20La:+nan(09A_Zaz):0:13: + %20La:+0x0p0:1:6:0x0: + %*20La:+0x0p0:0:6: + %20La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32La:-0x0p+0:0:7: + %32La:-0x0p0:1:6:-0x0: + %*32La:-0x0p0:0:6: +-%32La:-nan(09A_Zaz):1:13:-nan: +-%*32La:-nan(09A_Zaz):0:13: +-%32La:-nan():1:6:-nan: +-%*32La:-nan():0:6: +-%32La:nan():1:5:nan: +-%*32La:nan():0:5: +-%32La:nan(09A_Zaz):1:12:nan: +-%*32La:nan(09A_Zaz):0:12: ++# BZ30647 %32La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32La:-nan(09A_Zaz):0:13: ++# BZ30647 %32La:-nan():1:6:-nan: ++# BZ30647 %*32La:-nan():0:6: ++# BZ30647 %32La:nan():1:5:nan: ++# BZ30647 %*32La:nan():0:5: ++# BZ30647 %32La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32La:nan(09A_Zaz):0:12: + %32La:0x0p0:1:5:0x0: + %*32La:0x0p0:0:5: + %32La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32La:0xf.ffffffffffff8p+1020:0:23: + %32La:infinity:1:8:inf: + %*32La:infinity:0:8: +-%32La:+nan():1:6:nan: +-%*32La:+nan():0:6: +-%32La:+nan(09A_Zaz):1:13:nan: +-%*32La:+nan(09A_Zaz):0:13: ++# BZ30647 %32La:+nan():1:6:nan: ++# BZ30647 %*32La:+nan():0:6: ++# BZ30647 %32La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32La:+nan(09A_Zaz):0:13: + %32La:+0x0p0:1:6:0x0: + %*32La:+0x0p0:0:6: + %32La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.ffffffffffff8p+1020:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32La: -0x0p+0:0:8: + %32La: -0x0p0:1:7:-0x0: + %*32La: -0x0p0:0:7: +-%32La: -nan(09A_Zaz):1:14:-nan: +-%*32La: -nan(09A_Zaz):0:14: +-%32La: -nan():1:7:-nan: +-%*32La: -nan():0:7: +-%32La: nan():1:6:nan: +-%*32La: nan():0:6: +-%32La: nan(09A_Zaz):1:13:nan: +-%*32La: nan(09A_Zaz):0:13: ++# BZ30647 %32La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32La: -nan(09A_Zaz):0:14: ++# BZ30647 %32La: -nan():1:7:-nan: ++# BZ30647 %*32La: -nan():0:7: ++# BZ30647 %32La: nan():1:6:nan: ++# BZ30647 %*32La: nan():0:6: ++# BZ30647 %32La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32La: nan(09A_Zaz):0:13: + %32La: 0x0p0:1:6:0x0: + %*32La: 0x0p0:0:6: + %32La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32La: 0xf.ffffffffffff8p+1020:0:24: + %32La: infinity:1:9:inf: + %*32La: infinity:0:9: +-%32La: +nan():1:7:nan: +-%*32La: +nan():0:7: +-%32La: +nan(09A_Zaz):1:14:nan: +-%*32La: +nan(09A_Zaz):0:14: ++# BZ30647 %32La: +nan():1:7:nan: ++# BZ30647 %*32La: +nan():0:7: ++# BZ30647 %32La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32La: +nan(09A_Zaz):0:14: + %32La: +0x0p0:1:7:0x0: + %*32La: +0x0p0:0:7: + %32La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +index 8a0e6005e3a86bc8..ea14b489e06234b3 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20LA:-0X0P+0:0:7: + %20LA:-0X0P0:1:6:-0x0: + %*20LA:-0X0P0:0:6: +-%20LA:-NAN(09A_Zaz):1:13:-nan: +-%*20LA:-NAN(09A_Zaz):0:13: +-%20LA:-NAN():1:6:-nan: +-%*20LA:-NAN():0:6: +-%20LA:NAN():1:5:nan: +-%*20LA:NAN():0:5: +-%20LA:NAN(09A_Zaz):1:12:nan: +-%*20LA:NAN(09A_Zaz):0:12: ++# BZ30647 %20LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %20LA:-NAN():1:6:-nan: ++# BZ30647 %*20LA:-NAN():0:6: ++# BZ30647 %20LA:NAN():1:5:nan: ++# BZ30647 %*20LA:NAN():0:5: ++# BZ30647 %20LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20LA:NAN(09A_Zaz):0:12: + %20LA:0X0P0:1:5:0x0: + %*20LA:0X0P0:0:5: + %20LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20LA:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20LA:INFINITY:1:8:inf: + %*20LA:INFINITY:0:8: +-%20LA:+NAN():1:6:nan: +-%*20LA:+NAN():0:6: +-%20LA:+NAN(09A_Zaz):1:13:nan: +-%*20LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %20LA:+NAN():1:6:nan: ++# BZ30647 %*20LA:+NAN():0:6: ++# BZ30647 %20LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20LA:+NAN(09A_Zaz):0:13: + %20LA:+0X0P0:1:6:0x0: + %*20LA:+0X0P0:0:6: + %20LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32LA:-0X0P+0:0:7: + %32LA:-0X0P0:1:6:-0x0: + %*32LA:-0X0P0:0:6: +-%32LA:-NAN(09A_Zaz):1:13:-nan: +-%*32LA:-NAN(09A_Zaz):0:13: +-%32LA:-NAN():1:6:-nan: +-%*32LA:-NAN():0:6: +-%32LA:NAN():1:5:nan: +-%*32LA:NAN():0:5: +-%32LA:NAN(09A_Zaz):1:12:nan: +-%*32LA:NAN(09A_Zaz):0:12: ++# BZ30647 %32LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %32LA:-NAN():1:6:-nan: ++# BZ30647 %*32LA:-NAN():0:6: ++# BZ30647 %32LA:NAN():1:5:nan: ++# BZ30647 %*32LA:NAN():0:5: ++# BZ30647 %32LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32LA:NAN(09A_Zaz):0:12: + %32LA:0X0P0:1:5:0x0: + %*32LA:0X0P0:0:5: + %32LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32LA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32LA:INFINITY:1:8:inf: + %*32LA:INFINITY:0:8: +-%32LA:+NAN():1:6:nan: +-%*32LA:+NAN():0:6: +-%32LA:+NAN(09A_Zaz):1:13:nan: +-%*32LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %32LA:+NAN():1:6:nan: ++# BZ30647 %*32LA:+NAN():0:6: ++# BZ30647 %32LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LA:+NAN(09A_Zaz):0:13: + %32LA:+0X0P0:1:6:0x0: + %*32LA:+0X0P0:0:6: + %32LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32LA: -0X0P+0:0:8: + %32LA: -0X0P0:1:7:-0x0: + %*32LA: -0X0P0:0:7: +-%32LA: -NAN(09A_Zaz):1:14:-nan: +-%*32LA: -NAN(09A_Zaz):0:14: +-%32LA: -NAN():1:7:-nan: +-%*32LA: -NAN():0:7: +-%32LA: NAN():1:6:nan: +-%*32LA: NAN():0:6: +-%32LA: NAN(09A_Zaz):1:13:nan: +-%*32LA: NAN(09A_Zaz):0:13: ++# BZ30647 %32LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %32LA: -NAN():1:7:-nan: ++# BZ30647 %*32LA: -NAN():0:7: ++# BZ30647 %32LA: NAN():1:6:nan: ++# BZ30647 %*32LA: NAN():0:6: ++# BZ30647 %32LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LA: NAN(09A_Zaz):0:13: + %32LA: 0X0P0:1:6:0x0: + %*32LA: 0X0P0:0:6: + %32LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32LA: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32LA: INFINITY:1:9:inf: + %*32LA: INFINITY:0:9: +-%32LA: +NAN():1:7:nan: +-%*32LA: +NAN():0:7: +-%32LA: +NAN(09A_Zaz):1:14:nan: +-%*32LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %32LA: +NAN():1:7:nan: ++# BZ30647 %*32LA: +NAN():0:7: ++# BZ30647 %32LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32LA: +NAN(09A_Zaz):0:14: + %32LA: +0X0P0:1:7:0x0: + %*32LA: +0X0P0:0:7: + %32LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +index c510f086919bd135..c998652b556bc7ac 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.79769313486231570814527423731704357e+308:0:42: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.79769313486231570814527423731704357e+308:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.79769313486231570814527423731704357e+308:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.79769313486231570814527423731704357e+308:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.79769313486231570814527423731704357e+308:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.79769313486231570814527423731704357e+308:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.79769313486231570814527423731704357e+308:0:42: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.79769313486231570814527423731704357e+308:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.79769313486231570814527423731704357e+308:0:43: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +index 6fb575513e9e3379..9678dad05cf8e06a 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.79769313486231570814527423731704357E+308:0:42: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.79769313486231570814527423731704357E+308:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.79769313486231570814527423731704357E+308:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.79769313486231570814527423731704357E+308:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.79769313486231570814527423731704357E+308:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.79769313486231570814527423731704357E+308:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.79769313486231570814527423731704357E+308:0:42: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.79769313486231570814527423731704357E+308:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.79769313486231570814527423731704357E+308:0:43: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +index a506658d25fff3a5..f4039ae8c981f5ec 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4Lf:-0.0:0:4: + %4Lf:-0:1:2:-0x0: + %*4Lf:-0:0:2: +-%4Lf:-nan(09A_Zaz):1:4:-nan: +-%*4Lf:-nan(09A_Zaz):0:4: +-%4Lf:-nan():1:4:-nan: +-%*4Lf:-nan():0:4: +-%4Lf:nan():0:-1: +-%*4Lf:nan():0:-1: +-%4Lf:nan(09A_Zaz):0:-1: +-%*4Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lf:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lf:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lf:-nan():1:4:-nan: ++# BZ30647 %*4Lf:-nan():0:4: ++# BZ30647 %4Lf:nan():0:-1: ++# BZ30647 %*4Lf:nan():0:-1: ++# BZ30647 %4Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lf:nan(09A_Zaz):0:-1: + %4Lf:0:1:1:0x0: + %*4Lf:0:0:1: + %4Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4Lf:infinity:0:-1: + %*4Lf:infinity:0:-1: +-%4Lf:+nan():1:4:nan: +-%*4Lf:+nan():0:4: +-%4Lf:+nan(09A_Zaz):1:4:nan: +-%*4Lf:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lf:+nan():1:4:nan: ++# BZ30647 %*4Lf:+nan():0:4: ++# BZ30647 %4Lf:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lf:+nan(09A_Zaz):0:4: + %4Lf:+0:1:2:0x0: + %*4Lf:+0:0:2: + %4Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311Lf:-0.0:0:4: + %311Lf:-0:1:2:-0x0: + %*311Lf:-0:0:2: +-%311Lf:-nan(09A_Zaz):1:13:-nan: +-%*311Lf:-nan(09A_Zaz):0:13: +-%311Lf:-nan():1:6:-nan: +-%*311Lf:-nan():0:6: +-%311Lf:nan():1:5:nan: +-%*311Lf:nan():0:5: +-%311Lf:nan(09A_Zaz):1:12:nan: +-%*311Lf:nan(09A_Zaz):0:12: ++# BZ30647 %311Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*311Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %311Lf:-nan():1:6:-nan: ++# BZ30647 %*311Lf:-nan():0:6: ++# BZ30647 %311Lf:nan():1:5:nan: ++# BZ30647 %*311Lf:nan():0:5: ++# BZ30647 %311Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*311Lf:nan(09A_Zaz):0:12: + %311Lf:0:1:1:0x0: + %*311Lf:0:0:1: + %311Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311Lf:infinity:1:8:inf: + %*311Lf:infinity:0:8: +-%311Lf:+nan():1:6:nan: +-%*311Lf:+nan():0:6: +-%311Lf:+nan(09A_Zaz):1:13:nan: +-%*311Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %311Lf:+nan():1:6:nan: ++# BZ30647 %*311Lf:+nan():0:6: ++# BZ30647 %311Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*311Lf:+nan(09A_Zaz):0:13: + %311Lf:+0:1:2:0x0: + %*311Lf:+0:0:2: + %311Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350Lf:-0.0:0:4: + %350Lf:-0:1:2:-0x0: + %*350Lf:-0:0:2: +-%350Lf:-nan(09A_Zaz):1:13:-nan: +-%*350Lf:-nan(09A_Zaz):0:13: +-%350Lf:-nan():1:6:-nan: +-%*350Lf:-nan():0:6: +-%350Lf:nan():1:5:nan: +-%*350Lf:nan():0:5: +-%350Lf:nan(09A_Zaz):1:12:nan: +-%*350Lf:nan(09A_Zaz):0:12: ++# BZ30647 %350Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*350Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %350Lf:-nan():1:6:-nan: ++# BZ30647 %*350Lf:-nan():0:6: ++# BZ30647 %350Lf:nan():1:5:nan: ++# BZ30647 %*350Lf:nan():0:5: ++# BZ30647 %350Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*350Lf:nan(09A_Zaz):0:12: + %350Lf:0:1:1:0x0: + %*350Lf:0:0:1: + %350Lf:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350Lf:infinity:1:8:inf: + %*350Lf:infinity:0:8: +-%350Lf:+nan():1:6:nan: +-%*350Lf:+nan():0:6: +-%350Lf:+nan(09A_Zaz):1:13:nan: +-%*350Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %350Lf:+nan():1:6:nan: ++# BZ30647 %*350Lf:+nan():0:6: ++# BZ30647 %350Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350Lf:+nan(09A_Zaz):0:13: + %350Lf:+0:1:2:0x0: + %*350Lf:+0:0:2: + %350Lf:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350Lf: -0.0:0:5: + %350Lf: -0:1:3:-0x0: + %*350Lf: -0:0:3: +-%350Lf: -nan(09A_Zaz):1:14:-nan: +-%*350Lf: -nan(09A_Zaz):0:14: +-%350Lf: -nan():1:7:-nan: +-%*350Lf: -nan():0:7: +-%350Lf: nan():1:6:nan: +-%*350Lf: nan():0:6: +-%350Lf: nan(09A_Zaz):1:13:nan: +-%*350Lf: nan(09A_Zaz):0:13: ++# BZ30647 %350Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*350Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %350Lf: -nan():1:7:-nan: ++# BZ30647 %*350Lf: -nan():0:7: ++# BZ30647 %350Lf: nan():1:6:nan: ++# BZ30647 %*350Lf: nan():0:6: ++# BZ30647 %350Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350Lf: nan(09A_Zaz):0:13: + %350Lf: 0:1:2:0x0: + %*350Lf: 0:0:2: + %350Lf: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350Lf: infinity:1:9:inf: + %*350Lf: infinity:0:9: +-%350Lf: +nan():1:7:nan: +-%*350Lf: +nan():0:7: +-%350Lf: +nan(09A_Zaz):1:14:nan: +-%*350Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %350Lf: +nan():1:7:nan: ++# BZ30647 %*350Lf: +nan():0:7: ++# BZ30647 %350Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*350Lf: +nan(09A_Zaz):0:14: + %350Lf: +0:1:3:0x0: + %*350Lf: +0:0:3: + %350Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +index 03dedfca801bf8ca..835e208472efaab6 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4LF:-0.0:0:4: + %4LF:-0:1:2:-0x0: + %*4LF:-0:0:2: +-%4LF:-NAN(09A_Zaz):1:4:-nan: +-%*4LF:-NAN(09A_Zaz):0:4: +-%4LF:-NAN():1:4:-nan: +-%*4LF:-NAN():0:4: +-%4LF:NAN():0:-1: +-%*4LF:NAN():0:-1: +-%4LF:NAN(09A_Zaz):0:-1: +-%*4LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LF:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LF:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LF:-NAN():1:4:-nan: ++# BZ30647 %*4LF:-NAN():0:4: ++# BZ30647 %4LF:NAN():0:-1: ++# BZ30647 %*4LF:NAN():0:-1: ++# BZ30647 %4LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LF:NAN(09A_Zaz):0:-1: + %4LF:0:1:1:0x0: + %*4LF:0:0:1: + %4LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4LF:INFINITY:0:-1: + %*4LF:INFINITY:0:-1: +-%4LF:+NAN():1:4:nan: +-%*4LF:+NAN():0:4: +-%4LF:+NAN(09A_Zaz):1:4:nan: +-%*4LF:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LF:+NAN():1:4:nan: ++# BZ30647 %*4LF:+NAN():0:4: ++# BZ30647 %4LF:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LF:+NAN(09A_Zaz):0:4: + %4LF:+0:1:2:0x0: + %*4LF:+0:0:2: + %4LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311LF:-0.0:0:4: + %311LF:-0:1:2:-0x0: + %*311LF:-0:0:2: +-%311LF:-NAN(09A_Zaz):1:13:-nan: +-%*311LF:-NAN(09A_Zaz):0:13: +-%311LF:-NAN():1:6:-nan: +-%*311LF:-NAN():0:6: +-%311LF:NAN():1:5:nan: +-%*311LF:NAN():0:5: +-%311LF:NAN(09A_Zaz):1:12:nan: +-%*311LF:NAN(09A_Zaz):0:12: ++# BZ30647 %311LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*311LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %311LF:-NAN():1:6:-nan: ++# BZ30647 %*311LF:-NAN():0:6: ++# BZ30647 %311LF:NAN():1:5:nan: ++# BZ30647 %*311LF:NAN():0:5: ++# BZ30647 %311LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*311LF:NAN(09A_Zaz):0:12: + %311LF:0:1:1:0x0: + %*311LF:0:0:1: + %311LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311LF:INFINITY:1:8:inf: + %*311LF:INFINITY:0:8: +-%311LF:+NAN():1:6:nan: +-%*311LF:+NAN():0:6: +-%311LF:+NAN(09A_Zaz):1:13:nan: +-%*311LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %311LF:+NAN():1:6:nan: ++# BZ30647 %*311LF:+NAN():0:6: ++# BZ30647 %311LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*311LF:+NAN(09A_Zaz):0:13: + %311LF:+0:1:2:0x0: + %*311LF:+0:0:2: + %311LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350LF:-0.0:0:4: + %350LF:-0:1:2:-0x0: + %*350LF:-0:0:2: +-%350LF:-NAN(09A_Zaz):1:13:-nan: +-%*350LF:-NAN(09A_Zaz):0:13: +-%350LF:-NAN():1:6:-nan: +-%*350LF:-NAN():0:6: +-%350LF:NAN():1:5:nan: +-%*350LF:NAN():0:5: +-%350LF:NAN(09A_Zaz):1:12:nan: +-%*350LF:NAN(09A_Zaz):0:12: ++# BZ30647 %350LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*350LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %350LF:-NAN():1:6:-nan: ++# BZ30647 %*350LF:-NAN():0:6: ++# BZ30647 %350LF:NAN():1:5:nan: ++# BZ30647 %*350LF:NAN():0:5: ++# BZ30647 %350LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*350LF:NAN(09A_Zaz):0:12: + %350LF:0:1:1:0x0: + %*350LF:0:0:1: + %350LF:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350LF:INFINITY:1:8:inf: + %*350LF:INFINITY:0:8: +-%350LF:+NAN():1:6:nan: +-%*350LF:+NAN():0:6: +-%350LF:+NAN(09A_Zaz):1:13:nan: +-%*350LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %350LF:+NAN():1:6:nan: ++# BZ30647 %*350LF:+NAN():0:6: ++# BZ30647 %350LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350LF:+NAN(09A_Zaz):0:13: + %350LF:+0:1:2:0x0: + %*350LF:+0:0:2: + %350LF:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350LF: -0.0:0:5: + %350LF: -0:1:3:-0x0: + %*350LF: -0:0:3: +-%350LF: -NAN(09A_Zaz):1:14:-nan: +-%*350LF: -NAN(09A_Zaz):0:14: +-%350LF: -NAN():1:7:-nan: +-%*350LF: -NAN():0:7: +-%350LF: NAN():1:6:nan: +-%*350LF: NAN():0:6: +-%350LF: NAN(09A_Zaz):1:13:nan: +-%*350LF: NAN(09A_Zaz):0:13: ++# BZ30647 %350LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*350LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %350LF: -NAN():1:7:-nan: ++# BZ30647 %*350LF: -NAN():0:7: ++# BZ30647 %350LF: NAN():1:6:nan: ++# BZ30647 %*350LF: NAN():0:6: ++# BZ30647 %350LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350LF: NAN(09A_Zaz):0:13: + %350LF: 0:1:2:0x0: + %*350LF: 0:0:2: + %350LF: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350LF: INFINITY:1:9:inf: + %*350LF: INFINITY:0:9: +-%350LF: +NAN():1:7:nan: +-%*350LF: +NAN():0:7: +-%350LF: +NAN(09A_Zaz):1:14:nan: +-%*350LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %350LF: +NAN():1:7:nan: ++# BZ30647 %*350LF: +NAN():0:7: ++# BZ30647 %350LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*350LF: +NAN(09A_Zaz):0:14: + %350LF: +0:1:3:0x0: + %*350LF: +0:0:3: + %350LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +index ed8aac9247f36c61..f710ecbfd743aacf 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.ffffffffffff8p+1020:0:23: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.ffffffffffff8p+1020:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.ffffffffffff8p+1020:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.ffffffffffff8p+1020:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.ffffffffffff8p+1020:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.ffffffffffff8p+1020:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.ffffffffffff8p+1020:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20Lg:-0x0p+0:0:7: + %20Lg:-0x0p0:1:6:-0x0: + %*20Lg:-0x0p0:0:6: +-%20Lg:-nan(09A_Zaz):1:13:-nan: +-%*20Lg:-nan(09A_Zaz):0:13: +-%20Lg:-nan():1:6:-nan: +-%*20Lg:-nan():0:6: +-%20Lg:nan():1:5:nan: +-%*20Lg:nan():0:5: +-%20Lg:nan(09A_Zaz):1:12:nan: +-%*20Lg:nan(09A_Zaz):0:12: ++# BZ30647 %20Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %20Lg:-nan():1:6:-nan: ++# BZ30647 %*20Lg:-nan():0:6: ++# BZ30647 %20Lg:nan():1:5:nan: ++# BZ30647 %*20Lg:nan():0:5: ++# BZ30647 %20Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20Lg:nan(09A_Zaz):0:12: + %20Lg:0x0p0:1:5:0x0: + %*20Lg:0x0p0:0:5: + %20Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20Lg:0xf.ffffffffffff8p+1020:0:20: + %20Lg:infinity:1:8:inf: + %*20Lg:infinity:0:8: +-%20Lg:+nan():1:6:nan: +-%*20Lg:+nan():0:6: +-%20Lg:+nan(09A_Zaz):1:13:nan: +-%*20Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %20Lg:+nan():1:6:nan: ++# BZ30647 %*20Lg:+nan():0:6: ++# BZ30647 %20Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20Lg:+nan(09A_Zaz):0:13: + %20Lg:+0x0p0:1:6:0x0: + %*20Lg:+0x0p0:0:6: + %20Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32Lg:-0x0p+0:0:7: + %32Lg:-0x0p0:1:6:-0x0: + %*32Lg:-0x0p0:0:6: +-%32Lg:-nan(09A_Zaz):1:13:-nan: +-%*32Lg:-nan(09A_Zaz):0:13: +-%32Lg:-nan():1:6:-nan: +-%*32Lg:-nan():0:6: +-%32Lg:nan():1:5:nan: +-%*32Lg:nan():0:5: +-%32Lg:nan(09A_Zaz):1:12:nan: +-%*32Lg:nan(09A_Zaz):0:12: ++# BZ30647 %32Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %32Lg:-nan():1:6:-nan: ++# BZ30647 %*32Lg:-nan():0:6: ++# BZ30647 %32Lg:nan():1:5:nan: ++# BZ30647 %*32Lg:nan():0:5: ++# BZ30647 %32Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32Lg:nan(09A_Zaz):0:12: + %32Lg:0x0p0:1:5:0x0: + %*32Lg:0x0p0:0:5: + %32Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32Lg:0xf.ffffffffffff8p+1020:0:23: + %32Lg:infinity:1:8:inf: + %*32Lg:infinity:0:8: +-%32Lg:+nan():1:6:nan: +-%*32Lg:+nan():0:6: +-%32Lg:+nan(09A_Zaz):1:13:nan: +-%*32Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %32Lg:+nan():1:6:nan: ++# BZ30647 %*32Lg:+nan():0:6: ++# BZ30647 %32Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32Lg:+nan(09A_Zaz):0:13: + %32Lg:+0x0p0:1:6:0x0: + %*32Lg:+0x0p0:0:6: + %32Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.ffffffffffff8p+1020:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32Lg: -0x0p+0:0:8: + %32Lg: -0x0p0:1:7:-0x0: + %*32Lg: -0x0p0:0:7: +-%32Lg: -nan(09A_Zaz):1:14:-nan: +-%*32Lg: -nan(09A_Zaz):0:14: +-%32Lg: -nan():1:7:-nan: +-%*32Lg: -nan():0:7: +-%32Lg: nan():1:6:nan: +-%*32Lg: nan():0:6: +-%32Lg: nan(09A_Zaz):1:13:nan: +-%*32Lg: nan(09A_Zaz):0:13: ++# BZ30647 %32Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %32Lg: -nan():1:7:-nan: ++# BZ30647 %*32Lg: -nan():0:7: ++# BZ30647 %32Lg: nan():1:6:nan: ++# BZ30647 %*32Lg: nan():0:6: ++# BZ30647 %32Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32Lg: nan(09A_Zaz):0:13: + %32Lg: 0x0p0:1:6:0x0: + %*32Lg: 0x0p0:0:6: + %32Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32Lg: 0xf.ffffffffffff8p+1020:0:24: + %32Lg: infinity:1:9:inf: + %*32Lg: infinity:0:9: +-%32Lg: +nan():1:7:nan: +-%*32Lg: +nan():0:7: +-%32Lg: +nan(09A_Zaz):1:14:nan: +-%*32Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %32Lg: +nan():1:7:nan: ++# BZ30647 %*32Lg: +nan():0:7: ++# BZ30647 %32Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32Lg: +nan(09A_Zaz):0:14: + %32Lg: +0x0p0:1:7:0x0: + %*32Lg: +0x0p0:0:7: + %32Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +index 08684574e561f1c1..764a8e5643d6b47b 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20LG:-0X0P+0:0:7: + %20LG:-0X0P0:1:6:-0x0: + %*20LG:-0X0P0:0:6: +-%20LG:-NAN(09A_Zaz):1:13:-nan: +-%*20LG:-NAN(09A_Zaz):0:13: +-%20LG:-NAN():1:6:-nan: +-%*20LG:-NAN():0:6: +-%20LG:NAN():1:5:nan: +-%*20LG:NAN():0:5: +-%20LG:NAN(09A_Zaz):1:12:nan: +-%*20LG:NAN(09A_Zaz):0:12: ++# BZ30647 %20LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %20LG:-NAN():1:6:-nan: ++# BZ30647 %*20LG:-NAN():0:6: ++# BZ30647 %20LG:NAN():1:5:nan: ++# BZ30647 %*20LG:NAN():0:5: ++# BZ30647 %20LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20LG:NAN(09A_Zaz):0:12: + %20LG:0X0P0:1:5:0x0: + %*20LG:0X0P0:0:5: + %20LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20LG:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20LG:INFINITY:1:8:inf: + %*20LG:INFINITY:0:8: +-%20LG:+NAN():1:6:nan: +-%*20LG:+NAN():0:6: +-%20LG:+NAN(09A_Zaz):1:13:nan: +-%*20LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %20LG:+NAN():1:6:nan: ++# BZ30647 %*20LG:+NAN():0:6: ++# BZ30647 %20LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20LG:+NAN(09A_Zaz):0:13: + %20LG:+0X0P0:1:6:0x0: + %*20LG:+0X0P0:0:6: + %20LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32LG:-0X0P+0:0:7: + %32LG:-0X0P0:1:6:-0x0: + %*32LG:-0X0P0:0:6: +-%32LG:-NAN(09A_Zaz):1:13:-nan: +-%*32LG:-NAN(09A_Zaz):0:13: +-%32LG:-NAN():1:6:-nan: +-%*32LG:-NAN():0:6: +-%32LG:NAN():1:5:nan: +-%*32LG:NAN():0:5: +-%32LG:NAN(09A_Zaz):1:12:nan: +-%*32LG:NAN(09A_Zaz):0:12: ++# BZ30647 %32LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %32LG:-NAN():1:6:-nan: ++# BZ30647 %*32LG:-NAN():0:6: ++# BZ30647 %32LG:NAN():1:5:nan: ++# BZ30647 %*32LG:NAN():0:5: ++# BZ30647 %32LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32LG:NAN(09A_Zaz):0:12: + %32LG:0X0P0:1:5:0x0: + %*32LG:0X0P0:0:5: + %32LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32LG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32LG:INFINITY:1:8:inf: + %*32LG:INFINITY:0:8: +-%32LG:+NAN():1:6:nan: +-%*32LG:+NAN():0:6: +-%32LG:+NAN(09A_Zaz):1:13:nan: +-%*32LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %32LG:+NAN():1:6:nan: ++# BZ30647 %*32LG:+NAN():0:6: ++# BZ30647 %32LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LG:+NAN(09A_Zaz):0:13: + %32LG:+0X0P0:1:6:0x0: + %*32LG:+0X0P0:0:6: + %32LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32LG: -0X0P+0:0:8: + %32LG: -0X0P0:1:7:-0x0: + %*32LG: -0X0P0:0:7: +-%32LG: -NAN(09A_Zaz):1:14:-nan: +-%*32LG: -NAN(09A_Zaz):0:14: +-%32LG: -NAN():1:7:-nan: +-%*32LG: -NAN():0:7: +-%32LG: NAN():1:6:nan: +-%*32LG: NAN():0:6: +-%32LG: NAN(09A_Zaz):1:13:nan: +-%*32LG: NAN(09A_Zaz):0:13: ++# BZ30647 %32LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %32LG: -NAN():1:7:-nan: ++# BZ30647 %*32LG: -NAN():0:7: ++# BZ30647 %32LG: NAN():1:6:nan: ++# BZ30647 %*32LG: NAN():0:6: ++# BZ30647 %32LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LG: NAN(09A_Zaz):0:13: + %32LG: 0X0P0:1:6:0x0: + %*32LG: 0X0P0:0:6: + %32LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32LG: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32LG: INFINITY:1:9:inf: + %*32LG: INFINITY:0:9: +-%32LG: +NAN():1:7:nan: +-%*32LG: +NAN():0:7: +-%32LG: +NAN(09A_Zaz):1:14:nan: +-%*32LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %32LG: +NAN():1:7:nan: ++# BZ30647 %*32LG: +NAN():0:7: ++# BZ30647 %32LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32LG: +NAN(09A_Zaz):0:14: + %32LG: +0X0P0:1:7:0x0: + %*32LG: +0X0P0:0:7: + %32LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-i.input b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +index 212295beedba6bd7..f103439424353cb5 100644 +--- a/sysdeps/wordsize-32/tst-scanf-format-int-i.input ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +@@ -8,10 +8,6 @@ + %*i:-0x800004D2:0:11: + %i:-020000002322:1:13:-2147483648: + %*i:-020000002322:0:13: +-%i:-0B10000000000000000000010011010010:1:35:-2147483648: +-%*i:-0B10000000000000000000010011010010:0:35: +-%i:-0b10000000000000000000010011010010:1:35:-2147483648: +-%*i:-0b10000000000000000000010011010010:0:35: + %i:-2147483649:1:11:-2147483648: + %*i:-2147483649:0:11: + %i:-0X80000001:1:11:-2147483648: +@@ -20,10 +16,6 @@ + %*i:-0x80000001:0:11: + %i:-020000000001:1:13:-2147483648: + %*i:-020000000001:0:13: +-%i:-0B10000000000000000000000000000001:1:35:-2147483648: +-%*i:-0B10000000000000000000000000000001:0:35: +-%i:-0b10000000000000000000000000000001:1:35:-2147483648: +-%*i:-0b10000000000000000000000000000001:0:35: + %i:-2147483648:1:11:-2147483648: + %*i:-2147483648:0:11: + %i:-0X80000000:1:11:-2147483648: +@@ -32,10 +24,6 @@ + %*i:-0x80000000:0:11: + %i:-020000000000:1:13:-2147483648: + %*i:-020000000000:0:13: +-%i:-0B10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0B10000000000000000000000000000000:0:35: +-%i:-0b10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0b10000000000000000000000000000000:0:35: + %i:-123:1:4:-123: + %*i:-123:0:4: + %i:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*i:-0x7B:0:5: + %i:-0173:1:5:-123: + %*i:-0173:0:5: +-%i:-0B1111011:1:10:-123: +-%*i:-0B1111011:0:10: +-%i:-0b1111011:1:10:-123: +-%*i:-0b1111011:0:10: + %i:-1:1:2:-1: + %*i:-1:0:2: + %i:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*i:-0x1:0:4: + %i:-01:1:3:-1: + %*i:-01:0:3: +-%i:-0B1:1:4:-1: +-%*i:-0B1:0:4: +-%i:-0b1:1:4:-1: +-%*i:-0b1:0:4: + %i:-0:1:2:0: + %*i:-0:0:2: + %i:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*i:-0x0:0:4: + %i:-00:1:3:0: + %*i:-00:0:3: +-%i:-0B0:1:4:0: +-%*i:-0B0:0:4: +-%i:-0b0:1:4:0: +-%*i:-0b0:0:4: + %i:0:1:1:0: + %*i:0:0:1: + %i:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*i:0x0:0:3: + %i:00:1:2:0: + %*i:00:0:2: +-%i:0B0:1:3:0: +-%*i:0B0:0:3: +-%i:0b0:1:3:0: +-%*i:0b0:0:3: + %i:1:1:1:1: + %*i:1:0:1: + %i:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*i:0x1:0:3: + %i:01:1:2:1: + %*i:01:0:2: +-%i:0B1:1:3:1: +-%*i:0B1:0:3: +-%i:0b1:1:3:1: +-%*i:0b1:0:3: + %i:42:1:2:42: + %*i:42:0:2: + %i:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*i:0x2A:0:4: + %i:052:1:3:42: + %*i:052:0:3: +-%i:0B101010:1:8:42: +-%*i:0B101010:0:8: +-%i:0b101010:1:8:42: +-%*i:0b101010:0:8: + %i:2147483647:1:10:2147483647: + %*i:2147483647:0:10: + %i:0X7fffffff:1:10:2147483647: +@@ -116,10 +80,6 @@ + %*i:0x7FFFFFFF:0:10: + %i:017777777777:1:12:2147483647: + %*i:017777777777:0:12: +-%i:0B1111111111111111111111111111111:1:33:2147483647: +-%*i:0B1111111111111111111111111111111:0:33: +-%i:0b1111111111111111111111111111111:1:33:2147483647: +-%*i:0b1111111111111111111111111111111:0:33: + %i:2147483648:1:10:2147483647: + %*i:2147483648:0:10: + %i:0X80000000:1:10:2147483647: +@@ -128,10 +88,6 @@ + %*i:0x80000000:0:10: + %i:020000000000:1:12:2147483647: + %*i:020000000000:0:12: +-%i:0B10000000000000000000000000000000:1:34:2147483647: +-%*i:0B10000000000000000000000000000000:0:34: +-%i:0b10000000000000000000000000000000:1:34:2147483647: +-%*i:0b10000000000000000000000000000000:0:34: + %i:2147487889:1:10:2147483647: + %*i:2147487889:0:10: + %i:0X80001091:1:10:2147483647: +@@ -140,10 +96,6 @@ + %*i:0x80001091:0:10: + %i:020000010221:1:12:2147483647: + %*i:020000010221:0:12: +-%i:0B10000000000000000001000010010001:1:34:2147483647: +-%*i:0B10000000000000000001000010010001:0:34: +-%i:0b10000000000000000001000010010001:1:34:2147483647: +-%*i:0b10000000000000000001000010010001:0:34: + %i:+0:1:2:0: + %*i:+0:0:2: + %i:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*i:+0x0:0:4: + %i:+00:1:3:0: + %*i:+00:0:3: +-%i:+0B0:1:4:0: +-%*i:+0B0:0:4: +-%i:+0b0:1:4:0: +-%*i:+0b0:0:4: + %i:+1:1:2:1: + %*i:+1:0:2: + %i:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*i:+0x1:0:4: + %i:+01:1:3:1: + %*i:+01:0:3: +-%i:+0B1:1:4:1: +-%*i:+0B1:0:4: +-%i:+0b1:1:4:1: +-%*i:+0b1:0:4: + %i:+42:1:3:42: + %*i:+42:0:3: + %i:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*i:+0x2A:0:5: + %i:+052:1:4:42: + %*i:+052:0:4: +-%i:+0B101010:1:9:42: +-%*i:+0B101010:0:9: +-%i:+0b101010:1:9:42: +-%*i:+0b101010:0:9: + %i:+2147483647:1:11:2147483647: + %*i:+2147483647:0:11: + %i:+0X7fffffff:1:11:2147483647: +@@ -188,10 +128,6 @@ + %*i:+0x7FFFFFFF:0:11: + %i:+017777777777:1:13:2147483647: + %*i:+017777777777:0:13: +-%i:+0B1111111111111111111111111111111:1:34:2147483647: +-%*i:+0B1111111111111111111111111111111:0:34: +-%i:+0b1111111111111111111111111111111:1:34:2147483647: +-%*i:+0b1111111111111111111111111111111:0:34: + %i:+2147483648:1:11:2147483647: + %*i:+2147483648:0:11: + %i:+0X80000000:1:11:2147483647: +@@ -200,10 +136,6 @@ + %*i:+0x80000000:0:11: + %i:+020000000000:1:13:2147483647: + %*i:+020000000000:0:13: +-%i:+0B10000000000000000000000000000000:1:35:2147483647: +-%*i:+0B10000000000000000000000000000000:0:35: +-%i:+0b10000000000000000000000000000000:1:35:2147483647: +-%*i:+0b10000000000000000000000000000000:0:35: + %i:+2147487889:1:11:2147483647: + %*i:+2147487889:0:11: + %i:+0X80001091:1:11:2147483647: +@@ -212,10 +144,6 @@ + %*i:+0x80001091:0:11: + %i:+020000010221:1:13:2147483647: + %*i:+020000010221:0:13: +-%i:+0B10000000000000000001000010010001:1:35:2147483647: +-%*i:+0B10000000000000000001000010010001:0:35: +-%i:+0b10000000000000000001000010010001:1:35:2147483647: +-%*i:+0b10000000000000000001000010010001:0:35: + %1i::0:-1: + %*1i::0:-1: + %1i:-2147484882:0:-1: +@@ -226,10 +154,6 @@ + %*1i:-0x800004D2:0:-1: + %1i:-020000002322:0:-1: + %*1i:-020000002322:0:-1: +-%1i:-0B10000000000000000000010011010010:0:-1: +-%*1i:-0B10000000000000000000010011010010:0:-1: +-%1i:-0b10000000000000000000010011010010:0:-1: +-%*1i:-0b10000000000000000000010011010010:0:-1: + %1i:-2147483649:0:-1: + %*1i:-2147483649:0:-1: + %1i:-0X80000001:0:-1: +@@ -238,10 +162,6 @@ + %*1i:-0x80000001:0:-1: + %1i:-020000000001:0:-1: + %*1i:-020000000001:0:-1: +-%1i:-0B10000000000000000000000000000001:0:-1: +-%*1i:-0B10000000000000000000000000000001:0:-1: +-%1i:-0b10000000000000000000000000000001:0:-1: +-%*1i:-0b10000000000000000000000000000001:0:-1: + %1i:-2147483648:0:-1: + %*1i:-2147483648:0:-1: + %1i:-0X80000000:0:-1: +@@ -250,10 +170,6 @@ + %*1i:-0x80000000:0:-1: + %1i:-020000000000:0:-1: + %*1i:-020000000000:0:-1: +-%1i:-0B10000000000000000000000000000000:0:-1: +-%*1i:-0B10000000000000000000000000000000:0:-1: +-%1i:-0b10000000000000000000000000000000:0:-1: +-%*1i:-0b10000000000000000000000000000000:0:-1: + %1i:-123:0:-1: + %*1i:-123:0:-1: + %1i:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1i:-0x7B:0:-1: + %1i:-0173:0:-1: + %*1i:-0173:0:-1: +-%1i:-0B1111011:0:-1: +-%*1i:-0B1111011:0:-1: +-%1i:-0b1111011:0:-1: +-%*1i:-0b1111011:0:-1: + %1i:-1:0:-1: + %*1i:-1:0:-1: + %1i:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1i:-0x1:0:-1: + %1i:-01:0:-1: + %*1i:-01:0:-1: +-%1i:-0B1:0:-1: +-%*1i:-0B1:0:-1: +-%1i:-0b1:0:-1: +-%*1i:-0b1:0:-1: + %1i:-0:0:-1: + %*1i:-0:0:-1: + %1i:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1i:-0x0:0:-1: + %1i:-00:0:-1: + %*1i:-00:0:-1: +-%1i:-0B0:0:-1: +-%*1i:-0B0:0:-1: +-%1i:-0b0:0:-1: +-%*1i:-0b0:0:-1: + %1i:0:1:1:0: + %*1i:0:0:1: + %1i:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1i:0x0:0:1: + %1i:00:1:1:0: + %*1i:00:0:1: +-%1i:0B0:1:1:0: +-%*1i:0B0:0:1: +-%1i:0b0:1:1:0: +-%*1i:0b0:0:1: + %1i:1:1:1:1: + %*1i:1:0:1: + %1i:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1i:0x1:0:1: + %1i:01:1:1:0: + %*1i:01:0:1: +-%1i:0B1:1:1:0: +-%*1i:0B1:0:1: +-%1i:0b1:1:1:0: +-%*1i:0b1:0:1: + %1i:42:1:1:4: + %*1i:42:0:1: + %1i:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1i:0x2A:0:1: + %1i:052:1:1:0: + %*1i:052:0:1: +-%1i:0B101010:1:1:0: +-%*1i:0B101010:0:1: +-%1i:0b101010:1:1:0: +-%*1i:0b101010:0:1: + %1i:2147483647:1:1:2: + %*1i:2147483647:0:1: + %1i:0X7fffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1i:0x7FFFFFFF:0:1: + %1i:017777777777:1:1:0: + %*1i:017777777777:0:1: +-%1i:0B1111111111111111111111111111111:1:1:0: +-%*1i:0B1111111111111111111111111111111:0:1: +-%1i:0b1111111111111111111111111111111:1:1:0: +-%*1i:0b1111111111111111111111111111111:0:1: + %1i:2147483648:1:1:2: + %*1i:2147483648:0:1: + %1i:0X80000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1i:0x80000000:0:1: + %1i:020000000000:1:1:0: + %*1i:020000000000:0:1: +-%1i:0B10000000000000000000000000000000:1:1:0: +-%*1i:0B10000000000000000000000000000000:0:1: +-%1i:0b10000000000000000000000000000000:1:1:0: +-%*1i:0b10000000000000000000000000000000:0:1: + %1i:2147487889:1:1:2: + %*1i:2147487889:0:1: + %1i:0X80001091:1:1:0: +@@ -358,10 +242,6 @@ + %*1i:0x80001091:0:1: + %1i:020000010221:1:1:0: + %*1i:020000010221:0:1: +-%1i:0B10000000000000000001000010010001:1:1:0: +-%*1i:0B10000000000000000001000010010001:0:1: +-%1i:0b10000000000000000001000010010001:1:1:0: +-%*1i:0b10000000000000000001000010010001:0:1: + %1i:+0:0:-1: + %*1i:+0:0:-1: + %1i:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1i:+0x0:0:-1: + %1i:+00:0:-1: + %*1i:+00:0:-1: +-%1i:+0B0:0:-1: +-%*1i:+0B0:0:-1: +-%1i:+0b0:0:-1: +-%*1i:+0b0:0:-1: + %1i:+1:0:-1: + %*1i:+1:0:-1: + %1i:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1i:+0x1:0:-1: + %1i:+01:0:-1: + %*1i:+01:0:-1: +-%1i:+0B1:0:-1: +-%*1i:+0B1:0:-1: +-%1i:+0b1:0:-1: +-%*1i:+0b1:0:-1: + %1i:+42:0:-1: + %*1i:+42:0:-1: + %1i:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1i:+0x2A:0:-1: + %1i:+052:0:-1: + %*1i:+052:0:-1: +-%1i:+0B101010:0:-1: +-%*1i:+0B101010:0:-1: +-%1i:+0b101010:0:-1: +-%*1i:+0b101010:0:-1: + %1i:+2147483647:0:-1: + %*1i:+2147483647:0:-1: + %1i:+0X7fffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1i:+0x7FFFFFFF:0:-1: + %1i:+017777777777:0:-1: + %*1i:+017777777777:0:-1: +-%1i:+0B1111111111111111111111111111111:0:-1: +-%*1i:+0B1111111111111111111111111111111:0:-1: +-%1i:+0b1111111111111111111111111111111:0:-1: +-%*1i:+0b1111111111111111111111111111111:0:-1: + %1i:+2147483648:0:-1: + %*1i:+2147483648:0:-1: + %1i:+0X80000000:0:-1: +@@ -418,10 +282,6 @@ + %*1i:+0x80000000:0:-1: + %1i:+020000000000:0:-1: + %*1i:+020000000000:0:-1: +-%1i:+0B10000000000000000000000000000000:0:-1: +-%*1i:+0B10000000000000000000000000000000:0:-1: +-%1i:+0b10000000000000000000000000000000:0:-1: +-%*1i:+0b10000000000000000000000000000000:0:-1: + %1i:+2147487889:0:-1: + %*1i:+2147487889:0:-1: + %1i:+0X80001091:0:-1: +@@ -430,10 +290,6 @@ + %*1i:+0x80001091:0:-1: + %1i:+020000010221:0:-1: + %*1i:+020000010221:0:-1: +-%1i:+0B10000000000000000001000010010001:0:-1: +-%*1i:+0B10000000000000000001000010010001:0:-1: +-%1i:+0b10000000000000000001000010010001:0:-1: +-%*1i:+0b10000000000000000001000010010001:0:-1: + %2i::0:-1: + %*2i::0:-1: + %2i:-2147484882:1:2:-2: +@@ -444,10 +300,6 @@ + %*2i:-0x800004D2:0:2: + %2i:-020000002322:1:2:0: + %*2i:-020000002322:0:2: +-%2i:-0B10000000000000000000010011010010:1:2:0: +-%*2i:-0B10000000000000000000010011010010:0:2: +-%2i:-0b10000000000000000000010011010010:1:2:0: +-%*2i:-0b10000000000000000000010011010010:0:2: + %2i:-2147483649:1:2:-2: + %*2i:-2147483649:0:2: + %2i:-0X80000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2i:-0x80000001:0:2: + %2i:-020000000001:1:2:0: + %*2i:-020000000001:0:2: +-%2i:-0B10000000000000000000000000000001:1:2:0: +-%*2i:-0B10000000000000000000000000000001:0:2: +-%2i:-0b10000000000000000000000000000001:1:2:0: +-%*2i:-0b10000000000000000000000000000001:0:2: + %2i:-2147483648:1:2:-2: + %*2i:-2147483648:0:2: + %2i:-0X80000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2i:-0x80000000:0:2: + %2i:-020000000000:1:2:0: + %*2i:-020000000000:0:2: +-%2i:-0B10000000000000000000000000000000:1:2:0: +-%*2i:-0B10000000000000000000000000000000:0:2: +-%2i:-0b10000000000000000000000000000000:1:2:0: +-%*2i:-0b10000000000000000000000000000000:0:2: + %2i:-123:1:2:-1: + %*2i:-123:0:2: + %2i:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2i:-0x7B:0:2: + %2i:-0173:1:2:0: + %*2i:-0173:0:2: +-%2i:-0B1111011:1:2:0: +-%*2i:-0B1111011:0:2: +-%2i:-0b1111011:1:2:0: +-%*2i:-0b1111011:0:2: + %2i:-1:1:2:-1: + %*2i:-1:0:2: + %2i:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2i:-0x1:0:2: + %2i:-01:1:2:0: + %*2i:-01:0:2: +-%2i:-0B1:1:2:0: +-%*2i:-0B1:0:2: +-%2i:-0b1:1:2:0: +-%*2i:-0b1:0:2: + %2i:-0:1:2:0: + %*2i:-0:0:2: + %2i:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2i:-0x0:0:2: + %2i:-00:1:2:0: + %*2i:-00:0:2: +-%2i:-0B0:1:2:0: +-%*2i:-0B0:0:2: +-%2i:-0b0:1:2:0: +-%*2i:-0b0:0:2: + %2i:0:1:1:0: + %*2i:0:0:1: + # BZ12701 %2i:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2i:0x0:0:-1: + %2i:00:1:2:0: + %*2i:00:0:2: +-# BZ12701 %2i:0B0:0:-1: +-# BZ12701 %*2i:0B0:0:-1: +-# BZ12701 %2i:0b0:0:-1: +-# BZ12701 %*2i:0b0:0:-1: + %2i:1:1:1:1: + %*2i:1:0:1: + # BZ12701 %2i:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2i:0x1:0:-1: + %2i:01:1:2:1: + %*2i:01:0:2: +-# BZ12701 %2i:0B1:0:-1: +-# BZ12701 %*2i:0B1:0:-1: +-# BZ12701 %2i:0b1:0:-1: +-# BZ12701 %*2i:0b1:0:-1: + %2i:42:1:2:42: + %*2i:42:0:2: + # BZ12701 %2i:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2i:0x2A:0:-1: + %2i:052:1:2:5: + %*2i:052:0:2: +-# BZ12701 %2i:0B101010:0:-1: +-# BZ12701 %*2i:0B101010:0:-1: +-# BZ12701 %2i:0b101010:0:-1: +-# BZ12701 %*2i:0b101010:0:-1: + %2i:2147483647:1:2:21: + %*2i:2147483647:0:2: + # BZ12701 %2i:0X7fffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2i:0x7FFFFFFF:0:-1: + %2i:017777777777:1:2:1: + %*2i:017777777777:0:2: +-# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: + %2i:2147483648:1:2:21: + %*2i:2147483648:0:2: + # BZ12701 %2i:0X80000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2i:0x80000000:0:-1: + %2i:020000000000:1:2:2: + %*2i:020000000000:0:2: +-# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: + %2i:2147487889:1:2:21: + %*2i:2147487889:0:2: + # BZ12701 %2i:0X80001091:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2i:0x80001091:0:-1: + %2i:020000010221:1:2:2: + %*2i:020000010221:0:2: +-# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: + %2i:+0:1:2:0: + %*2i:+0:0:2: + %2i:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2i:+0x0:0:2: + %2i:+00:1:2:0: + %*2i:+00:0:2: +-%2i:+0B0:1:2:0: +-%*2i:+0B0:0:2: +-%2i:+0b0:1:2:0: +-%*2i:+0b0:0:2: + %2i:+1:1:2:1: + %*2i:+1:0:2: + %2i:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2i:+0x1:0:2: + %2i:+01:1:2:0: + %*2i:+01:0:2: +-%2i:+0B1:1:2:0: +-%*2i:+0B1:0:2: +-%2i:+0b1:1:2:0: +-%*2i:+0b1:0:2: + %2i:+42:1:2:4: + %*2i:+42:0:2: + %2i:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2i:+0x2A:0:2: + %2i:+052:1:2:0: + %*2i:+052:0:2: +-%2i:+0B101010:1:2:0: +-%*2i:+0B101010:0:2: +-%2i:+0b101010:1:2:0: +-%*2i:+0b101010:0:2: + %2i:+2147483647:1:2:2: + %*2i:+2147483647:0:2: + %2i:+0X7fffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2i:+0x7FFFFFFF:0:2: + %2i:+017777777777:1:2:0: + %*2i:+017777777777:0:2: +-%2i:+0B1111111111111111111111111111111:1:2:0: +-%*2i:+0B1111111111111111111111111111111:0:2: +-%2i:+0b1111111111111111111111111111111:1:2:0: +-%*2i:+0b1111111111111111111111111111111:0:2: + %2i:+2147483648:1:2:2: + %*2i:+2147483648:0:2: + %2i:+0X80000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2i:+0x80000000:0:2: + %2i:+020000000000:1:2:0: + %*2i:+020000000000:0:2: +-%2i:+0B10000000000000000000000000000000:1:2:0: +-%*2i:+0B10000000000000000000000000000000:0:2: +-%2i:+0b10000000000000000000000000000000:1:2:0: +-%*2i:+0b10000000000000000000000000000000:0:2: + %2i:+2147487889:1:2:2: + %*2i:+2147487889:0:2: + %2i:+0X80001091:1:2:0: +@@ -648,10 +436,6 @@ + %*2i:+0x80001091:0:2: + %2i:+020000010221:1:2:0: + %*2i:+020000010221:0:2: +-%2i:+0B10000000000000000001000010010001:1:2:0: +-%*2i:+0B10000000000000000001000010010001:0:2: +-%2i:+0b10000000000000000001000010010001:1:2:0: +-%*2i:+0b10000000000000000001000010010001:0:2: + %8i::0:-1: + %*8i::0:-1: + %8i:-2147484882:1:8:-2147484: +@@ -662,10 +446,6 @@ + %*8i:-0x800004D2:0:8: + %8i:-020000002322:1:8:-65536: + %*8i:-020000002322:0:8: +-%8i:-0B10000000000000000000010011010010:1:8:-16: +-%*8i:-0B10000000000000000000010011010010:0:8: +-%8i:-0b10000000000000000000010011010010:1:8:-16: +-%*8i:-0b10000000000000000000010011010010:0:8: + %8i:-2147483649:1:8:-2147483: + %*8i:-2147483649:0:8: + %8i:-0X80000001:1:8:-524288: +@@ -674,10 +454,6 @@ + %*8i:-0x80000001:0:8: + %8i:-020000000001:1:8:-65536: + %*8i:-020000000001:0:8: +-%8i:-0B10000000000000000000000000000001:1:8:-16: +-%*8i:-0B10000000000000000000000000000001:0:8: +-%8i:-0b10000000000000000000000000000001:1:8:-16: +-%*8i:-0b10000000000000000000000000000001:0:8: + %8i:-2147483648:1:8:-2147483: + %*8i:-2147483648:0:8: + %8i:-0X80000000:1:8:-524288: +@@ -686,10 +462,6 @@ + %*8i:-0x80000000:0:8: + %8i:-020000000000:1:8:-65536: + %*8i:-020000000000:0:8: +-%8i:-0B10000000000000000000000000000000:1:8:-16: +-%*8i:-0B10000000000000000000000000000000:0:8: +-%8i:-0b10000000000000000000000000000000:1:8:-16: +-%*8i:-0b10000000000000000000000000000000:0:8: + %8i:-123:1:4:-123: + %*8i:-123:0:4: + %8i:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*8i:-0x7B:0:5: + %8i:-0173:1:5:-123: + %*8i:-0173:0:5: +-%8i:-0B1111011:1:8:-30: +-%*8i:-0B1111011:0:8: +-%8i:-0b1111011:1:8:-30: +-%*8i:-0b1111011:0:8: + %8i:-1:1:2:-1: + %*8i:-1:0:2: + %8i:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*8i:-0x1:0:4: + %8i:-01:1:3:-1: + %*8i:-01:0:3: +-%8i:-0B1:1:4:-1: +-%*8i:-0B1:0:4: +-%8i:-0b1:1:4:-1: +-%*8i:-0b1:0:4: + %8i:-0:1:2:0: + %*8i:-0:0:2: + %8i:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*8i:-0x0:0:4: + %8i:-00:1:3:0: + %*8i:-00:0:3: +-%8i:-0B0:1:4:0: +-%*8i:-0B0:0:4: +-%8i:-0b0:1:4:0: +-%*8i:-0b0:0:4: + %8i:0:1:1:0: + %*8i:0:0:1: + %8i:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*8i:0x0:0:3: + %8i:00:1:2:0: + %*8i:00:0:2: +-%8i:0B0:1:3:0: +-%*8i:0B0:0:3: +-%8i:0b0:1:3:0: +-%*8i:0b0:0:3: + %8i:1:1:1:1: + %*8i:1:0:1: + %8i:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*8i:0x1:0:3: + %8i:01:1:2:1: + %*8i:01:0:2: +-%8i:0B1:1:3:1: +-%*8i:0B1:0:3: +-%8i:0b1:1:3:1: +-%*8i:0b1:0:3: + %8i:42:1:2:42: + %*8i:42:0:2: + %8i:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*8i:0x2A:0:4: + %8i:052:1:3:42: + %*8i:052:0:3: +-%8i:0B101010:1:8:42: +-%*8i:0B101010:0:8: +-%8i:0b101010:1:8:42: +-%*8i:0b101010:0:8: + %8i:2147483647:1:8:21474836: + %*8i:2147483647:0:8: + %8i:0X7fffffff:1:8:8388607: +@@ -770,10 +518,6 @@ + %*8i:0x7FFFFFFF:0:8: + %8i:017777777777:1:8:524287: + %*8i:017777777777:0:8: +-%8i:0B1111111111111111111111111111111:1:8:63: +-%*8i:0B1111111111111111111111111111111:0:8: +-%8i:0b1111111111111111111111111111111:1:8:63: +-%*8i:0b1111111111111111111111111111111:0:8: + %8i:2147483648:1:8:21474836: + %*8i:2147483648:0:8: + %8i:0X80000000:1:8:8388608: +@@ -782,10 +526,6 @@ + %*8i:0x80000000:0:8: + %8i:020000000000:1:8:524288: + %*8i:020000000000:0:8: +-%8i:0B10000000000000000000000000000000:1:8:32: +-%*8i:0B10000000000000000000000000000000:0:8: +-%8i:0b10000000000000000000000000000000:1:8:32: +-%*8i:0b10000000000000000000000000000000:0:8: + %8i:2147487889:1:8:21474878: + %*8i:2147487889:0:8: + %8i:0X80001091:1:8:8388624: +@@ -794,10 +534,6 @@ + %*8i:0x80001091:0:8: + %8i:020000010221:1:8:524289: + %*8i:020000010221:0:8: +-%8i:0B10000000000000000001000010010001:1:8:32: +-%*8i:0B10000000000000000001000010010001:0:8: +-%8i:0b10000000000000000001000010010001:1:8:32: +-%*8i:0b10000000000000000001000010010001:0:8: + %8i:+0:1:2:0: + %*8i:+0:0:2: + %8i:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*8i:+0x0:0:4: + %8i:+00:1:3:0: + %*8i:+00:0:3: +-%8i:+0B0:1:4:0: +-%*8i:+0B0:0:4: +-%8i:+0b0:1:4:0: +-%*8i:+0b0:0:4: + %8i:+1:1:2:1: + %*8i:+1:0:2: + %8i:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*8i:+0x1:0:4: + %8i:+01:1:3:1: + %*8i:+01:0:3: +-%8i:+0B1:1:4:1: +-%*8i:+0B1:0:4: +-%8i:+0b1:1:4:1: +-%*8i:+0b1:0:4: + %8i:+42:1:3:42: + %*8i:+42:0:3: + %8i:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*8i:+0x2A:0:5: + %8i:+052:1:4:42: + %*8i:+052:0:4: +-%8i:+0B101010:1:8:21: +-%*8i:+0B101010:0:8: +-%8i:+0b101010:1:8:21: +-%*8i:+0b101010:0:8: + %8i:+2147483647:1:8:2147483: + %*8i:+2147483647:0:8: + %8i:+0X7fffffff:1:8:524287: +@@ -842,10 +566,6 @@ + %*8i:+0x7FFFFFFF:0:8: + %8i:+017777777777:1:8:65535: + %*8i:+017777777777:0:8: +-%8i:+0B1111111111111111111111111111111:1:8:31: +-%*8i:+0B1111111111111111111111111111111:0:8: +-%8i:+0b1111111111111111111111111111111:1:8:31: +-%*8i:+0b1111111111111111111111111111111:0:8: + %8i:+2147483648:1:8:2147483: + %*8i:+2147483648:0:8: + %8i:+0X80000000:1:8:524288: +@@ -854,10 +574,6 @@ + %*8i:+0x80000000:0:8: + %8i:+020000000000:1:8:65536: + %*8i:+020000000000:0:8: +-%8i:+0B10000000000000000000000000000000:1:8:16: +-%*8i:+0B10000000000000000000000000000000:0:8: +-%8i:+0b10000000000000000000000000000000:1:8:16: +-%*8i:+0b10000000000000000000000000000000:0:8: + %8i:+2147487889:1:8:2147487: + %*8i:+2147487889:0:8: + %8i:+0X80001091:1:8:524289: +@@ -866,10 +582,6 @@ + %*8i:+0x80001091:0:8: + %8i:+020000010221:1:8:65536: + %*8i:+020000010221:0:8: +-%8i:+0B10000000000000000001000010010001:1:8:16: +-%*8i:+0B10000000000000000001000010010001:0:8: +-%8i:+0b10000000000000000001000010010001:1:8:16: +-%*8i:+0b10000000000000000001000010010001:0:8: + %15i::0:-1: + %*15i::0:-1: + %15i:-2147484882:1:11:-2147483648: +@@ -880,10 +592,6 @@ + %*15i:-0x800004D2:0:11: + %15i:-020000002322:1:13:-2147483648: + %*15i:-020000002322:0:13: +-%15i:-0B10000000000000000000010011010010:1:15:-2048: +-%*15i:-0B10000000000000000000010011010010:0:15: +-%15i:-0b10000000000000000000010011010010:1:15:-2048: +-%*15i:-0b10000000000000000000010011010010:0:15: + %15i:-2147483649:1:11:-2147483648: + %*15i:-2147483649:0:11: + %15i:-0X80000001:1:11:-2147483648: +@@ -892,10 +600,6 @@ + %*15i:-0x80000001:0:11: + %15i:-020000000001:1:13:-2147483648: + %*15i:-020000000001:0:13: +-%15i:-0B10000000000000000000000000000001:1:15:-2048: +-%*15i:-0B10000000000000000000000000000001:0:15: +-%15i:-0b10000000000000000000000000000001:1:15:-2048: +-%*15i:-0b10000000000000000000000000000001:0:15: + %15i:-2147483648:1:11:-2147483648: + %*15i:-2147483648:0:11: + %15i:-0X80000000:1:11:-2147483648: +@@ -904,10 +608,6 @@ + %*15i:-0x80000000:0:11: + %15i:-020000000000:1:13:-2147483648: + %*15i:-020000000000:0:13: +-%15i:-0B10000000000000000000000000000000:1:15:-2048: +-%*15i:-0B10000000000000000000000000000000:0:15: +-%15i:-0b10000000000000000000000000000000:1:15:-2048: +-%*15i:-0b10000000000000000000000000000000:0:15: + %15i:-123:1:4:-123: + %*15i:-123:0:4: + %15i:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*15i:-0x7B:0:5: + %15i:-0173:1:5:-123: + %*15i:-0173:0:5: +-%15i:-0B1111011:1:10:-123: +-%*15i:-0B1111011:0:10: +-%15i:-0b1111011:1:10:-123: +-%*15i:-0b1111011:0:10: + %15i:-1:1:2:-1: + %*15i:-1:0:2: + %15i:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*15i:-0x1:0:4: + %15i:-01:1:3:-1: + %*15i:-01:0:3: +-%15i:-0B1:1:4:-1: +-%*15i:-0B1:0:4: +-%15i:-0b1:1:4:-1: +-%*15i:-0b1:0:4: + %15i:-0:1:2:0: + %*15i:-0:0:2: + %15i:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*15i:-0x0:0:4: + %15i:-00:1:3:0: + %*15i:-00:0:3: +-%15i:-0B0:1:4:0: +-%*15i:-0B0:0:4: +-%15i:-0b0:1:4:0: +-%*15i:-0b0:0:4: + %15i:0:1:1:0: + %*15i:0:0:1: + %15i:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*15i:0x0:0:3: + %15i:00:1:2:0: + %*15i:00:0:2: +-%15i:0B0:1:3:0: +-%*15i:0B0:0:3: +-%15i:0b0:1:3:0: +-%*15i:0b0:0:3: + %15i:1:1:1:1: + %*15i:1:0:1: + %15i:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*15i:0x1:0:3: + %15i:01:1:2:1: + %*15i:01:0:2: +-%15i:0B1:1:3:1: +-%*15i:0B1:0:3: +-%15i:0b1:1:3:1: +-%*15i:0b1:0:3: + %15i:42:1:2:42: + %*15i:42:0:2: + %15i:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*15i:0x2A:0:4: + %15i:052:1:3:42: + %*15i:052:0:3: +-%15i:0B101010:1:8:42: +-%*15i:0B101010:0:8: +-%15i:0b101010:1:8:42: +-%*15i:0b101010:0:8: + %15i:2147483647:1:10:2147483647: + %*15i:2147483647:0:10: + %15i:0X7fffffff:1:10:2147483647: +@@ -988,10 +664,6 @@ + %*15i:0x7FFFFFFF:0:10: + %15i:017777777777:1:12:2147483647: + %*15i:017777777777:0:12: +-%15i:0B1111111111111111111111111111111:1:15:8191: +-%*15i:0B1111111111111111111111111111111:0:15: +-%15i:0b1111111111111111111111111111111:1:15:8191: +-%*15i:0b1111111111111111111111111111111:0:15: + %15i:2147483648:1:10:2147483647: + %*15i:2147483648:0:10: + %15i:0X80000000:1:10:2147483647: +@@ -1000,10 +672,6 @@ + %*15i:0x80000000:0:10: + %15i:020000000000:1:12:2147483647: + %*15i:020000000000:0:12: +-%15i:0B10000000000000000000000000000000:1:15:4096: +-%*15i:0B10000000000000000000000000000000:0:15: +-%15i:0b10000000000000000000000000000000:1:15:4096: +-%*15i:0b10000000000000000000000000000000:0:15: + %15i:2147487889:1:10:2147483647: + %*15i:2147487889:0:10: + %15i:0X80001091:1:10:2147483647: +@@ -1012,10 +680,6 @@ + %*15i:0x80001091:0:10: + %15i:020000010221:1:12:2147483647: + %*15i:020000010221:0:12: +-%15i:0B10000000000000000001000010010001:1:15:4096: +-%*15i:0B10000000000000000001000010010001:0:15: +-%15i:0b10000000000000000001000010010001:1:15:4096: +-%*15i:0b10000000000000000001000010010001:0:15: + %15i:+0:1:2:0: + %*15i:+0:0:2: + %15i:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*15i:+0x0:0:4: + %15i:+00:1:3:0: + %*15i:+00:0:3: +-%15i:+0B0:1:4:0: +-%*15i:+0B0:0:4: +-%15i:+0b0:1:4:0: +-%*15i:+0b0:0:4: + %15i:+1:1:2:1: + %*15i:+1:0:2: + %15i:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*15i:+0x1:0:4: + %15i:+01:1:3:1: + %*15i:+01:0:3: +-%15i:+0B1:1:4:1: +-%*15i:+0B1:0:4: +-%15i:+0b1:1:4:1: +-%*15i:+0b1:0:4: + %15i:+42:1:3:42: + %*15i:+42:0:3: + %15i:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*15i:+0x2A:0:5: + %15i:+052:1:4:42: + %*15i:+052:0:4: +-%15i:+0B101010:1:9:42: +-%*15i:+0B101010:0:9: +-%15i:+0b101010:1:9:42: +-%*15i:+0b101010:0:9: + %15i:+2147483647:1:11:2147483647: + %*15i:+2147483647:0:11: + %15i:+0X7fffffff:1:11:2147483647: +@@ -1060,10 +712,6 @@ + %*15i:+0x7FFFFFFF:0:11: + %15i:+017777777777:1:13:2147483647: + %*15i:+017777777777:0:13: +-%15i:+0B1111111111111111111111111111111:1:15:4095: +-%*15i:+0B1111111111111111111111111111111:0:15: +-%15i:+0b1111111111111111111111111111111:1:15:4095: +-%*15i:+0b1111111111111111111111111111111:0:15: + %15i:+2147483648:1:11:2147483647: + %*15i:+2147483648:0:11: + %15i:+0X80000000:1:11:2147483647: +@@ -1072,10 +720,6 @@ + %*15i:+0x80000000:0:11: + %15i:+020000000000:1:13:2147483647: + %*15i:+020000000000:0:13: +-%15i:+0B10000000000000000000000000000000:1:15:2048: +-%*15i:+0B10000000000000000000000000000000:0:15: +-%15i:+0b10000000000000000000000000000000:1:15:2048: +-%*15i:+0b10000000000000000000000000000000:0:15: + %15i:+2147487889:1:11:2147483647: + %*15i:+2147487889:0:11: + %15i:+0X80001091:1:11:2147483647: +@@ -1084,10 +728,6 @@ + %*15i:+0x80001091:0:11: + %15i:+020000010221:1:13:2147483647: + %*15i:+020000010221:0:13: +-%15i:+0B10000000000000000001000010010001:1:15:2048: +-%*15i:+0B10000000000000000001000010010001:0:15: +-%15i:+0b10000000000000000001000010010001:1:15:2048: +-%*15i:+0b10000000000000000001000010010001:0:15: + %2i: :0:-1: + %*2i: :0:-1: + %2i: -2147484882:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2i: -0x800004D2:0:3: + %2i: -020000002322:1:3:0: + %*2i: -020000002322:0:3: +-%2i: -0B10000000000000000000010011010010:1:3:0: +-%*2i: -0B10000000000000000000010011010010:0:3: +-%2i: -0b10000000000000000000010011010010:1:3:0: +-%*2i: -0b10000000000000000000010011010010:0:3: + %2i: -2147483649:1:3:-2: + %*2i: -2147483649:0:3: + %2i: -0X80000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2i: -0x80000001:0:3: + %2i: -020000000001:1:3:0: + %*2i: -020000000001:0:3: +-%2i: -0B10000000000000000000000000000001:1:3:0: +-%*2i: -0B10000000000000000000000000000001:0:3: +-%2i: -0b10000000000000000000000000000001:1:3:0: +-%*2i: -0b10000000000000000000000000000001:0:3: + %2i: -2147483648:1:3:-2: + %*2i: -2147483648:0:3: + %2i: -0X80000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2i: -0x80000000:0:3: + %2i: -020000000000:1:3:0: + %*2i: -020000000000:0:3: +-%2i: -0B10000000000000000000000000000000:1:3:0: +-%*2i: -0B10000000000000000000000000000000:0:3: +-%2i: -0b10000000000000000000000000000000:1:3:0: +-%*2i: -0b10000000000000000000000000000000:0:3: + %2i: -123:1:3:-1: + %*2i: -123:0:3: + %2i: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2i: -0x7B:0:3: + %2i: -0173:1:3:0: + %*2i: -0173:0:3: +-%2i: -0B1111011:1:3:0: +-%*2i: -0B1111011:0:3: +-%2i: -0b1111011:1:3:0: +-%*2i: -0b1111011:0:3: + %2i: -1:1:3:-1: + %*2i: -1:0:3: + %2i: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2i: -0x1:0:3: + %2i: -01:1:3:0: + %*2i: -01:0:3: +-%2i: -0B1:1:3:0: +-%*2i: -0B1:0:3: +-%2i: -0b1:1:3:0: +-%*2i: -0b1:0:3: + %2i: -0:1:3:0: + %*2i: -0:0:3: + %2i: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2i: -0x0:0:3: + %2i: -00:1:3:0: + %*2i: -00:0:3: +-%2i: -0B0:1:3:0: +-%*2i: -0B0:0:3: +-%2i: -0b0:1:3:0: +-%*2i: -0b0:0:3: + %2i: 0:1:2:0: + %*2i: 0:0:2: + # BZ12701 %2i: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2i: 0x0:0:-1: + %2i: 00:1:3:0: + %*2i: 00:0:3: +-# BZ12701 %2i: 0B0:0:-1: +-# BZ12701 %*2i: 0B0:0:-1: +-# BZ12701 %2i: 0b0:0:-1: +-# BZ12701 %*2i: 0b0:0:-1: + %2i: 1:1:2:1: + %*2i: 1:0:2: + # BZ12701 %2i: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2i: 0x1:0:-1: + %2i: 01:1:3:1: + %*2i: 01:0:3: +-# BZ12701 %2i: 0B1:0:-1: +-# BZ12701 %*2i: 0B1:0:-1: +-# BZ12701 %2i: 0b1:0:-1: +-# BZ12701 %*2i: 0b1:0:-1: + %2i: 42:1:3:42: + %*2i: 42:0:3: + # BZ12701 %2i: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2i: 0x2A:0:-1: + %2i: 052:1:3:5: + %*2i: 052:0:3: +-# BZ12701 %2i: 0B101010:0:-1: +-# BZ12701 %*2i: 0B101010:0:-1: +-# BZ12701 %2i: 0b101010:0:-1: +-# BZ12701 %*2i: 0b101010:0:-1: + %2i: 2147483647:1:3:21: + %*2i: 2147483647:0:3: + # BZ12701 %2i: 0X7fffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2i: 0x7FFFFFFF:0:-1: + %2i: 017777777777:1:3:1: + %*2i: 017777777777:0:3: +-# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: + %2i: 2147483648:1:3:21: + %*2i: 2147483648:0:3: + # BZ12701 %2i: 0X80000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2i: 0x80000000:0:-1: + %2i: 020000000000:1:3:2: + %*2i: 020000000000:0:3: +-# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: + %2i: 2147487889:1:3:21: + %*2i: 2147487889:0:3: + # BZ12701 %2i: 0X80001091:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2i: 0x80001091:0:-1: + %2i: 020000010221:1:3:2: + %*2i: 020000010221:0:3: +-# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: + %2i: +0:1:3:0: + %*2i: +0:0:3: + %2i: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2i: +0x0:0:3: + %2i: +00:1:3:0: + %*2i: +00:0:3: +-%2i: +0B0:1:3:0: +-%*2i: +0B0:0:3: +-%2i: +0b0:1:3:0: +-%*2i: +0b0:0:3: + %2i: +1:1:3:1: + %*2i: +1:0:3: + %2i: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2i: +0x1:0:3: + %2i: +01:1:3:0: + %*2i: +01:0:3: +-%2i: +0B1:1:3:0: +-%*2i: +0B1:0:3: +-%2i: +0b1:1:3:0: +-%*2i: +0b1:0:3: + %2i: +42:1:3:4: + %*2i: +42:0:3: + %2i: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2i: +0x2A:0:3: + %2i: +052:1:3:0: + %*2i: +052:0:3: +-%2i: +0B101010:1:3:0: +-%*2i: +0B101010:0:3: +-%2i: +0b101010:1:3:0: +-%*2i: +0b101010:0:3: + %2i: +2147483647:1:3:2: + %*2i: +2147483647:0:3: + %2i: +0X7fffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2i: +0x7FFFFFFF:0:3: + %2i: +017777777777:1:3:0: + %*2i: +017777777777:0:3: +-%2i: +0B1111111111111111111111111111111:1:3:0: +-%*2i: +0B1111111111111111111111111111111:0:3: +-%2i: +0b1111111111111111111111111111111:1:3:0: +-%*2i: +0b1111111111111111111111111111111:0:3: + %2i: +2147483648:1:3:2: + %*2i: +2147483648:0:3: + %2i: +0X80000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2i: +0x80000000:0:3: + %2i: +020000000000:1:3:0: + %*2i: +020000000000:0:3: +-%2i: +0B10000000000000000000000000000000:1:3:0: +-%*2i: +0B10000000000000000000000000000000:0:3: +-%2i: +0b10000000000000000000000000000000:1:3:0: +-%*2i: +0b10000000000000000000000000000000:0:3: + %2i: +2147487889:1:3:2: + %*2i: +2147487889:0:3: + %2i: +0X80001091:1:3:0: +@@ -1302,10 +874,6 @@ + %*2i: +0x80001091:0:3: + %2i: +020000010221:1:3:0: + %*2i: +020000010221:0:3: +-%2i: +0B10000000000000000001000010010001:1:3:0: +-%*2i: +0B10000000000000000001000010010001:0:3: +-%2i: +0b10000000000000000001000010010001:1:3:0: +-%*2i: +0b10000000000000000001000010010001:0:3: + %15i: :0:-1: + %*15i: :0:-1: + %15i: -2147484882:1:12:-2147483648: +@@ -1316,10 +884,6 @@ + %*15i: -0x800004D2:0:12: + %15i: -020000002322:1:14:-2147483648: + %*15i: -020000002322:0:14: +-%15i: -0B10000000000000000000010011010010:1:16:-2048: +-%*15i: -0B10000000000000000000010011010010:0:16: +-%15i: -0b10000000000000000000010011010010:1:16:-2048: +-%*15i: -0b10000000000000000000010011010010:0:16: + %15i: -2147483649:1:12:-2147483648: + %*15i: -2147483649:0:12: + %15i: -0X80000001:1:12:-2147483648: +@@ -1328,10 +892,6 @@ + %*15i: -0x80000001:0:12: + %15i: -020000000001:1:14:-2147483648: + %*15i: -020000000001:0:14: +-%15i: -0B10000000000000000000000000000001:1:16:-2048: +-%*15i: -0B10000000000000000000000000000001:0:16: +-%15i: -0b10000000000000000000000000000001:1:16:-2048: +-%*15i: -0b10000000000000000000000000000001:0:16: + %15i: -2147483648:1:12:-2147483648: + %*15i: -2147483648:0:12: + %15i: -0X80000000:1:12:-2147483648: +@@ -1340,10 +900,6 @@ + %*15i: -0x80000000:0:12: + %15i: -020000000000:1:14:-2147483648: + %*15i: -020000000000:0:14: +-%15i: -0B10000000000000000000000000000000:1:16:-2048: +-%*15i: -0B10000000000000000000000000000000:0:16: +-%15i: -0b10000000000000000000000000000000:1:16:-2048: +-%*15i: -0b10000000000000000000000000000000:0:16: + %15i: -123:1:5:-123: + %*15i: -123:0:5: + %15i: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*15i: -0x7B:0:6: + %15i: -0173:1:6:-123: + %*15i: -0173:0:6: +-%15i: -0B1111011:1:11:-123: +-%*15i: -0B1111011:0:11: +-%15i: -0b1111011:1:11:-123: +-%*15i: -0b1111011:0:11: + %15i: -1:1:3:-1: + %*15i: -1:0:3: + %15i: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*15i: -0x1:0:5: + %15i: -01:1:4:-1: + %*15i: -01:0:4: +-%15i: -0B1:1:5:-1: +-%*15i: -0B1:0:5: +-%15i: -0b1:1:5:-1: +-%*15i: -0b1:0:5: + %15i: -0:1:3:0: + %*15i: -0:0:3: + %15i: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*15i: -0x0:0:5: + %15i: -00:1:4:0: + %*15i: -00:0:4: +-%15i: -0B0:1:5:0: +-%*15i: -0B0:0:5: +-%15i: -0b0:1:5:0: +-%*15i: -0b0:0:5: + %15i: 0:1:2:0: + %*15i: 0:0:2: + %15i: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*15i: 0x0:0:4: + %15i: 00:1:3:0: + %*15i: 00:0:3: +-%15i: 0B0:1:4:0: +-%*15i: 0B0:0:4: +-%15i: 0b0:1:4:0: +-%*15i: 0b0:0:4: + %15i: 1:1:2:1: + %*15i: 1:0:2: + %15i: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*15i: 0x1:0:4: + %15i: 01:1:3:1: + %*15i: 01:0:3: +-%15i: 0B1:1:4:1: +-%*15i: 0B1:0:4: +-%15i: 0b1:1:4:1: +-%*15i: 0b1:0:4: + %15i: 42:1:3:42: + %*15i: 42:0:3: + %15i: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*15i: 0x2A:0:5: + %15i: 052:1:4:42: + %*15i: 052:0:4: +-%15i: 0B101010:1:9:42: +-%*15i: 0B101010:0:9: +-%15i: 0b101010:1:9:42: +-%*15i: 0b101010:0:9: + %15i: 2147483647:1:11:2147483647: + %*15i: 2147483647:0:11: + %15i: 0X7fffffff:1:11:2147483647: +@@ -1424,10 +956,6 @@ + %*15i: 0x7FFFFFFF:0:11: + %15i: 017777777777:1:13:2147483647: + %*15i: 017777777777:0:13: +-%15i: 0B1111111111111111111111111111111:1:16:8191: +-%*15i: 0B1111111111111111111111111111111:0:16: +-%15i: 0b1111111111111111111111111111111:1:16:8191: +-%*15i: 0b1111111111111111111111111111111:0:16: + %15i: 2147483648:1:11:2147483647: + %*15i: 2147483648:0:11: + %15i: 0X80000000:1:11:2147483647: +@@ -1436,10 +964,6 @@ + %*15i: 0x80000000:0:11: + %15i: 020000000000:1:13:2147483647: + %*15i: 020000000000:0:13: +-%15i: 0B10000000000000000000000000000000:1:16:4096: +-%*15i: 0B10000000000000000000000000000000:0:16: +-%15i: 0b10000000000000000000000000000000:1:16:4096: +-%*15i: 0b10000000000000000000000000000000:0:16: + %15i: 2147487889:1:11:2147483647: + %*15i: 2147487889:0:11: + %15i: 0X80001091:1:11:2147483647: +@@ -1448,10 +972,6 @@ + %*15i: 0x80001091:0:11: + %15i: 020000010221:1:13:2147483647: + %*15i: 020000010221:0:13: +-%15i: 0B10000000000000000001000010010001:1:16:4096: +-%*15i: 0B10000000000000000001000010010001:0:16: +-%15i: 0b10000000000000000001000010010001:1:16:4096: +-%*15i: 0b10000000000000000001000010010001:0:16: + %15i: +0:1:3:0: + %*15i: +0:0:3: + %15i: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*15i: +0x0:0:5: + %15i: +00:1:4:0: + %*15i: +00:0:4: +-%15i: +0B0:1:5:0: +-%*15i: +0B0:0:5: +-%15i: +0b0:1:5:0: +-%*15i: +0b0:0:5: + %15i: +1:1:3:1: + %*15i: +1:0:3: + %15i: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*15i: +0x1:0:5: + %15i: +01:1:4:1: + %*15i: +01:0:4: +-%15i: +0B1:1:5:1: +-%*15i: +0B1:0:5: +-%15i: +0b1:1:5:1: +-%*15i: +0b1:0:5: + %15i: +42:1:4:42: + %*15i: +42:0:4: + %15i: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*15i: +0x2A:0:6: + %15i: +052:1:5:42: + %*15i: +052:0:5: +-%15i: +0B101010:1:10:42: +-%*15i: +0B101010:0:10: +-%15i: +0b101010:1:10:42: +-%*15i: +0b101010:0:10: + %15i: +2147483647:1:12:2147483647: + %*15i: +2147483647:0:12: + %15i: +0X7fffffff:1:12:2147483647: +@@ -1496,10 +1004,6 @@ + %*15i: +0x7FFFFFFF:0:12: + %15i: +017777777777:1:14:2147483647: + %*15i: +017777777777:0:14: +-%15i: +0B1111111111111111111111111111111:1:16:4095: +-%*15i: +0B1111111111111111111111111111111:0:16: +-%15i: +0b1111111111111111111111111111111:1:16:4095: +-%*15i: +0b1111111111111111111111111111111:0:16: + %15i: +2147483648:1:12:2147483647: + %*15i: +2147483648:0:12: + %15i: +0X80000000:1:12:2147483647: +@@ -1508,10 +1012,6 @@ + %*15i: +0x80000000:0:12: + %15i: +020000000000:1:14:2147483647: + %*15i: +020000000000:0:14: +-%15i: +0B10000000000000000000000000000000:1:16:2048: +-%*15i: +0B10000000000000000000000000000000:0:16: +-%15i: +0b10000000000000000000000000000000:1:16:2048: +-%*15i: +0b10000000000000000000000000000000:0:16: + %15i: +2147487889:1:12:2147483647: + %*15i: +2147487889:0:12: + %15i: +0X80001091:1:12:2147483647: +@@ -1520,7 +1020,3 @@ + %*15i: +0x80001091:0:12: + %15i: +020000010221:1:14:2147483647: + %*15i: +020000010221:0:14: +-%15i: +0B10000000000000000001000010010001:1:16:2048: +-%*15i: +0B10000000000000000001000010010001:0:16: +-%15i: +0b10000000000000000001000010010001:1:16:2048: +-%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-i.input b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +index 37db25158a611d87..ad6221a6bbf600b7 100644 +--- a/sysdeps/wordsize-32/tst-scanf-format-long-i.input ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +@@ -8,10 +8,6 @@ + %*li:-0x800004D2:0:11: + %li:-020000002322:1:13:-2147483648: + %*li:-020000002322:0:13: +-%li:-0B10000000000000000000010011010010:1:35:-2147483648: +-%*li:-0B10000000000000000000010011010010:0:35: +-%li:-0b10000000000000000000010011010010:1:35:-2147483648: +-%*li:-0b10000000000000000000010011010010:0:35: + %li:-2147483649:1:11:-2147483648: + %*li:-2147483649:0:11: + %li:-0X80000001:1:11:-2147483648: +@@ -20,10 +16,6 @@ + %*li:-0x80000001:0:11: + %li:-020000000001:1:13:-2147483648: + %*li:-020000000001:0:13: +-%li:-0B10000000000000000000000000000001:1:35:-2147483648: +-%*li:-0B10000000000000000000000000000001:0:35: +-%li:-0b10000000000000000000000000000001:1:35:-2147483648: +-%*li:-0b10000000000000000000000000000001:0:35: + %li:-2147483648:1:11:-2147483648: + %*li:-2147483648:0:11: + %li:-0X80000000:1:11:-2147483648: +@@ -32,10 +24,6 @@ + %*li:-0x80000000:0:11: + %li:-020000000000:1:13:-2147483648: + %*li:-020000000000:0:13: +-%li:-0B10000000000000000000000000000000:1:35:-2147483648: +-%*li:-0B10000000000000000000000000000000:0:35: +-%li:-0b10000000000000000000000000000000:1:35:-2147483648: +-%*li:-0b10000000000000000000000000000000:0:35: + %li:-123:1:4:-123: + %*li:-123:0:4: + %li:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*li:-0x7B:0:5: + %li:-0173:1:5:-123: + %*li:-0173:0:5: +-%li:-0B1111011:1:10:-123: +-%*li:-0B1111011:0:10: +-%li:-0b1111011:1:10:-123: +-%*li:-0b1111011:0:10: + %li:-1:1:2:-1: + %*li:-1:0:2: + %li:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*li:-0x1:0:4: + %li:-01:1:3:-1: + %*li:-01:0:3: +-%li:-0B1:1:4:-1: +-%*li:-0B1:0:4: +-%li:-0b1:1:4:-1: +-%*li:-0b1:0:4: + %li:-0:1:2:0: + %*li:-0:0:2: + %li:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*li:-0x0:0:4: + %li:-00:1:3:0: + %*li:-00:0:3: +-%li:-0B0:1:4:0: +-%*li:-0B0:0:4: +-%li:-0b0:1:4:0: +-%*li:-0b0:0:4: + %li:0:1:1:0: + %*li:0:0:1: + %li:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*li:0x0:0:3: + %li:00:1:2:0: + %*li:00:0:2: +-%li:0B0:1:3:0: +-%*li:0B0:0:3: +-%li:0b0:1:3:0: +-%*li:0b0:0:3: + %li:1:1:1:1: + %*li:1:0:1: + %li:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*li:0x1:0:3: + %li:01:1:2:1: + %*li:01:0:2: +-%li:0B1:1:3:1: +-%*li:0B1:0:3: +-%li:0b1:1:3:1: +-%*li:0b1:0:3: + %li:42:1:2:42: + %*li:42:0:2: + %li:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*li:0x2A:0:4: + %li:052:1:3:42: + %*li:052:0:3: +-%li:0B101010:1:8:42: +-%*li:0B101010:0:8: +-%li:0b101010:1:8:42: +-%*li:0b101010:0:8: + %li:2147483647:1:10:2147483647: + %*li:2147483647:0:10: + %li:0X7fffffff:1:10:2147483647: +@@ -116,10 +80,6 @@ + %*li:0x7FFFFFFF:0:10: + %li:017777777777:1:12:2147483647: + %*li:017777777777:0:12: +-%li:0B1111111111111111111111111111111:1:33:2147483647: +-%*li:0B1111111111111111111111111111111:0:33: +-%li:0b1111111111111111111111111111111:1:33:2147483647: +-%*li:0b1111111111111111111111111111111:0:33: + %li:2147483648:1:10:2147483647: + %*li:2147483648:0:10: + %li:0X80000000:1:10:2147483647: +@@ -128,10 +88,6 @@ + %*li:0x80000000:0:10: + %li:020000000000:1:12:2147483647: + %*li:020000000000:0:12: +-%li:0B10000000000000000000000000000000:1:34:2147483647: +-%*li:0B10000000000000000000000000000000:0:34: +-%li:0b10000000000000000000000000000000:1:34:2147483647: +-%*li:0b10000000000000000000000000000000:0:34: + %li:2147487889:1:10:2147483647: + %*li:2147487889:0:10: + %li:0X80001091:1:10:2147483647: +@@ -140,10 +96,6 @@ + %*li:0x80001091:0:10: + %li:020000010221:1:12:2147483647: + %*li:020000010221:0:12: +-%li:0B10000000000000000001000010010001:1:34:2147483647: +-%*li:0B10000000000000000001000010010001:0:34: +-%li:0b10000000000000000001000010010001:1:34:2147483647: +-%*li:0b10000000000000000001000010010001:0:34: + %li:+0:1:2:0: + %*li:+0:0:2: + %li:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*li:+0x0:0:4: + %li:+00:1:3:0: + %*li:+00:0:3: +-%li:+0B0:1:4:0: +-%*li:+0B0:0:4: +-%li:+0b0:1:4:0: +-%*li:+0b0:0:4: + %li:+1:1:2:1: + %*li:+1:0:2: + %li:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*li:+0x1:0:4: + %li:+01:1:3:1: + %*li:+01:0:3: +-%li:+0B1:1:4:1: +-%*li:+0B1:0:4: +-%li:+0b1:1:4:1: +-%*li:+0b1:0:4: + %li:+42:1:3:42: + %*li:+42:0:3: + %li:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*li:+0x2A:0:5: + %li:+052:1:4:42: + %*li:+052:0:4: +-%li:+0B101010:1:9:42: +-%*li:+0B101010:0:9: +-%li:+0b101010:1:9:42: +-%*li:+0b101010:0:9: + %li:+2147483647:1:11:2147483647: + %*li:+2147483647:0:11: + %li:+0X7fffffff:1:11:2147483647: +@@ -188,10 +128,6 @@ + %*li:+0x7FFFFFFF:0:11: + %li:+017777777777:1:13:2147483647: + %*li:+017777777777:0:13: +-%li:+0B1111111111111111111111111111111:1:34:2147483647: +-%*li:+0B1111111111111111111111111111111:0:34: +-%li:+0b1111111111111111111111111111111:1:34:2147483647: +-%*li:+0b1111111111111111111111111111111:0:34: + %li:+2147483648:1:11:2147483647: + %*li:+2147483648:0:11: + %li:+0X80000000:1:11:2147483647: +@@ -200,10 +136,6 @@ + %*li:+0x80000000:0:11: + %li:+020000000000:1:13:2147483647: + %*li:+020000000000:0:13: +-%li:+0B10000000000000000000000000000000:1:35:2147483647: +-%*li:+0B10000000000000000000000000000000:0:35: +-%li:+0b10000000000000000000000000000000:1:35:2147483647: +-%*li:+0b10000000000000000000000000000000:0:35: + %li:+2147487889:1:11:2147483647: + %*li:+2147487889:0:11: + %li:+0X80001091:1:11:2147483647: +@@ -212,10 +144,6 @@ + %*li:+0x80001091:0:11: + %li:+020000010221:1:13:2147483647: + %*li:+020000010221:0:13: +-%li:+0B10000000000000000001000010010001:1:35:2147483647: +-%*li:+0B10000000000000000001000010010001:0:35: +-%li:+0b10000000000000000001000010010001:1:35:2147483647: +-%*li:+0b10000000000000000001000010010001:0:35: + %1li::0:-1: + %*1li::0:-1: + %1li:-2147484882:0:-1: +@@ -226,10 +154,6 @@ + %*1li:-0x800004D2:0:-1: + %1li:-020000002322:0:-1: + %*1li:-020000002322:0:-1: +-%1li:-0B10000000000000000000010011010010:0:-1: +-%*1li:-0B10000000000000000000010011010010:0:-1: +-%1li:-0b10000000000000000000010011010010:0:-1: +-%*1li:-0b10000000000000000000010011010010:0:-1: + %1li:-2147483649:0:-1: + %*1li:-2147483649:0:-1: + %1li:-0X80000001:0:-1: +@@ -238,10 +162,6 @@ + %*1li:-0x80000001:0:-1: + %1li:-020000000001:0:-1: + %*1li:-020000000001:0:-1: +-%1li:-0B10000000000000000000000000000001:0:-1: +-%*1li:-0B10000000000000000000000000000001:0:-1: +-%1li:-0b10000000000000000000000000000001:0:-1: +-%*1li:-0b10000000000000000000000000000001:0:-1: + %1li:-2147483648:0:-1: + %*1li:-2147483648:0:-1: + %1li:-0X80000000:0:-1: +@@ -250,10 +170,6 @@ + %*1li:-0x80000000:0:-1: + %1li:-020000000000:0:-1: + %*1li:-020000000000:0:-1: +-%1li:-0B10000000000000000000000000000000:0:-1: +-%*1li:-0B10000000000000000000000000000000:0:-1: +-%1li:-0b10000000000000000000000000000000:0:-1: +-%*1li:-0b10000000000000000000000000000000:0:-1: + %1li:-123:0:-1: + %*1li:-123:0:-1: + %1li:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1li:-0x7B:0:-1: + %1li:-0173:0:-1: + %*1li:-0173:0:-1: +-%1li:-0B1111011:0:-1: +-%*1li:-0B1111011:0:-1: +-%1li:-0b1111011:0:-1: +-%*1li:-0b1111011:0:-1: + %1li:-1:0:-1: + %*1li:-1:0:-1: + %1li:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1li:-0x1:0:-1: + %1li:-01:0:-1: + %*1li:-01:0:-1: +-%1li:-0B1:0:-1: +-%*1li:-0B1:0:-1: +-%1li:-0b1:0:-1: +-%*1li:-0b1:0:-1: + %1li:-0:0:-1: + %*1li:-0:0:-1: + %1li:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1li:-0x0:0:-1: + %1li:-00:0:-1: + %*1li:-00:0:-1: +-%1li:-0B0:0:-1: +-%*1li:-0B0:0:-1: +-%1li:-0b0:0:-1: +-%*1li:-0b0:0:-1: + %1li:0:1:1:0: + %*1li:0:0:1: + %1li:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1li:0x0:0:1: + %1li:00:1:1:0: + %*1li:00:0:1: +-%1li:0B0:1:1:0: +-%*1li:0B0:0:1: +-%1li:0b0:1:1:0: +-%*1li:0b0:0:1: + %1li:1:1:1:1: + %*1li:1:0:1: + %1li:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1li:0x1:0:1: + %1li:01:1:1:0: + %*1li:01:0:1: +-%1li:0B1:1:1:0: +-%*1li:0B1:0:1: +-%1li:0b1:1:1:0: +-%*1li:0b1:0:1: + %1li:42:1:1:4: + %*1li:42:0:1: + %1li:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1li:0x2A:0:1: + %1li:052:1:1:0: + %*1li:052:0:1: +-%1li:0B101010:1:1:0: +-%*1li:0B101010:0:1: +-%1li:0b101010:1:1:0: +-%*1li:0b101010:0:1: + %1li:2147483647:1:1:2: + %*1li:2147483647:0:1: + %1li:0X7fffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1li:0x7FFFFFFF:0:1: + %1li:017777777777:1:1:0: + %*1li:017777777777:0:1: +-%1li:0B1111111111111111111111111111111:1:1:0: +-%*1li:0B1111111111111111111111111111111:0:1: +-%1li:0b1111111111111111111111111111111:1:1:0: +-%*1li:0b1111111111111111111111111111111:0:1: + %1li:2147483648:1:1:2: + %*1li:2147483648:0:1: + %1li:0X80000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1li:0x80000000:0:1: + %1li:020000000000:1:1:0: + %*1li:020000000000:0:1: +-%1li:0B10000000000000000000000000000000:1:1:0: +-%*1li:0B10000000000000000000000000000000:0:1: +-%1li:0b10000000000000000000000000000000:1:1:0: +-%*1li:0b10000000000000000000000000000000:0:1: + %1li:2147487889:1:1:2: + %*1li:2147487889:0:1: + %1li:0X80001091:1:1:0: +@@ -358,10 +242,6 @@ + %*1li:0x80001091:0:1: + %1li:020000010221:1:1:0: + %*1li:020000010221:0:1: +-%1li:0B10000000000000000001000010010001:1:1:0: +-%*1li:0B10000000000000000001000010010001:0:1: +-%1li:0b10000000000000000001000010010001:1:1:0: +-%*1li:0b10000000000000000001000010010001:0:1: + %1li:+0:0:-1: + %*1li:+0:0:-1: + %1li:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1li:+0x0:0:-1: + %1li:+00:0:-1: + %*1li:+00:0:-1: +-%1li:+0B0:0:-1: +-%*1li:+0B0:0:-1: +-%1li:+0b0:0:-1: +-%*1li:+0b0:0:-1: + %1li:+1:0:-1: + %*1li:+1:0:-1: + %1li:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1li:+0x1:0:-1: + %1li:+01:0:-1: + %*1li:+01:0:-1: +-%1li:+0B1:0:-1: +-%*1li:+0B1:0:-1: +-%1li:+0b1:0:-1: +-%*1li:+0b1:0:-1: + %1li:+42:0:-1: + %*1li:+42:0:-1: + %1li:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1li:+0x2A:0:-1: + %1li:+052:0:-1: + %*1li:+052:0:-1: +-%1li:+0B101010:0:-1: +-%*1li:+0B101010:0:-1: +-%1li:+0b101010:0:-1: +-%*1li:+0b101010:0:-1: + %1li:+2147483647:0:-1: + %*1li:+2147483647:0:-1: + %1li:+0X7fffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1li:+0x7FFFFFFF:0:-1: + %1li:+017777777777:0:-1: + %*1li:+017777777777:0:-1: +-%1li:+0B1111111111111111111111111111111:0:-1: +-%*1li:+0B1111111111111111111111111111111:0:-1: +-%1li:+0b1111111111111111111111111111111:0:-1: +-%*1li:+0b1111111111111111111111111111111:0:-1: + %1li:+2147483648:0:-1: + %*1li:+2147483648:0:-1: + %1li:+0X80000000:0:-1: +@@ -418,10 +282,6 @@ + %*1li:+0x80000000:0:-1: + %1li:+020000000000:0:-1: + %*1li:+020000000000:0:-1: +-%1li:+0B10000000000000000000000000000000:0:-1: +-%*1li:+0B10000000000000000000000000000000:0:-1: +-%1li:+0b10000000000000000000000000000000:0:-1: +-%*1li:+0b10000000000000000000000000000000:0:-1: + %1li:+2147487889:0:-1: + %*1li:+2147487889:0:-1: + %1li:+0X80001091:0:-1: +@@ -430,10 +290,6 @@ + %*1li:+0x80001091:0:-1: + %1li:+020000010221:0:-1: + %*1li:+020000010221:0:-1: +-%1li:+0B10000000000000000001000010010001:0:-1: +-%*1li:+0B10000000000000000001000010010001:0:-1: +-%1li:+0b10000000000000000001000010010001:0:-1: +-%*1li:+0b10000000000000000001000010010001:0:-1: + %2li::0:-1: + %*2li::0:-1: + %2li:-2147484882:1:2:-2: +@@ -444,10 +300,6 @@ + %*2li:-0x800004D2:0:2: + %2li:-020000002322:1:2:0: + %*2li:-020000002322:0:2: +-%2li:-0B10000000000000000000010011010010:1:2:0: +-%*2li:-0B10000000000000000000010011010010:0:2: +-%2li:-0b10000000000000000000010011010010:1:2:0: +-%*2li:-0b10000000000000000000010011010010:0:2: + %2li:-2147483649:1:2:-2: + %*2li:-2147483649:0:2: + %2li:-0X80000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2li:-0x80000001:0:2: + %2li:-020000000001:1:2:0: + %*2li:-020000000001:0:2: +-%2li:-0B10000000000000000000000000000001:1:2:0: +-%*2li:-0B10000000000000000000000000000001:0:2: +-%2li:-0b10000000000000000000000000000001:1:2:0: +-%*2li:-0b10000000000000000000000000000001:0:2: + %2li:-2147483648:1:2:-2: + %*2li:-2147483648:0:2: + %2li:-0X80000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2li:-0x80000000:0:2: + %2li:-020000000000:1:2:0: + %*2li:-020000000000:0:2: +-%2li:-0B10000000000000000000000000000000:1:2:0: +-%*2li:-0B10000000000000000000000000000000:0:2: +-%2li:-0b10000000000000000000000000000000:1:2:0: +-%*2li:-0b10000000000000000000000000000000:0:2: + %2li:-123:1:2:-1: + %*2li:-123:0:2: + %2li:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2li:-0x7B:0:2: + %2li:-0173:1:2:0: + %*2li:-0173:0:2: +-%2li:-0B1111011:1:2:0: +-%*2li:-0B1111011:0:2: +-%2li:-0b1111011:1:2:0: +-%*2li:-0b1111011:0:2: + %2li:-1:1:2:-1: + %*2li:-1:0:2: + %2li:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2li:-0x1:0:2: + %2li:-01:1:2:0: + %*2li:-01:0:2: +-%2li:-0B1:1:2:0: +-%*2li:-0B1:0:2: +-%2li:-0b1:1:2:0: +-%*2li:-0b1:0:2: + %2li:-0:1:2:0: + %*2li:-0:0:2: + %2li:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2li:-0x0:0:2: + %2li:-00:1:2:0: + %*2li:-00:0:2: +-%2li:-0B0:1:2:0: +-%*2li:-0B0:0:2: +-%2li:-0b0:1:2:0: +-%*2li:-0b0:0:2: + %2li:0:1:1:0: + %*2li:0:0:1: + # BZ12701 %2li:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2li:0x0:0:-1: + %2li:00:1:2:0: + %*2li:00:0:2: +-# BZ12701 %2li:0B0:0:-1: +-# BZ12701 %*2li:0B0:0:-1: +-# BZ12701 %2li:0b0:0:-1: +-# BZ12701 %*2li:0b0:0:-1: + %2li:1:1:1:1: + %*2li:1:0:1: + # BZ12701 %2li:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2li:0x1:0:-1: + %2li:01:1:2:1: + %*2li:01:0:2: +-# BZ12701 %2li:0B1:0:-1: +-# BZ12701 %*2li:0B1:0:-1: +-# BZ12701 %2li:0b1:0:-1: +-# BZ12701 %*2li:0b1:0:-1: + %2li:42:1:2:42: + %*2li:42:0:2: + # BZ12701 %2li:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2li:0x2A:0:-1: + %2li:052:1:2:5: + %*2li:052:0:2: +-# BZ12701 %2li:0B101010:0:-1: +-# BZ12701 %*2li:0B101010:0:-1: +-# BZ12701 %2li:0b101010:0:-1: +-# BZ12701 %*2li:0b101010:0:-1: + %2li:2147483647:1:2:21: + %*2li:2147483647:0:2: + # BZ12701 %2li:0X7fffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2li:0x7FFFFFFF:0:-1: + %2li:017777777777:1:2:1: + %*2li:017777777777:0:2: +-# BZ12701 %2li:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2li:0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0b1111111111111111111111111111111:0:-1: + %2li:2147483648:1:2:21: + %*2li:2147483648:0:2: + # BZ12701 %2li:0X80000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2li:0x80000000:0:-1: + %2li:020000000000:1:2:2: + %*2li:020000000000:0:2: +-# BZ12701 %2li:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2li:0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0b10000000000000000000000000000000:0:-1: + %2li:2147487889:1:2:21: + %*2li:2147487889:0:2: + # BZ12701 %2li:0X80001091:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2li:0x80001091:0:-1: + %2li:020000010221:1:2:2: + %*2li:020000010221:0:2: +-# BZ12701 %2li:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2li:0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li:0b10000000000000000001000010010001:0:-1: + %2li:+0:1:2:0: + %*2li:+0:0:2: + %2li:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2li:+0x0:0:2: + %2li:+00:1:2:0: + %*2li:+00:0:2: +-%2li:+0B0:1:2:0: +-%*2li:+0B0:0:2: +-%2li:+0b0:1:2:0: +-%*2li:+0b0:0:2: + %2li:+1:1:2:1: + %*2li:+1:0:2: + %2li:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2li:+0x1:0:2: + %2li:+01:1:2:0: + %*2li:+01:0:2: +-%2li:+0B1:1:2:0: +-%*2li:+0B1:0:2: +-%2li:+0b1:1:2:0: +-%*2li:+0b1:0:2: + %2li:+42:1:2:4: + %*2li:+42:0:2: + %2li:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2li:+0x2A:0:2: + %2li:+052:1:2:0: + %*2li:+052:0:2: +-%2li:+0B101010:1:2:0: +-%*2li:+0B101010:0:2: +-%2li:+0b101010:1:2:0: +-%*2li:+0b101010:0:2: + %2li:+2147483647:1:2:2: + %*2li:+2147483647:0:2: + %2li:+0X7fffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2li:+0x7FFFFFFF:0:2: + %2li:+017777777777:1:2:0: + %*2li:+017777777777:0:2: +-%2li:+0B1111111111111111111111111111111:1:2:0: +-%*2li:+0B1111111111111111111111111111111:0:2: +-%2li:+0b1111111111111111111111111111111:1:2:0: +-%*2li:+0b1111111111111111111111111111111:0:2: + %2li:+2147483648:1:2:2: + %*2li:+2147483648:0:2: + %2li:+0X80000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2li:+0x80000000:0:2: + %2li:+020000000000:1:2:0: + %*2li:+020000000000:0:2: +-%2li:+0B10000000000000000000000000000000:1:2:0: +-%*2li:+0B10000000000000000000000000000000:0:2: +-%2li:+0b10000000000000000000000000000000:1:2:0: +-%*2li:+0b10000000000000000000000000000000:0:2: + %2li:+2147487889:1:2:2: + %*2li:+2147487889:0:2: + %2li:+0X80001091:1:2:0: +@@ -648,10 +436,6 @@ + %*2li:+0x80001091:0:2: + %2li:+020000010221:1:2:0: + %*2li:+020000010221:0:2: +-%2li:+0B10000000000000000001000010010001:1:2:0: +-%*2li:+0B10000000000000000001000010010001:0:2: +-%2li:+0b10000000000000000001000010010001:1:2:0: +-%*2li:+0b10000000000000000001000010010001:0:2: + %8li::0:-1: + %*8li::0:-1: + %8li:-2147484882:1:8:-2147484: +@@ -662,10 +446,6 @@ + %*8li:-0x800004D2:0:8: + %8li:-020000002322:1:8:-65536: + %*8li:-020000002322:0:8: +-%8li:-0B10000000000000000000010011010010:1:8:-16: +-%*8li:-0B10000000000000000000010011010010:0:8: +-%8li:-0b10000000000000000000010011010010:1:8:-16: +-%*8li:-0b10000000000000000000010011010010:0:8: + %8li:-2147483649:1:8:-2147483: + %*8li:-2147483649:0:8: + %8li:-0X80000001:1:8:-524288: +@@ -674,10 +454,6 @@ + %*8li:-0x80000001:0:8: + %8li:-020000000001:1:8:-65536: + %*8li:-020000000001:0:8: +-%8li:-0B10000000000000000000000000000001:1:8:-16: +-%*8li:-0B10000000000000000000000000000001:0:8: +-%8li:-0b10000000000000000000000000000001:1:8:-16: +-%*8li:-0b10000000000000000000000000000001:0:8: + %8li:-2147483648:1:8:-2147483: + %*8li:-2147483648:0:8: + %8li:-0X80000000:1:8:-524288: +@@ -686,10 +462,6 @@ + %*8li:-0x80000000:0:8: + %8li:-020000000000:1:8:-65536: + %*8li:-020000000000:0:8: +-%8li:-0B10000000000000000000000000000000:1:8:-16: +-%*8li:-0B10000000000000000000000000000000:0:8: +-%8li:-0b10000000000000000000000000000000:1:8:-16: +-%*8li:-0b10000000000000000000000000000000:0:8: + %8li:-123:1:4:-123: + %*8li:-123:0:4: + %8li:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*8li:-0x7B:0:5: + %8li:-0173:1:5:-123: + %*8li:-0173:0:5: +-%8li:-0B1111011:1:8:-30: +-%*8li:-0B1111011:0:8: +-%8li:-0b1111011:1:8:-30: +-%*8li:-0b1111011:0:8: + %8li:-1:1:2:-1: + %*8li:-1:0:2: + %8li:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*8li:-0x1:0:4: + %8li:-01:1:3:-1: + %*8li:-01:0:3: +-%8li:-0B1:1:4:-1: +-%*8li:-0B1:0:4: +-%8li:-0b1:1:4:-1: +-%*8li:-0b1:0:4: + %8li:-0:1:2:0: + %*8li:-0:0:2: + %8li:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*8li:-0x0:0:4: + %8li:-00:1:3:0: + %*8li:-00:0:3: +-%8li:-0B0:1:4:0: +-%*8li:-0B0:0:4: +-%8li:-0b0:1:4:0: +-%*8li:-0b0:0:4: + %8li:0:1:1:0: + %*8li:0:0:1: + %8li:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*8li:0x0:0:3: + %8li:00:1:2:0: + %*8li:00:0:2: +-%8li:0B0:1:3:0: +-%*8li:0B0:0:3: +-%8li:0b0:1:3:0: +-%*8li:0b0:0:3: + %8li:1:1:1:1: + %*8li:1:0:1: + %8li:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*8li:0x1:0:3: + %8li:01:1:2:1: + %*8li:01:0:2: +-%8li:0B1:1:3:1: +-%*8li:0B1:0:3: +-%8li:0b1:1:3:1: +-%*8li:0b1:0:3: + %8li:42:1:2:42: + %*8li:42:0:2: + %8li:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*8li:0x2A:0:4: + %8li:052:1:3:42: + %*8li:052:0:3: +-%8li:0B101010:1:8:42: +-%*8li:0B101010:0:8: +-%8li:0b101010:1:8:42: +-%*8li:0b101010:0:8: + %8li:2147483647:1:8:21474836: + %*8li:2147483647:0:8: + %8li:0X7fffffff:1:8:8388607: +@@ -770,10 +518,6 @@ + %*8li:0x7FFFFFFF:0:8: + %8li:017777777777:1:8:524287: + %*8li:017777777777:0:8: +-%8li:0B1111111111111111111111111111111:1:8:63: +-%*8li:0B1111111111111111111111111111111:0:8: +-%8li:0b1111111111111111111111111111111:1:8:63: +-%*8li:0b1111111111111111111111111111111:0:8: + %8li:2147483648:1:8:21474836: + %*8li:2147483648:0:8: + %8li:0X80000000:1:8:8388608: +@@ -782,10 +526,6 @@ + %*8li:0x80000000:0:8: + %8li:020000000000:1:8:524288: + %*8li:020000000000:0:8: +-%8li:0B10000000000000000000000000000000:1:8:32: +-%*8li:0B10000000000000000000000000000000:0:8: +-%8li:0b10000000000000000000000000000000:1:8:32: +-%*8li:0b10000000000000000000000000000000:0:8: + %8li:2147487889:1:8:21474878: + %*8li:2147487889:0:8: + %8li:0X80001091:1:8:8388624: +@@ -794,10 +534,6 @@ + %*8li:0x80001091:0:8: + %8li:020000010221:1:8:524289: + %*8li:020000010221:0:8: +-%8li:0B10000000000000000001000010010001:1:8:32: +-%*8li:0B10000000000000000001000010010001:0:8: +-%8li:0b10000000000000000001000010010001:1:8:32: +-%*8li:0b10000000000000000001000010010001:0:8: + %8li:+0:1:2:0: + %*8li:+0:0:2: + %8li:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*8li:+0x0:0:4: + %8li:+00:1:3:0: + %*8li:+00:0:3: +-%8li:+0B0:1:4:0: +-%*8li:+0B0:0:4: +-%8li:+0b0:1:4:0: +-%*8li:+0b0:0:4: + %8li:+1:1:2:1: + %*8li:+1:0:2: + %8li:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*8li:+0x1:0:4: + %8li:+01:1:3:1: + %*8li:+01:0:3: +-%8li:+0B1:1:4:1: +-%*8li:+0B1:0:4: +-%8li:+0b1:1:4:1: +-%*8li:+0b1:0:4: + %8li:+42:1:3:42: + %*8li:+42:0:3: + %8li:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*8li:+0x2A:0:5: + %8li:+052:1:4:42: + %*8li:+052:0:4: +-%8li:+0B101010:1:8:21: +-%*8li:+0B101010:0:8: +-%8li:+0b101010:1:8:21: +-%*8li:+0b101010:0:8: + %8li:+2147483647:1:8:2147483: + %*8li:+2147483647:0:8: + %8li:+0X7fffffff:1:8:524287: +@@ -842,10 +566,6 @@ + %*8li:+0x7FFFFFFF:0:8: + %8li:+017777777777:1:8:65535: + %*8li:+017777777777:0:8: +-%8li:+0B1111111111111111111111111111111:1:8:31: +-%*8li:+0B1111111111111111111111111111111:0:8: +-%8li:+0b1111111111111111111111111111111:1:8:31: +-%*8li:+0b1111111111111111111111111111111:0:8: + %8li:+2147483648:1:8:2147483: + %*8li:+2147483648:0:8: + %8li:+0X80000000:1:8:524288: +@@ -854,10 +574,6 @@ + %*8li:+0x80000000:0:8: + %8li:+020000000000:1:8:65536: + %*8li:+020000000000:0:8: +-%8li:+0B10000000000000000000000000000000:1:8:16: +-%*8li:+0B10000000000000000000000000000000:0:8: +-%8li:+0b10000000000000000000000000000000:1:8:16: +-%*8li:+0b10000000000000000000000000000000:0:8: + %8li:+2147487889:1:8:2147487: + %*8li:+2147487889:0:8: + %8li:+0X80001091:1:8:524289: +@@ -866,10 +582,6 @@ + %*8li:+0x80001091:0:8: + %8li:+020000010221:1:8:65536: + %*8li:+020000010221:0:8: +-%8li:+0B10000000000000000001000010010001:1:8:16: +-%*8li:+0B10000000000000000001000010010001:0:8: +-%8li:+0b10000000000000000001000010010001:1:8:16: +-%*8li:+0b10000000000000000001000010010001:0:8: + %15li::0:-1: + %*15li::0:-1: + %15li:-2147484882:1:11:-2147483648: +@@ -880,10 +592,6 @@ + %*15li:-0x800004D2:0:11: + %15li:-020000002322:1:13:-2147483648: + %*15li:-020000002322:0:13: +-%15li:-0B10000000000000000000010011010010:1:15:-2048: +-%*15li:-0B10000000000000000000010011010010:0:15: +-%15li:-0b10000000000000000000010011010010:1:15:-2048: +-%*15li:-0b10000000000000000000010011010010:0:15: + %15li:-2147483649:1:11:-2147483648: + %*15li:-2147483649:0:11: + %15li:-0X80000001:1:11:-2147483648: +@@ -892,10 +600,6 @@ + %*15li:-0x80000001:0:11: + %15li:-020000000001:1:13:-2147483648: + %*15li:-020000000001:0:13: +-%15li:-0B10000000000000000000000000000001:1:15:-2048: +-%*15li:-0B10000000000000000000000000000001:0:15: +-%15li:-0b10000000000000000000000000000001:1:15:-2048: +-%*15li:-0b10000000000000000000000000000001:0:15: + %15li:-2147483648:1:11:-2147483648: + %*15li:-2147483648:0:11: + %15li:-0X80000000:1:11:-2147483648: +@@ -904,10 +608,6 @@ + %*15li:-0x80000000:0:11: + %15li:-020000000000:1:13:-2147483648: + %*15li:-020000000000:0:13: +-%15li:-0B10000000000000000000000000000000:1:15:-2048: +-%*15li:-0B10000000000000000000000000000000:0:15: +-%15li:-0b10000000000000000000000000000000:1:15:-2048: +-%*15li:-0b10000000000000000000000000000000:0:15: + %15li:-123:1:4:-123: + %*15li:-123:0:4: + %15li:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*15li:-0x7B:0:5: + %15li:-0173:1:5:-123: + %*15li:-0173:0:5: +-%15li:-0B1111011:1:10:-123: +-%*15li:-0B1111011:0:10: +-%15li:-0b1111011:1:10:-123: +-%*15li:-0b1111011:0:10: + %15li:-1:1:2:-1: + %*15li:-1:0:2: + %15li:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*15li:-0x1:0:4: + %15li:-01:1:3:-1: + %*15li:-01:0:3: +-%15li:-0B1:1:4:-1: +-%*15li:-0B1:0:4: +-%15li:-0b1:1:4:-1: +-%*15li:-0b1:0:4: + %15li:-0:1:2:0: + %*15li:-0:0:2: + %15li:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*15li:-0x0:0:4: + %15li:-00:1:3:0: + %*15li:-00:0:3: +-%15li:-0B0:1:4:0: +-%*15li:-0B0:0:4: +-%15li:-0b0:1:4:0: +-%*15li:-0b0:0:4: + %15li:0:1:1:0: + %*15li:0:0:1: + %15li:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*15li:0x0:0:3: + %15li:00:1:2:0: + %*15li:00:0:2: +-%15li:0B0:1:3:0: +-%*15li:0B0:0:3: +-%15li:0b0:1:3:0: +-%*15li:0b0:0:3: + %15li:1:1:1:1: + %*15li:1:0:1: + %15li:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*15li:0x1:0:3: + %15li:01:1:2:1: + %*15li:01:0:2: +-%15li:0B1:1:3:1: +-%*15li:0B1:0:3: +-%15li:0b1:1:3:1: +-%*15li:0b1:0:3: + %15li:42:1:2:42: + %*15li:42:0:2: + %15li:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*15li:0x2A:0:4: + %15li:052:1:3:42: + %*15li:052:0:3: +-%15li:0B101010:1:8:42: +-%*15li:0B101010:0:8: +-%15li:0b101010:1:8:42: +-%*15li:0b101010:0:8: + %15li:2147483647:1:10:2147483647: + %*15li:2147483647:0:10: + %15li:0X7fffffff:1:10:2147483647: +@@ -988,10 +664,6 @@ + %*15li:0x7FFFFFFF:0:10: + %15li:017777777777:1:12:2147483647: + %*15li:017777777777:0:12: +-%15li:0B1111111111111111111111111111111:1:15:8191: +-%*15li:0B1111111111111111111111111111111:0:15: +-%15li:0b1111111111111111111111111111111:1:15:8191: +-%*15li:0b1111111111111111111111111111111:0:15: + %15li:2147483648:1:10:2147483647: + %*15li:2147483648:0:10: + %15li:0X80000000:1:10:2147483647: +@@ -1000,10 +672,6 @@ + %*15li:0x80000000:0:10: + %15li:020000000000:1:12:2147483647: + %*15li:020000000000:0:12: +-%15li:0B10000000000000000000000000000000:1:15:4096: +-%*15li:0B10000000000000000000000000000000:0:15: +-%15li:0b10000000000000000000000000000000:1:15:4096: +-%*15li:0b10000000000000000000000000000000:0:15: + %15li:2147487889:1:10:2147483647: + %*15li:2147487889:0:10: + %15li:0X80001091:1:10:2147483647: +@@ -1012,10 +680,6 @@ + %*15li:0x80001091:0:10: + %15li:020000010221:1:12:2147483647: + %*15li:020000010221:0:12: +-%15li:0B10000000000000000001000010010001:1:15:4096: +-%*15li:0B10000000000000000001000010010001:0:15: +-%15li:0b10000000000000000001000010010001:1:15:4096: +-%*15li:0b10000000000000000001000010010001:0:15: + %15li:+0:1:2:0: + %*15li:+0:0:2: + %15li:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*15li:+0x0:0:4: + %15li:+00:1:3:0: + %*15li:+00:0:3: +-%15li:+0B0:1:4:0: +-%*15li:+0B0:0:4: +-%15li:+0b0:1:4:0: +-%*15li:+0b0:0:4: + %15li:+1:1:2:1: + %*15li:+1:0:2: + %15li:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*15li:+0x1:0:4: + %15li:+01:1:3:1: + %*15li:+01:0:3: +-%15li:+0B1:1:4:1: +-%*15li:+0B1:0:4: +-%15li:+0b1:1:4:1: +-%*15li:+0b1:0:4: + %15li:+42:1:3:42: + %*15li:+42:0:3: + %15li:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*15li:+0x2A:0:5: + %15li:+052:1:4:42: + %*15li:+052:0:4: +-%15li:+0B101010:1:9:42: +-%*15li:+0B101010:0:9: +-%15li:+0b101010:1:9:42: +-%*15li:+0b101010:0:9: + %15li:+2147483647:1:11:2147483647: + %*15li:+2147483647:0:11: + %15li:+0X7fffffff:1:11:2147483647: +@@ -1060,10 +712,6 @@ + %*15li:+0x7FFFFFFF:0:11: + %15li:+017777777777:1:13:2147483647: + %*15li:+017777777777:0:13: +-%15li:+0B1111111111111111111111111111111:1:15:4095: +-%*15li:+0B1111111111111111111111111111111:0:15: +-%15li:+0b1111111111111111111111111111111:1:15:4095: +-%*15li:+0b1111111111111111111111111111111:0:15: + %15li:+2147483648:1:11:2147483647: + %*15li:+2147483648:0:11: + %15li:+0X80000000:1:11:2147483647: +@@ -1072,10 +720,6 @@ + %*15li:+0x80000000:0:11: + %15li:+020000000000:1:13:2147483647: + %*15li:+020000000000:0:13: +-%15li:+0B10000000000000000000000000000000:1:15:2048: +-%*15li:+0B10000000000000000000000000000000:0:15: +-%15li:+0b10000000000000000000000000000000:1:15:2048: +-%*15li:+0b10000000000000000000000000000000:0:15: + %15li:+2147487889:1:11:2147483647: + %*15li:+2147487889:0:11: + %15li:+0X80001091:1:11:2147483647: +@@ -1084,10 +728,6 @@ + %*15li:+0x80001091:0:11: + %15li:+020000010221:1:13:2147483647: + %*15li:+020000010221:0:13: +-%15li:+0B10000000000000000001000010010001:1:15:2048: +-%*15li:+0B10000000000000000001000010010001:0:15: +-%15li:+0b10000000000000000001000010010001:1:15:2048: +-%*15li:+0b10000000000000000001000010010001:0:15: + %2li: :0:-1: + %*2li: :0:-1: + %2li: -2147484882:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2li: -0x800004D2:0:3: + %2li: -020000002322:1:3:0: + %*2li: -020000002322:0:3: +-%2li: -0B10000000000000000000010011010010:1:3:0: +-%*2li: -0B10000000000000000000010011010010:0:3: +-%2li: -0b10000000000000000000010011010010:1:3:0: +-%*2li: -0b10000000000000000000010011010010:0:3: + %2li: -2147483649:1:3:-2: + %*2li: -2147483649:0:3: + %2li: -0X80000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2li: -0x80000001:0:3: + %2li: -020000000001:1:3:0: + %*2li: -020000000001:0:3: +-%2li: -0B10000000000000000000000000000001:1:3:0: +-%*2li: -0B10000000000000000000000000000001:0:3: +-%2li: -0b10000000000000000000000000000001:1:3:0: +-%*2li: -0b10000000000000000000000000000001:0:3: + %2li: -2147483648:1:3:-2: + %*2li: -2147483648:0:3: + %2li: -0X80000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2li: -0x80000000:0:3: + %2li: -020000000000:1:3:0: + %*2li: -020000000000:0:3: +-%2li: -0B10000000000000000000000000000000:1:3:0: +-%*2li: -0B10000000000000000000000000000000:0:3: +-%2li: -0b10000000000000000000000000000000:1:3:0: +-%*2li: -0b10000000000000000000000000000000:0:3: + %2li: -123:1:3:-1: + %*2li: -123:0:3: + %2li: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2li: -0x7B:0:3: + %2li: -0173:1:3:0: + %*2li: -0173:0:3: +-%2li: -0B1111011:1:3:0: +-%*2li: -0B1111011:0:3: +-%2li: -0b1111011:1:3:0: +-%*2li: -0b1111011:0:3: + %2li: -1:1:3:-1: + %*2li: -1:0:3: + %2li: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2li: -0x1:0:3: + %2li: -01:1:3:0: + %*2li: -01:0:3: +-%2li: -0B1:1:3:0: +-%*2li: -0B1:0:3: +-%2li: -0b1:1:3:0: +-%*2li: -0b1:0:3: + %2li: -0:1:3:0: + %*2li: -0:0:3: + %2li: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2li: -0x0:0:3: + %2li: -00:1:3:0: + %*2li: -00:0:3: +-%2li: -0B0:1:3:0: +-%*2li: -0B0:0:3: +-%2li: -0b0:1:3:0: +-%*2li: -0b0:0:3: + %2li: 0:1:2:0: + %*2li: 0:0:2: + # BZ12701 %2li: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2li: 0x0:0:-1: + %2li: 00:1:3:0: + %*2li: 00:0:3: +-# BZ12701 %2li: 0B0:0:-1: +-# BZ12701 %*2li: 0B0:0:-1: +-# BZ12701 %2li: 0b0:0:-1: +-# BZ12701 %*2li: 0b0:0:-1: + %2li: 1:1:2:1: + %*2li: 1:0:2: + # BZ12701 %2li: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2li: 0x1:0:-1: + %2li: 01:1:3:1: + %*2li: 01:0:3: +-# BZ12701 %2li: 0B1:0:-1: +-# BZ12701 %*2li: 0B1:0:-1: +-# BZ12701 %2li: 0b1:0:-1: +-# BZ12701 %*2li: 0b1:0:-1: + %2li: 42:1:3:42: + %*2li: 42:0:3: + # BZ12701 %2li: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2li: 0x2A:0:-1: + %2li: 052:1:3:5: + %*2li: 052:0:3: +-# BZ12701 %2li: 0B101010:0:-1: +-# BZ12701 %*2li: 0B101010:0:-1: +-# BZ12701 %2li: 0b101010:0:-1: +-# BZ12701 %*2li: 0b101010:0:-1: + %2li: 2147483647:1:3:21: + %*2li: 2147483647:0:3: + # BZ12701 %2li: 0X7fffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2li: 0x7FFFFFFF:0:-1: + %2li: 017777777777:1:3:1: + %*2li: 017777777777:0:3: +-# BZ12701 %2li: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2li: 0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0b1111111111111111111111111111111:0:-1: + %2li: 2147483648:1:3:21: + %*2li: 2147483648:0:3: + # BZ12701 %2li: 0X80000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2li: 0x80000000:0:-1: + %2li: 020000000000:1:3:2: + %*2li: 020000000000:0:3: +-# BZ12701 %2li: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2li: 0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0b10000000000000000000000000000000:0:-1: + %2li: 2147487889:1:3:21: + %*2li: 2147487889:0:3: + # BZ12701 %2li: 0X80001091:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2li: 0x80001091:0:-1: + %2li: 020000010221:1:3:2: + %*2li: 020000010221:0:3: +-# BZ12701 %2li: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2li: 0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2li: 0b10000000000000000001000010010001:0:-1: + %2li: +0:1:3:0: + %*2li: +0:0:3: + %2li: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2li: +0x0:0:3: + %2li: +00:1:3:0: + %*2li: +00:0:3: +-%2li: +0B0:1:3:0: +-%*2li: +0B0:0:3: +-%2li: +0b0:1:3:0: +-%*2li: +0b0:0:3: + %2li: +1:1:3:1: + %*2li: +1:0:3: + %2li: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2li: +0x1:0:3: + %2li: +01:1:3:0: + %*2li: +01:0:3: +-%2li: +0B1:1:3:0: +-%*2li: +0B1:0:3: +-%2li: +0b1:1:3:0: +-%*2li: +0b1:0:3: + %2li: +42:1:3:4: + %*2li: +42:0:3: + %2li: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2li: +0x2A:0:3: + %2li: +052:1:3:0: + %*2li: +052:0:3: +-%2li: +0B101010:1:3:0: +-%*2li: +0B101010:0:3: +-%2li: +0b101010:1:3:0: +-%*2li: +0b101010:0:3: + %2li: +2147483647:1:3:2: + %*2li: +2147483647:0:3: + %2li: +0X7fffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2li: +0x7FFFFFFF:0:3: + %2li: +017777777777:1:3:0: + %*2li: +017777777777:0:3: +-%2li: +0B1111111111111111111111111111111:1:3:0: +-%*2li: +0B1111111111111111111111111111111:0:3: +-%2li: +0b1111111111111111111111111111111:1:3:0: +-%*2li: +0b1111111111111111111111111111111:0:3: + %2li: +2147483648:1:3:2: + %*2li: +2147483648:0:3: + %2li: +0X80000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2li: +0x80000000:0:3: + %2li: +020000000000:1:3:0: + %*2li: +020000000000:0:3: +-%2li: +0B10000000000000000000000000000000:1:3:0: +-%*2li: +0B10000000000000000000000000000000:0:3: +-%2li: +0b10000000000000000000000000000000:1:3:0: +-%*2li: +0b10000000000000000000000000000000:0:3: + %2li: +2147487889:1:3:2: + %*2li: +2147487889:0:3: + %2li: +0X80001091:1:3:0: +@@ -1302,10 +874,6 @@ + %*2li: +0x80001091:0:3: + %2li: +020000010221:1:3:0: + %*2li: +020000010221:0:3: +-%2li: +0B10000000000000000001000010010001:1:3:0: +-%*2li: +0B10000000000000000001000010010001:0:3: +-%2li: +0b10000000000000000001000010010001:1:3:0: +-%*2li: +0b10000000000000000001000010010001:0:3: + %15li: :0:-1: + %*15li: :0:-1: + %15li: -2147484882:1:12:-2147483648: +@@ -1316,10 +884,6 @@ + %*15li: -0x800004D2:0:12: + %15li: -020000002322:1:14:-2147483648: + %*15li: -020000002322:0:14: +-%15li: -0B10000000000000000000010011010010:1:16:-2048: +-%*15li: -0B10000000000000000000010011010010:0:16: +-%15li: -0b10000000000000000000010011010010:1:16:-2048: +-%*15li: -0b10000000000000000000010011010010:0:16: + %15li: -2147483649:1:12:-2147483648: + %*15li: -2147483649:0:12: + %15li: -0X80000001:1:12:-2147483648: +@@ -1328,10 +892,6 @@ + %*15li: -0x80000001:0:12: + %15li: -020000000001:1:14:-2147483648: + %*15li: -020000000001:0:14: +-%15li: -0B10000000000000000000000000000001:1:16:-2048: +-%*15li: -0B10000000000000000000000000000001:0:16: +-%15li: -0b10000000000000000000000000000001:1:16:-2048: +-%*15li: -0b10000000000000000000000000000001:0:16: + %15li: -2147483648:1:12:-2147483648: + %*15li: -2147483648:0:12: + %15li: -0X80000000:1:12:-2147483648: +@@ -1340,10 +900,6 @@ + %*15li: -0x80000000:0:12: + %15li: -020000000000:1:14:-2147483648: + %*15li: -020000000000:0:14: +-%15li: -0B10000000000000000000000000000000:1:16:-2048: +-%*15li: -0B10000000000000000000000000000000:0:16: +-%15li: -0b10000000000000000000000000000000:1:16:-2048: +-%*15li: -0b10000000000000000000000000000000:0:16: + %15li: -123:1:5:-123: + %*15li: -123:0:5: + %15li: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*15li: -0x7B:0:6: + %15li: -0173:1:6:-123: + %*15li: -0173:0:6: +-%15li: -0B1111011:1:11:-123: +-%*15li: -0B1111011:0:11: +-%15li: -0b1111011:1:11:-123: +-%*15li: -0b1111011:0:11: + %15li: -1:1:3:-1: + %*15li: -1:0:3: + %15li: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*15li: -0x1:0:5: + %15li: -01:1:4:-1: + %*15li: -01:0:4: +-%15li: -0B1:1:5:-1: +-%*15li: -0B1:0:5: +-%15li: -0b1:1:5:-1: +-%*15li: -0b1:0:5: + %15li: -0:1:3:0: + %*15li: -0:0:3: + %15li: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*15li: -0x0:0:5: + %15li: -00:1:4:0: + %*15li: -00:0:4: +-%15li: -0B0:1:5:0: +-%*15li: -0B0:0:5: +-%15li: -0b0:1:5:0: +-%*15li: -0b0:0:5: + %15li: 0:1:2:0: + %*15li: 0:0:2: + %15li: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*15li: 0x0:0:4: + %15li: 00:1:3:0: + %*15li: 00:0:3: +-%15li: 0B0:1:4:0: +-%*15li: 0B0:0:4: +-%15li: 0b0:1:4:0: +-%*15li: 0b0:0:4: + %15li: 1:1:2:1: + %*15li: 1:0:2: + %15li: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*15li: 0x1:0:4: + %15li: 01:1:3:1: + %*15li: 01:0:3: +-%15li: 0B1:1:4:1: +-%*15li: 0B1:0:4: +-%15li: 0b1:1:4:1: +-%*15li: 0b1:0:4: + %15li: 42:1:3:42: + %*15li: 42:0:3: + %15li: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*15li: 0x2A:0:5: + %15li: 052:1:4:42: + %*15li: 052:0:4: +-%15li: 0B101010:1:9:42: +-%*15li: 0B101010:0:9: +-%15li: 0b101010:1:9:42: +-%*15li: 0b101010:0:9: + %15li: 2147483647:1:11:2147483647: + %*15li: 2147483647:0:11: + %15li: 0X7fffffff:1:11:2147483647: +@@ -1424,10 +956,6 @@ + %*15li: 0x7FFFFFFF:0:11: + %15li: 017777777777:1:13:2147483647: + %*15li: 017777777777:0:13: +-%15li: 0B1111111111111111111111111111111:1:16:8191: +-%*15li: 0B1111111111111111111111111111111:0:16: +-%15li: 0b1111111111111111111111111111111:1:16:8191: +-%*15li: 0b1111111111111111111111111111111:0:16: + %15li: 2147483648:1:11:2147483647: + %*15li: 2147483648:0:11: + %15li: 0X80000000:1:11:2147483647: +@@ -1436,10 +964,6 @@ + %*15li: 0x80000000:0:11: + %15li: 020000000000:1:13:2147483647: + %*15li: 020000000000:0:13: +-%15li: 0B10000000000000000000000000000000:1:16:4096: +-%*15li: 0B10000000000000000000000000000000:0:16: +-%15li: 0b10000000000000000000000000000000:1:16:4096: +-%*15li: 0b10000000000000000000000000000000:0:16: + %15li: 2147487889:1:11:2147483647: + %*15li: 2147487889:0:11: + %15li: 0X80001091:1:11:2147483647: +@@ -1448,10 +972,6 @@ + %*15li: 0x80001091:0:11: + %15li: 020000010221:1:13:2147483647: + %*15li: 020000010221:0:13: +-%15li: 0B10000000000000000001000010010001:1:16:4096: +-%*15li: 0B10000000000000000001000010010001:0:16: +-%15li: 0b10000000000000000001000010010001:1:16:4096: +-%*15li: 0b10000000000000000001000010010001:0:16: + %15li: +0:1:3:0: + %*15li: +0:0:3: + %15li: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*15li: +0x0:0:5: + %15li: +00:1:4:0: + %*15li: +00:0:4: +-%15li: +0B0:1:5:0: +-%*15li: +0B0:0:5: +-%15li: +0b0:1:5:0: +-%*15li: +0b0:0:5: + %15li: +1:1:3:1: + %*15li: +1:0:3: + %15li: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*15li: +0x1:0:5: + %15li: +01:1:4:1: + %*15li: +01:0:4: +-%15li: +0B1:1:5:1: +-%*15li: +0B1:0:5: +-%15li: +0b1:1:5:1: +-%*15li: +0b1:0:5: + %15li: +42:1:4:42: + %*15li: +42:0:4: + %15li: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*15li: +0x2A:0:6: + %15li: +052:1:5:42: + %*15li: +052:0:5: +-%15li: +0B101010:1:10:42: +-%*15li: +0B101010:0:10: +-%15li: +0b101010:1:10:42: +-%*15li: +0b101010:0:10: + %15li: +2147483647:1:12:2147483647: + %*15li: +2147483647:0:12: + %15li: +0X7fffffff:1:12:2147483647: +@@ -1496,10 +1004,6 @@ + %*15li: +0x7FFFFFFF:0:12: + %15li: +017777777777:1:14:2147483647: + %*15li: +017777777777:0:14: +-%15li: +0B1111111111111111111111111111111:1:16:4095: +-%*15li: +0B1111111111111111111111111111111:0:16: +-%15li: +0b1111111111111111111111111111111:1:16:4095: +-%*15li: +0b1111111111111111111111111111111:0:16: + %15li: +2147483648:1:12:2147483647: + %*15li: +2147483648:0:12: + %15li: +0X80000000:1:12:2147483647: +@@ -1508,10 +1012,6 @@ + %*15li: +0x80000000:0:12: + %15li: +020000000000:1:14:2147483647: + %*15li: +020000000000:0:14: +-%15li: +0B10000000000000000000000000000000:1:16:2048: +-%*15li: +0B10000000000000000000000000000000:0:16: +-%15li: +0b10000000000000000000000000000000:1:16:2048: +-%*15li: +0b10000000000000000000000000000000:0:16: + %15li: +2147487889:1:12:2147483647: + %*15li: +2147487889:0:12: + %15li: +0X80001091:1:12:2147483647: +@@ -1520,7 +1020,3 @@ + %*15li: +0x80001091:0:12: + %15li: +020000010221:1:14:2147483647: + %*15li: +020000010221:0:14: +-%15li: +0B10000000000000000001000010010001:1:16:2048: +-%*15li: +0B10000000000000000001000010010001:0:16: +-%15li: +0b10000000000000000001000010010001:1:16:2048: +-%*15li: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +deleted file mode 100644 +index 34aa451bfc732b2f..0000000000000000 +--- a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%b::0:-1: +-%*b::0:-1: +-%b:-1111011:1:8:4294967173: +-%*b:-1111011:0:8: +-%b:-0B1111011:1:10:4294967173: +-%*b:-0B1111011:0:10: +-%b:-0b1111011:1:10:4294967173: +-%*b:-0b1111011:0:10: +-%b:-1:1:2:4294967295: +-%*b:-1:0:2: +-%b:-0B1:1:4:4294967295: +-%*b:-0B1:0:4: +-%b:-0b1:1:4:4294967295: +-%*b:-0b1:0:4: +-%b:-0:1:2:0: +-%*b:-0:0:2: +-%b:-0B0:1:4:0: +-%*b:-0B0:0:4: +-%b:-0b0:1:4:0: +-%*b:-0b0:0:4: +-%b:0:1:1:0: +-%*b:0:0:1: +-%b:0B0:1:3:0: +-%*b:0B0:0:3: +-%b:0b0:1:3:0: +-%*b:0b0:0:3: +-%b:1:1:1:1: +-%*b:1:0:1: +-%b:0B1:1:3:1: +-%*b:0B1:0:3: +-%b:0b1:1:3:1: +-%*b:0b1:0:3: +-%b:101010:1:6:42: +-%*b:101010:0:6: +-%b:0B101010:1:8:42: +-%*b:0B101010:0:8: +-%b:0b101010:1:8:42: +-%*b:0b101010:0:8: +-%b:11111111111111111111111111111111:1:32:4294967295: +-%*b:11111111111111111111111111111111:0:32: +-%b:0B11111111111111111111111111111111:1:34:4294967295: +-%*b:0B11111111111111111111111111111111:0:34: +-%b:0b11111111111111111111111111111111:1:34:4294967295: +-%*b:0b11111111111111111111111111111111:0:34: +-%b:100000000000000000000000000000000:1:33:4294967295: +-%*b:100000000000000000000000000000000:0:33: +-%b:0B100000000000000000000000000000000:1:35:4294967295: +-%*b:0B100000000000000000000000000000000:0:35: +-%b:0b100000000000000000000000000000000:1:35:4294967295: +-%*b:0b100000000000000000000000000000000:0:35: +-%b:100000000000000000001000010010001:1:33:4294967295: +-%*b:100000000000000000001000010010001:0:33: +-%b:0B100000000000000000001000010010001:1:35:4294967295: +-%*b:0B100000000000000000001000010010001:0:35: +-%b:0b100000000000000000001000010010001:1:35:4294967295: +-%*b:0b100000000000000000001000010010001:0:35: +-%b:+0:1:2:0: +-%*b:+0:0:2: +-%b:+0B0:1:4:0: +-%*b:+0B0:0:4: +-%b:+0b0:1:4:0: +-%*b:+0b0:0:4: +-%b:+1:1:2:1: +-%*b:+1:0:2: +-%b:+0B1:1:4:1: +-%*b:+0B1:0:4: +-%b:+0b1:1:4:1: +-%*b:+0b1:0:4: +-%b:+101010:1:7:42: +-%*b:+101010:0:7: +-%b:+0B101010:1:9:42: +-%*b:+0B101010:0:9: +-%b:+0b101010:1:9:42: +-%*b:+0b101010:0:9: +-%b:+11111111111111111111111111111111:1:33:4294967295: +-%*b:+11111111111111111111111111111111:0:33: +-%b:+0B11111111111111111111111111111111:1:35:4294967295: +-%*b:+0B11111111111111111111111111111111:0:35: +-%b:+0b11111111111111111111111111111111:1:35:4294967295: +-%*b:+0b11111111111111111111111111111111:0:35: +-%b:+100000000000000000000000000000000:1:34:4294967295: +-%*b:+100000000000000000000000000000000:0:34: +-%b:+0B100000000000000000000000000000000:1:36:4294967295: +-%*b:+0B100000000000000000000000000000000:0:36: +-%b:+0b100000000000000000000000000000000:1:36:4294967295: +-%*b:+0b100000000000000000000000000000000:0:36: +-%b:+100000000000000000001000010010001:1:34:4294967295: +-%*b:+100000000000000000001000010010001:0:34: +-%b:+0B100000000000000000001000010010001:1:36:4294967295: +-%*b:+0B100000000000000000001000010010001:0:36: +-%b:+0b100000000000000000001000010010001:1:36:4294967295: +-%*b:+0b100000000000000000001000010010001:0:36: +-%1b::0:-1: +-%*1b::0:-1: +-%1b:-1111011:0:-1: +-%*1b:-1111011:0:-1: +-%1b:-0B1111011:0:-1: +-%*1b:-0B1111011:0:-1: +-%1b:-0b1111011:0:-1: +-%*1b:-0b1111011:0:-1: +-%1b:-1:0:-1: +-%*1b:-1:0:-1: +-%1b:-0B1:0:-1: +-%*1b:-0B1:0:-1: +-%1b:-0b1:0:-1: +-%*1b:-0b1:0:-1: +-%1b:-0:0:-1: +-%*1b:-0:0:-1: +-%1b:-0B0:0:-1: +-%*1b:-0B0:0:-1: +-%1b:-0b0:0:-1: +-%*1b:-0b0:0:-1: +-%1b:0:1:1:0: +-%*1b:0:0:1: +-%1b:0B0:1:1:0: +-%*1b:0B0:0:1: +-%1b:0b0:1:1:0: +-%*1b:0b0:0:1: +-%1b:1:1:1:1: +-%*1b:1:0:1: +-%1b:0B1:1:1:0: +-%*1b:0B1:0:1: +-%1b:0b1:1:1:0: +-%*1b:0b1:0:1: +-%1b:101010:1:1:1: +-%*1b:101010:0:1: +-%1b:0B101010:1:1:0: +-%*1b:0B101010:0:1: +-%1b:0b101010:1:1:0: +-%*1b:0b101010:0:1: +-%1b:11111111111111111111111111111111:1:1:1: +-%*1b:11111111111111111111111111111111:0:1: +-%1b:0B11111111111111111111111111111111:1:1:0: +-%*1b:0B11111111111111111111111111111111:0:1: +-%1b:0b11111111111111111111111111111111:1:1:0: +-%*1b:0b11111111111111111111111111111111:0:1: +-%1b:100000000000000000000000000000000:1:1:1: +-%*1b:100000000000000000000000000000000:0:1: +-%1b:0B100000000000000000000000000000000:1:1:0: +-%*1b:0B100000000000000000000000000000000:0:1: +-%1b:0b100000000000000000000000000000000:1:1:0: +-%*1b:0b100000000000000000000000000000000:0:1: +-%1b:100000000000000000001000010010001:1:1:1: +-%*1b:100000000000000000001000010010001:0:1: +-%1b:0B100000000000000000001000010010001:1:1:0: +-%*1b:0B100000000000000000001000010010001:0:1: +-%1b:0b100000000000000000001000010010001:1:1:0: +-%*1b:0b100000000000000000001000010010001:0:1: +-%1b:+0:0:-1: +-%*1b:+0:0:-1: +-%1b:+0B0:0:-1: +-%*1b:+0B0:0:-1: +-%1b:+0b0:0:-1: +-%*1b:+0b0:0:-1: +-%1b:+1:0:-1: +-%*1b:+1:0:-1: +-%1b:+0B1:0:-1: +-%*1b:+0B1:0:-1: +-%1b:+0b1:0:-1: +-%*1b:+0b1:0:-1: +-%1b:+101010:0:-1: +-%*1b:+101010:0:-1: +-%1b:+0B101010:0:-1: +-%*1b:+0B101010:0:-1: +-%1b:+0b101010:0:-1: +-%*1b:+0b101010:0:-1: +-%1b:+11111111111111111111111111111111:0:-1: +-%*1b:+11111111111111111111111111111111:0:-1: +-%1b:+0B11111111111111111111111111111111:0:-1: +-%*1b:+0B11111111111111111111111111111111:0:-1: +-%1b:+0b11111111111111111111111111111111:0:-1: +-%*1b:+0b11111111111111111111111111111111:0:-1: +-%1b:+100000000000000000000000000000000:0:-1: +-%*1b:+100000000000000000000000000000000:0:-1: +-%1b:+0B100000000000000000000000000000000:0:-1: +-%*1b:+0B100000000000000000000000000000000:0:-1: +-%1b:+0b100000000000000000000000000000000:0:-1: +-%*1b:+0b100000000000000000000000000000000:0:-1: +-%1b:+100000000000000000001000010010001:0:-1: +-%*1b:+100000000000000000001000010010001:0:-1: +-%1b:+0B100000000000000000001000010010001:0:-1: +-%*1b:+0B100000000000000000001000010010001:0:-1: +-%1b:+0b100000000000000000001000010010001:0:-1: +-%*1b:+0b100000000000000000001000010010001:0:-1: +-%2b::0:-1: +-%*2b::0:-1: +-%2b:-1111011:1:2:4294967295: +-%*2b:-1111011:0:2: +-%2b:-0B1111011:1:2:0: +-%*2b:-0B1111011:0:2: +-%2b:-0b1111011:1:2:0: +-%*2b:-0b1111011:0:2: +-%2b:-1:1:2:4294967295: +-%*2b:-1:0:2: +-%2b:-0B1:1:2:0: +-%*2b:-0B1:0:2: +-%2b:-0b1:1:2:0: +-%*2b:-0b1:0:2: +-%2b:-0:1:2:0: +-%*2b:-0:0:2: +-%2b:-0B0:1:2:0: +-%*2b:-0B0:0:2: +-%2b:-0b0:1:2:0: +-%*2b:-0b0:0:2: +-%2b:0:1:1:0: +-%*2b:0:0:1: +-# BZ12701 %2b:0B0:0:-1: +-# BZ12701 %*2b:0B0:0:-1: +-# BZ12701 %2b:0b0:0:-1: +-# BZ12701 %*2b:0b0:0:-1: +-%2b:1:1:1:1: +-%*2b:1:0:1: +-# BZ12701 %2b:0B1:0:-1: +-# BZ12701 %*2b:0B1:0:-1: +-# BZ12701 %2b:0b1:0:-1: +-# BZ12701 %*2b:0b1:0:-1: +-%2b:101010:1:2:2: +-%*2b:101010:0:2: +-# BZ12701 %2b:0B101010:0:-1: +-# BZ12701 %*2b:0B101010:0:-1: +-# BZ12701 %2b:0b101010:0:-1: +-# BZ12701 %*2b:0b101010:0:-1: +-%2b:11111111111111111111111111111111:1:2:3: +-%*2b:11111111111111111111111111111111:0:2: +-# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: +-%2b:100000000000000000000000000000000:1:2:2: +-%*2b:100000000000000000000000000000000:0:2: +-# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: +-%2b:100000000000000000001000010010001:1:2:2: +-%*2b:100000000000000000001000010010001:0:2: +-# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: +-%2b:+0:1:2:0: +-%*2b:+0:0:2: +-%2b:+0B0:1:2:0: +-%*2b:+0B0:0:2: +-%2b:+0b0:1:2:0: +-%*2b:+0b0:0:2: +-%2b:+1:1:2:1: +-%*2b:+1:0:2: +-%2b:+0B1:1:2:0: +-%*2b:+0B1:0:2: +-%2b:+0b1:1:2:0: +-%*2b:+0b1:0:2: +-%2b:+101010:1:2:1: +-%*2b:+101010:0:2: +-%2b:+0B101010:1:2:0: +-%*2b:+0B101010:0:2: +-%2b:+0b101010:1:2:0: +-%*2b:+0b101010:0:2: +-%2b:+11111111111111111111111111111111:1:2:1: +-%*2b:+11111111111111111111111111111111:0:2: +-%2b:+0B11111111111111111111111111111111:1:2:0: +-%*2b:+0B11111111111111111111111111111111:0:2: +-%2b:+0b11111111111111111111111111111111:1:2:0: +-%*2b:+0b11111111111111111111111111111111:0:2: +-%2b:+100000000000000000000000000000000:1:2:1: +-%*2b:+100000000000000000000000000000000:0:2: +-%2b:+0B100000000000000000000000000000000:1:2:0: +-%*2b:+0B100000000000000000000000000000000:0:2: +-%2b:+0b100000000000000000000000000000000:1:2:0: +-%*2b:+0b100000000000000000000000000000000:0:2: +-%2b:+100000000000000000001000010010001:1:2:1: +-%*2b:+100000000000000000001000010010001:0:2: +-%2b:+0B100000000000000000001000010010001:1:2:0: +-%*2b:+0B100000000000000000001000010010001:0:2: +-%2b:+0b100000000000000000001000010010001:1:2:0: +-%*2b:+0b100000000000000000001000010010001:0:2: +-%8b::0:-1: +-%*8b::0:-1: +-%8b:-1111011:1:8:4294967173: +-%*8b:-1111011:0:8: +-%8b:-0B1111011:1:8:4294967266: +-%*8b:-0B1111011:0:8: +-%8b:-0b1111011:1:8:4294967266: +-%*8b:-0b1111011:0:8: +-%8b:-1:1:2:4294967295: +-%*8b:-1:0:2: +-%8b:-0B1:1:4:4294967295: +-%*8b:-0B1:0:4: +-%8b:-0b1:1:4:4294967295: +-%*8b:-0b1:0:4: +-%8b:-0:1:2:0: +-%*8b:-0:0:2: +-%8b:-0B0:1:4:0: +-%*8b:-0B0:0:4: +-%8b:-0b0:1:4:0: +-%*8b:-0b0:0:4: +-%8b:0:1:1:0: +-%*8b:0:0:1: +-%8b:0B0:1:3:0: +-%*8b:0B0:0:3: +-%8b:0b0:1:3:0: +-%*8b:0b0:0:3: +-%8b:1:1:1:1: +-%*8b:1:0:1: +-%8b:0B1:1:3:1: +-%*8b:0B1:0:3: +-%8b:0b1:1:3:1: +-%*8b:0b1:0:3: +-%8b:101010:1:6:42: +-%*8b:101010:0:6: +-%8b:0B101010:1:8:42: +-%*8b:0B101010:0:8: +-%8b:0b101010:1:8:42: +-%*8b:0b101010:0:8: +-%8b:11111111111111111111111111111111:1:8:255: +-%*8b:11111111111111111111111111111111:0:8: +-%8b:0B11111111111111111111111111111111:1:8:63: +-%*8b:0B11111111111111111111111111111111:0:8: +-%8b:0b11111111111111111111111111111111:1:8:63: +-%*8b:0b11111111111111111111111111111111:0:8: +-%8b:100000000000000000000000000000000:1:8:128: +-%*8b:100000000000000000000000000000000:0:8: +-%8b:0B100000000000000000000000000000000:1:8:32: +-%*8b:0B100000000000000000000000000000000:0:8: +-%8b:0b100000000000000000000000000000000:1:8:32: +-%*8b:0b100000000000000000000000000000000:0:8: +-%8b:100000000000000000001000010010001:1:8:128: +-%*8b:100000000000000000001000010010001:0:8: +-%8b:0B100000000000000000001000010010001:1:8:32: +-%*8b:0B100000000000000000001000010010001:0:8: +-%8b:0b100000000000000000001000010010001:1:8:32: +-%*8b:0b100000000000000000001000010010001:0:8: +-%8b:+0:1:2:0: +-%*8b:+0:0:2: +-%8b:+0B0:1:4:0: +-%*8b:+0B0:0:4: +-%8b:+0b0:1:4:0: +-%*8b:+0b0:0:4: +-%8b:+1:1:2:1: +-%*8b:+1:0:2: +-%8b:+0B1:1:4:1: +-%*8b:+0B1:0:4: +-%8b:+0b1:1:4:1: +-%*8b:+0b1:0:4: +-%8b:+101010:1:7:42: +-%*8b:+101010:0:7: +-%8b:+0B101010:1:8:21: +-%*8b:+0B101010:0:8: +-%8b:+0b101010:1:8:21: +-%*8b:+0b101010:0:8: +-%8b:+11111111111111111111111111111111:1:8:127: +-%*8b:+11111111111111111111111111111111:0:8: +-%8b:+0B11111111111111111111111111111111:1:8:31: +-%*8b:+0B11111111111111111111111111111111:0:8: +-%8b:+0b11111111111111111111111111111111:1:8:31: +-%*8b:+0b11111111111111111111111111111111:0:8: +-%8b:+100000000000000000000000000000000:1:8:64: +-%*8b:+100000000000000000000000000000000:0:8: +-%8b:+0B100000000000000000000000000000000:1:8:16: +-%*8b:+0B100000000000000000000000000000000:0:8: +-%8b:+0b100000000000000000000000000000000:1:8:16: +-%*8b:+0b100000000000000000000000000000000:0:8: +-%8b:+100000000000000000001000010010001:1:8:64: +-%*8b:+100000000000000000001000010010001:0:8: +-%8b:+0B100000000000000000001000010010001:1:8:16: +-%*8b:+0B100000000000000000001000010010001:0:8: +-%8b:+0b100000000000000000001000010010001:1:8:16: +-%*8b:+0b100000000000000000001000010010001:0:8: +-%15b::0:-1: +-%*15b::0:-1: +-%15b:-1111011:1:8:4294967173: +-%*15b:-1111011:0:8: +-%15b:-0B1111011:1:10:4294967173: +-%*15b:-0B1111011:0:10: +-%15b:-0b1111011:1:10:4294967173: +-%*15b:-0b1111011:0:10: +-%15b:-1:1:2:4294967295: +-%*15b:-1:0:2: +-%15b:-0B1:1:4:4294967295: +-%*15b:-0B1:0:4: +-%15b:-0b1:1:4:4294967295: +-%*15b:-0b1:0:4: +-%15b:-0:1:2:0: +-%*15b:-0:0:2: +-%15b:-0B0:1:4:0: +-%*15b:-0B0:0:4: +-%15b:-0b0:1:4:0: +-%*15b:-0b0:0:4: +-%15b:0:1:1:0: +-%*15b:0:0:1: +-%15b:0B0:1:3:0: +-%*15b:0B0:0:3: +-%15b:0b0:1:3:0: +-%*15b:0b0:0:3: +-%15b:1:1:1:1: +-%*15b:1:0:1: +-%15b:0B1:1:3:1: +-%*15b:0B1:0:3: +-%15b:0b1:1:3:1: +-%*15b:0b1:0:3: +-%15b:101010:1:6:42: +-%*15b:101010:0:6: +-%15b:0B101010:1:8:42: +-%*15b:0B101010:0:8: +-%15b:0b101010:1:8:42: +-%*15b:0b101010:0:8: +-%15b:11111111111111111111111111111111:1:15:32767: +-%*15b:11111111111111111111111111111111:0:15: +-%15b:0B11111111111111111111111111111111:1:15:8191: +-%*15b:0B11111111111111111111111111111111:0:15: +-%15b:0b11111111111111111111111111111111:1:15:8191: +-%*15b:0b11111111111111111111111111111111:0:15: +-%15b:100000000000000000000000000000000:1:15:16384: +-%*15b:100000000000000000000000000000000:0:15: +-%15b:0B100000000000000000000000000000000:1:15:4096: +-%*15b:0B100000000000000000000000000000000:0:15: +-%15b:0b100000000000000000000000000000000:1:15:4096: +-%*15b:0b100000000000000000000000000000000:0:15: +-%15b:100000000000000000001000010010001:1:15:16384: +-%*15b:100000000000000000001000010010001:0:15: +-%15b:0B100000000000000000001000010010001:1:15:4096: +-%*15b:0B100000000000000000001000010010001:0:15: +-%15b:0b100000000000000000001000010010001:1:15:4096: +-%*15b:0b100000000000000000001000010010001:0:15: +-%15b:+0:1:2:0: +-%*15b:+0:0:2: +-%15b:+0B0:1:4:0: +-%*15b:+0B0:0:4: +-%15b:+0b0:1:4:0: +-%*15b:+0b0:0:4: +-%15b:+1:1:2:1: +-%*15b:+1:0:2: +-%15b:+0B1:1:4:1: +-%*15b:+0B1:0:4: +-%15b:+0b1:1:4:1: +-%*15b:+0b1:0:4: +-%15b:+101010:1:7:42: +-%*15b:+101010:0:7: +-%15b:+0B101010:1:9:42: +-%*15b:+0B101010:0:9: +-%15b:+0b101010:1:9:42: +-%*15b:+0b101010:0:9: +-%15b:+11111111111111111111111111111111:1:15:16383: +-%*15b:+11111111111111111111111111111111:0:15: +-%15b:+0B11111111111111111111111111111111:1:15:4095: +-%*15b:+0B11111111111111111111111111111111:0:15: +-%15b:+0b11111111111111111111111111111111:1:15:4095: +-%*15b:+0b11111111111111111111111111111111:0:15: +-%15b:+100000000000000000000000000000000:1:15:8192: +-%*15b:+100000000000000000000000000000000:0:15: +-%15b:+0B100000000000000000000000000000000:1:15:2048: +-%*15b:+0B100000000000000000000000000000000:0:15: +-%15b:+0b100000000000000000000000000000000:1:15:2048: +-%*15b:+0b100000000000000000000000000000000:0:15: +-%15b:+100000000000000000001000010010001:1:15:8192: +-%*15b:+100000000000000000001000010010001:0:15: +-%15b:+0B100000000000000000001000010010001:1:15:2048: +-%*15b:+0B100000000000000000001000010010001:0:15: +-%15b:+0b100000000000000000001000010010001:1:15:2048: +-%*15b:+0b100000000000000000001000010010001:0:15: +-%2b: :0:-1: +-%*2b: :0:-1: +-%2b: -1111011:1:3:4294967295: +-%*2b: -1111011:0:3: +-%2b: -0B1111011:1:3:0: +-%*2b: -0B1111011:0:3: +-%2b: -0b1111011:1:3:0: +-%*2b: -0b1111011:0:3: +-%2b: -1:1:3:4294967295: +-%*2b: -1:0:3: +-%2b: -0B1:1:3:0: +-%*2b: -0B1:0:3: +-%2b: -0b1:1:3:0: +-%*2b: -0b1:0:3: +-%2b: -0:1:3:0: +-%*2b: -0:0:3: +-%2b: -0B0:1:3:0: +-%*2b: -0B0:0:3: +-%2b: -0b0:1:3:0: +-%*2b: -0b0:0:3: +-%2b: 0:1:2:0: +-%*2b: 0:0:2: +-# BZ12701 %2b: 0B0:0:-1: +-# BZ12701 %*2b: 0B0:0:-1: +-# BZ12701 %2b: 0b0:0:-1: +-# BZ12701 %*2b: 0b0:0:-1: +-%2b: 1:1:2:1: +-%*2b: 1:0:2: +-# BZ12701 %2b: 0B1:0:-1: +-# BZ12701 %*2b: 0B1:0:-1: +-# BZ12701 %2b: 0b1:0:-1: +-# BZ12701 %*2b: 0b1:0:-1: +-%2b: 101010:1:3:2: +-%*2b: 101010:0:3: +-# BZ12701 %2b: 0B101010:0:-1: +-# BZ12701 %*2b: 0B101010:0:-1: +-# BZ12701 %2b: 0b101010:0:-1: +-# BZ12701 %*2b: 0b101010:0:-1: +-%2b: 11111111111111111111111111111111:1:3:3: +-%*2b: 11111111111111111111111111111111:0:3: +-# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: +-%2b: 100000000000000000000000000000000:1:3:2: +-%*2b: 100000000000000000000000000000000:0:3: +-# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: +-%2b: 100000000000000000001000010010001:1:3:2: +-%*2b: 100000000000000000001000010010001:0:3: +-# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: +-%2b: +0:1:3:0: +-%*2b: +0:0:3: +-%2b: +0B0:1:3:0: +-%*2b: +0B0:0:3: +-%2b: +0b0:1:3:0: +-%*2b: +0b0:0:3: +-%2b: +1:1:3:1: +-%*2b: +1:0:3: +-%2b: +0B1:1:3:0: +-%*2b: +0B1:0:3: +-%2b: +0b1:1:3:0: +-%*2b: +0b1:0:3: +-%2b: +101010:1:3:1: +-%*2b: +101010:0:3: +-%2b: +0B101010:1:3:0: +-%*2b: +0B101010:0:3: +-%2b: +0b101010:1:3:0: +-%*2b: +0b101010:0:3: +-%2b: +11111111111111111111111111111111:1:3:1: +-%*2b: +11111111111111111111111111111111:0:3: +-%2b: +0B11111111111111111111111111111111:1:3:0: +-%*2b: +0B11111111111111111111111111111111:0:3: +-%2b: +0b11111111111111111111111111111111:1:3:0: +-%*2b: +0b11111111111111111111111111111111:0:3: +-%2b: +100000000000000000000000000000000:1:3:1: +-%*2b: +100000000000000000000000000000000:0:3: +-%2b: +0B100000000000000000000000000000000:1:3:0: +-%*2b: +0B100000000000000000000000000000000:0:3: +-%2b: +0b100000000000000000000000000000000:1:3:0: +-%*2b: +0b100000000000000000000000000000000:0:3: +-%2b: +100000000000000000001000010010001:1:3:1: +-%*2b: +100000000000000000001000010010001:0:3: +-%2b: +0B100000000000000000001000010010001:1:3:0: +-%*2b: +0B100000000000000000001000010010001:0:3: +-%2b: +0b100000000000000000001000010010001:1:3:0: +-%*2b: +0b100000000000000000001000010010001:0:3: +-%15b: :0:-1: +-%*15b: :0:-1: +-%15b: -1111011:1:9:4294967173: +-%*15b: -1111011:0:9: +-%15b: -0B1111011:1:11:4294967173: +-%*15b: -0B1111011:0:11: +-%15b: -0b1111011:1:11:4294967173: +-%*15b: -0b1111011:0:11: +-%15b: -1:1:3:4294967295: +-%*15b: -1:0:3: +-%15b: -0B1:1:5:4294967295: +-%*15b: -0B1:0:5: +-%15b: -0b1:1:5:4294967295: +-%*15b: -0b1:0:5: +-%15b: -0:1:3:0: +-%*15b: -0:0:3: +-%15b: -0B0:1:5:0: +-%*15b: -0B0:0:5: +-%15b: -0b0:1:5:0: +-%*15b: -0b0:0:5: +-%15b: 0:1:2:0: +-%*15b: 0:0:2: +-%15b: 0B0:1:4:0: +-%*15b: 0B0:0:4: +-%15b: 0b0:1:4:0: +-%*15b: 0b0:0:4: +-%15b: 1:1:2:1: +-%*15b: 1:0:2: +-%15b: 0B1:1:4:1: +-%*15b: 0B1:0:4: +-%15b: 0b1:1:4:1: +-%*15b: 0b1:0:4: +-%15b: 101010:1:7:42: +-%*15b: 101010:0:7: +-%15b: 0B101010:1:9:42: +-%*15b: 0B101010:0:9: +-%15b: 0b101010:1:9:42: +-%*15b: 0b101010:0:9: +-%15b: 11111111111111111111111111111111:1:16:32767: +-%*15b: 11111111111111111111111111111111:0:16: +-%15b: 0B11111111111111111111111111111111:1:16:8191: +-%*15b: 0B11111111111111111111111111111111:0:16: +-%15b: 0b11111111111111111111111111111111:1:16:8191: +-%*15b: 0b11111111111111111111111111111111:0:16: +-%15b: 100000000000000000000000000000000:1:16:16384: +-%*15b: 100000000000000000000000000000000:0:16: +-%15b: 0B100000000000000000000000000000000:1:16:4096: +-%*15b: 0B100000000000000000000000000000000:0:16: +-%15b: 0b100000000000000000000000000000000:1:16:4096: +-%*15b: 0b100000000000000000000000000000000:0:16: +-%15b: 100000000000000000001000010010001:1:16:16384: +-%*15b: 100000000000000000001000010010001:0:16: +-%15b: 0B100000000000000000001000010010001:1:16:4096: +-%*15b: 0B100000000000000000001000010010001:0:16: +-%15b: 0b100000000000000000001000010010001:1:16:4096: +-%*15b: 0b100000000000000000001000010010001:0:16: +-%15b: +0:1:3:0: +-%*15b: +0:0:3: +-%15b: +0B0:1:5:0: +-%*15b: +0B0:0:5: +-%15b: +0b0:1:5:0: +-%*15b: +0b0:0:5: +-%15b: +1:1:3:1: +-%*15b: +1:0:3: +-%15b: +0B1:1:5:1: +-%*15b: +0B1:0:5: +-%15b: +0b1:1:5:1: +-%*15b: +0b1:0:5: +-%15b: +101010:1:8:42: +-%*15b: +101010:0:8: +-%15b: +0B101010:1:10:42: +-%*15b: +0B101010:0:10: +-%15b: +0b101010:1:10:42: +-%*15b: +0b101010:0:10: +-%15b: +11111111111111111111111111111111:1:16:16383: +-%*15b: +11111111111111111111111111111111:0:16: +-%15b: +0B11111111111111111111111111111111:1:16:4095: +-%*15b: +0B11111111111111111111111111111111:0:16: +-%15b: +0b11111111111111111111111111111111:1:16:4095: +-%*15b: +0b11111111111111111111111111111111:0:16: +-%15b: +100000000000000000000000000000000:1:16:8192: +-%*15b: +100000000000000000000000000000000:0:16: +-%15b: +0B100000000000000000000000000000000:1:16:2048: +-%*15b: +0B100000000000000000000000000000000:0:16: +-%15b: +0b100000000000000000000000000000000:1:16:2048: +-%*15b: +0b100000000000000000000000000000000:0:16: +-%15b: +100000000000000000001000010010001:1:16:8192: +-%*15b: +100000000000000000001000010010001:0:16: +-%15b: +0B100000000000000000001000010010001:1:16:2048: +-%*15b: +0B100000000000000000001000010010001:0:16: +-%15b: +0b100000000000000000001000010010001:1:16:2048: +-%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +deleted file mode 100644 +index 311ee862476f51d0..0000000000000000 +--- a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%lb::0:-1: +-%*lb::0:-1: +-%lb:-1111011:1:8:4294967173: +-%*lb:-1111011:0:8: +-%lb:-0B1111011:1:10:4294967173: +-%*lb:-0B1111011:0:10: +-%lb:-0b1111011:1:10:4294967173: +-%*lb:-0b1111011:0:10: +-%lb:-1:1:2:4294967295: +-%*lb:-1:0:2: +-%lb:-0B1:1:4:4294967295: +-%*lb:-0B1:0:4: +-%lb:-0b1:1:4:4294967295: +-%*lb:-0b1:0:4: +-%lb:-0:1:2:0: +-%*lb:-0:0:2: +-%lb:-0B0:1:4:0: +-%*lb:-0B0:0:4: +-%lb:-0b0:1:4:0: +-%*lb:-0b0:0:4: +-%lb:0:1:1:0: +-%*lb:0:0:1: +-%lb:0B0:1:3:0: +-%*lb:0B0:0:3: +-%lb:0b0:1:3:0: +-%*lb:0b0:0:3: +-%lb:1:1:1:1: +-%*lb:1:0:1: +-%lb:0B1:1:3:1: +-%*lb:0B1:0:3: +-%lb:0b1:1:3:1: +-%*lb:0b1:0:3: +-%lb:101010:1:6:42: +-%*lb:101010:0:6: +-%lb:0B101010:1:8:42: +-%*lb:0B101010:0:8: +-%lb:0b101010:1:8:42: +-%*lb:0b101010:0:8: +-%lb:11111111111111111111111111111111:1:32:4294967295: +-%*lb:11111111111111111111111111111111:0:32: +-%lb:0B11111111111111111111111111111111:1:34:4294967295: +-%*lb:0B11111111111111111111111111111111:0:34: +-%lb:0b11111111111111111111111111111111:1:34:4294967295: +-%*lb:0b11111111111111111111111111111111:0:34: +-%lb:100000000000000000000000000000000:1:33:4294967295: +-%*lb:100000000000000000000000000000000:0:33: +-%lb:0B100000000000000000000000000000000:1:35:4294967295: +-%*lb:0B100000000000000000000000000000000:0:35: +-%lb:0b100000000000000000000000000000000:1:35:4294967295: +-%*lb:0b100000000000000000000000000000000:0:35: +-%lb:100000000000000000001000010010001:1:33:4294967295: +-%*lb:100000000000000000001000010010001:0:33: +-%lb:0B100000000000000000001000010010001:1:35:4294967295: +-%*lb:0B100000000000000000001000010010001:0:35: +-%lb:0b100000000000000000001000010010001:1:35:4294967295: +-%*lb:0b100000000000000000001000010010001:0:35: +-%lb:+0:1:2:0: +-%*lb:+0:0:2: +-%lb:+0B0:1:4:0: +-%*lb:+0B0:0:4: +-%lb:+0b0:1:4:0: +-%*lb:+0b0:0:4: +-%lb:+1:1:2:1: +-%*lb:+1:0:2: +-%lb:+0B1:1:4:1: +-%*lb:+0B1:0:4: +-%lb:+0b1:1:4:1: +-%*lb:+0b1:0:4: +-%lb:+101010:1:7:42: +-%*lb:+101010:0:7: +-%lb:+0B101010:1:9:42: +-%*lb:+0B101010:0:9: +-%lb:+0b101010:1:9:42: +-%*lb:+0b101010:0:9: +-%lb:+11111111111111111111111111111111:1:33:4294967295: +-%*lb:+11111111111111111111111111111111:0:33: +-%lb:+0B11111111111111111111111111111111:1:35:4294967295: +-%*lb:+0B11111111111111111111111111111111:0:35: +-%lb:+0b11111111111111111111111111111111:1:35:4294967295: +-%*lb:+0b11111111111111111111111111111111:0:35: +-%lb:+100000000000000000000000000000000:1:34:4294967295: +-%*lb:+100000000000000000000000000000000:0:34: +-%lb:+0B100000000000000000000000000000000:1:36:4294967295: +-%*lb:+0B100000000000000000000000000000000:0:36: +-%lb:+0b100000000000000000000000000000000:1:36:4294967295: +-%*lb:+0b100000000000000000000000000000000:0:36: +-%lb:+100000000000000000001000010010001:1:34:4294967295: +-%*lb:+100000000000000000001000010010001:0:34: +-%lb:+0B100000000000000000001000010010001:1:36:4294967295: +-%*lb:+0B100000000000000000001000010010001:0:36: +-%lb:+0b100000000000000000001000010010001:1:36:4294967295: +-%*lb:+0b100000000000000000001000010010001:0:36: +-%1lb::0:-1: +-%*1lb::0:-1: +-%1lb:-1111011:0:-1: +-%*1lb:-1111011:0:-1: +-%1lb:-0B1111011:0:-1: +-%*1lb:-0B1111011:0:-1: +-%1lb:-0b1111011:0:-1: +-%*1lb:-0b1111011:0:-1: +-%1lb:-1:0:-1: +-%*1lb:-1:0:-1: +-%1lb:-0B1:0:-1: +-%*1lb:-0B1:0:-1: +-%1lb:-0b1:0:-1: +-%*1lb:-0b1:0:-1: +-%1lb:-0:0:-1: +-%*1lb:-0:0:-1: +-%1lb:-0B0:0:-1: +-%*1lb:-0B0:0:-1: +-%1lb:-0b0:0:-1: +-%*1lb:-0b0:0:-1: +-%1lb:0:1:1:0: +-%*1lb:0:0:1: +-%1lb:0B0:1:1:0: +-%*1lb:0B0:0:1: +-%1lb:0b0:1:1:0: +-%*1lb:0b0:0:1: +-%1lb:1:1:1:1: +-%*1lb:1:0:1: +-%1lb:0B1:1:1:0: +-%*1lb:0B1:0:1: +-%1lb:0b1:1:1:0: +-%*1lb:0b1:0:1: +-%1lb:101010:1:1:1: +-%*1lb:101010:0:1: +-%1lb:0B101010:1:1:0: +-%*1lb:0B101010:0:1: +-%1lb:0b101010:1:1:0: +-%*1lb:0b101010:0:1: +-%1lb:11111111111111111111111111111111:1:1:1: +-%*1lb:11111111111111111111111111111111:0:1: +-%1lb:0B11111111111111111111111111111111:1:1:0: +-%*1lb:0B11111111111111111111111111111111:0:1: +-%1lb:0b11111111111111111111111111111111:1:1:0: +-%*1lb:0b11111111111111111111111111111111:0:1: +-%1lb:100000000000000000000000000000000:1:1:1: +-%*1lb:100000000000000000000000000000000:0:1: +-%1lb:0B100000000000000000000000000000000:1:1:0: +-%*1lb:0B100000000000000000000000000000000:0:1: +-%1lb:0b100000000000000000000000000000000:1:1:0: +-%*1lb:0b100000000000000000000000000000000:0:1: +-%1lb:100000000000000000001000010010001:1:1:1: +-%*1lb:100000000000000000001000010010001:0:1: +-%1lb:0B100000000000000000001000010010001:1:1:0: +-%*1lb:0B100000000000000000001000010010001:0:1: +-%1lb:0b100000000000000000001000010010001:1:1:0: +-%*1lb:0b100000000000000000001000010010001:0:1: +-%1lb:+0:0:-1: +-%*1lb:+0:0:-1: +-%1lb:+0B0:0:-1: +-%*1lb:+0B0:0:-1: +-%1lb:+0b0:0:-1: +-%*1lb:+0b0:0:-1: +-%1lb:+1:0:-1: +-%*1lb:+1:0:-1: +-%1lb:+0B1:0:-1: +-%*1lb:+0B1:0:-1: +-%1lb:+0b1:0:-1: +-%*1lb:+0b1:0:-1: +-%1lb:+101010:0:-1: +-%*1lb:+101010:0:-1: +-%1lb:+0B101010:0:-1: +-%*1lb:+0B101010:0:-1: +-%1lb:+0b101010:0:-1: +-%*1lb:+0b101010:0:-1: +-%1lb:+11111111111111111111111111111111:0:-1: +-%*1lb:+11111111111111111111111111111111:0:-1: +-%1lb:+0B11111111111111111111111111111111:0:-1: +-%*1lb:+0B11111111111111111111111111111111:0:-1: +-%1lb:+0b11111111111111111111111111111111:0:-1: +-%*1lb:+0b11111111111111111111111111111111:0:-1: +-%1lb:+100000000000000000000000000000000:0:-1: +-%*1lb:+100000000000000000000000000000000:0:-1: +-%1lb:+0B100000000000000000000000000000000:0:-1: +-%*1lb:+0B100000000000000000000000000000000:0:-1: +-%1lb:+0b100000000000000000000000000000000:0:-1: +-%*1lb:+0b100000000000000000000000000000000:0:-1: +-%1lb:+100000000000000000001000010010001:0:-1: +-%*1lb:+100000000000000000001000010010001:0:-1: +-%1lb:+0B100000000000000000001000010010001:0:-1: +-%*1lb:+0B100000000000000000001000010010001:0:-1: +-%1lb:+0b100000000000000000001000010010001:0:-1: +-%*1lb:+0b100000000000000000001000010010001:0:-1: +-%2lb::0:-1: +-%*2lb::0:-1: +-%2lb:-1111011:1:2:4294967295: +-%*2lb:-1111011:0:2: +-%2lb:-0B1111011:1:2:0: +-%*2lb:-0B1111011:0:2: +-%2lb:-0b1111011:1:2:0: +-%*2lb:-0b1111011:0:2: +-%2lb:-1:1:2:4294967295: +-%*2lb:-1:0:2: +-%2lb:-0B1:1:2:0: +-%*2lb:-0B1:0:2: +-%2lb:-0b1:1:2:0: +-%*2lb:-0b1:0:2: +-%2lb:-0:1:2:0: +-%*2lb:-0:0:2: +-%2lb:-0B0:1:2:0: +-%*2lb:-0B0:0:2: +-%2lb:-0b0:1:2:0: +-%*2lb:-0b0:0:2: +-%2lb:0:1:1:0: +-%*2lb:0:0:1: +-# BZ12701 %2lb:0B0:0:-1: +-# BZ12701 %*2lb:0B0:0:-1: +-# BZ12701 %2lb:0b0:0:-1: +-# BZ12701 %*2lb:0b0:0:-1: +-%2lb:1:1:1:1: +-%*2lb:1:0:1: +-# BZ12701 %2lb:0B1:0:-1: +-# BZ12701 %*2lb:0B1:0:-1: +-# BZ12701 %2lb:0b1:0:-1: +-# BZ12701 %*2lb:0b1:0:-1: +-%2lb:101010:1:2:2: +-%*2lb:101010:0:2: +-# BZ12701 %2lb:0B101010:0:-1: +-# BZ12701 %*2lb:0B101010:0:-1: +-# BZ12701 %2lb:0b101010:0:-1: +-# BZ12701 %*2lb:0b101010:0:-1: +-%2lb:11111111111111111111111111111111:1:2:3: +-%*2lb:11111111111111111111111111111111:0:2: +-# BZ12701 %2lb:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2lb:0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0b11111111111111111111111111111111:0:-1: +-%2lb:100000000000000000000000000000000:1:2:2: +-%*2lb:100000000000000000000000000000000:0:2: +-# BZ12701 %2lb:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2lb:0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0b100000000000000000000000000000000:0:-1: +-%2lb:100000000000000000001000010010001:1:2:2: +-%*2lb:100000000000000000001000010010001:0:2: +-# BZ12701 %2lb:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2lb:0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb:0b100000000000000000001000010010001:0:-1: +-%2lb:+0:1:2:0: +-%*2lb:+0:0:2: +-%2lb:+0B0:1:2:0: +-%*2lb:+0B0:0:2: +-%2lb:+0b0:1:2:0: +-%*2lb:+0b0:0:2: +-%2lb:+1:1:2:1: +-%*2lb:+1:0:2: +-%2lb:+0B1:1:2:0: +-%*2lb:+0B1:0:2: +-%2lb:+0b1:1:2:0: +-%*2lb:+0b1:0:2: +-%2lb:+101010:1:2:1: +-%*2lb:+101010:0:2: +-%2lb:+0B101010:1:2:0: +-%*2lb:+0B101010:0:2: +-%2lb:+0b101010:1:2:0: +-%*2lb:+0b101010:0:2: +-%2lb:+11111111111111111111111111111111:1:2:1: +-%*2lb:+11111111111111111111111111111111:0:2: +-%2lb:+0B11111111111111111111111111111111:1:2:0: +-%*2lb:+0B11111111111111111111111111111111:0:2: +-%2lb:+0b11111111111111111111111111111111:1:2:0: +-%*2lb:+0b11111111111111111111111111111111:0:2: +-%2lb:+100000000000000000000000000000000:1:2:1: +-%*2lb:+100000000000000000000000000000000:0:2: +-%2lb:+0B100000000000000000000000000000000:1:2:0: +-%*2lb:+0B100000000000000000000000000000000:0:2: +-%2lb:+0b100000000000000000000000000000000:1:2:0: +-%*2lb:+0b100000000000000000000000000000000:0:2: +-%2lb:+100000000000000000001000010010001:1:2:1: +-%*2lb:+100000000000000000001000010010001:0:2: +-%2lb:+0B100000000000000000001000010010001:1:2:0: +-%*2lb:+0B100000000000000000001000010010001:0:2: +-%2lb:+0b100000000000000000001000010010001:1:2:0: +-%*2lb:+0b100000000000000000001000010010001:0:2: +-%8lb::0:-1: +-%*8lb::0:-1: +-%8lb:-1111011:1:8:4294967173: +-%*8lb:-1111011:0:8: +-%8lb:-0B1111011:1:8:4294967266: +-%*8lb:-0B1111011:0:8: +-%8lb:-0b1111011:1:8:4294967266: +-%*8lb:-0b1111011:0:8: +-%8lb:-1:1:2:4294967295: +-%*8lb:-1:0:2: +-%8lb:-0B1:1:4:4294967295: +-%*8lb:-0B1:0:4: +-%8lb:-0b1:1:4:4294967295: +-%*8lb:-0b1:0:4: +-%8lb:-0:1:2:0: +-%*8lb:-0:0:2: +-%8lb:-0B0:1:4:0: +-%*8lb:-0B0:0:4: +-%8lb:-0b0:1:4:0: +-%*8lb:-0b0:0:4: +-%8lb:0:1:1:0: +-%*8lb:0:0:1: +-%8lb:0B0:1:3:0: +-%*8lb:0B0:0:3: +-%8lb:0b0:1:3:0: +-%*8lb:0b0:0:3: +-%8lb:1:1:1:1: +-%*8lb:1:0:1: +-%8lb:0B1:1:3:1: +-%*8lb:0B1:0:3: +-%8lb:0b1:1:3:1: +-%*8lb:0b1:0:3: +-%8lb:101010:1:6:42: +-%*8lb:101010:0:6: +-%8lb:0B101010:1:8:42: +-%*8lb:0B101010:0:8: +-%8lb:0b101010:1:8:42: +-%*8lb:0b101010:0:8: +-%8lb:11111111111111111111111111111111:1:8:255: +-%*8lb:11111111111111111111111111111111:0:8: +-%8lb:0B11111111111111111111111111111111:1:8:63: +-%*8lb:0B11111111111111111111111111111111:0:8: +-%8lb:0b11111111111111111111111111111111:1:8:63: +-%*8lb:0b11111111111111111111111111111111:0:8: +-%8lb:100000000000000000000000000000000:1:8:128: +-%*8lb:100000000000000000000000000000000:0:8: +-%8lb:0B100000000000000000000000000000000:1:8:32: +-%*8lb:0B100000000000000000000000000000000:0:8: +-%8lb:0b100000000000000000000000000000000:1:8:32: +-%*8lb:0b100000000000000000000000000000000:0:8: +-%8lb:100000000000000000001000010010001:1:8:128: +-%*8lb:100000000000000000001000010010001:0:8: +-%8lb:0B100000000000000000001000010010001:1:8:32: +-%*8lb:0B100000000000000000001000010010001:0:8: +-%8lb:0b100000000000000000001000010010001:1:8:32: +-%*8lb:0b100000000000000000001000010010001:0:8: +-%8lb:+0:1:2:0: +-%*8lb:+0:0:2: +-%8lb:+0B0:1:4:0: +-%*8lb:+0B0:0:4: +-%8lb:+0b0:1:4:0: +-%*8lb:+0b0:0:4: +-%8lb:+1:1:2:1: +-%*8lb:+1:0:2: +-%8lb:+0B1:1:4:1: +-%*8lb:+0B1:0:4: +-%8lb:+0b1:1:4:1: +-%*8lb:+0b1:0:4: +-%8lb:+101010:1:7:42: +-%*8lb:+101010:0:7: +-%8lb:+0B101010:1:8:21: +-%*8lb:+0B101010:0:8: +-%8lb:+0b101010:1:8:21: +-%*8lb:+0b101010:0:8: +-%8lb:+11111111111111111111111111111111:1:8:127: +-%*8lb:+11111111111111111111111111111111:0:8: +-%8lb:+0B11111111111111111111111111111111:1:8:31: +-%*8lb:+0B11111111111111111111111111111111:0:8: +-%8lb:+0b11111111111111111111111111111111:1:8:31: +-%*8lb:+0b11111111111111111111111111111111:0:8: +-%8lb:+100000000000000000000000000000000:1:8:64: +-%*8lb:+100000000000000000000000000000000:0:8: +-%8lb:+0B100000000000000000000000000000000:1:8:16: +-%*8lb:+0B100000000000000000000000000000000:0:8: +-%8lb:+0b100000000000000000000000000000000:1:8:16: +-%*8lb:+0b100000000000000000000000000000000:0:8: +-%8lb:+100000000000000000001000010010001:1:8:64: +-%*8lb:+100000000000000000001000010010001:0:8: +-%8lb:+0B100000000000000000001000010010001:1:8:16: +-%*8lb:+0B100000000000000000001000010010001:0:8: +-%8lb:+0b100000000000000000001000010010001:1:8:16: +-%*8lb:+0b100000000000000000001000010010001:0:8: +-%15lb::0:-1: +-%*15lb::0:-1: +-%15lb:-1111011:1:8:4294967173: +-%*15lb:-1111011:0:8: +-%15lb:-0B1111011:1:10:4294967173: +-%*15lb:-0B1111011:0:10: +-%15lb:-0b1111011:1:10:4294967173: +-%*15lb:-0b1111011:0:10: +-%15lb:-1:1:2:4294967295: +-%*15lb:-1:0:2: +-%15lb:-0B1:1:4:4294967295: +-%*15lb:-0B1:0:4: +-%15lb:-0b1:1:4:4294967295: +-%*15lb:-0b1:0:4: +-%15lb:-0:1:2:0: +-%*15lb:-0:0:2: +-%15lb:-0B0:1:4:0: +-%*15lb:-0B0:0:4: +-%15lb:-0b0:1:4:0: +-%*15lb:-0b0:0:4: +-%15lb:0:1:1:0: +-%*15lb:0:0:1: +-%15lb:0B0:1:3:0: +-%*15lb:0B0:0:3: +-%15lb:0b0:1:3:0: +-%*15lb:0b0:0:3: +-%15lb:1:1:1:1: +-%*15lb:1:0:1: +-%15lb:0B1:1:3:1: +-%*15lb:0B1:0:3: +-%15lb:0b1:1:3:1: +-%*15lb:0b1:0:3: +-%15lb:101010:1:6:42: +-%*15lb:101010:0:6: +-%15lb:0B101010:1:8:42: +-%*15lb:0B101010:0:8: +-%15lb:0b101010:1:8:42: +-%*15lb:0b101010:0:8: +-%15lb:11111111111111111111111111111111:1:15:32767: +-%*15lb:11111111111111111111111111111111:0:15: +-%15lb:0B11111111111111111111111111111111:1:15:8191: +-%*15lb:0B11111111111111111111111111111111:0:15: +-%15lb:0b11111111111111111111111111111111:1:15:8191: +-%*15lb:0b11111111111111111111111111111111:0:15: +-%15lb:100000000000000000000000000000000:1:15:16384: +-%*15lb:100000000000000000000000000000000:0:15: +-%15lb:0B100000000000000000000000000000000:1:15:4096: +-%*15lb:0B100000000000000000000000000000000:0:15: +-%15lb:0b100000000000000000000000000000000:1:15:4096: +-%*15lb:0b100000000000000000000000000000000:0:15: +-%15lb:100000000000000000001000010010001:1:15:16384: +-%*15lb:100000000000000000001000010010001:0:15: +-%15lb:0B100000000000000000001000010010001:1:15:4096: +-%*15lb:0B100000000000000000001000010010001:0:15: +-%15lb:0b100000000000000000001000010010001:1:15:4096: +-%*15lb:0b100000000000000000001000010010001:0:15: +-%15lb:+0:1:2:0: +-%*15lb:+0:0:2: +-%15lb:+0B0:1:4:0: +-%*15lb:+0B0:0:4: +-%15lb:+0b0:1:4:0: +-%*15lb:+0b0:0:4: +-%15lb:+1:1:2:1: +-%*15lb:+1:0:2: +-%15lb:+0B1:1:4:1: +-%*15lb:+0B1:0:4: +-%15lb:+0b1:1:4:1: +-%*15lb:+0b1:0:4: +-%15lb:+101010:1:7:42: +-%*15lb:+101010:0:7: +-%15lb:+0B101010:1:9:42: +-%*15lb:+0B101010:0:9: +-%15lb:+0b101010:1:9:42: +-%*15lb:+0b101010:0:9: +-%15lb:+11111111111111111111111111111111:1:15:16383: +-%*15lb:+11111111111111111111111111111111:0:15: +-%15lb:+0B11111111111111111111111111111111:1:15:4095: +-%*15lb:+0B11111111111111111111111111111111:0:15: +-%15lb:+0b11111111111111111111111111111111:1:15:4095: +-%*15lb:+0b11111111111111111111111111111111:0:15: +-%15lb:+100000000000000000000000000000000:1:15:8192: +-%*15lb:+100000000000000000000000000000000:0:15: +-%15lb:+0B100000000000000000000000000000000:1:15:2048: +-%*15lb:+0B100000000000000000000000000000000:0:15: +-%15lb:+0b100000000000000000000000000000000:1:15:2048: +-%*15lb:+0b100000000000000000000000000000000:0:15: +-%15lb:+100000000000000000001000010010001:1:15:8192: +-%*15lb:+100000000000000000001000010010001:0:15: +-%15lb:+0B100000000000000000001000010010001:1:15:2048: +-%*15lb:+0B100000000000000000001000010010001:0:15: +-%15lb:+0b100000000000000000001000010010001:1:15:2048: +-%*15lb:+0b100000000000000000001000010010001:0:15: +-%2lb: :0:-1: +-%*2lb: :0:-1: +-%2lb: -1111011:1:3:4294967295: +-%*2lb: -1111011:0:3: +-%2lb: -0B1111011:1:3:0: +-%*2lb: -0B1111011:0:3: +-%2lb: -0b1111011:1:3:0: +-%*2lb: -0b1111011:0:3: +-%2lb: -1:1:3:4294967295: +-%*2lb: -1:0:3: +-%2lb: -0B1:1:3:0: +-%*2lb: -0B1:0:3: +-%2lb: -0b1:1:3:0: +-%*2lb: -0b1:0:3: +-%2lb: -0:1:3:0: +-%*2lb: -0:0:3: +-%2lb: -0B0:1:3:0: +-%*2lb: -0B0:0:3: +-%2lb: -0b0:1:3:0: +-%*2lb: -0b0:0:3: +-%2lb: 0:1:2:0: +-%*2lb: 0:0:2: +-# BZ12701 %2lb: 0B0:0:-1: +-# BZ12701 %*2lb: 0B0:0:-1: +-# BZ12701 %2lb: 0b0:0:-1: +-# BZ12701 %*2lb: 0b0:0:-1: +-%2lb: 1:1:2:1: +-%*2lb: 1:0:2: +-# BZ12701 %2lb: 0B1:0:-1: +-# BZ12701 %*2lb: 0B1:0:-1: +-# BZ12701 %2lb: 0b1:0:-1: +-# BZ12701 %*2lb: 0b1:0:-1: +-%2lb: 101010:1:3:2: +-%*2lb: 101010:0:3: +-# BZ12701 %2lb: 0B101010:0:-1: +-# BZ12701 %*2lb: 0B101010:0:-1: +-# BZ12701 %2lb: 0b101010:0:-1: +-# BZ12701 %*2lb: 0b101010:0:-1: +-%2lb: 11111111111111111111111111111111:1:3:3: +-%*2lb: 11111111111111111111111111111111:0:3: +-# BZ12701 %2lb: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2lb: 0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0b11111111111111111111111111111111:0:-1: +-%2lb: 100000000000000000000000000000000:1:3:2: +-%*2lb: 100000000000000000000000000000000:0:3: +-# BZ12701 %2lb: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2lb: 0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0b100000000000000000000000000000000:0:-1: +-%2lb: 100000000000000000001000010010001:1:3:2: +-%*2lb: 100000000000000000001000010010001:0:3: +-# BZ12701 %2lb: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2lb: 0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2lb: 0b100000000000000000001000010010001:0:-1: +-%2lb: +0:1:3:0: +-%*2lb: +0:0:3: +-%2lb: +0B0:1:3:0: +-%*2lb: +0B0:0:3: +-%2lb: +0b0:1:3:0: +-%*2lb: +0b0:0:3: +-%2lb: +1:1:3:1: +-%*2lb: +1:0:3: +-%2lb: +0B1:1:3:0: +-%*2lb: +0B1:0:3: +-%2lb: +0b1:1:3:0: +-%*2lb: +0b1:0:3: +-%2lb: +101010:1:3:1: +-%*2lb: +101010:0:3: +-%2lb: +0B101010:1:3:0: +-%*2lb: +0B101010:0:3: +-%2lb: +0b101010:1:3:0: +-%*2lb: +0b101010:0:3: +-%2lb: +11111111111111111111111111111111:1:3:1: +-%*2lb: +11111111111111111111111111111111:0:3: +-%2lb: +0B11111111111111111111111111111111:1:3:0: +-%*2lb: +0B11111111111111111111111111111111:0:3: +-%2lb: +0b11111111111111111111111111111111:1:3:0: +-%*2lb: +0b11111111111111111111111111111111:0:3: +-%2lb: +100000000000000000000000000000000:1:3:1: +-%*2lb: +100000000000000000000000000000000:0:3: +-%2lb: +0B100000000000000000000000000000000:1:3:0: +-%*2lb: +0B100000000000000000000000000000000:0:3: +-%2lb: +0b100000000000000000000000000000000:1:3:0: +-%*2lb: +0b100000000000000000000000000000000:0:3: +-%2lb: +100000000000000000001000010010001:1:3:1: +-%*2lb: +100000000000000000001000010010001:0:3: +-%2lb: +0B100000000000000000001000010010001:1:3:0: +-%*2lb: +0B100000000000000000001000010010001:0:3: +-%2lb: +0b100000000000000000001000010010001:1:3:0: +-%*2lb: +0b100000000000000000001000010010001:0:3: +-%15lb: :0:-1: +-%*15lb: :0:-1: +-%15lb: -1111011:1:9:4294967173: +-%*15lb: -1111011:0:9: +-%15lb: -0B1111011:1:11:4294967173: +-%*15lb: -0B1111011:0:11: +-%15lb: -0b1111011:1:11:4294967173: +-%*15lb: -0b1111011:0:11: +-%15lb: -1:1:3:4294967295: +-%*15lb: -1:0:3: +-%15lb: -0B1:1:5:4294967295: +-%*15lb: -0B1:0:5: +-%15lb: -0b1:1:5:4294967295: +-%*15lb: -0b1:0:5: +-%15lb: -0:1:3:0: +-%*15lb: -0:0:3: +-%15lb: -0B0:1:5:0: +-%*15lb: -0B0:0:5: +-%15lb: -0b0:1:5:0: +-%*15lb: -0b0:0:5: +-%15lb: 0:1:2:0: +-%*15lb: 0:0:2: +-%15lb: 0B0:1:4:0: +-%*15lb: 0B0:0:4: +-%15lb: 0b0:1:4:0: +-%*15lb: 0b0:0:4: +-%15lb: 1:1:2:1: +-%*15lb: 1:0:2: +-%15lb: 0B1:1:4:1: +-%*15lb: 0B1:0:4: +-%15lb: 0b1:1:4:1: +-%*15lb: 0b1:0:4: +-%15lb: 101010:1:7:42: +-%*15lb: 101010:0:7: +-%15lb: 0B101010:1:9:42: +-%*15lb: 0B101010:0:9: +-%15lb: 0b101010:1:9:42: +-%*15lb: 0b101010:0:9: +-%15lb: 11111111111111111111111111111111:1:16:32767: +-%*15lb: 11111111111111111111111111111111:0:16: +-%15lb: 0B11111111111111111111111111111111:1:16:8191: +-%*15lb: 0B11111111111111111111111111111111:0:16: +-%15lb: 0b11111111111111111111111111111111:1:16:8191: +-%*15lb: 0b11111111111111111111111111111111:0:16: +-%15lb: 100000000000000000000000000000000:1:16:16384: +-%*15lb: 100000000000000000000000000000000:0:16: +-%15lb: 0B100000000000000000000000000000000:1:16:4096: +-%*15lb: 0B100000000000000000000000000000000:0:16: +-%15lb: 0b100000000000000000000000000000000:1:16:4096: +-%*15lb: 0b100000000000000000000000000000000:0:16: +-%15lb: 100000000000000000001000010010001:1:16:16384: +-%*15lb: 100000000000000000001000010010001:0:16: +-%15lb: 0B100000000000000000001000010010001:1:16:4096: +-%*15lb: 0B100000000000000000001000010010001:0:16: +-%15lb: 0b100000000000000000001000010010001:1:16:4096: +-%*15lb: 0b100000000000000000001000010010001:0:16: +-%15lb: +0:1:3:0: +-%*15lb: +0:0:3: +-%15lb: +0B0:1:5:0: +-%*15lb: +0B0:0:5: +-%15lb: +0b0:1:5:0: +-%*15lb: +0b0:0:5: +-%15lb: +1:1:3:1: +-%*15lb: +1:0:3: +-%15lb: +0B1:1:5:1: +-%*15lb: +0B1:0:5: +-%15lb: +0b1:1:5:1: +-%*15lb: +0b1:0:5: +-%15lb: +101010:1:8:42: +-%*15lb: +101010:0:8: +-%15lb: +0B101010:1:10:42: +-%*15lb: +0B101010:0:10: +-%15lb: +0b101010:1:10:42: +-%*15lb: +0b101010:0:10: +-%15lb: +11111111111111111111111111111111:1:16:16383: +-%*15lb: +11111111111111111111111111111111:0:16: +-%15lb: +0B11111111111111111111111111111111:1:16:4095: +-%*15lb: +0B11111111111111111111111111111111:0:16: +-%15lb: +0b11111111111111111111111111111111:1:16:4095: +-%*15lb: +0b11111111111111111111111111111111:0:16: +-%15lb: +100000000000000000000000000000000:1:16:8192: +-%*15lb: +100000000000000000000000000000000:0:16: +-%15lb: +0B100000000000000000000000000000000:1:16:2048: +-%*15lb: +0B100000000000000000000000000000000:0:16: +-%15lb: +0b100000000000000000000000000000000:1:16:2048: +-%*15lb: +0b100000000000000000000000000000000:0:16: +-%15lb: +100000000000000000001000010010001:1:16:8192: +-%*15lb: +100000000000000000001000010010001:0:16: +-%15lb: +0B100000000000000000001000010010001:1:16:2048: +-%*15lb: +0B100000000000000000001000010010001:0:16: +-%15lb: +0b100000000000000000001000010010001:1:16:2048: +-%*15lb: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-i.input b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +index 8450d1aefc55cddf..8357754da1ca14ef 100644 +--- a/sysdeps/wordsize-64/tst-scanf-format-int-i.input ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +@@ -8,10 +8,6 @@ + %*i:-0x800004D2:0:11: + %i:-020000002322:1:13:2147482414: + %*i:-020000002322:0:13: +-%i:-0B10000000000000000000010011010010:1:35:2147482414: +-%*i:-0B10000000000000000000010011010010:0:35: +-%i:-0b10000000000000000000010011010010:1:35:2147482414: +-%*i:-0b10000000000000000000010011010010:0:35: + %i:-2147483649:1:11:2147483647: + %*i:-2147483649:0:11: + %i:-0X80000001:1:11:2147483647: +@@ -20,10 +16,6 @@ + %*i:-0x80000001:0:11: + %i:-020000000001:1:13:2147483647: + %*i:-020000000001:0:13: +-%i:-0B10000000000000000000000000000001:1:35:2147483647: +-%*i:-0B10000000000000000000000000000001:0:35: +-%i:-0b10000000000000000000000000000001:1:35:2147483647: +-%*i:-0b10000000000000000000000000000001:0:35: + %i:-2147483648:1:11:-2147483648: + %*i:-2147483648:0:11: + %i:-0X80000000:1:11:-2147483648: +@@ -32,10 +24,6 @@ + %*i:-0x80000000:0:11: + %i:-020000000000:1:13:-2147483648: + %*i:-020000000000:0:13: +-%i:-0B10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0B10000000000000000000000000000000:0:35: +-%i:-0b10000000000000000000000000000000:1:35:-2147483648: +-%*i:-0b10000000000000000000000000000000:0:35: + %i:-123:1:4:-123: + %*i:-123:0:4: + %i:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*i:-0x7B:0:5: + %i:-0173:1:5:-123: + %*i:-0173:0:5: +-%i:-0B1111011:1:10:-123: +-%*i:-0B1111011:0:10: +-%i:-0b1111011:1:10:-123: +-%*i:-0b1111011:0:10: + %i:-1:1:2:-1: + %*i:-1:0:2: + %i:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*i:-0x1:0:4: + %i:-01:1:3:-1: + %*i:-01:0:3: +-%i:-0B1:1:4:-1: +-%*i:-0B1:0:4: +-%i:-0b1:1:4:-1: +-%*i:-0b1:0:4: + %i:-0:1:2:0: + %*i:-0:0:2: + %i:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*i:-0x0:0:4: + %i:-00:1:3:0: + %*i:-00:0:3: +-%i:-0B0:1:4:0: +-%*i:-0B0:0:4: +-%i:-0b0:1:4:0: +-%*i:-0b0:0:4: + %i:0:1:1:0: + %*i:0:0:1: + %i:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*i:0x0:0:3: + %i:00:1:2:0: + %*i:00:0:2: +-%i:0B0:1:3:0: +-%*i:0B0:0:3: +-%i:0b0:1:3:0: +-%*i:0b0:0:3: + %i:1:1:1:1: + %*i:1:0:1: + %i:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*i:0x1:0:3: + %i:01:1:2:1: + %*i:01:0:2: +-%i:0B1:1:3:1: +-%*i:0B1:0:3: +-%i:0b1:1:3:1: +-%*i:0b1:0:3: + %i:42:1:2:42: + %*i:42:0:2: + %i:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*i:0x2A:0:4: + %i:052:1:3:42: + %*i:052:0:3: +-%i:0B101010:1:8:42: +-%*i:0B101010:0:8: +-%i:0b101010:1:8:42: +-%*i:0b101010:0:8: + %i:2147483647:1:10:2147483647: + %*i:2147483647:0:10: + %i:0X7fffffff:1:10:2147483647: +@@ -116,10 +80,6 @@ + %*i:0x7FFFFFFF:0:10: + %i:017777777777:1:12:2147483647: + %*i:017777777777:0:12: +-%i:0B1111111111111111111111111111111:1:33:2147483647: +-%*i:0B1111111111111111111111111111111:0:33: +-%i:0b1111111111111111111111111111111:1:33:2147483647: +-%*i:0b1111111111111111111111111111111:0:33: + %i:2147483648:1:10:-2147483648: + %*i:2147483648:0:10: + %i:0X80000000:1:10:-2147483648: +@@ -128,10 +88,6 @@ + %*i:0x80000000:0:10: + %i:020000000000:1:12:-2147483648: + %*i:020000000000:0:12: +-%i:0B10000000000000000000000000000000:1:34:-2147483648: +-%*i:0B10000000000000000000000000000000:0:34: +-%i:0b10000000000000000000000000000000:1:34:-2147483648: +-%*i:0b10000000000000000000000000000000:0:34: + %i:2147487889:1:10:-2147479407: + %*i:2147487889:0:10: + %i:0X80001091:1:10:-2147479407: +@@ -140,10 +96,6 @@ + %*i:0x80001091:0:10: + %i:020000010221:1:12:-2147479407: + %*i:020000010221:0:12: +-%i:0B10000000000000000001000010010001:1:34:-2147479407: +-%*i:0B10000000000000000001000010010001:0:34: +-%i:0b10000000000000000001000010010001:1:34:-2147479407: +-%*i:0b10000000000000000001000010010001:0:34: + %i:+0:1:2:0: + %*i:+0:0:2: + %i:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*i:+0x0:0:4: + %i:+00:1:3:0: + %*i:+00:0:3: +-%i:+0B0:1:4:0: +-%*i:+0B0:0:4: +-%i:+0b0:1:4:0: +-%*i:+0b0:0:4: + %i:+1:1:2:1: + %*i:+1:0:2: + %i:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*i:+0x1:0:4: + %i:+01:1:3:1: + %*i:+01:0:3: +-%i:+0B1:1:4:1: +-%*i:+0B1:0:4: +-%i:+0b1:1:4:1: +-%*i:+0b1:0:4: + %i:+42:1:3:42: + %*i:+42:0:3: + %i:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*i:+0x2A:0:5: + %i:+052:1:4:42: + %*i:+052:0:4: +-%i:+0B101010:1:9:42: +-%*i:+0B101010:0:9: +-%i:+0b101010:1:9:42: +-%*i:+0b101010:0:9: + %i:+2147483647:1:11:2147483647: + %*i:+2147483647:0:11: + %i:+0X7fffffff:1:11:2147483647: +@@ -188,10 +128,6 @@ + %*i:+0x7FFFFFFF:0:11: + %i:+017777777777:1:13:2147483647: + %*i:+017777777777:0:13: +-%i:+0B1111111111111111111111111111111:1:34:2147483647: +-%*i:+0B1111111111111111111111111111111:0:34: +-%i:+0b1111111111111111111111111111111:1:34:2147483647: +-%*i:+0b1111111111111111111111111111111:0:34: + %i:+2147483648:1:11:-2147483648: + %*i:+2147483648:0:11: + %i:+0X80000000:1:11:-2147483648: +@@ -200,10 +136,6 @@ + %*i:+0x80000000:0:11: + %i:+020000000000:1:13:-2147483648: + %*i:+020000000000:0:13: +-%i:+0B10000000000000000000000000000000:1:35:-2147483648: +-%*i:+0B10000000000000000000000000000000:0:35: +-%i:+0b10000000000000000000000000000000:1:35:-2147483648: +-%*i:+0b10000000000000000000000000000000:0:35: + %i:+2147487889:1:11:-2147479407: + %*i:+2147487889:0:11: + %i:+0X80001091:1:11:-2147479407: +@@ -212,10 +144,6 @@ + %*i:+0x80001091:0:11: + %i:+020000010221:1:13:-2147479407: + %*i:+020000010221:0:13: +-%i:+0B10000000000000000001000010010001:1:35:-2147479407: +-%*i:+0B10000000000000000001000010010001:0:35: +-%i:+0b10000000000000000001000010010001:1:35:-2147479407: +-%*i:+0b10000000000000000001000010010001:0:35: + %1i::0:-1: + %*1i::0:-1: + %1i:-2147484882:0:-1: +@@ -226,10 +154,6 @@ + %*1i:-0x800004D2:0:-1: + %1i:-020000002322:0:-1: + %*1i:-020000002322:0:-1: +-%1i:-0B10000000000000000000010011010010:0:-1: +-%*1i:-0B10000000000000000000010011010010:0:-1: +-%1i:-0b10000000000000000000010011010010:0:-1: +-%*1i:-0b10000000000000000000010011010010:0:-1: + %1i:-2147483649:0:-1: + %*1i:-2147483649:0:-1: + %1i:-0X80000001:0:-1: +@@ -238,10 +162,6 @@ + %*1i:-0x80000001:0:-1: + %1i:-020000000001:0:-1: + %*1i:-020000000001:0:-1: +-%1i:-0B10000000000000000000000000000001:0:-1: +-%*1i:-0B10000000000000000000000000000001:0:-1: +-%1i:-0b10000000000000000000000000000001:0:-1: +-%*1i:-0b10000000000000000000000000000001:0:-1: + %1i:-2147483648:0:-1: + %*1i:-2147483648:0:-1: + %1i:-0X80000000:0:-1: +@@ -250,10 +170,6 @@ + %*1i:-0x80000000:0:-1: + %1i:-020000000000:0:-1: + %*1i:-020000000000:0:-1: +-%1i:-0B10000000000000000000000000000000:0:-1: +-%*1i:-0B10000000000000000000000000000000:0:-1: +-%1i:-0b10000000000000000000000000000000:0:-1: +-%*1i:-0b10000000000000000000000000000000:0:-1: + %1i:-123:0:-1: + %*1i:-123:0:-1: + %1i:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1i:-0x7B:0:-1: + %1i:-0173:0:-1: + %*1i:-0173:0:-1: +-%1i:-0B1111011:0:-1: +-%*1i:-0B1111011:0:-1: +-%1i:-0b1111011:0:-1: +-%*1i:-0b1111011:0:-1: + %1i:-1:0:-1: + %*1i:-1:0:-1: + %1i:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1i:-0x1:0:-1: + %1i:-01:0:-1: + %*1i:-01:0:-1: +-%1i:-0B1:0:-1: +-%*1i:-0B1:0:-1: +-%1i:-0b1:0:-1: +-%*1i:-0b1:0:-1: + %1i:-0:0:-1: + %*1i:-0:0:-1: + %1i:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1i:-0x0:0:-1: + %1i:-00:0:-1: + %*1i:-00:0:-1: +-%1i:-0B0:0:-1: +-%*1i:-0B0:0:-1: +-%1i:-0b0:0:-1: +-%*1i:-0b0:0:-1: + %1i:0:1:1:0: + %*1i:0:0:1: + %1i:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1i:0x0:0:1: + %1i:00:1:1:0: + %*1i:00:0:1: +-%1i:0B0:1:1:0: +-%*1i:0B0:0:1: +-%1i:0b0:1:1:0: +-%*1i:0b0:0:1: + %1i:1:1:1:1: + %*1i:1:0:1: + %1i:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1i:0x1:0:1: + %1i:01:1:1:0: + %*1i:01:0:1: +-%1i:0B1:1:1:0: +-%*1i:0B1:0:1: +-%1i:0b1:1:1:0: +-%*1i:0b1:0:1: + %1i:42:1:1:4: + %*1i:42:0:1: + %1i:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1i:0x2A:0:1: + %1i:052:1:1:0: + %*1i:052:0:1: +-%1i:0B101010:1:1:0: +-%*1i:0B101010:0:1: +-%1i:0b101010:1:1:0: +-%*1i:0b101010:0:1: + %1i:2147483647:1:1:2: + %*1i:2147483647:0:1: + %1i:0X7fffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1i:0x7FFFFFFF:0:1: + %1i:017777777777:1:1:0: + %*1i:017777777777:0:1: +-%1i:0B1111111111111111111111111111111:1:1:0: +-%*1i:0B1111111111111111111111111111111:0:1: +-%1i:0b1111111111111111111111111111111:1:1:0: +-%*1i:0b1111111111111111111111111111111:0:1: + %1i:2147483648:1:1:2: + %*1i:2147483648:0:1: + %1i:0X80000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1i:0x80000000:0:1: + %1i:020000000000:1:1:0: + %*1i:020000000000:0:1: +-%1i:0B10000000000000000000000000000000:1:1:0: +-%*1i:0B10000000000000000000000000000000:0:1: +-%1i:0b10000000000000000000000000000000:1:1:0: +-%*1i:0b10000000000000000000000000000000:0:1: + %1i:2147487889:1:1:2: + %*1i:2147487889:0:1: + %1i:0X80001091:1:1:0: +@@ -358,10 +242,6 @@ + %*1i:0x80001091:0:1: + %1i:020000010221:1:1:0: + %*1i:020000010221:0:1: +-%1i:0B10000000000000000001000010010001:1:1:0: +-%*1i:0B10000000000000000001000010010001:0:1: +-%1i:0b10000000000000000001000010010001:1:1:0: +-%*1i:0b10000000000000000001000010010001:0:1: + %1i:+0:0:-1: + %*1i:+0:0:-1: + %1i:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1i:+0x0:0:-1: + %1i:+00:0:-1: + %*1i:+00:0:-1: +-%1i:+0B0:0:-1: +-%*1i:+0B0:0:-1: +-%1i:+0b0:0:-1: +-%*1i:+0b0:0:-1: + %1i:+1:0:-1: + %*1i:+1:0:-1: + %1i:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1i:+0x1:0:-1: + %1i:+01:0:-1: + %*1i:+01:0:-1: +-%1i:+0B1:0:-1: +-%*1i:+0B1:0:-1: +-%1i:+0b1:0:-1: +-%*1i:+0b1:0:-1: + %1i:+42:0:-1: + %*1i:+42:0:-1: + %1i:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1i:+0x2A:0:-1: + %1i:+052:0:-1: + %*1i:+052:0:-1: +-%1i:+0B101010:0:-1: +-%*1i:+0B101010:0:-1: +-%1i:+0b101010:0:-1: +-%*1i:+0b101010:0:-1: + %1i:+2147483647:0:-1: + %*1i:+2147483647:0:-1: + %1i:+0X7fffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1i:+0x7FFFFFFF:0:-1: + %1i:+017777777777:0:-1: + %*1i:+017777777777:0:-1: +-%1i:+0B1111111111111111111111111111111:0:-1: +-%*1i:+0B1111111111111111111111111111111:0:-1: +-%1i:+0b1111111111111111111111111111111:0:-1: +-%*1i:+0b1111111111111111111111111111111:0:-1: + %1i:+2147483648:0:-1: + %*1i:+2147483648:0:-1: + %1i:+0X80000000:0:-1: +@@ -418,10 +282,6 @@ + %*1i:+0x80000000:0:-1: + %1i:+020000000000:0:-1: + %*1i:+020000000000:0:-1: +-%1i:+0B10000000000000000000000000000000:0:-1: +-%*1i:+0B10000000000000000000000000000000:0:-1: +-%1i:+0b10000000000000000000000000000000:0:-1: +-%*1i:+0b10000000000000000000000000000000:0:-1: + %1i:+2147487889:0:-1: + %*1i:+2147487889:0:-1: + %1i:+0X80001091:0:-1: +@@ -430,10 +290,6 @@ + %*1i:+0x80001091:0:-1: + %1i:+020000010221:0:-1: + %*1i:+020000010221:0:-1: +-%1i:+0B10000000000000000001000010010001:0:-1: +-%*1i:+0B10000000000000000001000010010001:0:-1: +-%1i:+0b10000000000000000001000010010001:0:-1: +-%*1i:+0b10000000000000000001000010010001:0:-1: + %2i::0:-1: + %*2i::0:-1: + %2i:-2147484882:1:2:-2: +@@ -444,10 +300,6 @@ + %*2i:-0x800004D2:0:2: + %2i:-020000002322:1:2:0: + %*2i:-020000002322:0:2: +-%2i:-0B10000000000000000000010011010010:1:2:0: +-%*2i:-0B10000000000000000000010011010010:0:2: +-%2i:-0b10000000000000000000010011010010:1:2:0: +-%*2i:-0b10000000000000000000010011010010:0:2: + %2i:-2147483649:1:2:-2: + %*2i:-2147483649:0:2: + %2i:-0X80000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2i:-0x80000001:0:2: + %2i:-020000000001:1:2:0: + %*2i:-020000000001:0:2: +-%2i:-0B10000000000000000000000000000001:1:2:0: +-%*2i:-0B10000000000000000000000000000001:0:2: +-%2i:-0b10000000000000000000000000000001:1:2:0: +-%*2i:-0b10000000000000000000000000000001:0:2: + %2i:-2147483648:1:2:-2: + %*2i:-2147483648:0:2: + %2i:-0X80000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2i:-0x80000000:0:2: + %2i:-020000000000:1:2:0: + %*2i:-020000000000:0:2: +-%2i:-0B10000000000000000000000000000000:1:2:0: +-%*2i:-0B10000000000000000000000000000000:0:2: +-%2i:-0b10000000000000000000000000000000:1:2:0: +-%*2i:-0b10000000000000000000000000000000:0:2: + %2i:-123:1:2:-1: + %*2i:-123:0:2: + %2i:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2i:-0x7B:0:2: + %2i:-0173:1:2:0: + %*2i:-0173:0:2: +-%2i:-0B1111011:1:2:0: +-%*2i:-0B1111011:0:2: +-%2i:-0b1111011:1:2:0: +-%*2i:-0b1111011:0:2: + %2i:-1:1:2:-1: + %*2i:-1:0:2: + %2i:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2i:-0x1:0:2: + %2i:-01:1:2:0: + %*2i:-01:0:2: +-%2i:-0B1:1:2:0: +-%*2i:-0B1:0:2: +-%2i:-0b1:1:2:0: +-%*2i:-0b1:0:2: + %2i:-0:1:2:0: + %*2i:-0:0:2: + %2i:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2i:-0x0:0:2: + %2i:-00:1:2:0: + %*2i:-00:0:2: +-%2i:-0B0:1:2:0: +-%*2i:-0B0:0:2: +-%2i:-0b0:1:2:0: +-%*2i:-0b0:0:2: + %2i:0:1:1:0: + %*2i:0:0:1: + # BZ12701 %2i:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2i:0x0:0:-1: + %2i:00:1:2:0: + %*2i:00:0:2: +-# BZ12701 %2i:0B0:0:-1: +-# BZ12701 %*2i:0B0:0:-1: +-# BZ12701 %2i:0b0:0:-1: +-# BZ12701 %*2i:0b0:0:-1: + %2i:1:1:1:1: + %*2i:1:0:1: + # BZ12701 %2i:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2i:0x1:0:-1: + %2i:01:1:2:1: + %*2i:01:0:2: +-# BZ12701 %2i:0B1:0:-1: +-# BZ12701 %*2i:0B1:0:-1: +-# BZ12701 %2i:0b1:0:-1: +-# BZ12701 %*2i:0b1:0:-1: + %2i:42:1:2:42: + %*2i:42:0:2: + # BZ12701 %2i:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2i:0x2A:0:-1: + %2i:052:1:2:5: + %*2i:052:0:2: +-# BZ12701 %2i:0B101010:0:-1: +-# BZ12701 %*2i:0B101010:0:-1: +-# BZ12701 %2i:0b101010:0:-1: +-# BZ12701 %*2i:0b101010:0:-1: + %2i:2147483647:1:2:21: + %*2i:2147483647:0:2: + # BZ12701 %2i:0X7fffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2i:0x7FFFFFFF:0:-1: + %2i:017777777777:1:2:1: + %*2i:017777777777:0:2: +-# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: + %2i:2147483648:1:2:21: + %*2i:2147483648:0:2: + # BZ12701 %2i:0X80000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2i:0x80000000:0:-1: + %2i:020000000000:1:2:2: + %*2i:020000000000:0:2: +-# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: + %2i:2147487889:1:2:21: + %*2i:2147487889:0:2: + # BZ12701 %2i:0X80001091:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2i:0x80001091:0:-1: + %2i:020000010221:1:2:2: + %*2i:020000010221:0:2: +-# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: + %2i:+0:1:2:0: + %*2i:+0:0:2: + %2i:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2i:+0x0:0:2: + %2i:+00:1:2:0: + %*2i:+00:0:2: +-%2i:+0B0:1:2:0: +-%*2i:+0B0:0:2: +-%2i:+0b0:1:2:0: +-%*2i:+0b0:0:2: + %2i:+1:1:2:1: + %*2i:+1:0:2: + %2i:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2i:+0x1:0:2: + %2i:+01:1:2:0: + %*2i:+01:0:2: +-%2i:+0B1:1:2:0: +-%*2i:+0B1:0:2: +-%2i:+0b1:1:2:0: +-%*2i:+0b1:0:2: + %2i:+42:1:2:4: + %*2i:+42:0:2: + %2i:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2i:+0x2A:0:2: + %2i:+052:1:2:0: + %*2i:+052:0:2: +-%2i:+0B101010:1:2:0: +-%*2i:+0B101010:0:2: +-%2i:+0b101010:1:2:0: +-%*2i:+0b101010:0:2: + %2i:+2147483647:1:2:2: + %*2i:+2147483647:0:2: + %2i:+0X7fffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2i:+0x7FFFFFFF:0:2: + %2i:+017777777777:1:2:0: + %*2i:+017777777777:0:2: +-%2i:+0B1111111111111111111111111111111:1:2:0: +-%*2i:+0B1111111111111111111111111111111:0:2: +-%2i:+0b1111111111111111111111111111111:1:2:0: +-%*2i:+0b1111111111111111111111111111111:0:2: + %2i:+2147483648:1:2:2: + %*2i:+2147483648:0:2: + %2i:+0X80000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2i:+0x80000000:0:2: + %2i:+020000000000:1:2:0: + %*2i:+020000000000:0:2: +-%2i:+0B10000000000000000000000000000000:1:2:0: +-%*2i:+0B10000000000000000000000000000000:0:2: +-%2i:+0b10000000000000000000000000000000:1:2:0: +-%*2i:+0b10000000000000000000000000000000:0:2: + %2i:+2147487889:1:2:2: + %*2i:+2147487889:0:2: + %2i:+0X80001091:1:2:0: +@@ -648,10 +436,6 @@ + %*2i:+0x80001091:0:2: + %2i:+020000010221:1:2:0: + %*2i:+020000010221:0:2: +-%2i:+0B10000000000000000001000010010001:1:2:0: +-%*2i:+0B10000000000000000001000010010001:0:2: +-%2i:+0b10000000000000000001000010010001:1:2:0: +-%*2i:+0b10000000000000000001000010010001:0:2: + %8i::0:-1: + %*8i::0:-1: + %8i:-2147484882:1:8:-2147484: +@@ -662,10 +446,6 @@ + %*8i:-0x800004D2:0:8: + %8i:-020000002322:1:8:-65536: + %*8i:-020000002322:0:8: +-%8i:-0B10000000000000000000010011010010:1:8:-16: +-%*8i:-0B10000000000000000000010011010010:0:8: +-%8i:-0b10000000000000000000010011010010:1:8:-16: +-%*8i:-0b10000000000000000000010011010010:0:8: + %8i:-2147483649:1:8:-2147483: + %*8i:-2147483649:0:8: + %8i:-0X80000001:1:8:-524288: +@@ -674,10 +454,6 @@ + %*8i:-0x80000001:0:8: + %8i:-020000000001:1:8:-65536: + %*8i:-020000000001:0:8: +-%8i:-0B10000000000000000000000000000001:1:8:-16: +-%*8i:-0B10000000000000000000000000000001:0:8: +-%8i:-0b10000000000000000000000000000001:1:8:-16: +-%*8i:-0b10000000000000000000000000000001:0:8: + %8i:-2147483648:1:8:-2147483: + %*8i:-2147483648:0:8: + %8i:-0X80000000:1:8:-524288: +@@ -686,10 +462,6 @@ + %*8i:-0x80000000:0:8: + %8i:-020000000000:1:8:-65536: + %*8i:-020000000000:0:8: +-%8i:-0B10000000000000000000000000000000:1:8:-16: +-%*8i:-0B10000000000000000000000000000000:0:8: +-%8i:-0b10000000000000000000000000000000:1:8:-16: +-%*8i:-0b10000000000000000000000000000000:0:8: + %8i:-123:1:4:-123: + %*8i:-123:0:4: + %8i:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*8i:-0x7B:0:5: + %8i:-0173:1:5:-123: + %*8i:-0173:0:5: +-%8i:-0B1111011:1:8:-30: +-%*8i:-0B1111011:0:8: +-%8i:-0b1111011:1:8:-30: +-%*8i:-0b1111011:0:8: + %8i:-1:1:2:-1: + %*8i:-1:0:2: + %8i:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*8i:-0x1:0:4: + %8i:-01:1:3:-1: + %*8i:-01:0:3: +-%8i:-0B1:1:4:-1: +-%*8i:-0B1:0:4: +-%8i:-0b1:1:4:-1: +-%*8i:-0b1:0:4: + %8i:-0:1:2:0: + %*8i:-0:0:2: + %8i:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*8i:-0x0:0:4: + %8i:-00:1:3:0: + %*8i:-00:0:3: +-%8i:-0B0:1:4:0: +-%*8i:-0B0:0:4: +-%8i:-0b0:1:4:0: +-%*8i:-0b0:0:4: + %8i:0:1:1:0: + %*8i:0:0:1: + %8i:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*8i:0x0:0:3: + %8i:00:1:2:0: + %*8i:00:0:2: +-%8i:0B0:1:3:0: +-%*8i:0B0:0:3: +-%8i:0b0:1:3:0: +-%*8i:0b0:0:3: + %8i:1:1:1:1: + %*8i:1:0:1: + %8i:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*8i:0x1:0:3: + %8i:01:1:2:1: + %*8i:01:0:2: +-%8i:0B1:1:3:1: +-%*8i:0B1:0:3: +-%8i:0b1:1:3:1: +-%*8i:0b1:0:3: + %8i:42:1:2:42: + %*8i:42:0:2: + %8i:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*8i:0x2A:0:4: + %8i:052:1:3:42: + %*8i:052:0:3: +-%8i:0B101010:1:8:42: +-%*8i:0B101010:0:8: +-%8i:0b101010:1:8:42: +-%*8i:0b101010:0:8: + %8i:2147483647:1:8:21474836: + %*8i:2147483647:0:8: + %8i:0X7fffffff:1:8:8388607: +@@ -770,10 +518,6 @@ + %*8i:0x7FFFFFFF:0:8: + %8i:017777777777:1:8:524287: + %*8i:017777777777:0:8: +-%8i:0B1111111111111111111111111111111:1:8:63: +-%*8i:0B1111111111111111111111111111111:0:8: +-%8i:0b1111111111111111111111111111111:1:8:63: +-%*8i:0b1111111111111111111111111111111:0:8: + %8i:2147483648:1:8:21474836: + %*8i:2147483648:0:8: + %8i:0X80000000:1:8:8388608: +@@ -782,10 +526,6 @@ + %*8i:0x80000000:0:8: + %8i:020000000000:1:8:524288: + %*8i:020000000000:0:8: +-%8i:0B10000000000000000000000000000000:1:8:32: +-%*8i:0B10000000000000000000000000000000:0:8: +-%8i:0b10000000000000000000000000000000:1:8:32: +-%*8i:0b10000000000000000000000000000000:0:8: + %8i:2147487889:1:8:21474878: + %*8i:2147487889:0:8: + %8i:0X80001091:1:8:8388624: +@@ -794,10 +534,6 @@ + %*8i:0x80001091:0:8: + %8i:020000010221:1:8:524289: + %*8i:020000010221:0:8: +-%8i:0B10000000000000000001000010010001:1:8:32: +-%*8i:0B10000000000000000001000010010001:0:8: +-%8i:0b10000000000000000001000010010001:1:8:32: +-%*8i:0b10000000000000000001000010010001:0:8: + %8i:+0:1:2:0: + %*8i:+0:0:2: + %8i:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*8i:+0x0:0:4: + %8i:+00:1:3:0: + %*8i:+00:0:3: +-%8i:+0B0:1:4:0: +-%*8i:+0B0:0:4: +-%8i:+0b0:1:4:0: +-%*8i:+0b0:0:4: + %8i:+1:1:2:1: + %*8i:+1:0:2: + %8i:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*8i:+0x1:0:4: + %8i:+01:1:3:1: + %*8i:+01:0:3: +-%8i:+0B1:1:4:1: +-%*8i:+0B1:0:4: +-%8i:+0b1:1:4:1: +-%*8i:+0b1:0:4: + %8i:+42:1:3:42: + %*8i:+42:0:3: + %8i:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*8i:+0x2A:0:5: + %8i:+052:1:4:42: + %*8i:+052:0:4: +-%8i:+0B101010:1:8:21: +-%*8i:+0B101010:0:8: +-%8i:+0b101010:1:8:21: +-%*8i:+0b101010:0:8: + %8i:+2147483647:1:8:2147483: + %*8i:+2147483647:0:8: + %8i:+0X7fffffff:1:8:524287: +@@ -842,10 +566,6 @@ + %*8i:+0x7FFFFFFF:0:8: + %8i:+017777777777:1:8:65535: + %*8i:+017777777777:0:8: +-%8i:+0B1111111111111111111111111111111:1:8:31: +-%*8i:+0B1111111111111111111111111111111:0:8: +-%8i:+0b1111111111111111111111111111111:1:8:31: +-%*8i:+0b1111111111111111111111111111111:0:8: + %8i:+2147483648:1:8:2147483: + %*8i:+2147483648:0:8: + %8i:+0X80000000:1:8:524288: +@@ -854,10 +574,6 @@ + %*8i:+0x80000000:0:8: + %8i:+020000000000:1:8:65536: + %*8i:+020000000000:0:8: +-%8i:+0B10000000000000000000000000000000:1:8:16: +-%*8i:+0B10000000000000000000000000000000:0:8: +-%8i:+0b10000000000000000000000000000000:1:8:16: +-%*8i:+0b10000000000000000000000000000000:0:8: + %8i:+2147487889:1:8:2147487: + %*8i:+2147487889:0:8: + %8i:+0X80001091:1:8:524289: +@@ -866,10 +582,6 @@ + %*8i:+0x80001091:0:8: + %8i:+020000010221:1:8:65536: + %*8i:+020000010221:0:8: +-%8i:+0B10000000000000000001000010010001:1:8:16: +-%*8i:+0B10000000000000000001000010010001:0:8: +-%8i:+0b10000000000000000001000010010001:1:8:16: +-%*8i:+0b10000000000000000001000010010001:0:8: + %15i::0:-1: + %*15i::0:-1: + %15i:-2147484882:1:11:2147482414: +@@ -880,10 +592,6 @@ + %*15i:-0x800004D2:0:11: + %15i:-020000002322:1:13:2147482414: + %*15i:-020000002322:0:13: +-%15i:-0B10000000000000000000010011010010:1:15:-2048: +-%*15i:-0B10000000000000000000010011010010:0:15: +-%15i:-0b10000000000000000000010011010010:1:15:-2048: +-%*15i:-0b10000000000000000000010011010010:0:15: + %15i:-2147483649:1:11:2147483647: + %*15i:-2147483649:0:11: + %15i:-0X80000001:1:11:2147483647: +@@ -892,10 +600,6 @@ + %*15i:-0x80000001:0:11: + %15i:-020000000001:1:13:2147483647: + %*15i:-020000000001:0:13: +-%15i:-0B10000000000000000000000000000001:1:15:-2048: +-%*15i:-0B10000000000000000000000000000001:0:15: +-%15i:-0b10000000000000000000000000000001:1:15:-2048: +-%*15i:-0b10000000000000000000000000000001:0:15: + %15i:-2147483648:1:11:-2147483648: + %*15i:-2147483648:0:11: + %15i:-0X80000000:1:11:-2147483648: +@@ -904,10 +608,6 @@ + %*15i:-0x80000000:0:11: + %15i:-020000000000:1:13:-2147483648: + %*15i:-020000000000:0:13: +-%15i:-0B10000000000000000000000000000000:1:15:-2048: +-%*15i:-0B10000000000000000000000000000000:0:15: +-%15i:-0b10000000000000000000000000000000:1:15:-2048: +-%*15i:-0b10000000000000000000000000000000:0:15: + %15i:-123:1:4:-123: + %*15i:-123:0:4: + %15i:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*15i:-0x7B:0:5: + %15i:-0173:1:5:-123: + %*15i:-0173:0:5: +-%15i:-0B1111011:1:10:-123: +-%*15i:-0B1111011:0:10: +-%15i:-0b1111011:1:10:-123: +-%*15i:-0b1111011:0:10: + %15i:-1:1:2:-1: + %*15i:-1:0:2: + %15i:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*15i:-0x1:0:4: + %15i:-01:1:3:-1: + %*15i:-01:0:3: +-%15i:-0B1:1:4:-1: +-%*15i:-0B1:0:4: +-%15i:-0b1:1:4:-1: +-%*15i:-0b1:0:4: + %15i:-0:1:2:0: + %*15i:-0:0:2: + %15i:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*15i:-0x0:0:4: + %15i:-00:1:3:0: + %*15i:-00:0:3: +-%15i:-0B0:1:4:0: +-%*15i:-0B0:0:4: +-%15i:-0b0:1:4:0: +-%*15i:-0b0:0:4: + %15i:0:1:1:0: + %*15i:0:0:1: + %15i:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*15i:0x0:0:3: + %15i:00:1:2:0: + %*15i:00:0:2: +-%15i:0B0:1:3:0: +-%*15i:0B0:0:3: +-%15i:0b0:1:3:0: +-%*15i:0b0:0:3: + %15i:1:1:1:1: + %*15i:1:0:1: + %15i:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*15i:0x1:0:3: + %15i:01:1:2:1: + %*15i:01:0:2: +-%15i:0B1:1:3:1: +-%*15i:0B1:0:3: +-%15i:0b1:1:3:1: +-%*15i:0b1:0:3: + %15i:42:1:2:42: + %*15i:42:0:2: + %15i:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*15i:0x2A:0:4: + %15i:052:1:3:42: + %*15i:052:0:3: +-%15i:0B101010:1:8:42: +-%*15i:0B101010:0:8: +-%15i:0b101010:1:8:42: +-%*15i:0b101010:0:8: + %15i:2147483647:1:10:2147483647: + %*15i:2147483647:0:10: + %15i:0X7fffffff:1:10:2147483647: +@@ -988,10 +664,6 @@ + %*15i:0x7FFFFFFF:0:10: + %15i:017777777777:1:12:2147483647: + %*15i:017777777777:0:12: +-%15i:0B1111111111111111111111111111111:1:15:8191: +-%*15i:0B1111111111111111111111111111111:0:15: +-%15i:0b1111111111111111111111111111111:1:15:8191: +-%*15i:0b1111111111111111111111111111111:0:15: + %15i:2147483648:1:10:-2147483648: + %*15i:2147483648:0:10: + %15i:0X80000000:1:10:-2147483648: +@@ -1000,10 +672,6 @@ + %*15i:0x80000000:0:10: + %15i:020000000000:1:12:-2147483648: + %*15i:020000000000:0:12: +-%15i:0B10000000000000000000000000000000:1:15:4096: +-%*15i:0B10000000000000000000000000000000:0:15: +-%15i:0b10000000000000000000000000000000:1:15:4096: +-%*15i:0b10000000000000000000000000000000:0:15: + %15i:2147487889:1:10:-2147479407: + %*15i:2147487889:0:10: + %15i:0X80001091:1:10:-2147479407: +@@ -1012,10 +680,6 @@ + %*15i:0x80001091:0:10: + %15i:020000010221:1:12:-2147479407: + %*15i:020000010221:0:12: +-%15i:0B10000000000000000001000010010001:1:15:4096: +-%*15i:0B10000000000000000001000010010001:0:15: +-%15i:0b10000000000000000001000010010001:1:15:4096: +-%*15i:0b10000000000000000001000010010001:0:15: + %15i:+0:1:2:0: + %*15i:+0:0:2: + %15i:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*15i:+0x0:0:4: + %15i:+00:1:3:0: + %*15i:+00:0:3: +-%15i:+0B0:1:4:0: +-%*15i:+0B0:0:4: +-%15i:+0b0:1:4:0: +-%*15i:+0b0:0:4: + %15i:+1:1:2:1: + %*15i:+1:0:2: + %15i:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*15i:+0x1:0:4: + %15i:+01:1:3:1: + %*15i:+01:0:3: +-%15i:+0B1:1:4:1: +-%*15i:+0B1:0:4: +-%15i:+0b1:1:4:1: +-%*15i:+0b1:0:4: + %15i:+42:1:3:42: + %*15i:+42:0:3: + %15i:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*15i:+0x2A:0:5: + %15i:+052:1:4:42: + %*15i:+052:0:4: +-%15i:+0B101010:1:9:42: +-%*15i:+0B101010:0:9: +-%15i:+0b101010:1:9:42: +-%*15i:+0b101010:0:9: + %15i:+2147483647:1:11:2147483647: + %*15i:+2147483647:0:11: + %15i:+0X7fffffff:1:11:2147483647: +@@ -1060,10 +712,6 @@ + %*15i:+0x7FFFFFFF:0:11: + %15i:+017777777777:1:13:2147483647: + %*15i:+017777777777:0:13: +-%15i:+0B1111111111111111111111111111111:1:15:4095: +-%*15i:+0B1111111111111111111111111111111:0:15: +-%15i:+0b1111111111111111111111111111111:1:15:4095: +-%*15i:+0b1111111111111111111111111111111:0:15: + %15i:+2147483648:1:11:-2147483648: + %*15i:+2147483648:0:11: + %15i:+0X80000000:1:11:-2147483648: +@@ -1072,10 +720,6 @@ + %*15i:+0x80000000:0:11: + %15i:+020000000000:1:13:-2147483648: + %*15i:+020000000000:0:13: +-%15i:+0B10000000000000000000000000000000:1:15:2048: +-%*15i:+0B10000000000000000000000000000000:0:15: +-%15i:+0b10000000000000000000000000000000:1:15:2048: +-%*15i:+0b10000000000000000000000000000000:0:15: + %15i:+2147487889:1:11:-2147479407: + %*15i:+2147487889:0:11: + %15i:+0X80001091:1:11:-2147479407: +@@ -1084,10 +728,6 @@ + %*15i:+0x80001091:0:11: + %15i:+020000010221:1:13:-2147479407: + %*15i:+020000010221:0:13: +-%15i:+0B10000000000000000001000010010001:1:15:2048: +-%*15i:+0B10000000000000000001000010010001:0:15: +-%15i:+0b10000000000000000001000010010001:1:15:2048: +-%*15i:+0b10000000000000000001000010010001:0:15: + %2i: :0:-1: + %*2i: :0:-1: + %2i: -2147484882:1:3:-2: +@@ -1098,10 +738,6 @@ + %*2i: -0x800004D2:0:3: + %2i: -020000002322:1:3:0: + %*2i: -020000002322:0:3: +-%2i: -0B10000000000000000000010011010010:1:3:0: +-%*2i: -0B10000000000000000000010011010010:0:3: +-%2i: -0b10000000000000000000010011010010:1:3:0: +-%*2i: -0b10000000000000000000010011010010:0:3: + %2i: -2147483649:1:3:-2: + %*2i: -2147483649:0:3: + %2i: -0X80000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2i: -0x80000001:0:3: + %2i: -020000000001:1:3:0: + %*2i: -020000000001:0:3: +-%2i: -0B10000000000000000000000000000001:1:3:0: +-%*2i: -0B10000000000000000000000000000001:0:3: +-%2i: -0b10000000000000000000000000000001:1:3:0: +-%*2i: -0b10000000000000000000000000000001:0:3: + %2i: -2147483648:1:3:-2: + %*2i: -2147483648:0:3: + %2i: -0X80000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2i: -0x80000000:0:3: + %2i: -020000000000:1:3:0: + %*2i: -020000000000:0:3: +-%2i: -0B10000000000000000000000000000000:1:3:0: +-%*2i: -0B10000000000000000000000000000000:0:3: +-%2i: -0b10000000000000000000000000000000:1:3:0: +-%*2i: -0b10000000000000000000000000000000:0:3: + %2i: -123:1:3:-1: + %*2i: -123:0:3: + %2i: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2i: -0x7B:0:3: + %2i: -0173:1:3:0: + %*2i: -0173:0:3: +-%2i: -0B1111011:1:3:0: +-%*2i: -0B1111011:0:3: +-%2i: -0b1111011:1:3:0: +-%*2i: -0b1111011:0:3: + %2i: -1:1:3:-1: + %*2i: -1:0:3: + %2i: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2i: -0x1:0:3: + %2i: -01:1:3:0: + %*2i: -01:0:3: +-%2i: -0B1:1:3:0: +-%*2i: -0B1:0:3: +-%2i: -0b1:1:3:0: +-%*2i: -0b1:0:3: + %2i: -0:1:3:0: + %*2i: -0:0:3: + %2i: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2i: -0x0:0:3: + %2i: -00:1:3:0: + %*2i: -00:0:3: +-%2i: -0B0:1:3:0: +-%*2i: -0B0:0:3: +-%2i: -0b0:1:3:0: +-%*2i: -0b0:0:3: + %2i: 0:1:2:0: + %*2i: 0:0:2: + # BZ12701 %2i: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2i: 0x0:0:-1: + %2i: 00:1:3:0: + %*2i: 00:0:3: +-# BZ12701 %2i: 0B0:0:-1: +-# BZ12701 %*2i: 0B0:0:-1: +-# BZ12701 %2i: 0b0:0:-1: +-# BZ12701 %*2i: 0b0:0:-1: + %2i: 1:1:2:1: + %*2i: 1:0:2: + # BZ12701 %2i: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2i: 0x1:0:-1: + %2i: 01:1:3:1: + %*2i: 01:0:3: +-# BZ12701 %2i: 0B1:0:-1: +-# BZ12701 %*2i: 0B1:0:-1: +-# BZ12701 %2i: 0b1:0:-1: +-# BZ12701 %*2i: 0b1:0:-1: + %2i: 42:1:3:42: + %*2i: 42:0:3: + # BZ12701 %2i: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2i: 0x2A:0:-1: + %2i: 052:1:3:5: + %*2i: 052:0:3: +-# BZ12701 %2i: 0B101010:0:-1: +-# BZ12701 %*2i: 0B101010:0:-1: +-# BZ12701 %2i: 0b101010:0:-1: +-# BZ12701 %*2i: 0b101010:0:-1: + %2i: 2147483647:1:3:21: + %*2i: 2147483647:0:3: + # BZ12701 %2i: 0X7fffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2i: 0x7FFFFFFF:0:-1: + %2i: 017777777777:1:3:1: + %*2i: 017777777777:0:3: +-# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: +-# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: +-# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: + %2i: 2147483648:1:3:21: + %*2i: 2147483648:0:3: + # BZ12701 %2i: 0X80000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2i: 0x80000000:0:-1: + %2i: 020000000000:1:3:2: + %*2i: 020000000000:0:3: +-# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: +-# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: +-# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: + %2i: 2147487889:1:3:21: + %*2i: 2147487889:0:3: + # BZ12701 %2i: 0X80001091:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2i: 0x80001091:0:-1: + %2i: 020000010221:1:3:2: + %*2i: 020000010221:0:3: +-# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: +-# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: +-# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: + %2i: +0:1:3:0: + %*2i: +0:0:3: + %2i: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2i: +0x0:0:3: + %2i: +00:1:3:0: + %*2i: +00:0:3: +-%2i: +0B0:1:3:0: +-%*2i: +0B0:0:3: +-%2i: +0b0:1:3:0: +-%*2i: +0b0:0:3: + %2i: +1:1:3:1: + %*2i: +1:0:3: + %2i: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2i: +0x1:0:3: + %2i: +01:1:3:0: + %*2i: +01:0:3: +-%2i: +0B1:1:3:0: +-%*2i: +0B1:0:3: +-%2i: +0b1:1:3:0: +-%*2i: +0b1:0:3: + %2i: +42:1:3:4: + %*2i: +42:0:3: + %2i: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2i: +0x2A:0:3: + %2i: +052:1:3:0: + %*2i: +052:0:3: +-%2i: +0B101010:1:3:0: +-%*2i: +0B101010:0:3: +-%2i: +0b101010:1:3:0: +-%*2i: +0b101010:0:3: + %2i: +2147483647:1:3:2: + %*2i: +2147483647:0:3: + %2i: +0X7fffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2i: +0x7FFFFFFF:0:3: + %2i: +017777777777:1:3:0: + %*2i: +017777777777:0:3: +-%2i: +0B1111111111111111111111111111111:1:3:0: +-%*2i: +0B1111111111111111111111111111111:0:3: +-%2i: +0b1111111111111111111111111111111:1:3:0: +-%*2i: +0b1111111111111111111111111111111:0:3: + %2i: +2147483648:1:3:2: + %*2i: +2147483648:0:3: + %2i: +0X80000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2i: +0x80000000:0:3: + %2i: +020000000000:1:3:0: + %*2i: +020000000000:0:3: +-%2i: +0B10000000000000000000000000000000:1:3:0: +-%*2i: +0B10000000000000000000000000000000:0:3: +-%2i: +0b10000000000000000000000000000000:1:3:0: +-%*2i: +0b10000000000000000000000000000000:0:3: + %2i: +2147487889:1:3:2: + %*2i: +2147487889:0:3: + %2i: +0X80001091:1:3:0: +@@ -1302,10 +874,6 @@ + %*2i: +0x80001091:0:3: + %2i: +020000010221:1:3:0: + %*2i: +020000010221:0:3: +-%2i: +0B10000000000000000001000010010001:1:3:0: +-%*2i: +0B10000000000000000001000010010001:0:3: +-%2i: +0b10000000000000000001000010010001:1:3:0: +-%*2i: +0b10000000000000000001000010010001:0:3: + %15i: :0:-1: + %*15i: :0:-1: + %15i: -2147484882:1:12:2147482414: +@@ -1316,10 +884,6 @@ + %*15i: -0x800004D2:0:12: + %15i: -020000002322:1:14:2147482414: + %*15i: -020000002322:0:14: +-%15i: -0B10000000000000000000010011010010:1:16:-2048: +-%*15i: -0B10000000000000000000010011010010:0:16: +-%15i: -0b10000000000000000000010011010010:1:16:-2048: +-%*15i: -0b10000000000000000000010011010010:0:16: + %15i: -2147483649:1:12:2147483647: + %*15i: -2147483649:0:12: + %15i: -0X80000001:1:12:2147483647: +@@ -1328,10 +892,6 @@ + %*15i: -0x80000001:0:12: + %15i: -020000000001:1:14:2147483647: + %*15i: -020000000001:0:14: +-%15i: -0B10000000000000000000000000000001:1:16:-2048: +-%*15i: -0B10000000000000000000000000000001:0:16: +-%15i: -0b10000000000000000000000000000001:1:16:-2048: +-%*15i: -0b10000000000000000000000000000001:0:16: + %15i: -2147483648:1:12:-2147483648: + %*15i: -2147483648:0:12: + %15i: -0X80000000:1:12:-2147483648: +@@ -1340,10 +900,6 @@ + %*15i: -0x80000000:0:12: + %15i: -020000000000:1:14:-2147483648: + %*15i: -020000000000:0:14: +-%15i: -0B10000000000000000000000000000000:1:16:-2048: +-%*15i: -0B10000000000000000000000000000000:0:16: +-%15i: -0b10000000000000000000000000000000:1:16:-2048: +-%*15i: -0b10000000000000000000000000000000:0:16: + %15i: -123:1:5:-123: + %*15i: -123:0:5: + %15i: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*15i: -0x7B:0:6: + %15i: -0173:1:6:-123: + %*15i: -0173:0:6: +-%15i: -0B1111011:1:11:-123: +-%*15i: -0B1111011:0:11: +-%15i: -0b1111011:1:11:-123: +-%*15i: -0b1111011:0:11: + %15i: -1:1:3:-1: + %*15i: -1:0:3: + %15i: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*15i: -0x1:0:5: + %15i: -01:1:4:-1: + %*15i: -01:0:4: +-%15i: -0B1:1:5:-1: +-%*15i: -0B1:0:5: +-%15i: -0b1:1:5:-1: +-%*15i: -0b1:0:5: + %15i: -0:1:3:0: + %*15i: -0:0:3: + %15i: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*15i: -0x0:0:5: + %15i: -00:1:4:0: + %*15i: -00:0:4: +-%15i: -0B0:1:5:0: +-%*15i: -0B0:0:5: +-%15i: -0b0:1:5:0: +-%*15i: -0b0:0:5: + %15i: 0:1:2:0: + %*15i: 0:0:2: + %15i: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*15i: 0x0:0:4: + %15i: 00:1:3:0: + %*15i: 00:0:3: +-%15i: 0B0:1:4:0: +-%*15i: 0B0:0:4: +-%15i: 0b0:1:4:0: +-%*15i: 0b0:0:4: + %15i: 1:1:2:1: + %*15i: 1:0:2: + %15i: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*15i: 0x1:0:4: + %15i: 01:1:3:1: + %*15i: 01:0:3: +-%15i: 0B1:1:4:1: +-%*15i: 0B1:0:4: +-%15i: 0b1:1:4:1: +-%*15i: 0b1:0:4: + %15i: 42:1:3:42: + %*15i: 42:0:3: + %15i: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*15i: 0x2A:0:5: + %15i: 052:1:4:42: + %*15i: 052:0:4: +-%15i: 0B101010:1:9:42: +-%*15i: 0B101010:0:9: +-%15i: 0b101010:1:9:42: +-%*15i: 0b101010:0:9: + %15i: 2147483647:1:11:2147483647: + %*15i: 2147483647:0:11: + %15i: 0X7fffffff:1:11:2147483647: +@@ -1424,10 +956,6 @@ + %*15i: 0x7FFFFFFF:0:11: + %15i: 017777777777:1:13:2147483647: + %*15i: 017777777777:0:13: +-%15i: 0B1111111111111111111111111111111:1:16:8191: +-%*15i: 0B1111111111111111111111111111111:0:16: +-%15i: 0b1111111111111111111111111111111:1:16:8191: +-%*15i: 0b1111111111111111111111111111111:0:16: + %15i: 2147483648:1:11:-2147483648: + %*15i: 2147483648:0:11: + %15i: 0X80000000:1:11:-2147483648: +@@ -1436,10 +964,6 @@ + %*15i: 0x80000000:0:11: + %15i: 020000000000:1:13:-2147483648: + %*15i: 020000000000:0:13: +-%15i: 0B10000000000000000000000000000000:1:16:4096: +-%*15i: 0B10000000000000000000000000000000:0:16: +-%15i: 0b10000000000000000000000000000000:1:16:4096: +-%*15i: 0b10000000000000000000000000000000:0:16: + %15i: 2147487889:1:11:-2147479407: + %*15i: 2147487889:0:11: + %15i: 0X80001091:1:11:-2147479407: +@@ -1448,10 +972,6 @@ + %*15i: 0x80001091:0:11: + %15i: 020000010221:1:13:-2147479407: + %*15i: 020000010221:0:13: +-%15i: 0B10000000000000000001000010010001:1:16:4096: +-%*15i: 0B10000000000000000001000010010001:0:16: +-%15i: 0b10000000000000000001000010010001:1:16:4096: +-%*15i: 0b10000000000000000001000010010001:0:16: + %15i: +0:1:3:0: + %*15i: +0:0:3: + %15i: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*15i: +0x0:0:5: + %15i: +00:1:4:0: + %*15i: +00:0:4: +-%15i: +0B0:1:5:0: +-%*15i: +0B0:0:5: +-%15i: +0b0:1:5:0: +-%*15i: +0b0:0:5: + %15i: +1:1:3:1: + %*15i: +1:0:3: + %15i: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*15i: +0x1:0:5: + %15i: +01:1:4:1: + %*15i: +01:0:4: +-%15i: +0B1:1:5:1: +-%*15i: +0B1:0:5: +-%15i: +0b1:1:5:1: +-%*15i: +0b1:0:5: + %15i: +42:1:4:42: + %*15i: +42:0:4: + %15i: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*15i: +0x2A:0:6: + %15i: +052:1:5:42: + %*15i: +052:0:5: +-%15i: +0B101010:1:10:42: +-%*15i: +0B101010:0:10: +-%15i: +0b101010:1:10:42: +-%*15i: +0b101010:0:10: + %15i: +2147483647:1:12:2147483647: + %*15i: +2147483647:0:12: + %15i: +0X7fffffff:1:12:2147483647: +@@ -1496,10 +1004,6 @@ + %*15i: +0x7FFFFFFF:0:12: + %15i: +017777777777:1:14:2147483647: + %*15i: +017777777777:0:14: +-%15i: +0B1111111111111111111111111111111:1:16:4095: +-%*15i: +0B1111111111111111111111111111111:0:16: +-%15i: +0b1111111111111111111111111111111:1:16:4095: +-%*15i: +0b1111111111111111111111111111111:0:16: + %15i: +2147483648:1:12:-2147483648: + %*15i: +2147483648:0:12: + %15i: +0X80000000:1:12:-2147483648: +@@ -1508,10 +1012,6 @@ + %*15i: +0x80000000:0:12: + %15i: +020000000000:1:14:-2147483648: + %*15i: +020000000000:0:14: +-%15i: +0B10000000000000000000000000000000:1:16:2048: +-%*15i: +0B10000000000000000000000000000000:0:16: +-%15i: +0b10000000000000000000000000000000:1:16:2048: +-%*15i: +0b10000000000000000000000000000000:0:16: + %15i: +2147487889:1:12:-2147479407: + %*15i: +2147487889:0:12: + %15i: +0X80001091:1:12:-2147479407: +@@ -1520,7 +1020,3 @@ + %*15i: +0x80001091:0:12: + %15i: +020000010221:1:14:-2147479407: + %*15i: +020000010221:0:14: +-%15i: +0B10000000000000000001000010010001:1:16:2048: +-%*15i: +0B10000000000000000001000010010001:0:16: +-%15i: +0b10000000000000000001000010010001:1:16:2048: +-%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-i.input b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +index 3066dab6bf1530f8..7164e9b9424655bc 100644 +--- a/sysdeps/wordsize-64/tst-scanf-format-long-i.input ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +@@ -8,10 +8,6 @@ + %*li:-0x8000000000BC614E:0:19: + %li:-01000000000000057060516:1:24:-9223372036854775808: + %*li:-01000000000000057060516:0:24: +-%li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: +-%li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: +-%*li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: + %li:-9223372036854775809:1:20:-9223372036854775808: + %*li:-9223372036854775809:0:20: + %li:-0X8000000000000001:1:19:-9223372036854775808: +@@ -20,10 +16,6 @@ + %*li:-0x8000000000000001:0:19: + %li:-01000000000000000000001:1:24:-9223372036854775808: + %*li:-01000000000000000000001:0:24: +-%li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: +-%li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: +-%*li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: + %li:-9223372036854775808:1:20:-9223372036854775808: + %*li:-9223372036854775808:0:20: + %li:-0X8000000000000000:1:19:-9223372036854775808: +@@ -32,10 +24,6 @@ + %*li:-0x8000000000000000:0:19: + %li:-01000000000000000000000:1:24:-9223372036854775808: + %*li:-01000000000000000000000:0:24: +-%li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: +-%*li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %li:-123:1:4:-123: + %*li:-123:0:4: + %li:-0X7b:1:5:-123: +@@ -44,10 +32,6 @@ + %*li:-0x7B:0:5: + %li:-0173:1:5:-123: + %*li:-0173:0:5: +-%li:-0B1111011:1:10:-123: +-%*li:-0B1111011:0:10: +-%li:-0b1111011:1:10:-123: +-%*li:-0b1111011:0:10: + %li:-1:1:2:-1: + %*li:-1:0:2: + %li:-0X1:1:4:-1: +@@ -56,10 +40,6 @@ + %*li:-0x1:0:4: + %li:-01:1:3:-1: + %*li:-01:0:3: +-%li:-0B1:1:4:-1: +-%*li:-0B1:0:4: +-%li:-0b1:1:4:-1: +-%*li:-0b1:0:4: + %li:-0:1:2:0: + %*li:-0:0:2: + %li:-0X0:1:4:0: +@@ -68,10 +48,6 @@ + %*li:-0x0:0:4: + %li:-00:1:3:0: + %*li:-00:0:3: +-%li:-0B0:1:4:0: +-%*li:-0B0:0:4: +-%li:-0b0:1:4:0: +-%*li:-0b0:0:4: + %li:0:1:1:0: + %*li:0:0:1: + %li:0X0:1:3:0: +@@ -80,10 +56,6 @@ + %*li:0x0:0:3: + %li:00:1:2:0: + %*li:00:0:2: +-%li:0B0:1:3:0: +-%*li:0B0:0:3: +-%li:0b0:1:3:0: +-%*li:0b0:0:3: + %li:1:1:1:1: + %*li:1:0:1: + %li:0X1:1:3:1: +@@ -92,10 +64,6 @@ + %*li:0x1:0:3: + %li:01:1:2:1: + %*li:01:0:2: +-%li:0B1:1:3:1: +-%*li:0B1:0:3: +-%li:0b1:1:3:1: +-%*li:0b1:0:3: + %li:42:1:2:42: + %*li:42:0:2: + %li:0X2a:1:4:42: +@@ -104,10 +72,6 @@ + %*li:0x2A:0:4: + %li:052:1:3:42: + %*li:052:0:3: +-%li:0B101010:1:8:42: +-%*li:0B101010:0:8: +-%li:0b101010:1:8:42: +-%*li:0b101010:0:8: + %li:9223372036854775807:1:19:9223372036854775807: + %*li:9223372036854775807:0:19: + %li:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -116,10 +80,6 @@ + %*li:0x7FFFFFFFFFFFFFFF:0:18: + %li:0777777777777777777777:1:22:9223372036854775807: + %*li:0777777777777777777777:0:22: +-%li:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*li:0B111111111111111111111111111111111111111111111111111111111111111:0:65: +-%li:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: +-%*li:0b111111111111111111111111111111111111111111111111111111111111111:0:65: + %li:9223372036854775808:1:19:9223372036854775807: + %*li:9223372036854775808:0:19: + %li:0X8000000000000000:1:18:9223372036854775807: +@@ -128,10 +88,6 @@ + %*li:0x8000000000000000:0:18: + %li:01000000000000000000000:1:23:9223372036854775807: + %*li:01000000000000000000000:0:23: +-%li:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*li:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: +-%li:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: +-%*li:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: + %li:9223372036897200049:1:19:9223372036854775807: + %*li:9223372036897200049:0:19: + %li:0X80000000028757b1:1:18:9223372036854775807: +@@ -140,10 +96,6 @@ + %*li:0x80000000028757B1:0:18: + %li:01000000000000241653661:1:23:9223372036854775807: + %*li:01000000000000241653661:0:23: +-%li:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*li:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: +-%li:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: +-%*li:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: + %li:+0:1:2:0: + %*li:+0:0:2: + %li:+0X0:1:4:0: +@@ -152,10 +104,6 @@ + %*li:+0x0:0:4: + %li:+00:1:3:0: + %*li:+00:0:3: +-%li:+0B0:1:4:0: +-%*li:+0B0:0:4: +-%li:+0b0:1:4:0: +-%*li:+0b0:0:4: + %li:+1:1:2:1: + %*li:+1:0:2: + %li:+0X1:1:4:1: +@@ -164,10 +112,6 @@ + %*li:+0x1:0:4: + %li:+01:1:3:1: + %*li:+01:0:3: +-%li:+0B1:1:4:1: +-%*li:+0B1:0:4: +-%li:+0b1:1:4:1: +-%*li:+0b1:0:4: + %li:+42:1:3:42: + %*li:+42:0:3: + %li:+0X2a:1:5:42: +@@ -176,10 +120,6 @@ + %*li:+0x2A:0:5: + %li:+052:1:4:42: + %*li:+052:0:4: +-%li:+0B101010:1:9:42: +-%*li:+0B101010:0:9: +-%li:+0b101010:1:9:42: +-%*li:+0b101010:0:9: + %li:+9223372036854775807:1:20:9223372036854775807: + %*li:+9223372036854775807:0:20: + %li:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -188,10 +128,6 @@ + %*li:+0x7FFFFFFFFFFFFFFF:0:19: + %li:+0777777777777777777777:1:23:9223372036854775807: + %*li:+0777777777777777777777:0:23: +-%li:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*li:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: +-%li:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: +-%*li:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: + %li:+9223372036854775808:1:20:9223372036854775807: + %*li:+9223372036854775808:0:20: + %li:+0X8000000000000000:1:19:9223372036854775807: +@@ -200,10 +136,6 @@ + %*li:+0x8000000000000000:0:19: + %li:+01000000000000000000000:1:24:9223372036854775807: + %*li:+01000000000000000000000:0:24: +-%li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: +-%li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: +-%*li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: + %li:+9223372036897200049:1:20:9223372036854775807: + %*li:+9223372036897200049:0:20: + %li:+0X80000000028757b1:1:19:9223372036854775807: +@@ -212,10 +144,6 @@ + %*li:+0x80000000028757B1:0:19: + %li:+01000000000000241653661:1:24:9223372036854775807: + %*li:+01000000000000241653661:0:24: +-%li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: +-%li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: +-%*li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: + %1li::0:-1: + %*1li::0:-1: + %1li:-9223372036867121486:0:-1: +@@ -226,10 +154,6 @@ + %*1li:-0x8000000000BC614E:0:-1: + %1li:-01000000000000057060516:0:-1: + %*1li:-01000000000000057060516:0:-1: +-%1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: +-%*1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: + %1li:-9223372036854775809:0:-1: + %*1li:-9223372036854775809:0:-1: + %1li:-0X8000000000000001:0:-1: +@@ -238,10 +162,6 @@ + %*1li:-0x8000000000000001:0:-1: + %1li:-01000000000000000000001:0:-1: + %*1li:-01000000000000000000001:0:-1: +-%1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: +-%*1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: + %1li:-9223372036854775808:0:-1: + %*1li:-9223372036854775808:0:-1: + %1li:-0X8000000000000000:0:-1: +@@ -250,10 +170,6 @@ + %*1li:-0x8000000000000000:0:-1: + %1li:-01000000000000000000000:0:-1: + %*1li:-01000000000000000000000:0:-1: +-%1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1li:-123:0:-1: + %*1li:-123:0:-1: + %1li:-0X7b:0:-1: +@@ -262,10 +178,6 @@ + %*1li:-0x7B:0:-1: + %1li:-0173:0:-1: + %*1li:-0173:0:-1: +-%1li:-0B1111011:0:-1: +-%*1li:-0B1111011:0:-1: +-%1li:-0b1111011:0:-1: +-%*1li:-0b1111011:0:-1: + %1li:-1:0:-1: + %*1li:-1:0:-1: + %1li:-0X1:0:-1: +@@ -274,10 +186,6 @@ + %*1li:-0x1:0:-1: + %1li:-01:0:-1: + %*1li:-01:0:-1: +-%1li:-0B1:0:-1: +-%*1li:-0B1:0:-1: +-%1li:-0b1:0:-1: +-%*1li:-0b1:0:-1: + %1li:-0:0:-1: + %*1li:-0:0:-1: + %1li:-0X0:0:-1: +@@ -286,10 +194,6 @@ + %*1li:-0x0:0:-1: + %1li:-00:0:-1: + %*1li:-00:0:-1: +-%1li:-0B0:0:-1: +-%*1li:-0B0:0:-1: +-%1li:-0b0:0:-1: +-%*1li:-0b0:0:-1: + %1li:0:1:1:0: + %*1li:0:0:1: + %1li:0X0:1:1:0: +@@ -298,10 +202,6 @@ + %*1li:0x0:0:1: + %1li:00:1:1:0: + %*1li:00:0:1: +-%1li:0B0:1:1:0: +-%*1li:0B0:0:1: +-%1li:0b0:1:1:0: +-%*1li:0b0:0:1: + %1li:1:1:1:1: + %*1li:1:0:1: + %1li:0X1:1:1:0: +@@ -310,10 +210,6 @@ + %*1li:0x1:0:1: + %1li:01:1:1:0: + %*1li:01:0:1: +-%1li:0B1:1:1:0: +-%*1li:0B1:0:1: +-%1li:0b1:1:1:0: +-%*1li:0b1:0:1: + %1li:42:1:1:4: + %*1li:42:0:1: + %1li:0X2a:1:1:0: +@@ -322,10 +218,6 @@ + %*1li:0x2A:0:1: + %1li:052:1:1:0: + %*1li:052:0:1: +-%1li:0B101010:1:1:0: +-%*1li:0B101010:0:1: +-%1li:0b101010:1:1:0: +-%*1li:0b101010:0:1: + %1li:9223372036854775807:1:1:9: + %*1li:9223372036854775807:0:1: + %1li:0X7fffffffffffffff:1:1:0: +@@ -334,10 +226,6 @@ + %*1li:0x7FFFFFFFFFFFFFFF:0:1: + %1li:0777777777777777777777:1:1:0: + %*1li:0777777777777777777777:0:1: +-%1li:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1li:0B111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1li:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1li:0b111111111111111111111111111111111111111111111111111111111111111:0:1: + %1li:9223372036854775808:1:1:9: + %*1li:9223372036854775808:0:1: + %1li:0X8000000000000000:1:1:0: +@@ -346,10 +234,6 @@ + %*1li:0x8000000000000000:0:1: + %1li:01000000000000000000000:1:1:0: + %*1li:01000000000000000000000:0:1: +-%1li:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1li:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1li:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1li:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: + %1li:9223372036897200049:1:1:9: + %*1li:9223372036897200049:0:1: + %1li:0X80000000028757b1:1:1:0: +@@ -358,10 +242,6 @@ + %*1li:0x80000000028757B1:0:1: + %1li:01000000000000241653661:1:1:0: + %*1li:01000000000000241653661:0:1: +-%1li:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1li:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1li:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1li:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: + %1li:+0:0:-1: + %*1li:+0:0:-1: + %1li:+0X0:0:-1: +@@ -370,10 +250,6 @@ + %*1li:+0x0:0:-1: + %1li:+00:0:-1: + %*1li:+00:0:-1: +-%1li:+0B0:0:-1: +-%*1li:+0B0:0:-1: +-%1li:+0b0:0:-1: +-%*1li:+0b0:0:-1: + %1li:+1:0:-1: + %*1li:+1:0:-1: + %1li:+0X1:0:-1: +@@ -382,10 +258,6 @@ + %*1li:+0x1:0:-1: + %1li:+01:0:-1: + %*1li:+01:0:-1: +-%1li:+0B1:0:-1: +-%*1li:+0B1:0:-1: +-%1li:+0b1:0:-1: +-%*1li:+0b1:0:-1: + %1li:+42:0:-1: + %*1li:+42:0:-1: + %1li:+0X2a:0:-1: +@@ -394,10 +266,6 @@ + %*1li:+0x2A:0:-1: + %1li:+052:0:-1: + %*1li:+052:0:-1: +-%1li:+0B101010:0:-1: +-%*1li:+0B101010:0:-1: +-%1li:+0b101010:0:-1: +-%*1li:+0b101010:0:-1: + %1li:+9223372036854775807:0:-1: + %*1li:+9223372036854775807:0:-1: + %1li:+0X7fffffffffffffff:0:-1: +@@ -406,10 +274,6 @@ + %*1li:+0x7FFFFFFFFFFFFFFF:0:-1: + %1li:+0777777777777777777777:0:-1: + %*1li:+0777777777777777777777:0:-1: +-%1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %1li:+9223372036854775808:0:-1: + %*1li:+9223372036854775808:0:-1: + %1li:+0X8000000000000000:0:-1: +@@ -418,10 +282,6 @@ + %*1li:+0x8000000000000000:0:-1: + %1li:+01000000000000000000000:0:-1: + %*1li:+01000000000000000000000:0:-1: +-%1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %1li:+9223372036897200049:0:-1: + %*1li:+9223372036897200049:0:-1: + %1li:+0X80000000028757b1:0:-1: +@@ -430,10 +290,6 @@ + %*1li:+0x80000000028757B1:0:-1: + %1li:+01000000000000241653661:0:-1: + %*1li:+01000000000000241653661:0:-1: +-%1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2li::0:-1: + %*2li::0:-1: + %2li:-9223372036867121486:1:2:-9: +@@ -444,10 +300,6 @@ + %*2li:-0x8000000000BC614E:0:2: + %2li:-01000000000000057060516:1:2:0: + %*2li:-01000000000000057060516:0:2: +-%2li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: +-%2li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: +-%*2li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: + %2li:-9223372036854775809:1:2:-9: + %*2li:-9223372036854775809:0:2: + %2li:-0X8000000000000001:1:2:0: +@@ -456,10 +308,6 @@ + %*2li:-0x8000000000000001:0:2: + %2li:-01000000000000000000001:1:2:0: + %*2li:-01000000000000000000001:0:2: +-%2li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: +-%2li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: +-%*2li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: + %2li:-9223372036854775808:1:2:-9: + %*2li:-9223372036854775808:0:2: + %2li:-0X8000000000000000:1:2:0: +@@ -468,10 +316,6 @@ + %*2li:-0x8000000000000000:0:2: + %2li:-01000000000000000000000:1:2:0: + %*2li:-01000000000000000000000:0:2: +-%2li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2li:-123:1:2:-1: + %*2li:-123:0:2: + %2li:-0X7b:1:2:0: +@@ -480,10 +324,6 @@ + %*2li:-0x7B:0:2: + %2li:-0173:1:2:0: + %*2li:-0173:0:2: +-%2li:-0B1111011:1:2:0: +-%*2li:-0B1111011:0:2: +-%2li:-0b1111011:1:2:0: +-%*2li:-0b1111011:0:2: + %2li:-1:1:2:-1: + %*2li:-1:0:2: + %2li:-0X1:1:2:0: +@@ -492,10 +332,6 @@ + %*2li:-0x1:0:2: + %2li:-01:1:2:0: + %*2li:-01:0:2: +-%2li:-0B1:1:2:0: +-%*2li:-0B1:0:2: +-%2li:-0b1:1:2:0: +-%*2li:-0b1:0:2: + %2li:-0:1:2:0: + %*2li:-0:0:2: + %2li:-0X0:1:2:0: +@@ -504,10 +340,6 @@ + %*2li:-0x0:0:2: + %2li:-00:1:2:0: + %*2li:-00:0:2: +-%2li:-0B0:1:2:0: +-%*2li:-0B0:0:2: +-%2li:-0b0:1:2:0: +-%*2li:-0b0:0:2: + %2li:0:1:1:0: + %*2li:0:0:1: + # BZ12701 %2li:0X0:0:-1: +@@ -516,10 +348,6 @@ + # BZ12701 %*2li:0x0:0:-1: + %2li:00:1:2:0: + %*2li:00:0:2: +-# BZ12701 %2li:0B0:0:-1: +-# BZ12701 %*2li:0B0:0:-1: +-# BZ12701 %2li:0b0:0:-1: +-# BZ12701 %*2li:0b0:0:-1: + %2li:1:1:1:1: + %*2li:1:0:1: + # BZ12701 %2li:0X1:0:-1: +@@ -528,10 +356,6 @@ + # BZ12701 %*2li:0x1:0:-1: + %2li:01:1:2:1: + %*2li:01:0:2: +-# BZ12701 %2li:0B1:0:-1: +-# BZ12701 %*2li:0B1:0:-1: +-# BZ12701 %2li:0b1:0:-1: +-# BZ12701 %*2li:0b1:0:-1: + %2li:42:1:2:42: + %*2li:42:0:2: + # BZ12701 %2li:0X2a:0:-1: +@@ -540,10 +364,6 @@ + # BZ12701 %*2li:0x2A:0:-1: + %2li:052:1:2:5: + %*2li:052:0:2: +-# BZ12701 %2li:0B101010:0:-1: +-# BZ12701 %*2li:0B101010:0:-1: +-# BZ12701 %2li:0b101010:0:-1: +-# BZ12701 %*2li:0b101010:0:-1: + %2li:9223372036854775807:1:2:92: + %*2li:9223372036854775807:0:2: + # BZ12701 %2li:0X7fffffffffffffff:0:-1: +@@ -552,10 +372,6 @@ + # BZ12701 %*2li:0x7FFFFFFFFFFFFFFF:0:-1: + %2li:0777777777777777777777:1:2:7: + %*2li:0777777777777777777777:0:2: +-# BZ12701 %2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2li:9223372036854775808:1:2:92: + %*2li:9223372036854775808:0:2: + # BZ12701 %2li:0X8000000000000000:0:-1: +@@ -564,10 +380,6 @@ + # BZ12701 %*2li:0x8000000000000000:0:-1: + %2li:01000000000000000000000:1:2:1: + %*2li:01000000000000000000000:0:2: +-# BZ12701 %2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2li:9223372036897200049:1:2:92: + %*2li:9223372036897200049:0:2: + # BZ12701 %2li:0X80000000028757b1:0:-1: +@@ -576,10 +388,6 @@ + # BZ12701 %*2li:0x80000000028757B1:0:-1: + %2li:01000000000000241653661:1:2:1: + %*2li:01000000000000241653661:0:2: +-# BZ12701 %2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2li:+0:1:2:0: + %*2li:+0:0:2: + %2li:+0X0:1:2:0: +@@ -588,10 +396,6 @@ + %*2li:+0x0:0:2: + %2li:+00:1:2:0: + %*2li:+00:0:2: +-%2li:+0B0:1:2:0: +-%*2li:+0B0:0:2: +-%2li:+0b0:1:2:0: +-%*2li:+0b0:0:2: + %2li:+1:1:2:1: + %*2li:+1:0:2: + %2li:+0X1:1:2:0: +@@ -600,10 +404,6 @@ + %*2li:+0x1:0:2: + %2li:+01:1:2:0: + %*2li:+01:0:2: +-%2li:+0B1:1:2:0: +-%*2li:+0B1:0:2: +-%2li:+0b1:1:2:0: +-%*2li:+0b1:0:2: + %2li:+42:1:2:4: + %*2li:+42:0:2: + %2li:+0X2a:1:2:0: +@@ -612,10 +412,6 @@ + %*2li:+0x2A:0:2: + %2li:+052:1:2:0: + %*2li:+052:0:2: +-%2li:+0B101010:1:2:0: +-%*2li:+0B101010:0:2: +-%2li:+0b101010:1:2:0: +-%*2li:+0b101010:0:2: + %2li:+9223372036854775807:1:2:9: + %*2li:+9223372036854775807:0:2: + %2li:+0X7fffffffffffffff:1:2:0: +@@ -624,10 +420,6 @@ + %*2li:+0x7FFFFFFFFFFFFFFF:0:2: + %2li:+0777777777777777777777:1:2:0: + %*2li:+0777777777777777777777:0:2: +-%2li:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2li:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2li:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2li:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: + %2li:+9223372036854775808:1:2:9: + %*2li:+9223372036854775808:0:2: + %2li:+0X8000000000000000:1:2:0: +@@ -636,10 +428,6 @@ + %*2li:+0x8000000000000000:0:2: + %2li:+01000000000000000000000:1:2:0: + %*2li:+01000000000000000000000:0:2: +-%2li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: + %2li:+9223372036897200049:1:2:9: + %*2li:+9223372036897200049:0:2: + %2li:+0X80000000028757b1:1:2:0: +@@ -648,10 +436,6 @@ + %*2li:+0x80000000028757B1:0:2: + %2li:+01000000000000241653661:1:2:0: + %*2li:+01000000000000241653661:0:2: +-%2li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: + %15li::0:-1: + %*15li::0:-1: + %15li:-9223372036867121486:1:15:-92233720368671: +@@ -662,10 +446,6 @@ + %*15li:-0x8000000000BC614E:0:15: + %15li:-01000000000000057060516:1:15:-68719476736: + %*15li:-01000000000000057060516:0:15: +-%15li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: +-%15li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: +-%*15li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: + %15li:-9223372036854775809:1:15:-92233720368547: + %*15li:-9223372036854775809:0:15: + %15li:-0X8000000000000001:1:15:-140737488355328: +@@ -674,10 +454,6 @@ + %*15li:-0x8000000000000001:0:15: + %15li:-01000000000000000000001:1:15:-68719476736: + %*15li:-01000000000000000000001:0:15: +-%15li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: +-%15li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: +-%*15li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: + %15li:-9223372036854775808:1:15:-92233720368547: + %*15li:-9223372036854775808:0:15: + %15li:-0X8000000000000000:1:15:-140737488355328: +@@ -686,10 +462,6 @@ + %*15li:-0x8000000000000000:0:15: + %15li:-01000000000000000000000:1:15:-68719476736: + %*15li:-01000000000000000000000:0:15: +-%15li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: +-%*15li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15li:-123:1:4:-123: + %*15li:-123:0:4: + %15li:-0X7b:1:5:-123: +@@ -698,10 +470,6 @@ + %*15li:-0x7B:0:5: + %15li:-0173:1:5:-123: + %*15li:-0173:0:5: +-%15li:-0B1111011:1:10:-123: +-%*15li:-0B1111011:0:10: +-%15li:-0b1111011:1:10:-123: +-%*15li:-0b1111011:0:10: + %15li:-1:1:2:-1: + %*15li:-1:0:2: + %15li:-0X1:1:4:-1: +@@ -710,10 +478,6 @@ + %*15li:-0x1:0:4: + %15li:-01:1:3:-1: + %*15li:-01:0:3: +-%15li:-0B1:1:4:-1: +-%*15li:-0B1:0:4: +-%15li:-0b1:1:4:-1: +-%*15li:-0b1:0:4: + %15li:-0:1:2:0: + %*15li:-0:0:2: + %15li:-0X0:1:4:0: +@@ -722,10 +486,6 @@ + %*15li:-0x0:0:4: + %15li:-00:1:3:0: + %*15li:-00:0:3: +-%15li:-0B0:1:4:0: +-%*15li:-0B0:0:4: +-%15li:-0b0:1:4:0: +-%*15li:-0b0:0:4: + %15li:0:1:1:0: + %*15li:0:0:1: + %15li:0X0:1:3:0: +@@ -734,10 +494,6 @@ + %*15li:0x0:0:3: + %15li:00:1:2:0: + %*15li:00:0:2: +-%15li:0B0:1:3:0: +-%*15li:0B0:0:3: +-%15li:0b0:1:3:0: +-%*15li:0b0:0:3: + %15li:1:1:1:1: + %*15li:1:0:1: + %15li:0X1:1:3:1: +@@ -746,10 +502,6 @@ + %*15li:0x1:0:3: + %15li:01:1:2:1: + %*15li:01:0:2: +-%15li:0B1:1:3:1: +-%*15li:0B1:0:3: +-%15li:0b1:1:3:1: +-%*15li:0b1:0:3: + %15li:42:1:2:42: + %*15li:42:0:2: + %15li:0X2a:1:4:42: +@@ -758,10 +510,6 @@ + %*15li:0x2A:0:4: + %15li:052:1:3:42: + %*15li:052:0:3: +-%15li:0B101010:1:8:42: +-%*15li:0B101010:0:8: +-%15li:0b101010:1:8:42: +-%*15li:0b101010:0:8: + %15li:9223372036854775807:1:15:922337203685477: + %*15li:9223372036854775807:0:15: + %15li:0X7fffffffffffffff:1:15:2251799813685247: +@@ -770,10 +518,6 @@ + %*15li:0x7FFFFFFFFFFFFFFF:0:15: + %15li:0777777777777777777777:1:15:4398046511103: + %*15li:0777777777777777777777:0:15: +-%15li:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15li:0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15li:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15li:0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15li:9223372036854775808:1:15:922337203685477: + %*15li:9223372036854775808:0:15: + %15li:0X8000000000000000:1:15:2251799813685248: +@@ -782,10 +526,6 @@ + %*15li:0x8000000000000000:0:15: + %15li:01000000000000000000000:1:15:549755813888: + %*15li:01000000000000000000000:0:15: +-%15li:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15li:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15li:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15li:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15li:9223372036897200049:1:15:922337203689720: + %*15li:9223372036897200049:0:15: + %15li:0X80000000028757b1:1:15:2251799813695605: +@@ -794,10 +534,6 @@ + %*15li:0x80000000028757B1:0:15: + %15li:01000000000000241653661:1:15:549755813890: + %*15li:01000000000000241653661:0:15: +-%15li:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15li:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15li:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15li:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %15li:+0:1:2:0: + %*15li:+0:0:2: + %15li:+0X0:1:4:0: +@@ -806,10 +542,6 @@ + %*15li:+0x0:0:4: + %15li:+00:1:3:0: + %*15li:+00:0:3: +-%15li:+0B0:1:4:0: +-%*15li:+0B0:0:4: +-%15li:+0b0:1:4:0: +-%*15li:+0b0:0:4: + %15li:+1:1:2:1: + %*15li:+1:0:2: + %15li:+0X1:1:4:1: +@@ -818,10 +550,6 @@ + %*15li:+0x1:0:4: + %15li:+01:1:3:1: + %*15li:+01:0:3: +-%15li:+0B1:1:4:1: +-%*15li:+0B1:0:4: +-%15li:+0b1:1:4:1: +-%*15li:+0b1:0:4: + %15li:+42:1:3:42: + %*15li:+42:0:3: + %15li:+0X2a:1:5:42: +@@ -830,10 +558,6 @@ + %*15li:+0x2A:0:5: + %15li:+052:1:4:42: + %*15li:+052:0:4: +-%15li:+0B101010:1:9:42: +-%*15li:+0B101010:0:9: +-%15li:+0b101010:1:9:42: +-%*15li:+0b101010:0:9: + %15li:+9223372036854775807:1:15:92233720368547: + %*15li:+9223372036854775807:0:15: + %15li:+0X7fffffffffffffff:1:15:140737488355327: +@@ -842,10 +566,6 @@ + %*15li:+0x7FFFFFFFFFFFFFFF:0:15: + %15li:+0777777777777777777777:1:15:549755813887: + %*15li:+0777777777777777777777:0:15: +-%15li:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15li:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15li:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15li:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: + %15li:+9223372036854775808:1:15:92233720368547: + %*15li:+9223372036854775808:0:15: + %15li:+0X8000000000000000:1:15:140737488355328: +@@ -854,10 +574,6 @@ + %*15li:+0x8000000000000000:0:15: + %15li:+01000000000000000000000:1:15:68719476736: + %*15li:+01000000000000000000000:0:15: +-%15li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: + %15li:+9223372036897200049:1:15:92233720368972: + %*15li:+9223372036897200049:0:15: + %15li:+0X80000000028757b1:1:15:140737488355975: +@@ -866,10 +582,6 @@ + %*15li:+0x80000000028757B1:0:15: + %15li:+01000000000000241653661:1:15:68719476736: + %*15li:+01000000000000241653661:0:15: +-%15li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: + %25li::0:-1: + %*25li::0:-1: + %25li:-9223372036867121486:1:20:-9223372036854775808: +@@ -880,10 +592,6 @@ + %*25li:-0x8000000000BC614E:0:19: + %25li:-01000000000000057060516:1:24:-9223372036854775808: + %*25li:-01000000000000057060516:0:24: +-%25li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: +-%25li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: +-%*25li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: + %25li:-9223372036854775809:1:20:-9223372036854775808: + %*25li:-9223372036854775809:0:20: + %25li:-0X8000000000000001:1:19:-9223372036854775808: +@@ -892,10 +600,6 @@ + %*25li:-0x8000000000000001:0:19: + %25li:-01000000000000000000001:1:24:-9223372036854775808: + %*25li:-01000000000000000000001:0:24: +-%25li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: +-%25li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: +-%*25li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: + %25li:-9223372036854775808:1:20:-9223372036854775808: + %*25li:-9223372036854775808:0:20: + %25li:-0X8000000000000000:1:19:-9223372036854775808: +@@ -904,10 +608,6 @@ + %*25li:-0x8000000000000000:0:19: + %25li:-01000000000000000000000:1:24:-9223372036854775808: + %*25li:-01000000000000000000000:0:24: +-%25li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: +-%*25li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25li:-123:1:4:-123: + %*25li:-123:0:4: + %25li:-0X7b:1:5:-123: +@@ -916,10 +616,6 @@ + %*25li:-0x7B:0:5: + %25li:-0173:1:5:-123: + %*25li:-0173:0:5: +-%25li:-0B1111011:1:10:-123: +-%*25li:-0B1111011:0:10: +-%25li:-0b1111011:1:10:-123: +-%*25li:-0b1111011:0:10: + %25li:-1:1:2:-1: + %*25li:-1:0:2: + %25li:-0X1:1:4:-1: +@@ -928,10 +624,6 @@ + %*25li:-0x1:0:4: + %25li:-01:1:3:-1: + %*25li:-01:0:3: +-%25li:-0B1:1:4:-1: +-%*25li:-0B1:0:4: +-%25li:-0b1:1:4:-1: +-%*25li:-0b1:0:4: + %25li:-0:1:2:0: + %*25li:-0:0:2: + %25li:-0X0:1:4:0: +@@ -940,10 +632,6 @@ + %*25li:-0x0:0:4: + %25li:-00:1:3:0: + %*25li:-00:0:3: +-%25li:-0B0:1:4:0: +-%*25li:-0B0:0:4: +-%25li:-0b0:1:4:0: +-%*25li:-0b0:0:4: + %25li:0:1:1:0: + %*25li:0:0:1: + %25li:0X0:1:3:0: +@@ -952,10 +640,6 @@ + %*25li:0x0:0:3: + %25li:00:1:2:0: + %*25li:00:0:2: +-%25li:0B0:1:3:0: +-%*25li:0B0:0:3: +-%25li:0b0:1:3:0: +-%*25li:0b0:0:3: + %25li:1:1:1:1: + %*25li:1:0:1: + %25li:0X1:1:3:1: +@@ -964,10 +648,6 @@ + %*25li:0x1:0:3: + %25li:01:1:2:1: + %*25li:01:0:2: +-%25li:0B1:1:3:1: +-%*25li:0B1:0:3: +-%25li:0b1:1:3:1: +-%*25li:0b1:0:3: + %25li:42:1:2:42: + %*25li:42:0:2: + %25li:0X2a:1:4:42: +@@ -976,10 +656,6 @@ + %*25li:0x2A:0:4: + %25li:052:1:3:42: + %*25li:052:0:3: +-%25li:0B101010:1:8:42: +-%*25li:0B101010:0:8: +-%25li:0b101010:1:8:42: +-%*25li:0b101010:0:8: + %25li:9223372036854775807:1:19:9223372036854775807: + %*25li:9223372036854775807:0:19: + %25li:0X7fffffffffffffff:1:18:9223372036854775807: +@@ -988,10 +664,6 @@ + %*25li:0x7FFFFFFFFFFFFFFF:0:18: + %25li:0777777777777777777777:1:22:9223372036854775807: + %*25li:0777777777777777777777:0:22: +-%25li:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25li:0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25li:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25li:0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25li:9223372036854775808:1:19:9223372036854775807: + %*25li:9223372036854775808:0:19: + %25li:0X8000000000000000:1:18:9223372036854775807: +@@ -1000,10 +672,6 @@ + %*25li:0x8000000000000000:0:18: + %25li:01000000000000000000000:1:23:9223372036854775807: + %*25li:01000000000000000000000:0:23: +-%25li:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25li:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25li:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25li:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25li:9223372036897200049:1:19:9223372036854775807: + %*25li:9223372036897200049:0:19: + %25li:0X80000000028757b1:1:18:9223372036854775807: +@@ -1012,10 +680,6 @@ + %*25li:0x80000000028757B1:0:18: + %25li:01000000000000241653661:1:23:9223372036854775807: + %*25li:01000000000000241653661:0:23: +-%25li:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25li:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25li:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25li:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %25li:+0:1:2:0: + %*25li:+0:0:2: + %25li:+0X0:1:4:0: +@@ -1024,10 +688,6 @@ + %*25li:+0x0:0:4: + %25li:+00:1:3:0: + %*25li:+00:0:3: +-%25li:+0B0:1:4:0: +-%*25li:+0B0:0:4: +-%25li:+0b0:1:4:0: +-%*25li:+0b0:0:4: + %25li:+1:1:2:1: + %*25li:+1:0:2: + %25li:+0X1:1:4:1: +@@ -1036,10 +696,6 @@ + %*25li:+0x1:0:4: + %25li:+01:1:3:1: + %*25li:+01:0:3: +-%25li:+0B1:1:4:1: +-%*25li:+0B1:0:4: +-%25li:+0b1:1:4:1: +-%*25li:+0b1:0:4: + %25li:+42:1:3:42: + %*25li:+42:0:3: + %25li:+0X2a:1:5:42: +@@ -1048,10 +704,6 @@ + %*25li:+0x2A:0:5: + %25li:+052:1:4:42: + %*25li:+052:0:4: +-%25li:+0B101010:1:9:42: +-%*25li:+0B101010:0:9: +-%25li:+0b101010:1:9:42: +-%*25li:+0b101010:0:9: + %25li:+9223372036854775807:1:20:9223372036854775807: + %*25li:+9223372036854775807:0:20: + %25li:+0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1060,10 +712,6 @@ + %*25li:+0x7FFFFFFFFFFFFFFF:0:19: + %25li:+0777777777777777777777:1:23:9223372036854775807: + %*25li:+0777777777777777777777:0:23: +-%25li:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25li:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25li:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25li:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: + %25li:+9223372036854775808:1:20:9223372036854775807: + %*25li:+9223372036854775808:0:20: + %25li:+0X8000000000000000:1:19:9223372036854775807: +@@ -1072,10 +720,6 @@ + %*25li:+0x8000000000000000:0:19: + %25li:+01000000000000000000000:1:24:9223372036854775807: + %*25li:+01000000000000000000000:0:24: +-%25li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: + %25li:+9223372036897200049:1:20:9223372036854775807: + %*25li:+9223372036897200049:0:20: + %25li:+0X80000000028757b1:1:19:9223372036854775807: +@@ -1084,10 +728,6 @@ + %*25li:+0x80000000028757B1:0:19: + %25li:+01000000000000241653661:1:24:9223372036854775807: + %*25li:+01000000000000241653661:0:24: +-%25li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: + %2li: :0:-1: + %*2li: :0:-1: + %2li: -9223372036867121486:1:3:-9: +@@ -1098,10 +738,6 @@ + %*2li: -0x8000000000BC614E:0:3: + %2li: -01000000000000057060516:1:3:0: + %*2li: -01000000000000057060516:0:3: +-%2li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: +-%2li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: +-%*2li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: + %2li: -9223372036854775809:1:3:-9: + %*2li: -9223372036854775809:0:3: + %2li: -0X8000000000000001:1:3:0: +@@ -1110,10 +746,6 @@ + %*2li: -0x8000000000000001:0:3: + %2li: -01000000000000000000001:1:3:0: + %*2li: -01000000000000000000001:0:3: +-%2li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: +-%2li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: +-%*2li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: + %2li: -9223372036854775808:1:3:-9: + %*2li: -9223372036854775808:0:3: + %2li: -0X8000000000000000:1:3:0: +@@ -1122,10 +754,6 @@ + %*2li: -0x8000000000000000:0:3: + %2li: -01000000000000000000000:1:3:0: + %*2li: -01000000000000000000000:0:3: +-%2li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2li: -123:1:3:-1: + %*2li: -123:0:3: + %2li: -0X7b:1:3:0: +@@ -1134,10 +762,6 @@ + %*2li: -0x7B:0:3: + %2li: -0173:1:3:0: + %*2li: -0173:0:3: +-%2li: -0B1111011:1:3:0: +-%*2li: -0B1111011:0:3: +-%2li: -0b1111011:1:3:0: +-%*2li: -0b1111011:0:3: + %2li: -1:1:3:-1: + %*2li: -1:0:3: + %2li: -0X1:1:3:0: +@@ -1146,10 +770,6 @@ + %*2li: -0x1:0:3: + %2li: -01:1:3:0: + %*2li: -01:0:3: +-%2li: -0B1:1:3:0: +-%*2li: -0B1:0:3: +-%2li: -0b1:1:3:0: +-%*2li: -0b1:0:3: + %2li: -0:1:3:0: + %*2li: -0:0:3: + %2li: -0X0:1:3:0: +@@ -1158,10 +778,6 @@ + %*2li: -0x0:0:3: + %2li: -00:1:3:0: + %*2li: -00:0:3: +-%2li: -0B0:1:3:0: +-%*2li: -0B0:0:3: +-%2li: -0b0:1:3:0: +-%*2li: -0b0:0:3: + %2li: 0:1:2:0: + %*2li: 0:0:2: + # BZ12701 %2li: 0X0:0:-1: +@@ -1170,10 +786,6 @@ + # BZ12701 %*2li: 0x0:0:-1: + %2li: 00:1:3:0: + %*2li: 00:0:3: +-# BZ12701 %2li: 0B0:0:-1: +-# BZ12701 %*2li: 0B0:0:-1: +-# BZ12701 %2li: 0b0:0:-1: +-# BZ12701 %*2li: 0b0:0:-1: + %2li: 1:1:2:1: + %*2li: 1:0:2: + # BZ12701 %2li: 0X1:0:-1: +@@ -1182,10 +794,6 @@ + # BZ12701 %*2li: 0x1:0:-1: + %2li: 01:1:3:1: + %*2li: 01:0:3: +-# BZ12701 %2li: 0B1:0:-1: +-# BZ12701 %*2li: 0B1:0:-1: +-# BZ12701 %2li: 0b1:0:-1: +-# BZ12701 %*2li: 0b1:0:-1: + %2li: 42:1:3:42: + %*2li: 42:0:3: + # BZ12701 %2li: 0X2a:0:-1: +@@ -1194,10 +802,6 @@ + # BZ12701 %*2li: 0x2A:0:-1: + %2li: 052:1:3:5: + %*2li: 052:0:3: +-# BZ12701 %2li: 0B101010:0:-1: +-# BZ12701 %*2li: 0B101010:0:-1: +-# BZ12701 %2li: 0b101010:0:-1: +-# BZ12701 %*2li: 0b101010:0:-1: + %2li: 9223372036854775807:1:3:92: + %*2li: 9223372036854775807:0:3: + # BZ12701 %2li: 0X7fffffffffffffff:0:-1: +@@ -1206,10 +810,6 @@ + # BZ12701 %*2li: 0x7FFFFFFFFFFFFFFF:0:-1: + %2li: 0777777777777777777777:1:3:7: + %*2li: 0777777777777777777777:0:3: +-# BZ12701 %2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: + %2li: 9223372036854775808:1:3:92: + %*2li: 9223372036854775808:0:3: + # BZ12701 %2li: 0X8000000000000000:0:-1: +@@ -1218,10 +818,6 @@ + # BZ12701 %*2li: 0x8000000000000000:0:-1: + %2li: 01000000000000000000000:1:3:1: + %*2li: 01000000000000000000000:0:3: +-# BZ12701 %2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: + %2li: 9223372036897200049:1:3:92: + %*2li: 9223372036897200049:0:3: + # BZ12701 %2li: 0X80000000028757b1:0:-1: +@@ -1230,10 +826,6 @@ + # BZ12701 %*2li: 0x80000000028757B1:0:-1: + %2li: 01000000000000241653661:1:3:1: + %*2li: 01000000000000241653661:0:3: +-# BZ12701 %2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: + %2li: +0:1:3:0: + %*2li: +0:0:3: + %2li: +0X0:1:3:0: +@@ -1242,10 +834,6 @@ + %*2li: +0x0:0:3: + %2li: +00:1:3:0: + %*2li: +00:0:3: +-%2li: +0B0:1:3:0: +-%*2li: +0B0:0:3: +-%2li: +0b0:1:3:0: +-%*2li: +0b0:0:3: + %2li: +1:1:3:1: + %*2li: +1:0:3: + %2li: +0X1:1:3:0: +@@ -1254,10 +842,6 @@ + %*2li: +0x1:0:3: + %2li: +01:1:3:0: + %*2li: +01:0:3: +-%2li: +0B1:1:3:0: +-%*2li: +0B1:0:3: +-%2li: +0b1:1:3:0: +-%*2li: +0b1:0:3: + %2li: +42:1:3:4: + %*2li: +42:0:3: + %2li: +0X2a:1:3:0: +@@ -1266,10 +850,6 @@ + %*2li: +0x2A:0:3: + %2li: +052:1:3:0: + %*2li: +052:0:3: +-%2li: +0B101010:1:3:0: +-%*2li: +0B101010:0:3: +-%2li: +0b101010:1:3:0: +-%*2li: +0b101010:0:3: + %2li: +9223372036854775807:1:3:9: + %*2li: +9223372036854775807:0:3: + %2li: +0X7fffffffffffffff:1:3:0: +@@ -1278,10 +858,6 @@ + %*2li: +0x7FFFFFFFFFFFFFFF:0:3: + %2li: +0777777777777777777777:1:3:0: + %*2li: +0777777777777777777777:0:3: +-%2li: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2li: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2li: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2li: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: + %2li: +9223372036854775808:1:3:9: + %*2li: +9223372036854775808:0:3: + %2li: +0X8000000000000000:1:3:0: +@@ -1290,10 +866,6 @@ + %*2li: +0x8000000000000000:0:3: + %2li: +01000000000000000000000:1:3:0: + %*2li: +01000000000000000000000:0:3: +-%2li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: + %2li: +9223372036897200049:1:3:9: + %*2li: +9223372036897200049:0:3: + %2li: +0X80000000028757b1:1:3:0: +@@ -1302,10 +874,6 @@ + %*2li: +0x80000000028757B1:0:3: + %2li: +01000000000000241653661:1:3:0: + %*2li: +01000000000000241653661:0:3: +-%2li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: + %25li: :0:-1: + %*25li: :0:-1: + %25li: -9223372036867121486:1:21:-9223372036854775808: +@@ -1316,10 +884,6 @@ + %*25li: -0x8000000000BC614E:0:20: + %25li: -01000000000000057060516:1:25:-9223372036854775808: + %*25li: -01000000000000057060516:0:25: +-%25li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: +-%25li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: +-%*25li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: + %25li: -9223372036854775809:1:21:-9223372036854775808: + %*25li: -9223372036854775809:0:21: + %25li: -0X8000000000000001:1:20:-9223372036854775808: +@@ -1328,10 +892,6 @@ + %*25li: -0x8000000000000001:0:20: + %25li: -01000000000000000000001:1:25:-9223372036854775808: + %*25li: -01000000000000000000001:0:25: +-%25li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: +-%25li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: +-%*25li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: + %25li: -9223372036854775808:1:21:-9223372036854775808: + %*25li: -9223372036854775808:0:21: + %25li: -0X8000000000000000:1:20:-9223372036854775808: +@@ -1340,10 +900,6 @@ + %*25li: -0x8000000000000000:0:20: + %25li: -01000000000000000000000:1:25:-9223372036854775808: + %*25li: -01000000000000000000000:0:25: +-%25li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: +-%*25li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25li: -123:1:5:-123: + %*25li: -123:0:5: + %25li: -0X7b:1:6:-123: +@@ -1352,10 +908,6 @@ + %*25li: -0x7B:0:6: + %25li: -0173:1:6:-123: + %*25li: -0173:0:6: +-%25li: -0B1111011:1:11:-123: +-%*25li: -0B1111011:0:11: +-%25li: -0b1111011:1:11:-123: +-%*25li: -0b1111011:0:11: + %25li: -1:1:3:-1: + %*25li: -1:0:3: + %25li: -0X1:1:5:-1: +@@ -1364,10 +916,6 @@ + %*25li: -0x1:0:5: + %25li: -01:1:4:-1: + %*25li: -01:0:4: +-%25li: -0B1:1:5:-1: +-%*25li: -0B1:0:5: +-%25li: -0b1:1:5:-1: +-%*25li: -0b1:0:5: + %25li: -0:1:3:0: + %*25li: -0:0:3: + %25li: -0X0:1:5:0: +@@ -1376,10 +924,6 @@ + %*25li: -0x0:0:5: + %25li: -00:1:4:0: + %*25li: -00:0:4: +-%25li: -0B0:1:5:0: +-%*25li: -0B0:0:5: +-%25li: -0b0:1:5:0: +-%*25li: -0b0:0:5: + %25li: 0:1:2:0: + %*25li: 0:0:2: + %25li: 0X0:1:4:0: +@@ -1388,10 +932,6 @@ + %*25li: 0x0:0:4: + %25li: 00:1:3:0: + %*25li: 00:0:3: +-%25li: 0B0:1:4:0: +-%*25li: 0B0:0:4: +-%25li: 0b0:1:4:0: +-%*25li: 0b0:0:4: + %25li: 1:1:2:1: + %*25li: 1:0:2: + %25li: 0X1:1:4:1: +@@ -1400,10 +940,6 @@ + %*25li: 0x1:0:4: + %25li: 01:1:3:1: + %*25li: 01:0:3: +-%25li: 0B1:1:4:1: +-%*25li: 0B1:0:4: +-%25li: 0b1:1:4:1: +-%*25li: 0b1:0:4: + %25li: 42:1:3:42: + %*25li: 42:0:3: + %25li: 0X2a:1:5:42: +@@ -1412,10 +948,6 @@ + %*25li: 0x2A:0:5: + %25li: 052:1:4:42: + %*25li: 052:0:4: +-%25li: 0B101010:1:9:42: +-%*25li: 0B101010:0:9: +-%25li: 0b101010:1:9:42: +-%*25li: 0b101010:0:9: + %25li: 9223372036854775807:1:20:9223372036854775807: + %*25li: 9223372036854775807:0:20: + %25li: 0X7fffffffffffffff:1:19:9223372036854775807: +@@ -1424,10 +956,6 @@ + %*25li: 0x7FFFFFFFFFFFFFFF:0:19: + %25li: 0777777777777777777777:1:23:9223372036854775807: + %*25li: 0777777777777777777777:0:23: +-%25li: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25li: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25li: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25li: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25li: 9223372036854775808:1:20:9223372036854775807: + %*25li: 9223372036854775808:0:20: + %25li: 0X8000000000000000:1:19:9223372036854775807: +@@ -1436,10 +964,6 @@ + %*25li: 0x8000000000000000:0:19: + %25li: 01000000000000000000000:1:24:9223372036854775807: + %*25li: 01000000000000000000000:0:24: +-%25li: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25li: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25li: 9223372036897200049:1:20:9223372036854775807: + %*25li: 9223372036897200049:0:20: + %25li: 0X80000000028757b1:1:19:9223372036854775807: +@@ -1448,10 +972,6 @@ + %*25li: 0x80000000028757B1:0:19: + %25li: 01000000000000241653661:1:24:9223372036854775807: + %*25li: 01000000000000241653661:0:24: +-%25li: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25li: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: + %25li: +0:1:3:0: + %*25li: +0:0:3: + %25li: +0X0:1:5:0: +@@ -1460,10 +980,6 @@ + %*25li: +0x0:0:5: + %25li: +00:1:4:0: + %*25li: +00:0:4: +-%25li: +0B0:1:5:0: +-%*25li: +0B0:0:5: +-%25li: +0b0:1:5:0: +-%*25li: +0b0:0:5: + %25li: +1:1:3:1: + %*25li: +1:0:3: + %25li: +0X1:1:5:1: +@@ -1472,10 +988,6 @@ + %*25li: +0x1:0:5: + %25li: +01:1:4:1: + %*25li: +01:0:4: +-%25li: +0B1:1:5:1: +-%*25li: +0B1:0:5: +-%25li: +0b1:1:5:1: +-%*25li: +0b1:0:5: + %25li: +42:1:4:42: + %*25li: +42:0:4: + %25li: +0X2a:1:6:42: +@@ -1484,10 +996,6 @@ + %*25li: +0x2A:0:6: + %25li: +052:1:5:42: + %*25li: +052:0:5: +-%25li: +0B101010:1:10:42: +-%*25li: +0B101010:0:10: +-%25li: +0b101010:1:10:42: +-%*25li: +0b101010:0:10: + %25li: +9223372036854775807:1:21:9223372036854775807: + %*25li: +9223372036854775807:0:21: + %25li: +0X7fffffffffffffff:1:20:9223372036854775807: +@@ -1496,10 +1004,6 @@ + %*25li: +0x7FFFFFFFFFFFFFFF:0:20: + %25li: +0777777777777777777777:1:24:9223372036854775807: + %*25li: +0777777777777777777777:0:24: +-%25li: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25li: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25li: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25li: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: + %25li: +9223372036854775808:1:21:9223372036854775807: + %*25li: +9223372036854775808:0:21: + %25li: +0X8000000000000000:1:20:9223372036854775807: +@@ -1508,10 +1012,6 @@ + %*25li: +0x8000000000000000:0:20: + %25li: +01000000000000000000000:1:25:9223372036854775807: + %*25li: +01000000000000000000000:0:25: +-%25li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: + %25li: +9223372036897200049:1:21:9223372036854775807: + %*25li: +9223372036897200049:0:21: + %25li: +0X80000000028757b1:1:20:9223372036854775807: +@@ -1520,7 +1020,3 @@ + %*25li: +0x80000000028757B1:0:20: + %25li: +01000000000000241653661:1:25:9223372036854775807: + %*25li: +01000000000000241653661:0:25: +-%25li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +deleted file mode 100644 +index 7915af7adcaa4d9f..0000000000000000 +--- a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%b::0:-1: +-%*b::0:-1: +-%b:-1111011:1:8:4294967173: +-%*b:-1111011:0:8: +-%b:-0B1111011:1:10:4294967173: +-%*b:-0B1111011:0:10: +-%b:-0b1111011:1:10:4294967173: +-%*b:-0b1111011:0:10: +-%b:-1:1:2:4294967295: +-%*b:-1:0:2: +-%b:-0B1:1:4:4294967295: +-%*b:-0B1:0:4: +-%b:-0b1:1:4:4294967295: +-%*b:-0b1:0:4: +-%b:-0:1:2:0: +-%*b:-0:0:2: +-%b:-0B0:1:4:0: +-%*b:-0B0:0:4: +-%b:-0b0:1:4:0: +-%*b:-0b0:0:4: +-%b:0:1:1:0: +-%*b:0:0:1: +-%b:0B0:1:3:0: +-%*b:0B0:0:3: +-%b:0b0:1:3:0: +-%*b:0b0:0:3: +-%b:1:1:1:1: +-%*b:1:0:1: +-%b:0B1:1:3:1: +-%*b:0B1:0:3: +-%b:0b1:1:3:1: +-%*b:0b1:0:3: +-%b:101010:1:6:42: +-%*b:101010:0:6: +-%b:0B101010:1:8:42: +-%*b:0B101010:0:8: +-%b:0b101010:1:8:42: +-%*b:0b101010:0:8: +-%b:11111111111111111111111111111111:1:32:4294967295: +-%*b:11111111111111111111111111111111:0:32: +-%b:0B11111111111111111111111111111111:1:34:4294967295: +-%*b:0B11111111111111111111111111111111:0:34: +-%b:0b11111111111111111111111111111111:1:34:4294967295: +-%*b:0b11111111111111111111111111111111:0:34: +-%b:100000000000000000000000000000000:1:33:0: +-%*b:100000000000000000000000000000000:0:33: +-%b:0B100000000000000000000000000000000:1:35:0: +-%*b:0B100000000000000000000000000000000:0:35: +-%b:0b100000000000000000000000000000000:1:35:0: +-%*b:0b100000000000000000000000000000000:0:35: +-%b:100000000000000000001000010010001:1:33:4241: +-%*b:100000000000000000001000010010001:0:33: +-%b:0B100000000000000000001000010010001:1:35:4241: +-%*b:0B100000000000000000001000010010001:0:35: +-%b:0b100000000000000000001000010010001:1:35:4241: +-%*b:0b100000000000000000001000010010001:0:35: +-%b:+0:1:2:0: +-%*b:+0:0:2: +-%b:+0B0:1:4:0: +-%*b:+0B0:0:4: +-%b:+0b0:1:4:0: +-%*b:+0b0:0:4: +-%b:+1:1:2:1: +-%*b:+1:0:2: +-%b:+0B1:1:4:1: +-%*b:+0B1:0:4: +-%b:+0b1:1:4:1: +-%*b:+0b1:0:4: +-%b:+101010:1:7:42: +-%*b:+101010:0:7: +-%b:+0B101010:1:9:42: +-%*b:+0B101010:0:9: +-%b:+0b101010:1:9:42: +-%*b:+0b101010:0:9: +-%b:+11111111111111111111111111111111:1:33:4294967295: +-%*b:+11111111111111111111111111111111:0:33: +-%b:+0B11111111111111111111111111111111:1:35:4294967295: +-%*b:+0B11111111111111111111111111111111:0:35: +-%b:+0b11111111111111111111111111111111:1:35:4294967295: +-%*b:+0b11111111111111111111111111111111:0:35: +-%b:+100000000000000000000000000000000:1:34:0: +-%*b:+100000000000000000000000000000000:0:34: +-%b:+0B100000000000000000000000000000000:1:36:0: +-%*b:+0B100000000000000000000000000000000:0:36: +-%b:+0b100000000000000000000000000000000:1:36:0: +-%*b:+0b100000000000000000000000000000000:0:36: +-%b:+100000000000000000001000010010001:1:34:4241: +-%*b:+100000000000000000001000010010001:0:34: +-%b:+0B100000000000000000001000010010001:1:36:4241: +-%*b:+0B100000000000000000001000010010001:0:36: +-%b:+0b100000000000000000001000010010001:1:36:4241: +-%*b:+0b100000000000000000001000010010001:0:36: +-%1b::0:-1: +-%*1b::0:-1: +-%1b:-1111011:0:-1: +-%*1b:-1111011:0:-1: +-%1b:-0B1111011:0:-1: +-%*1b:-0B1111011:0:-1: +-%1b:-0b1111011:0:-1: +-%*1b:-0b1111011:0:-1: +-%1b:-1:0:-1: +-%*1b:-1:0:-1: +-%1b:-0B1:0:-1: +-%*1b:-0B1:0:-1: +-%1b:-0b1:0:-1: +-%*1b:-0b1:0:-1: +-%1b:-0:0:-1: +-%*1b:-0:0:-1: +-%1b:-0B0:0:-1: +-%*1b:-0B0:0:-1: +-%1b:-0b0:0:-1: +-%*1b:-0b0:0:-1: +-%1b:0:1:1:0: +-%*1b:0:0:1: +-%1b:0B0:1:1:0: +-%*1b:0B0:0:1: +-%1b:0b0:1:1:0: +-%*1b:0b0:0:1: +-%1b:1:1:1:1: +-%*1b:1:0:1: +-%1b:0B1:1:1:0: +-%*1b:0B1:0:1: +-%1b:0b1:1:1:0: +-%*1b:0b1:0:1: +-%1b:101010:1:1:1: +-%*1b:101010:0:1: +-%1b:0B101010:1:1:0: +-%*1b:0B101010:0:1: +-%1b:0b101010:1:1:0: +-%*1b:0b101010:0:1: +-%1b:11111111111111111111111111111111:1:1:1: +-%*1b:11111111111111111111111111111111:0:1: +-%1b:0B11111111111111111111111111111111:1:1:0: +-%*1b:0B11111111111111111111111111111111:0:1: +-%1b:0b11111111111111111111111111111111:1:1:0: +-%*1b:0b11111111111111111111111111111111:0:1: +-%1b:100000000000000000000000000000000:1:1:1: +-%*1b:100000000000000000000000000000000:0:1: +-%1b:0B100000000000000000000000000000000:1:1:0: +-%*1b:0B100000000000000000000000000000000:0:1: +-%1b:0b100000000000000000000000000000000:1:1:0: +-%*1b:0b100000000000000000000000000000000:0:1: +-%1b:100000000000000000001000010010001:1:1:1: +-%*1b:100000000000000000001000010010001:0:1: +-%1b:0B100000000000000000001000010010001:1:1:0: +-%*1b:0B100000000000000000001000010010001:0:1: +-%1b:0b100000000000000000001000010010001:1:1:0: +-%*1b:0b100000000000000000001000010010001:0:1: +-%1b:+0:0:-1: +-%*1b:+0:0:-1: +-%1b:+0B0:0:-1: +-%*1b:+0B0:0:-1: +-%1b:+0b0:0:-1: +-%*1b:+0b0:0:-1: +-%1b:+1:0:-1: +-%*1b:+1:0:-1: +-%1b:+0B1:0:-1: +-%*1b:+0B1:0:-1: +-%1b:+0b1:0:-1: +-%*1b:+0b1:0:-1: +-%1b:+101010:0:-1: +-%*1b:+101010:0:-1: +-%1b:+0B101010:0:-1: +-%*1b:+0B101010:0:-1: +-%1b:+0b101010:0:-1: +-%*1b:+0b101010:0:-1: +-%1b:+11111111111111111111111111111111:0:-1: +-%*1b:+11111111111111111111111111111111:0:-1: +-%1b:+0B11111111111111111111111111111111:0:-1: +-%*1b:+0B11111111111111111111111111111111:0:-1: +-%1b:+0b11111111111111111111111111111111:0:-1: +-%*1b:+0b11111111111111111111111111111111:0:-1: +-%1b:+100000000000000000000000000000000:0:-1: +-%*1b:+100000000000000000000000000000000:0:-1: +-%1b:+0B100000000000000000000000000000000:0:-1: +-%*1b:+0B100000000000000000000000000000000:0:-1: +-%1b:+0b100000000000000000000000000000000:0:-1: +-%*1b:+0b100000000000000000000000000000000:0:-1: +-%1b:+100000000000000000001000010010001:0:-1: +-%*1b:+100000000000000000001000010010001:0:-1: +-%1b:+0B100000000000000000001000010010001:0:-1: +-%*1b:+0B100000000000000000001000010010001:0:-1: +-%1b:+0b100000000000000000001000010010001:0:-1: +-%*1b:+0b100000000000000000001000010010001:0:-1: +-%2b::0:-1: +-%*2b::0:-1: +-%2b:-1111011:1:2:4294967295: +-%*2b:-1111011:0:2: +-%2b:-0B1111011:1:2:0: +-%*2b:-0B1111011:0:2: +-%2b:-0b1111011:1:2:0: +-%*2b:-0b1111011:0:2: +-%2b:-1:1:2:4294967295: +-%*2b:-1:0:2: +-%2b:-0B1:1:2:0: +-%*2b:-0B1:0:2: +-%2b:-0b1:1:2:0: +-%*2b:-0b1:0:2: +-%2b:-0:1:2:0: +-%*2b:-0:0:2: +-%2b:-0B0:1:2:0: +-%*2b:-0B0:0:2: +-%2b:-0b0:1:2:0: +-%*2b:-0b0:0:2: +-%2b:0:1:1:0: +-%*2b:0:0:1: +-# BZ12701 %2b:0B0:0:-1: +-# BZ12701 %*2b:0B0:0:-1: +-# BZ12701 %2b:0b0:0:-1: +-# BZ12701 %*2b:0b0:0:-1: +-%2b:1:1:1:1: +-%*2b:1:0:1: +-# BZ12701 %2b:0B1:0:-1: +-# BZ12701 %*2b:0B1:0:-1: +-# BZ12701 %2b:0b1:0:-1: +-# BZ12701 %*2b:0b1:0:-1: +-%2b:101010:1:2:2: +-%*2b:101010:0:2: +-# BZ12701 %2b:0B101010:0:-1: +-# BZ12701 %*2b:0B101010:0:-1: +-# BZ12701 %2b:0b101010:0:-1: +-# BZ12701 %*2b:0b101010:0:-1: +-%2b:11111111111111111111111111111111:1:2:3: +-%*2b:11111111111111111111111111111111:0:2: +-# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: +-%2b:100000000000000000000000000000000:1:2:2: +-%*2b:100000000000000000000000000000000:0:2: +-# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: +-%2b:100000000000000000001000010010001:1:2:2: +-%*2b:100000000000000000001000010010001:0:2: +-# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: +-%2b:+0:1:2:0: +-%*2b:+0:0:2: +-%2b:+0B0:1:2:0: +-%*2b:+0B0:0:2: +-%2b:+0b0:1:2:0: +-%*2b:+0b0:0:2: +-%2b:+1:1:2:1: +-%*2b:+1:0:2: +-%2b:+0B1:1:2:0: +-%*2b:+0B1:0:2: +-%2b:+0b1:1:2:0: +-%*2b:+0b1:0:2: +-%2b:+101010:1:2:1: +-%*2b:+101010:0:2: +-%2b:+0B101010:1:2:0: +-%*2b:+0B101010:0:2: +-%2b:+0b101010:1:2:0: +-%*2b:+0b101010:0:2: +-%2b:+11111111111111111111111111111111:1:2:1: +-%*2b:+11111111111111111111111111111111:0:2: +-%2b:+0B11111111111111111111111111111111:1:2:0: +-%*2b:+0B11111111111111111111111111111111:0:2: +-%2b:+0b11111111111111111111111111111111:1:2:0: +-%*2b:+0b11111111111111111111111111111111:0:2: +-%2b:+100000000000000000000000000000000:1:2:1: +-%*2b:+100000000000000000000000000000000:0:2: +-%2b:+0B100000000000000000000000000000000:1:2:0: +-%*2b:+0B100000000000000000000000000000000:0:2: +-%2b:+0b100000000000000000000000000000000:1:2:0: +-%*2b:+0b100000000000000000000000000000000:0:2: +-%2b:+100000000000000000001000010010001:1:2:1: +-%*2b:+100000000000000000001000010010001:0:2: +-%2b:+0B100000000000000000001000010010001:1:2:0: +-%*2b:+0B100000000000000000001000010010001:0:2: +-%2b:+0b100000000000000000001000010010001:1:2:0: +-%*2b:+0b100000000000000000001000010010001:0:2: +-%8b::0:-1: +-%*8b::0:-1: +-%8b:-1111011:1:8:4294967173: +-%*8b:-1111011:0:8: +-%8b:-0B1111011:1:8:4294967266: +-%*8b:-0B1111011:0:8: +-%8b:-0b1111011:1:8:4294967266: +-%*8b:-0b1111011:0:8: +-%8b:-1:1:2:4294967295: +-%*8b:-1:0:2: +-%8b:-0B1:1:4:4294967295: +-%*8b:-0B1:0:4: +-%8b:-0b1:1:4:4294967295: +-%*8b:-0b1:0:4: +-%8b:-0:1:2:0: +-%*8b:-0:0:2: +-%8b:-0B0:1:4:0: +-%*8b:-0B0:0:4: +-%8b:-0b0:1:4:0: +-%*8b:-0b0:0:4: +-%8b:0:1:1:0: +-%*8b:0:0:1: +-%8b:0B0:1:3:0: +-%*8b:0B0:0:3: +-%8b:0b0:1:3:0: +-%*8b:0b0:0:3: +-%8b:1:1:1:1: +-%*8b:1:0:1: +-%8b:0B1:1:3:1: +-%*8b:0B1:0:3: +-%8b:0b1:1:3:1: +-%*8b:0b1:0:3: +-%8b:101010:1:6:42: +-%*8b:101010:0:6: +-%8b:0B101010:1:8:42: +-%*8b:0B101010:0:8: +-%8b:0b101010:1:8:42: +-%*8b:0b101010:0:8: +-%8b:11111111111111111111111111111111:1:8:255: +-%*8b:11111111111111111111111111111111:0:8: +-%8b:0B11111111111111111111111111111111:1:8:63: +-%*8b:0B11111111111111111111111111111111:0:8: +-%8b:0b11111111111111111111111111111111:1:8:63: +-%*8b:0b11111111111111111111111111111111:0:8: +-%8b:100000000000000000000000000000000:1:8:128: +-%*8b:100000000000000000000000000000000:0:8: +-%8b:0B100000000000000000000000000000000:1:8:32: +-%*8b:0B100000000000000000000000000000000:0:8: +-%8b:0b100000000000000000000000000000000:1:8:32: +-%*8b:0b100000000000000000000000000000000:0:8: +-%8b:100000000000000000001000010010001:1:8:128: +-%*8b:100000000000000000001000010010001:0:8: +-%8b:0B100000000000000000001000010010001:1:8:32: +-%*8b:0B100000000000000000001000010010001:0:8: +-%8b:0b100000000000000000001000010010001:1:8:32: +-%*8b:0b100000000000000000001000010010001:0:8: +-%8b:+0:1:2:0: +-%*8b:+0:0:2: +-%8b:+0B0:1:4:0: +-%*8b:+0B0:0:4: +-%8b:+0b0:1:4:0: +-%*8b:+0b0:0:4: +-%8b:+1:1:2:1: +-%*8b:+1:0:2: +-%8b:+0B1:1:4:1: +-%*8b:+0B1:0:4: +-%8b:+0b1:1:4:1: +-%*8b:+0b1:0:4: +-%8b:+101010:1:7:42: +-%*8b:+101010:0:7: +-%8b:+0B101010:1:8:21: +-%*8b:+0B101010:0:8: +-%8b:+0b101010:1:8:21: +-%*8b:+0b101010:0:8: +-%8b:+11111111111111111111111111111111:1:8:127: +-%*8b:+11111111111111111111111111111111:0:8: +-%8b:+0B11111111111111111111111111111111:1:8:31: +-%*8b:+0B11111111111111111111111111111111:0:8: +-%8b:+0b11111111111111111111111111111111:1:8:31: +-%*8b:+0b11111111111111111111111111111111:0:8: +-%8b:+100000000000000000000000000000000:1:8:64: +-%*8b:+100000000000000000000000000000000:0:8: +-%8b:+0B100000000000000000000000000000000:1:8:16: +-%*8b:+0B100000000000000000000000000000000:0:8: +-%8b:+0b100000000000000000000000000000000:1:8:16: +-%*8b:+0b100000000000000000000000000000000:0:8: +-%8b:+100000000000000000001000010010001:1:8:64: +-%*8b:+100000000000000000001000010010001:0:8: +-%8b:+0B100000000000000000001000010010001:1:8:16: +-%*8b:+0B100000000000000000001000010010001:0:8: +-%8b:+0b100000000000000000001000010010001:1:8:16: +-%*8b:+0b100000000000000000001000010010001:0:8: +-%15b::0:-1: +-%*15b::0:-1: +-%15b:-1111011:1:8:4294967173: +-%*15b:-1111011:0:8: +-%15b:-0B1111011:1:10:4294967173: +-%*15b:-0B1111011:0:10: +-%15b:-0b1111011:1:10:4294967173: +-%*15b:-0b1111011:0:10: +-%15b:-1:1:2:4294967295: +-%*15b:-1:0:2: +-%15b:-0B1:1:4:4294967295: +-%*15b:-0B1:0:4: +-%15b:-0b1:1:4:4294967295: +-%*15b:-0b1:0:4: +-%15b:-0:1:2:0: +-%*15b:-0:0:2: +-%15b:-0B0:1:4:0: +-%*15b:-0B0:0:4: +-%15b:-0b0:1:4:0: +-%*15b:-0b0:0:4: +-%15b:0:1:1:0: +-%*15b:0:0:1: +-%15b:0B0:1:3:0: +-%*15b:0B0:0:3: +-%15b:0b0:1:3:0: +-%*15b:0b0:0:3: +-%15b:1:1:1:1: +-%*15b:1:0:1: +-%15b:0B1:1:3:1: +-%*15b:0B1:0:3: +-%15b:0b1:1:3:1: +-%*15b:0b1:0:3: +-%15b:101010:1:6:42: +-%*15b:101010:0:6: +-%15b:0B101010:1:8:42: +-%*15b:0B101010:0:8: +-%15b:0b101010:1:8:42: +-%*15b:0b101010:0:8: +-%15b:11111111111111111111111111111111:1:15:32767: +-%*15b:11111111111111111111111111111111:0:15: +-%15b:0B11111111111111111111111111111111:1:15:8191: +-%*15b:0B11111111111111111111111111111111:0:15: +-%15b:0b11111111111111111111111111111111:1:15:8191: +-%*15b:0b11111111111111111111111111111111:0:15: +-%15b:100000000000000000000000000000000:1:15:16384: +-%*15b:100000000000000000000000000000000:0:15: +-%15b:0B100000000000000000000000000000000:1:15:4096: +-%*15b:0B100000000000000000000000000000000:0:15: +-%15b:0b100000000000000000000000000000000:1:15:4096: +-%*15b:0b100000000000000000000000000000000:0:15: +-%15b:100000000000000000001000010010001:1:15:16384: +-%*15b:100000000000000000001000010010001:0:15: +-%15b:0B100000000000000000001000010010001:1:15:4096: +-%*15b:0B100000000000000000001000010010001:0:15: +-%15b:0b100000000000000000001000010010001:1:15:4096: +-%*15b:0b100000000000000000001000010010001:0:15: +-%15b:+0:1:2:0: +-%*15b:+0:0:2: +-%15b:+0B0:1:4:0: +-%*15b:+0B0:0:4: +-%15b:+0b0:1:4:0: +-%*15b:+0b0:0:4: +-%15b:+1:1:2:1: +-%*15b:+1:0:2: +-%15b:+0B1:1:4:1: +-%*15b:+0B1:0:4: +-%15b:+0b1:1:4:1: +-%*15b:+0b1:0:4: +-%15b:+101010:1:7:42: +-%*15b:+101010:0:7: +-%15b:+0B101010:1:9:42: +-%*15b:+0B101010:0:9: +-%15b:+0b101010:1:9:42: +-%*15b:+0b101010:0:9: +-%15b:+11111111111111111111111111111111:1:15:16383: +-%*15b:+11111111111111111111111111111111:0:15: +-%15b:+0B11111111111111111111111111111111:1:15:4095: +-%*15b:+0B11111111111111111111111111111111:0:15: +-%15b:+0b11111111111111111111111111111111:1:15:4095: +-%*15b:+0b11111111111111111111111111111111:0:15: +-%15b:+100000000000000000000000000000000:1:15:8192: +-%*15b:+100000000000000000000000000000000:0:15: +-%15b:+0B100000000000000000000000000000000:1:15:2048: +-%*15b:+0B100000000000000000000000000000000:0:15: +-%15b:+0b100000000000000000000000000000000:1:15:2048: +-%*15b:+0b100000000000000000000000000000000:0:15: +-%15b:+100000000000000000001000010010001:1:15:8192: +-%*15b:+100000000000000000001000010010001:0:15: +-%15b:+0B100000000000000000001000010010001:1:15:2048: +-%*15b:+0B100000000000000000001000010010001:0:15: +-%15b:+0b100000000000000000001000010010001:1:15:2048: +-%*15b:+0b100000000000000000001000010010001:0:15: +-%2b: :0:-1: +-%*2b: :0:-1: +-%2b: -1111011:1:3:4294967295: +-%*2b: -1111011:0:3: +-%2b: -0B1111011:1:3:0: +-%*2b: -0B1111011:0:3: +-%2b: -0b1111011:1:3:0: +-%*2b: -0b1111011:0:3: +-%2b: -1:1:3:4294967295: +-%*2b: -1:0:3: +-%2b: -0B1:1:3:0: +-%*2b: -0B1:0:3: +-%2b: -0b1:1:3:0: +-%*2b: -0b1:0:3: +-%2b: -0:1:3:0: +-%*2b: -0:0:3: +-%2b: -0B0:1:3:0: +-%*2b: -0B0:0:3: +-%2b: -0b0:1:3:0: +-%*2b: -0b0:0:3: +-%2b: 0:1:2:0: +-%*2b: 0:0:2: +-# BZ12701 %2b: 0B0:0:-1: +-# BZ12701 %*2b: 0B0:0:-1: +-# BZ12701 %2b: 0b0:0:-1: +-# BZ12701 %*2b: 0b0:0:-1: +-%2b: 1:1:2:1: +-%*2b: 1:0:2: +-# BZ12701 %2b: 0B1:0:-1: +-# BZ12701 %*2b: 0B1:0:-1: +-# BZ12701 %2b: 0b1:0:-1: +-# BZ12701 %*2b: 0b1:0:-1: +-%2b: 101010:1:3:2: +-%*2b: 101010:0:3: +-# BZ12701 %2b: 0B101010:0:-1: +-# BZ12701 %*2b: 0B101010:0:-1: +-# BZ12701 %2b: 0b101010:0:-1: +-# BZ12701 %*2b: 0b101010:0:-1: +-%2b: 11111111111111111111111111111111:1:3:3: +-%*2b: 11111111111111111111111111111111:0:3: +-# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: +-# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: +-# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: +-%2b: 100000000000000000000000000000000:1:3:2: +-%*2b: 100000000000000000000000000000000:0:3: +-# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: +-# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: +-# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: +-%2b: 100000000000000000001000010010001:1:3:2: +-%*2b: 100000000000000000001000010010001:0:3: +-# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: +-# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: +-# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: +-%2b: +0:1:3:0: +-%*2b: +0:0:3: +-%2b: +0B0:1:3:0: +-%*2b: +0B0:0:3: +-%2b: +0b0:1:3:0: +-%*2b: +0b0:0:3: +-%2b: +1:1:3:1: +-%*2b: +1:0:3: +-%2b: +0B1:1:3:0: +-%*2b: +0B1:0:3: +-%2b: +0b1:1:3:0: +-%*2b: +0b1:0:3: +-%2b: +101010:1:3:1: +-%*2b: +101010:0:3: +-%2b: +0B101010:1:3:0: +-%*2b: +0B101010:0:3: +-%2b: +0b101010:1:3:0: +-%*2b: +0b101010:0:3: +-%2b: +11111111111111111111111111111111:1:3:1: +-%*2b: +11111111111111111111111111111111:0:3: +-%2b: +0B11111111111111111111111111111111:1:3:0: +-%*2b: +0B11111111111111111111111111111111:0:3: +-%2b: +0b11111111111111111111111111111111:1:3:0: +-%*2b: +0b11111111111111111111111111111111:0:3: +-%2b: +100000000000000000000000000000000:1:3:1: +-%*2b: +100000000000000000000000000000000:0:3: +-%2b: +0B100000000000000000000000000000000:1:3:0: +-%*2b: +0B100000000000000000000000000000000:0:3: +-%2b: +0b100000000000000000000000000000000:1:3:0: +-%*2b: +0b100000000000000000000000000000000:0:3: +-%2b: +100000000000000000001000010010001:1:3:1: +-%*2b: +100000000000000000001000010010001:0:3: +-%2b: +0B100000000000000000001000010010001:1:3:0: +-%*2b: +0B100000000000000000001000010010001:0:3: +-%2b: +0b100000000000000000001000010010001:1:3:0: +-%*2b: +0b100000000000000000001000010010001:0:3: +-%15b: :0:-1: +-%*15b: :0:-1: +-%15b: -1111011:1:9:4294967173: +-%*15b: -1111011:0:9: +-%15b: -0B1111011:1:11:4294967173: +-%*15b: -0B1111011:0:11: +-%15b: -0b1111011:1:11:4294967173: +-%*15b: -0b1111011:0:11: +-%15b: -1:1:3:4294967295: +-%*15b: -1:0:3: +-%15b: -0B1:1:5:4294967295: +-%*15b: -0B1:0:5: +-%15b: -0b1:1:5:4294967295: +-%*15b: -0b1:0:5: +-%15b: -0:1:3:0: +-%*15b: -0:0:3: +-%15b: -0B0:1:5:0: +-%*15b: -0B0:0:5: +-%15b: -0b0:1:5:0: +-%*15b: -0b0:0:5: +-%15b: 0:1:2:0: +-%*15b: 0:0:2: +-%15b: 0B0:1:4:0: +-%*15b: 0B0:0:4: +-%15b: 0b0:1:4:0: +-%*15b: 0b0:0:4: +-%15b: 1:1:2:1: +-%*15b: 1:0:2: +-%15b: 0B1:1:4:1: +-%*15b: 0B1:0:4: +-%15b: 0b1:1:4:1: +-%*15b: 0b1:0:4: +-%15b: 101010:1:7:42: +-%*15b: 101010:0:7: +-%15b: 0B101010:1:9:42: +-%*15b: 0B101010:0:9: +-%15b: 0b101010:1:9:42: +-%*15b: 0b101010:0:9: +-%15b: 11111111111111111111111111111111:1:16:32767: +-%*15b: 11111111111111111111111111111111:0:16: +-%15b: 0B11111111111111111111111111111111:1:16:8191: +-%*15b: 0B11111111111111111111111111111111:0:16: +-%15b: 0b11111111111111111111111111111111:1:16:8191: +-%*15b: 0b11111111111111111111111111111111:0:16: +-%15b: 100000000000000000000000000000000:1:16:16384: +-%*15b: 100000000000000000000000000000000:0:16: +-%15b: 0B100000000000000000000000000000000:1:16:4096: +-%*15b: 0B100000000000000000000000000000000:0:16: +-%15b: 0b100000000000000000000000000000000:1:16:4096: +-%*15b: 0b100000000000000000000000000000000:0:16: +-%15b: 100000000000000000001000010010001:1:16:16384: +-%*15b: 100000000000000000001000010010001:0:16: +-%15b: 0B100000000000000000001000010010001:1:16:4096: +-%*15b: 0B100000000000000000001000010010001:0:16: +-%15b: 0b100000000000000000001000010010001:1:16:4096: +-%*15b: 0b100000000000000000001000010010001:0:16: +-%15b: +0:1:3:0: +-%*15b: +0:0:3: +-%15b: +0B0:1:5:0: +-%*15b: +0B0:0:5: +-%15b: +0b0:1:5:0: +-%*15b: +0b0:0:5: +-%15b: +1:1:3:1: +-%*15b: +1:0:3: +-%15b: +0B1:1:5:1: +-%*15b: +0B1:0:5: +-%15b: +0b1:1:5:1: +-%*15b: +0b1:0:5: +-%15b: +101010:1:8:42: +-%*15b: +101010:0:8: +-%15b: +0B101010:1:10:42: +-%*15b: +0B101010:0:10: +-%15b: +0b101010:1:10:42: +-%*15b: +0b101010:0:10: +-%15b: +11111111111111111111111111111111:1:16:16383: +-%*15b: +11111111111111111111111111111111:0:16: +-%15b: +0B11111111111111111111111111111111:1:16:4095: +-%*15b: +0B11111111111111111111111111111111:0:16: +-%15b: +0b11111111111111111111111111111111:1:16:4095: +-%*15b: +0b11111111111111111111111111111111:0:16: +-%15b: +100000000000000000000000000000000:1:16:8192: +-%*15b: +100000000000000000000000000000000:0:16: +-%15b: +0B100000000000000000000000000000000:1:16:2048: +-%*15b: +0B100000000000000000000000000000000:0:16: +-%15b: +0b100000000000000000000000000000000:1:16:2048: +-%*15b: +0b100000000000000000000000000000000:0:16: +-%15b: +100000000000000000001000010010001:1:16:8192: +-%*15b: +100000000000000000001000010010001:0:16: +-%15b: +0B100000000000000000001000010010001:1:16:2048: +-%*15b: +0B100000000000000000001000010010001:0:16: +-%15b: +0b100000000000000000001000010010001:1:16:2048: +-%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +deleted file mode 100644 +index ceb176e387185ae3..0000000000000000 +--- a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input ++++ /dev/null +@@ -1,644 +0,0 @@ +-%lb::0:-1: +-%*lb::0:-1: +-%lb:-1111011:1:8:-123: +-%*lb:-1111011:0:8: +-%lb:-0B1111011:1:10:-123: +-%*lb:-0B1111011:0:10: +-%lb:-0b1111011:1:10:-123: +-%*lb:-0b1111011:0:10: +-%lb:-1:1:2:-1: +-%*lb:-1:0:2: +-%lb:-0B1:1:4:-1: +-%*lb:-0B1:0:4: +-%lb:-0b1:1:4:-1: +-%*lb:-0b1:0:4: +-%lb:-0:1:2:0: +-%*lb:-0:0:2: +-%lb:-0B0:1:4:0: +-%*lb:-0B0:0:4: +-%lb:-0b0:1:4:0: +-%*lb:-0b0:0:4: +-%lb:0:1:1:0: +-%*lb:0:0:1: +-%lb:0B0:1:3:0: +-%*lb:0B0:0:3: +-%lb:0b0:1:3:0: +-%*lb:0b0:0:3: +-%lb:1:1:1:1: +-%*lb:1:0:1: +-%lb:0B1:1:3:1: +-%*lb:0B1:0:3: +-%lb:0b1:1:3:1: +-%*lb:0b1:0:3: +-%lb:101010:1:6:42: +-%*lb:101010:0:6: +-%lb:0B101010:1:8:42: +-%*lb:0B101010:0:8: +-%lb:0b101010:1:8:42: +-%*lb:0b101010:0:8: +-%lb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: +-%*lb:1111111111111111111111111111111111111111111111111111111111111111:0:64: +-%lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: +-%*lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: +-%lb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: +-%*lb:10000000000000000000000000000000000000000000000000000000000000000:0:65: +-%lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: +-%*lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: +-%lb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: +-%*lb:10000000000000000000000000000000000000010100001110101011110110001:0:65: +-%lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: +-%*lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: +-%lb:+0:1:2:0: +-%*lb:+0:0:2: +-%lb:+0B0:1:4:0: +-%*lb:+0B0:0:4: +-%lb:+0b0:1:4:0: +-%*lb:+0b0:0:4: +-%lb:+1:1:2:1: +-%*lb:+1:0:2: +-%lb:+0B1:1:4:1: +-%*lb:+0B1:0:4: +-%lb:+0b1:1:4:1: +-%*lb:+0b1:0:4: +-%lb:+101010:1:7:42: +-%*lb:+101010:0:7: +-%lb:+0B101010:1:9:42: +-%*lb:+0B101010:0:9: +-%lb:+0b101010:1:9:42: +-%*lb:+0b101010:0:9: +-%lb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: +-%*lb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: +-%lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: +-%*lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: +-%lb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: +-%*lb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: +-%lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: +-%*lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: +-%lb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: +-%*lb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: +-%lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: +-%*lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: +-%1lb::0:-1: +-%*1lb::0:-1: +-%1lb:-1111011:0:-1: +-%*1lb:-1111011:0:-1: +-%1lb:-0B1111011:0:-1: +-%*1lb:-0B1111011:0:-1: +-%1lb:-0b1111011:0:-1: +-%*1lb:-0b1111011:0:-1: +-%1lb:-1:0:-1: +-%*1lb:-1:0:-1: +-%1lb:-0B1:0:-1: +-%*1lb:-0B1:0:-1: +-%1lb:-0b1:0:-1: +-%*1lb:-0b1:0:-1: +-%1lb:-0:0:-1: +-%*1lb:-0:0:-1: +-%1lb:-0B0:0:-1: +-%*1lb:-0B0:0:-1: +-%1lb:-0b0:0:-1: +-%*1lb:-0b0:0:-1: +-%1lb:0:1:1:0: +-%*1lb:0:0:1: +-%1lb:0B0:1:1:0: +-%*1lb:0B0:0:1: +-%1lb:0b0:1:1:0: +-%*1lb:0b0:0:1: +-%1lb:1:1:1:1: +-%*1lb:1:0:1: +-%1lb:0B1:1:1:0: +-%*1lb:0B1:0:1: +-%1lb:0b1:1:1:0: +-%*1lb:0b1:0:1: +-%1lb:101010:1:1:1: +-%*1lb:101010:0:1: +-%1lb:0B101010:1:1:0: +-%*1lb:0B101010:0:1: +-%1lb:0b101010:1:1:0: +-%*1lb:0b101010:0:1: +-%1lb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: +-%*1lb:1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: +-%*1lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: +-%1lb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: +-%*1lb:10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: +-%*1lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: +-%1lb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: +-%*1lb:10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: +-%*1lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: +-%1lb:+0:0:-1: +-%*1lb:+0:0:-1: +-%1lb:+0B0:0:-1: +-%*1lb:+0B0:0:-1: +-%1lb:+0b0:0:-1: +-%*1lb:+0b0:0:-1: +-%1lb:+1:0:-1: +-%*1lb:+1:0:-1: +-%1lb:+0B1:0:-1: +-%*1lb:+0B1:0:-1: +-%1lb:+0b1:0:-1: +-%*1lb:+0b1:0:-1: +-%1lb:+101010:0:-1: +-%*1lb:+101010:0:-1: +-%1lb:+0B101010:0:-1: +-%*1lb:+0B101010:0:-1: +-%1lb:+0b101010:0:-1: +-%*1lb:+0b101010:0:-1: +-%1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%*1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%*1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%*1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2lb::0:-1: +-%*2lb::0:-1: +-%2lb:-1111011:1:2:-1: +-%*2lb:-1111011:0:2: +-%2lb:-0B1111011:1:2:0: +-%*2lb:-0B1111011:0:2: +-%2lb:-0b1111011:1:2:0: +-%*2lb:-0b1111011:0:2: +-%2lb:-1:1:2:-1: +-%*2lb:-1:0:2: +-%2lb:-0B1:1:2:0: +-%*2lb:-0B1:0:2: +-%2lb:-0b1:1:2:0: +-%*2lb:-0b1:0:2: +-%2lb:-0:1:2:0: +-%*2lb:-0:0:2: +-%2lb:-0B0:1:2:0: +-%*2lb:-0B0:0:2: +-%2lb:-0b0:1:2:0: +-%*2lb:-0b0:0:2: +-%2lb:0:1:1:0: +-%*2lb:0:0:1: +-# BZ12701 %2lb:0B0:0:-1: +-# BZ12701 %*2lb:0B0:0:-1: +-# BZ12701 %2lb:0b0:0:-1: +-# BZ12701 %*2lb:0b0:0:-1: +-%2lb:1:1:1:1: +-%*2lb:1:0:1: +-# BZ12701 %2lb:0B1:0:-1: +-# BZ12701 %*2lb:0B1:0:-1: +-# BZ12701 %2lb:0b1:0:-1: +-# BZ12701 %*2lb:0b1:0:-1: +-%2lb:101010:1:2:2: +-%*2lb:101010:0:2: +-# BZ12701 %2lb:0B101010:0:-1: +-# BZ12701 %*2lb:0B101010:0:-1: +-# BZ12701 %2lb:0b101010:0:-1: +-# BZ12701 %*2lb:0b101010:0:-1: +-%2lb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: +-%*2lb:1111111111111111111111111111111111111111111111111111111111111111:0:2: +-# BZ12701 %2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2lb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: +-%*2lb:10000000000000000000000000000000000000000000000000000000000000000:0:2: +-# BZ12701 %2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2lb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: +-%*2lb:10000000000000000000000000000000000000010100001110101011110110001:0:2: +-# BZ12701 %2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2lb:+0:1:2:0: +-%*2lb:+0:0:2: +-%2lb:+0B0:1:2:0: +-%*2lb:+0B0:0:2: +-%2lb:+0b0:1:2:0: +-%*2lb:+0b0:0:2: +-%2lb:+1:1:2:1: +-%*2lb:+1:0:2: +-%2lb:+0B1:1:2:0: +-%*2lb:+0B1:0:2: +-%2lb:+0b1:1:2:0: +-%*2lb:+0b1:0:2: +-%2lb:+101010:1:2:1: +-%*2lb:+101010:0:2: +-%2lb:+0B101010:1:2:0: +-%*2lb:+0B101010:0:2: +-%2lb:+0b101010:1:2:0: +-%*2lb:+0b101010:0:2: +-%2lb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: +-%*2lb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: +-%*2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: +-%2lb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: +-%*2lb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: +-%*2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: +-%2lb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: +-%*2lb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: +-%*2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: +-%15lb::0:-1: +-%*15lb::0:-1: +-%15lb:-1111011:1:8:-123: +-%*15lb:-1111011:0:8: +-%15lb:-0B1111011:1:10:-123: +-%*15lb:-0B1111011:0:10: +-%15lb:-0b1111011:1:10:-123: +-%*15lb:-0b1111011:0:10: +-%15lb:-1:1:2:-1: +-%*15lb:-1:0:2: +-%15lb:-0B1:1:4:-1: +-%*15lb:-0B1:0:4: +-%15lb:-0b1:1:4:-1: +-%*15lb:-0b1:0:4: +-%15lb:-0:1:2:0: +-%*15lb:-0:0:2: +-%15lb:-0B0:1:4:0: +-%*15lb:-0B0:0:4: +-%15lb:-0b0:1:4:0: +-%*15lb:-0b0:0:4: +-%15lb:0:1:1:0: +-%*15lb:0:0:1: +-%15lb:0B0:1:3:0: +-%*15lb:0B0:0:3: +-%15lb:0b0:1:3:0: +-%*15lb:0b0:0:3: +-%15lb:1:1:1:1: +-%*15lb:1:0:1: +-%15lb:0B1:1:3:1: +-%*15lb:0B1:0:3: +-%15lb:0b1:1:3:1: +-%*15lb:0b1:0:3: +-%15lb:101010:1:6:42: +-%*15lb:101010:0:6: +-%15lb:0B101010:1:8:42: +-%*15lb:0B101010:0:8: +-%15lb:0b101010:1:8:42: +-%*15lb:0b101010:0:8: +-%15lb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: +-%*15lb:1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: +-%*15lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: +-%*15lb:10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: +-%*15lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: +-%*15lb:10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: +-%*15lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:+0:1:2:0: +-%*15lb:+0:0:2: +-%15lb:+0B0:1:4:0: +-%*15lb:+0B0:0:4: +-%15lb:+0b0:1:4:0: +-%*15lb:+0b0:0:4: +-%15lb:+1:1:2:1: +-%*15lb:+1:0:2: +-%15lb:+0B1:1:4:1: +-%*15lb:+0B1:0:4: +-%15lb:+0b1:1:4:1: +-%*15lb:+0b1:0:4: +-%15lb:+101010:1:7:42: +-%*15lb:+101010:0:7: +-%15lb:+0B101010:1:9:42: +-%*15lb:+0B101010:0:9: +-%15lb:+0b101010:1:9:42: +-%*15lb:+0b101010:0:9: +-%15lb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: +-%*15lb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: +-%*15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: +-%15lb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: +-%*15lb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: +-%*15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: +-%15lb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: +-%*15lb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: +-%*15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: +-%25lb::0:-1: +-%*25lb::0:-1: +-%25lb:-1111011:1:8:-123: +-%*25lb:-1111011:0:8: +-%25lb:-0B1111011:1:10:-123: +-%*25lb:-0B1111011:0:10: +-%25lb:-0b1111011:1:10:-123: +-%*25lb:-0b1111011:0:10: +-%25lb:-1:1:2:-1: +-%*25lb:-1:0:2: +-%25lb:-0B1:1:4:-1: +-%*25lb:-0B1:0:4: +-%25lb:-0b1:1:4:-1: +-%*25lb:-0b1:0:4: +-%25lb:-0:1:2:0: +-%*25lb:-0:0:2: +-%25lb:-0B0:1:4:0: +-%*25lb:-0B0:0:4: +-%25lb:-0b0:1:4:0: +-%*25lb:-0b0:0:4: +-%25lb:0:1:1:0: +-%*25lb:0:0:1: +-%25lb:0B0:1:3:0: +-%*25lb:0B0:0:3: +-%25lb:0b0:1:3:0: +-%*25lb:0b0:0:3: +-%25lb:1:1:1:1: +-%*25lb:1:0:1: +-%25lb:0B1:1:3:1: +-%*25lb:0B1:0:3: +-%25lb:0b1:1:3:1: +-%*25lb:0b1:0:3: +-%25lb:101010:1:6:42: +-%*25lb:101010:0:6: +-%25lb:0B101010:1:8:42: +-%*25lb:0B101010:0:8: +-%25lb:0b101010:1:8:42: +-%*25lb:0b101010:0:8: +-%25lb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: +-%*25lb:1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: +-%*25lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: +-%*25lb:10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: +-%*25lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: +-%*25lb:10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: +-%*25lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:+0:1:2:0: +-%*25lb:+0:0:2: +-%25lb:+0B0:1:4:0: +-%*25lb:+0B0:0:4: +-%25lb:+0b0:1:4:0: +-%*25lb:+0b0:0:4: +-%25lb:+1:1:2:1: +-%*25lb:+1:0:2: +-%25lb:+0B1:1:4:1: +-%*25lb:+0B1:0:4: +-%25lb:+0b1:1:4:1: +-%*25lb:+0b1:0:4: +-%25lb:+101010:1:7:42: +-%*25lb:+101010:0:7: +-%25lb:+0B101010:1:9:42: +-%*25lb:+0B101010:0:9: +-%25lb:+0b101010:1:9:42: +-%*25lb:+0b101010:0:9: +-%25lb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: +-%*25lb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: +-%*25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: +-%25lb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: +-%*25lb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: +-%*25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: +-%25lb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: +-%*25lb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: +-%*25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: +-%2lb: :0:-1: +-%*2lb: :0:-1: +-%2lb: -1111011:1:3:-1: +-%*2lb: -1111011:0:3: +-%2lb: -0B1111011:1:3:0: +-%*2lb: -0B1111011:0:3: +-%2lb: -0b1111011:1:3:0: +-%*2lb: -0b1111011:0:3: +-%2lb: -1:1:3:-1: +-%*2lb: -1:0:3: +-%2lb: -0B1:1:3:0: +-%*2lb: -0B1:0:3: +-%2lb: -0b1:1:3:0: +-%*2lb: -0b1:0:3: +-%2lb: -0:1:3:0: +-%*2lb: -0:0:3: +-%2lb: -0B0:1:3:0: +-%*2lb: -0B0:0:3: +-%2lb: -0b0:1:3:0: +-%*2lb: -0b0:0:3: +-%2lb: 0:1:2:0: +-%*2lb: 0:0:2: +-# BZ12701 %2lb: 0B0:0:-1: +-# BZ12701 %*2lb: 0B0:0:-1: +-# BZ12701 %2lb: 0b0:0:-1: +-# BZ12701 %*2lb: 0b0:0:-1: +-%2lb: 1:1:2:1: +-%*2lb: 1:0:2: +-# BZ12701 %2lb: 0B1:0:-1: +-# BZ12701 %*2lb: 0B1:0:-1: +-# BZ12701 %2lb: 0b1:0:-1: +-# BZ12701 %*2lb: 0b1:0:-1: +-%2lb: 101010:1:3:2: +-%*2lb: 101010:0:3: +-# BZ12701 %2lb: 0B101010:0:-1: +-# BZ12701 %*2lb: 0B101010:0:-1: +-# BZ12701 %2lb: 0b101010:0:-1: +-# BZ12701 %*2lb: 0b101010:0:-1: +-%2lb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: +-%*2lb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: +-# BZ12701 %2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-# BZ12701 %*2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: +-%2lb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: +-%*2lb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: +-# BZ12701 %2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-# BZ12701 %*2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: +-%2lb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: +-%*2lb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: +-# BZ12701 %2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-# BZ12701 %*2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: +-%2lb: +0:1:3:0: +-%*2lb: +0:0:3: +-%2lb: +0B0:1:3:0: +-%*2lb: +0B0:0:3: +-%2lb: +0b0:1:3:0: +-%*2lb: +0b0:0:3: +-%2lb: +1:1:3:1: +-%*2lb: +1:0:3: +-%2lb: +0B1:1:3:0: +-%*2lb: +0B1:0:3: +-%2lb: +0b1:1:3:0: +-%*2lb: +0b1:0:3: +-%2lb: +101010:1:3:1: +-%*2lb: +101010:0:3: +-%2lb: +0B101010:1:3:0: +-%*2lb: +0B101010:0:3: +-%2lb: +0b101010:1:3:0: +-%*2lb: +0b101010:0:3: +-%2lb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: +-%*2lb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: +-%*2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: +-%2lb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: +-%*2lb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: +-%*2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: +-%2lb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: +-%*2lb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: +-%*2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: +-%25lb: :0:-1: +-%*25lb: :0:-1: +-%25lb: -1111011:1:9:-123: +-%*25lb: -1111011:0:9: +-%25lb: -0B1111011:1:11:-123: +-%*25lb: -0B1111011:0:11: +-%25lb: -0b1111011:1:11:-123: +-%*25lb: -0b1111011:0:11: +-%25lb: -1:1:3:-1: +-%*25lb: -1:0:3: +-%25lb: -0B1:1:5:-1: +-%*25lb: -0B1:0:5: +-%25lb: -0b1:1:5:-1: +-%*25lb: -0b1:0:5: +-%25lb: -0:1:3:0: +-%*25lb: -0:0:3: +-%25lb: -0B0:1:5:0: +-%*25lb: -0B0:0:5: +-%25lb: -0b0:1:5:0: +-%*25lb: -0b0:0:5: +-%25lb: 0:1:2:0: +-%*25lb: 0:0:2: +-%25lb: 0B0:1:4:0: +-%*25lb: 0B0:0:4: +-%25lb: 0b0:1:4:0: +-%*25lb: 0b0:0:4: +-%25lb: 1:1:2:1: +-%*25lb: 1:0:2: +-%25lb: 0B1:1:4:1: +-%*25lb: 0B1:0:4: +-%25lb: 0b1:1:4:1: +-%*25lb: 0b1:0:4: +-%25lb: 101010:1:7:42: +-%*25lb: 101010:0:7: +-%25lb: 0B101010:1:9:42: +-%*25lb: 0B101010:0:9: +-%25lb: 0b101010:1:9:42: +-%*25lb: 0b101010:0:9: +-%25lb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: +-%*25lb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: +-%*25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: +-%*25lb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: +-%*25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: +-%*25lb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: +-%*25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: +0:1:3:0: +-%*25lb: +0:0:3: +-%25lb: +0B0:1:5:0: +-%*25lb: +0B0:0:5: +-%25lb: +0b0:1:5:0: +-%*25lb: +0b0:0:5: +-%25lb: +1:1:3:1: +-%*25lb: +1:0:3: +-%25lb: +0B1:1:5:1: +-%*25lb: +0B1:0:5: +-%25lb: +0b1:1:5:1: +-%*25lb: +0b1:0:5: +-%25lb: +101010:1:8:42: +-%*25lb: +101010:0:8: +-%25lb: +0B101010:1:10:42: +-%*25lb: +0B101010:0:10: +-%25lb: +0b101010:1:10:42: +-%*25lb: +0b101010:0:10: +-%25lb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: +-%*25lb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: +-%*25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: +-%25lb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: +-%*25lb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: +-%*25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: +-%25lb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: +-%*25lb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: +-%25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: +-%*25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: diff --git a/SOURCES/glibc-RHEL-84306-2.patch b/SOURCES/glibc-RHEL-84306-2.patch new file mode 100644 index 0000000..8b08225 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-2.patch @@ -0,0 +1,9159 @@ +commit d7584e4d367ccb281ecf68980995e9b5ca0aff46 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf integer data for ILP32 targets + + Add Makefile infrastructure and `int' and `long' integer input data, + signed and unsigned, for ILP32 targets. + + While the size of `int' data is the same between ILP32 and LP64 targets, + resulting scanf output is different between them for out of range input + data and while ISO C and POSIX both say that the behavior is undefined + if the result of the conversion cannot be represented we want to keep + track of our output to prevent inadvertent changes. Hence the use of + distinct `int' integer input data between ILP32 and LP64 targets. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0b' or '0x'. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/wordsize-32/Makefile b/sysdeps/wordsize-32/Makefile +new file mode 100644 +index 0000000000000000..5b5aa292667181d4 +--- /dev/null ++++ b/sysdeps/wordsize-32/Makefile +@@ -0,0 +1,4 @@ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-int-convs += int long ++fmt-xscanf-uint-convs += uint ulong ++endif +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-d.input b/sysdeps/wordsize-32/tst-scanf-format-int-d.input +new file mode 100644 +index 0000000000000000..5347e290df6c4165 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-d.input +@@ -0,0 +1,266 @@ ++%d::0:-1: ++%*d::0:-1: ++%d:-2147484882:1:11:-2147483648: ++%*d:-2147484882:0:11: ++%d:-2147483649:1:11:-2147483648: ++%*d:-2147483649:0:11: ++%d:-2147483648:1:11:-2147483648: ++%*d:-2147483648:0:11: ++%d:-123:1:4:-123: ++%*d:-123:0:4: ++%d:-1:1:2:-1: ++%*d:-1:0:2: ++%d:-0:1:2:0: ++%*d:-0:0:2: ++%d:0:1:1:0: ++%*d:0:0:1: ++%d:1:1:1:1: ++%*d:1:0:1: ++%d:42:1:2:42: ++%*d:42:0:2: ++%d:2147483647:1:10:2147483647: ++%*d:2147483647:0:10: ++%d:2147483648:1:10:2147483647: ++%*d:2147483648:0:10: ++%d:2147487889:1:10:2147483647: ++%*d:2147487889:0:10: ++%d:+0:1:2:0: ++%*d:+0:0:2: ++%d:+1:1:2:1: ++%*d:+1:0:2: ++%d:+42:1:3:42: ++%*d:+42:0:3: ++%d:+2147483647:1:11:2147483647: ++%*d:+2147483647:0:11: ++%d:+2147483648:1:11:2147483647: ++%*d:+2147483648:0:11: ++%d:+2147487889:1:11:2147483647: ++%*d:+2147487889:0:11: ++%1d::0:-1: ++%*1d::0:-1: ++%1d:-2147484882:0:-1: ++%*1d:-2147484882:0:-1: ++%1d:-2147483649:0:-1: ++%*1d:-2147483649:0:-1: ++%1d:-2147483648:0:-1: ++%*1d:-2147483648:0:-1: ++%1d:-123:0:-1: ++%*1d:-123:0:-1: ++%1d:-1:0:-1: ++%*1d:-1:0:-1: ++%1d:-0:0:-1: ++%*1d:-0:0:-1: ++%1d:0:1:1:0: ++%*1d:0:0:1: ++%1d:1:1:1:1: ++%*1d:1:0:1: ++%1d:42:1:1:4: ++%*1d:42:0:1: ++%1d:2147483647:1:1:2: ++%*1d:2147483647:0:1: ++%1d:2147483648:1:1:2: ++%*1d:2147483648:0:1: ++%1d:2147487889:1:1:2: ++%*1d:2147487889:0:1: ++%1d:+0:0:-1: ++%*1d:+0:0:-1: ++%1d:+1:0:-1: ++%*1d:+1:0:-1: ++%1d:+42:0:-1: ++%*1d:+42:0:-1: ++%1d:+2147483647:0:-1: ++%*1d:+2147483647:0:-1: ++%1d:+2147483648:0:-1: ++%*1d:+2147483648:0:-1: ++%1d:+2147487889:0:-1: ++%*1d:+2147487889:0:-1: ++%2d::0:-1: ++%*2d::0:-1: ++%2d:-2147484882:1:2:-2: ++%*2d:-2147484882:0:2: ++%2d:-2147483649:1:2:-2: ++%*2d:-2147483649:0:2: ++%2d:-2147483648:1:2:-2: ++%*2d:-2147483648:0:2: ++%2d:-123:1:2:-1: ++%*2d:-123:0:2: ++%2d:-1:1:2:-1: ++%*2d:-1:0:2: ++%2d:-0:1:2:0: ++%*2d:-0:0:2: ++%2d:0:1:1:0: ++%*2d:0:0:1: ++%2d:1:1:1:1: ++%*2d:1:0:1: ++%2d:42:1:2:42: ++%*2d:42:0:2: ++%2d:2147483647:1:2:21: ++%*2d:2147483647:0:2: ++%2d:2147483648:1:2:21: ++%*2d:2147483648:0:2: ++%2d:2147487889:1:2:21: ++%*2d:2147487889:0:2: ++%2d:+0:1:2:0: ++%*2d:+0:0:2: ++%2d:+1:1:2:1: ++%*2d:+1:0:2: ++%2d:+42:1:2:4: ++%*2d:+42:0:2: ++%2d:+2147483647:1:2:2: ++%*2d:+2147483647:0:2: ++%2d:+2147483648:1:2:2: ++%*2d:+2147483648:0:2: ++%2d:+2147487889:1:2:2: ++%*2d:+2147487889:0:2: ++%8d::0:-1: ++%*8d::0:-1: ++%8d:-2147484882:1:8:-2147484: ++%*8d:-2147484882:0:8: ++%8d:-2147483649:1:8:-2147483: ++%*8d:-2147483649:0:8: ++%8d:-2147483648:1:8:-2147483: ++%*8d:-2147483648:0:8: ++%8d:-123:1:4:-123: ++%*8d:-123:0:4: ++%8d:-1:1:2:-1: ++%*8d:-1:0:2: ++%8d:-0:1:2:0: ++%*8d:-0:0:2: ++%8d:0:1:1:0: ++%*8d:0:0:1: ++%8d:1:1:1:1: ++%*8d:1:0:1: ++%8d:42:1:2:42: ++%*8d:42:0:2: ++%8d:2147483647:1:8:21474836: ++%*8d:2147483647:0:8: ++%8d:2147483648:1:8:21474836: ++%*8d:2147483648:0:8: ++%8d:2147487889:1:8:21474878: ++%*8d:2147487889:0:8: ++%8d:+0:1:2:0: ++%*8d:+0:0:2: ++%8d:+1:1:2:1: ++%*8d:+1:0:2: ++%8d:+42:1:3:42: ++%*8d:+42:0:3: ++%8d:+2147483647:1:8:2147483: ++%*8d:+2147483647:0:8: ++%8d:+2147483648:1:8:2147483: ++%*8d:+2147483648:0:8: ++%8d:+2147487889:1:8:2147487: ++%*8d:+2147487889:0:8: ++%15d::0:-1: ++%*15d::0:-1: ++%15d:-2147484882:1:11:-2147483648: ++%*15d:-2147484882:0:11: ++%15d:-2147483649:1:11:-2147483648: ++%*15d:-2147483649:0:11: ++%15d:-2147483648:1:11:-2147483648: ++%*15d:-2147483648:0:11: ++%15d:-123:1:4:-123: ++%*15d:-123:0:4: ++%15d:-1:1:2:-1: ++%*15d:-1:0:2: ++%15d:-0:1:2:0: ++%*15d:-0:0:2: ++%15d:0:1:1:0: ++%*15d:0:0:1: ++%15d:1:1:1:1: ++%*15d:1:0:1: ++%15d:42:1:2:42: ++%*15d:42:0:2: ++%15d:2147483647:1:10:2147483647: ++%*15d:2147483647:0:10: ++%15d:2147483648:1:10:2147483647: ++%*15d:2147483648:0:10: ++%15d:2147487889:1:10:2147483647: ++%*15d:2147487889:0:10: ++%15d:+0:1:2:0: ++%*15d:+0:0:2: ++%15d:+1:1:2:1: ++%*15d:+1:0:2: ++%15d:+42:1:3:42: ++%*15d:+42:0:3: ++%15d:+2147483647:1:11:2147483647: ++%*15d:+2147483647:0:11: ++%15d:+2147483648:1:11:2147483647: ++%*15d:+2147483648:0:11: ++%15d:+2147487889:1:11:2147483647: ++%*15d:+2147487889:0:11: ++%2d: :0:-1: ++%*2d: :0:-1: ++%2d: -2147484882:1:3:-2: ++%*2d: -2147484882:0:3: ++%2d: -2147483649:1:3:-2: ++%*2d: -2147483649:0:3: ++%2d: -2147483648:1:3:-2: ++%*2d: -2147483648:0:3: ++%2d: -123:1:3:-1: ++%*2d: -123:0:3: ++%2d: -1:1:3:-1: ++%*2d: -1:0:3: ++%2d: -0:1:3:0: ++%*2d: -0:0:3: ++%2d: 0:1:2:0: ++%*2d: 0:0:2: ++%2d: 1:1:2:1: ++%*2d: 1:0:2: ++%2d: 42:1:3:42: ++%*2d: 42:0:3: ++%2d: 2147483647:1:3:21: ++%*2d: 2147483647:0:3: ++%2d: 2147483648:1:3:21: ++%*2d: 2147483648:0:3: ++%2d: 2147487889:1:3:21: ++%*2d: 2147487889:0:3: ++%2d: +0:1:3:0: ++%*2d: +0:0:3: ++%2d: +1:1:3:1: ++%*2d: +1:0:3: ++%2d: +42:1:3:4: ++%*2d: +42:0:3: ++%2d: +2147483647:1:3:2: ++%*2d: +2147483647:0:3: ++%2d: +2147483648:1:3:2: ++%*2d: +2147483648:0:3: ++%2d: +2147487889:1:3:2: ++%*2d: +2147487889:0:3: ++%15d: :0:-1: ++%*15d: :0:-1: ++%15d: -2147484882:1:12:-2147483648: ++%*15d: -2147484882:0:12: ++%15d: -2147483649:1:12:-2147483648: ++%*15d: -2147483649:0:12: ++%15d: -2147483648:1:12:-2147483648: ++%*15d: -2147483648:0:12: ++%15d: -123:1:5:-123: ++%*15d: -123:0:5: ++%15d: -1:1:3:-1: ++%*15d: -1:0:3: ++%15d: -0:1:3:0: ++%*15d: -0:0:3: ++%15d: 0:1:2:0: ++%*15d: 0:0:2: ++%15d: 1:1:2:1: ++%*15d: 1:0:2: ++%15d: 42:1:3:42: ++%*15d: 42:0:3: ++%15d: 2147483647:1:11:2147483647: ++%*15d: 2147483647:0:11: ++%15d: 2147483648:1:11:2147483647: ++%*15d: 2147483648:0:11: ++%15d: 2147487889:1:11:2147483647: ++%*15d: 2147487889:0:11: ++%15d: +0:1:3:0: ++%*15d: +0:0:3: ++%15d: +1:1:3:1: ++%*15d: +1:0:3: ++%15d: +42:1:4:42: ++%*15d: +42:0:4: ++%15d: +2147483647:1:12:2147483647: ++%*15d: +2147483647:0:12: ++%15d: +2147483648:1:12:2147483647: ++%*15d: +2147483648:0:12: ++%15d: +2147487889:1:12:2147483647: ++%*15d: +2147487889:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-i.input b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +new file mode 100644 +index 0000000000000000..212295beedba6bd7 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +@@ -0,0 +1,1526 @@ ++%i::0:-1: ++%*i::0:-1: ++%i:-2147484882:1:11:-2147483648: ++%*i:-2147484882:0:11: ++%i:-0X800004d2:1:11:-2147483648: ++%*i:-0X800004d2:0:11: ++%i:-0x800004D2:1:11:-2147483648: ++%*i:-0x800004D2:0:11: ++%i:-020000002322:1:13:-2147483648: ++%*i:-020000002322:0:13: ++%i:-0B10000000000000000000010011010010:1:35:-2147483648: ++%*i:-0B10000000000000000000010011010010:0:35: ++%i:-0b10000000000000000000010011010010:1:35:-2147483648: ++%*i:-0b10000000000000000000010011010010:0:35: ++%i:-2147483649:1:11:-2147483648: ++%*i:-2147483649:0:11: ++%i:-0X80000001:1:11:-2147483648: ++%*i:-0X80000001:0:11: ++%i:-0x80000001:1:11:-2147483648: ++%*i:-0x80000001:0:11: ++%i:-020000000001:1:13:-2147483648: ++%*i:-020000000001:0:13: ++%i:-0B10000000000000000000000000000001:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000001:0:35: ++%i:-0b10000000000000000000000000000001:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000001:0:35: ++%i:-2147483648:1:11:-2147483648: ++%*i:-2147483648:0:11: ++%i:-0X80000000:1:11:-2147483648: ++%*i:-0X80000000:0:11: ++%i:-0x80000000:1:11:-2147483648: ++%*i:-0x80000000:0:11: ++%i:-020000000000:1:13:-2147483648: ++%*i:-020000000000:0:13: ++%i:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000000:0:35: ++%i:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000000:0:35: ++%i:-123:1:4:-123: ++%*i:-123:0:4: ++%i:-0X7b:1:5:-123: ++%*i:-0X7b:0:5: ++%i:-0x7B:1:5:-123: ++%*i:-0x7B:0:5: ++%i:-0173:1:5:-123: ++%*i:-0173:0:5: ++%i:-0B1111011:1:10:-123: ++%*i:-0B1111011:0:10: ++%i:-0b1111011:1:10:-123: ++%*i:-0b1111011:0:10: ++%i:-1:1:2:-1: ++%*i:-1:0:2: ++%i:-0X1:1:4:-1: ++%*i:-0X1:0:4: ++%i:-0x1:1:4:-1: ++%*i:-0x1:0:4: ++%i:-01:1:3:-1: ++%*i:-01:0:3: ++%i:-0B1:1:4:-1: ++%*i:-0B1:0:4: ++%i:-0b1:1:4:-1: ++%*i:-0b1:0:4: ++%i:-0:1:2:0: ++%*i:-0:0:2: ++%i:-0X0:1:4:0: ++%*i:-0X0:0:4: ++%i:-0x0:1:4:0: ++%*i:-0x0:0:4: ++%i:-00:1:3:0: ++%*i:-00:0:3: ++%i:-0B0:1:4:0: ++%*i:-0B0:0:4: ++%i:-0b0:1:4:0: ++%*i:-0b0:0:4: ++%i:0:1:1:0: ++%*i:0:0:1: ++%i:0X0:1:3:0: ++%*i:0X0:0:3: ++%i:0x0:1:3:0: ++%*i:0x0:0:3: ++%i:00:1:2:0: ++%*i:00:0:2: ++%i:0B0:1:3:0: ++%*i:0B0:0:3: ++%i:0b0:1:3:0: ++%*i:0b0:0:3: ++%i:1:1:1:1: ++%*i:1:0:1: ++%i:0X1:1:3:1: ++%*i:0X1:0:3: ++%i:0x1:1:3:1: ++%*i:0x1:0:3: ++%i:01:1:2:1: ++%*i:01:0:2: ++%i:0B1:1:3:1: ++%*i:0B1:0:3: ++%i:0b1:1:3:1: ++%*i:0b1:0:3: ++%i:42:1:2:42: ++%*i:42:0:2: ++%i:0X2a:1:4:42: ++%*i:0X2a:0:4: ++%i:0x2A:1:4:42: ++%*i:0x2A:0:4: ++%i:052:1:3:42: ++%*i:052:0:3: ++%i:0B101010:1:8:42: ++%*i:0B101010:0:8: ++%i:0b101010:1:8:42: ++%*i:0b101010:0:8: ++%i:2147483647:1:10:2147483647: ++%*i:2147483647:0:10: ++%i:0X7fffffff:1:10:2147483647: ++%*i:0X7fffffff:0:10: ++%i:0x7FFFFFFF:1:10:2147483647: ++%*i:0x7FFFFFFF:0:10: ++%i:017777777777:1:12:2147483647: ++%*i:017777777777:0:12: ++%i:0B1111111111111111111111111111111:1:33:2147483647: ++%*i:0B1111111111111111111111111111111:0:33: ++%i:0b1111111111111111111111111111111:1:33:2147483647: ++%*i:0b1111111111111111111111111111111:0:33: ++%i:2147483648:1:10:2147483647: ++%*i:2147483648:0:10: ++%i:0X80000000:1:10:2147483647: ++%*i:0X80000000:0:10: ++%i:0x80000000:1:10:2147483647: ++%*i:0x80000000:0:10: ++%i:020000000000:1:12:2147483647: ++%*i:020000000000:0:12: ++%i:0B10000000000000000000000000000000:1:34:2147483647: ++%*i:0B10000000000000000000000000000000:0:34: ++%i:0b10000000000000000000000000000000:1:34:2147483647: ++%*i:0b10000000000000000000000000000000:0:34: ++%i:2147487889:1:10:2147483647: ++%*i:2147487889:0:10: ++%i:0X80001091:1:10:2147483647: ++%*i:0X80001091:0:10: ++%i:0x80001091:1:10:2147483647: ++%*i:0x80001091:0:10: ++%i:020000010221:1:12:2147483647: ++%*i:020000010221:0:12: ++%i:0B10000000000000000001000010010001:1:34:2147483647: ++%*i:0B10000000000000000001000010010001:0:34: ++%i:0b10000000000000000001000010010001:1:34:2147483647: ++%*i:0b10000000000000000001000010010001:0:34: ++%i:+0:1:2:0: ++%*i:+0:0:2: ++%i:+0X0:1:4:0: ++%*i:+0X0:0:4: ++%i:+0x0:1:4:0: ++%*i:+0x0:0:4: ++%i:+00:1:3:0: ++%*i:+00:0:3: ++%i:+0B0:1:4:0: ++%*i:+0B0:0:4: ++%i:+0b0:1:4:0: ++%*i:+0b0:0:4: ++%i:+1:1:2:1: ++%*i:+1:0:2: ++%i:+0X1:1:4:1: ++%*i:+0X1:0:4: ++%i:+0x1:1:4:1: ++%*i:+0x1:0:4: ++%i:+01:1:3:1: ++%*i:+01:0:3: ++%i:+0B1:1:4:1: ++%*i:+0B1:0:4: ++%i:+0b1:1:4:1: ++%*i:+0b1:0:4: ++%i:+42:1:3:42: ++%*i:+42:0:3: ++%i:+0X2a:1:5:42: ++%*i:+0X2a:0:5: ++%i:+0x2A:1:5:42: ++%*i:+0x2A:0:5: ++%i:+052:1:4:42: ++%*i:+052:0:4: ++%i:+0B101010:1:9:42: ++%*i:+0B101010:0:9: ++%i:+0b101010:1:9:42: ++%*i:+0b101010:0:9: ++%i:+2147483647:1:11:2147483647: ++%*i:+2147483647:0:11: ++%i:+0X7fffffff:1:11:2147483647: ++%*i:+0X7fffffff:0:11: ++%i:+0x7FFFFFFF:1:11:2147483647: ++%*i:+0x7FFFFFFF:0:11: ++%i:+017777777777:1:13:2147483647: ++%*i:+017777777777:0:13: ++%i:+0B1111111111111111111111111111111:1:34:2147483647: ++%*i:+0B1111111111111111111111111111111:0:34: ++%i:+0b1111111111111111111111111111111:1:34:2147483647: ++%*i:+0b1111111111111111111111111111111:0:34: ++%i:+2147483648:1:11:2147483647: ++%*i:+2147483648:0:11: ++%i:+0X80000000:1:11:2147483647: ++%*i:+0X80000000:0:11: ++%i:+0x80000000:1:11:2147483647: ++%*i:+0x80000000:0:11: ++%i:+020000000000:1:13:2147483647: ++%*i:+020000000000:0:13: ++%i:+0B10000000000000000000000000000000:1:35:2147483647: ++%*i:+0B10000000000000000000000000000000:0:35: ++%i:+0b10000000000000000000000000000000:1:35:2147483647: ++%*i:+0b10000000000000000000000000000000:0:35: ++%i:+2147487889:1:11:2147483647: ++%*i:+2147487889:0:11: ++%i:+0X80001091:1:11:2147483647: ++%*i:+0X80001091:0:11: ++%i:+0x80001091:1:11:2147483647: ++%*i:+0x80001091:0:11: ++%i:+020000010221:1:13:2147483647: ++%*i:+020000010221:0:13: ++%i:+0B10000000000000000001000010010001:1:35:2147483647: ++%*i:+0B10000000000000000001000010010001:0:35: ++%i:+0b10000000000000000001000010010001:1:35:2147483647: ++%*i:+0b10000000000000000001000010010001:0:35: ++%1i::0:-1: ++%*1i::0:-1: ++%1i:-2147484882:0:-1: ++%*1i:-2147484882:0:-1: ++%1i:-0X800004d2:0:-1: ++%*1i:-0X800004d2:0:-1: ++%1i:-0x800004D2:0:-1: ++%*1i:-0x800004D2:0:-1: ++%1i:-020000002322:0:-1: ++%*1i:-020000002322:0:-1: ++%1i:-0B10000000000000000000010011010010:0:-1: ++%*1i:-0B10000000000000000000010011010010:0:-1: ++%1i:-0b10000000000000000000010011010010:0:-1: ++%*1i:-0b10000000000000000000010011010010:0:-1: ++%1i:-2147483649:0:-1: ++%*1i:-2147483649:0:-1: ++%1i:-0X80000001:0:-1: ++%*1i:-0X80000001:0:-1: ++%1i:-0x80000001:0:-1: ++%*1i:-0x80000001:0:-1: ++%1i:-020000000001:0:-1: ++%*1i:-020000000001:0:-1: ++%1i:-0B10000000000000000000000000000001:0:-1: ++%*1i:-0B10000000000000000000000000000001:0:-1: ++%1i:-0b10000000000000000000000000000001:0:-1: ++%*1i:-0b10000000000000000000000000000001:0:-1: ++%1i:-2147483648:0:-1: ++%*1i:-2147483648:0:-1: ++%1i:-0X80000000:0:-1: ++%*1i:-0X80000000:0:-1: ++%1i:-0x80000000:0:-1: ++%*1i:-0x80000000:0:-1: ++%1i:-020000000000:0:-1: ++%*1i:-020000000000:0:-1: ++%1i:-0B10000000000000000000000000000000:0:-1: ++%*1i:-0B10000000000000000000000000000000:0:-1: ++%1i:-0b10000000000000000000000000000000:0:-1: ++%*1i:-0b10000000000000000000000000000000:0:-1: ++%1i:-123:0:-1: ++%*1i:-123:0:-1: ++%1i:-0X7b:0:-1: ++%*1i:-0X7b:0:-1: ++%1i:-0x7B:0:-1: ++%*1i:-0x7B:0:-1: ++%1i:-0173:0:-1: ++%*1i:-0173:0:-1: ++%1i:-0B1111011:0:-1: ++%*1i:-0B1111011:0:-1: ++%1i:-0b1111011:0:-1: ++%*1i:-0b1111011:0:-1: ++%1i:-1:0:-1: ++%*1i:-1:0:-1: ++%1i:-0X1:0:-1: ++%*1i:-0X1:0:-1: ++%1i:-0x1:0:-1: ++%*1i:-0x1:0:-1: ++%1i:-01:0:-1: ++%*1i:-01:0:-1: ++%1i:-0B1:0:-1: ++%*1i:-0B1:0:-1: ++%1i:-0b1:0:-1: ++%*1i:-0b1:0:-1: ++%1i:-0:0:-1: ++%*1i:-0:0:-1: ++%1i:-0X0:0:-1: ++%*1i:-0X0:0:-1: ++%1i:-0x0:0:-1: ++%*1i:-0x0:0:-1: ++%1i:-00:0:-1: ++%*1i:-00:0:-1: ++%1i:-0B0:0:-1: ++%*1i:-0B0:0:-1: ++%1i:-0b0:0:-1: ++%*1i:-0b0:0:-1: ++%1i:0:1:1:0: ++%*1i:0:0:1: ++%1i:0X0:1:1:0: ++%*1i:0X0:0:1: ++%1i:0x0:1:1:0: ++%*1i:0x0:0:1: ++%1i:00:1:1:0: ++%*1i:00:0:1: ++%1i:0B0:1:1:0: ++%*1i:0B0:0:1: ++%1i:0b0:1:1:0: ++%*1i:0b0:0:1: ++%1i:1:1:1:1: ++%*1i:1:0:1: ++%1i:0X1:1:1:0: ++%*1i:0X1:0:1: ++%1i:0x1:1:1:0: ++%*1i:0x1:0:1: ++%1i:01:1:1:0: ++%*1i:01:0:1: ++%1i:0B1:1:1:0: ++%*1i:0B1:0:1: ++%1i:0b1:1:1:0: ++%*1i:0b1:0:1: ++%1i:42:1:1:4: ++%*1i:42:0:1: ++%1i:0X2a:1:1:0: ++%*1i:0X2a:0:1: ++%1i:0x2A:1:1:0: ++%*1i:0x2A:0:1: ++%1i:052:1:1:0: ++%*1i:052:0:1: ++%1i:0B101010:1:1:0: ++%*1i:0B101010:0:1: ++%1i:0b101010:1:1:0: ++%*1i:0b101010:0:1: ++%1i:2147483647:1:1:2: ++%*1i:2147483647:0:1: ++%1i:0X7fffffff:1:1:0: ++%*1i:0X7fffffff:0:1: ++%1i:0x7FFFFFFF:1:1:0: ++%*1i:0x7FFFFFFF:0:1: ++%1i:017777777777:1:1:0: ++%*1i:017777777777:0:1: ++%1i:0B1111111111111111111111111111111:1:1:0: ++%*1i:0B1111111111111111111111111111111:0:1: ++%1i:0b1111111111111111111111111111111:1:1:0: ++%*1i:0b1111111111111111111111111111111:0:1: ++%1i:2147483648:1:1:2: ++%*1i:2147483648:0:1: ++%1i:0X80000000:1:1:0: ++%*1i:0X80000000:0:1: ++%1i:0x80000000:1:1:0: ++%*1i:0x80000000:0:1: ++%1i:020000000000:1:1:0: ++%*1i:020000000000:0:1: ++%1i:0B10000000000000000000000000000000:1:1:0: ++%*1i:0B10000000000000000000000000000000:0:1: ++%1i:0b10000000000000000000000000000000:1:1:0: ++%*1i:0b10000000000000000000000000000000:0:1: ++%1i:2147487889:1:1:2: ++%*1i:2147487889:0:1: ++%1i:0X80001091:1:1:0: ++%*1i:0X80001091:0:1: ++%1i:0x80001091:1:1:0: ++%*1i:0x80001091:0:1: ++%1i:020000010221:1:1:0: ++%*1i:020000010221:0:1: ++%1i:0B10000000000000000001000010010001:1:1:0: ++%*1i:0B10000000000000000001000010010001:0:1: ++%1i:0b10000000000000000001000010010001:1:1:0: ++%*1i:0b10000000000000000001000010010001:0:1: ++%1i:+0:0:-1: ++%*1i:+0:0:-1: ++%1i:+0X0:0:-1: ++%*1i:+0X0:0:-1: ++%1i:+0x0:0:-1: ++%*1i:+0x0:0:-1: ++%1i:+00:0:-1: ++%*1i:+00:0:-1: ++%1i:+0B0:0:-1: ++%*1i:+0B0:0:-1: ++%1i:+0b0:0:-1: ++%*1i:+0b0:0:-1: ++%1i:+1:0:-1: ++%*1i:+1:0:-1: ++%1i:+0X1:0:-1: ++%*1i:+0X1:0:-1: ++%1i:+0x1:0:-1: ++%*1i:+0x1:0:-1: ++%1i:+01:0:-1: ++%*1i:+01:0:-1: ++%1i:+0B1:0:-1: ++%*1i:+0B1:0:-1: ++%1i:+0b1:0:-1: ++%*1i:+0b1:0:-1: ++%1i:+42:0:-1: ++%*1i:+42:0:-1: ++%1i:+0X2a:0:-1: ++%*1i:+0X2a:0:-1: ++%1i:+0x2A:0:-1: ++%*1i:+0x2A:0:-1: ++%1i:+052:0:-1: ++%*1i:+052:0:-1: ++%1i:+0B101010:0:-1: ++%*1i:+0B101010:0:-1: ++%1i:+0b101010:0:-1: ++%*1i:+0b101010:0:-1: ++%1i:+2147483647:0:-1: ++%*1i:+2147483647:0:-1: ++%1i:+0X7fffffff:0:-1: ++%*1i:+0X7fffffff:0:-1: ++%1i:+0x7FFFFFFF:0:-1: ++%*1i:+0x7FFFFFFF:0:-1: ++%1i:+017777777777:0:-1: ++%*1i:+017777777777:0:-1: ++%1i:+0B1111111111111111111111111111111:0:-1: ++%*1i:+0B1111111111111111111111111111111:0:-1: ++%1i:+0b1111111111111111111111111111111:0:-1: ++%*1i:+0b1111111111111111111111111111111:0:-1: ++%1i:+2147483648:0:-1: ++%*1i:+2147483648:0:-1: ++%1i:+0X80000000:0:-1: ++%*1i:+0X80000000:0:-1: ++%1i:+0x80000000:0:-1: ++%*1i:+0x80000000:0:-1: ++%1i:+020000000000:0:-1: ++%*1i:+020000000000:0:-1: ++%1i:+0B10000000000000000000000000000000:0:-1: ++%*1i:+0B10000000000000000000000000000000:0:-1: ++%1i:+0b10000000000000000000000000000000:0:-1: ++%*1i:+0b10000000000000000000000000000000:0:-1: ++%1i:+2147487889:0:-1: ++%*1i:+2147487889:0:-1: ++%1i:+0X80001091:0:-1: ++%*1i:+0X80001091:0:-1: ++%1i:+0x80001091:0:-1: ++%*1i:+0x80001091:0:-1: ++%1i:+020000010221:0:-1: ++%*1i:+020000010221:0:-1: ++%1i:+0B10000000000000000001000010010001:0:-1: ++%*1i:+0B10000000000000000001000010010001:0:-1: ++%1i:+0b10000000000000000001000010010001:0:-1: ++%*1i:+0b10000000000000000001000010010001:0:-1: ++%2i::0:-1: ++%*2i::0:-1: ++%2i:-2147484882:1:2:-2: ++%*2i:-2147484882:0:2: ++%2i:-0X800004d2:1:2:0: ++%*2i:-0X800004d2:0:2: ++%2i:-0x800004D2:1:2:0: ++%*2i:-0x800004D2:0:2: ++%2i:-020000002322:1:2:0: ++%*2i:-020000002322:0:2: ++%2i:-0B10000000000000000000010011010010:1:2:0: ++%*2i:-0B10000000000000000000010011010010:0:2: ++%2i:-0b10000000000000000000010011010010:1:2:0: ++%*2i:-0b10000000000000000000010011010010:0:2: ++%2i:-2147483649:1:2:-2: ++%*2i:-2147483649:0:2: ++%2i:-0X80000001:1:2:0: ++%*2i:-0X80000001:0:2: ++%2i:-0x80000001:1:2:0: ++%*2i:-0x80000001:0:2: ++%2i:-020000000001:1:2:0: ++%*2i:-020000000001:0:2: ++%2i:-0B10000000000000000000000000000001:1:2:0: ++%*2i:-0B10000000000000000000000000000001:0:2: ++%2i:-0b10000000000000000000000000000001:1:2:0: ++%*2i:-0b10000000000000000000000000000001:0:2: ++%2i:-2147483648:1:2:-2: ++%*2i:-2147483648:0:2: ++%2i:-0X80000000:1:2:0: ++%*2i:-0X80000000:0:2: ++%2i:-0x80000000:1:2:0: ++%*2i:-0x80000000:0:2: ++%2i:-020000000000:1:2:0: ++%*2i:-020000000000:0:2: ++%2i:-0B10000000000000000000000000000000:1:2:0: ++%*2i:-0B10000000000000000000000000000000:0:2: ++%2i:-0b10000000000000000000000000000000:1:2:0: ++%*2i:-0b10000000000000000000000000000000:0:2: ++%2i:-123:1:2:-1: ++%*2i:-123:0:2: ++%2i:-0X7b:1:2:0: ++%*2i:-0X7b:0:2: ++%2i:-0x7B:1:2:0: ++%*2i:-0x7B:0:2: ++%2i:-0173:1:2:0: ++%*2i:-0173:0:2: ++%2i:-0B1111011:1:2:0: ++%*2i:-0B1111011:0:2: ++%2i:-0b1111011:1:2:0: ++%*2i:-0b1111011:0:2: ++%2i:-1:1:2:-1: ++%*2i:-1:0:2: ++%2i:-0X1:1:2:0: ++%*2i:-0X1:0:2: ++%2i:-0x1:1:2:0: ++%*2i:-0x1:0:2: ++%2i:-01:1:2:0: ++%*2i:-01:0:2: ++%2i:-0B1:1:2:0: ++%*2i:-0B1:0:2: ++%2i:-0b1:1:2:0: ++%*2i:-0b1:0:2: ++%2i:-0:1:2:0: ++%*2i:-0:0:2: ++%2i:-0X0:1:2:0: ++%*2i:-0X0:0:2: ++%2i:-0x0:1:2:0: ++%*2i:-0x0:0:2: ++%2i:-00:1:2:0: ++%*2i:-00:0:2: ++%2i:-0B0:1:2:0: ++%*2i:-0B0:0:2: ++%2i:-0b0:1:2:0: ++%*2i:-0b0:0:2: ++%2i:0:1:1:0: ++%*2i:0:0:1: ++# BZ12701 %2i:0X0:0:-1: ++# BZ12701 %*2i:0X0:0:-1: ++# BZ12701 %2i:0x0:0:-1: ++# BZ12701 %*2i:0x0:0:-1: ++%2i:00:1:2:0: ++%*2i:00:0:2: ++# BZ12701 %2i:0B0:0:-1: ++# BZ12701 %*2i:0B0:0:-1: ++# BZ12701 %2i:0b0:0:-1: ++# BZ12701 %*2i:0b0:0:-1: ++%2i:1:1:1:1: ++%*2i:1:0:1: ++# BZ12701 %2i:0X1:0:-1: ++# BZ12701 %*2i:0X1:0:-1: ++# BZ12701 %2i:0x1:0:-1: ++# BZ12701 %*2i:0x1:0:-1: ++%2i:01:1:2:1: ++%*2i:01:0:2: ++# BZ12701 %2i:0B1:0:-1: ++# BZ12701 %*2i:0B1:0:-1: ++# BZ12701 %2i:0b1:0:-1: ++# BZ12701 %*2i:0b1:0:-1: ++%2i:42:1:2:42: ++%*2i:42:0:2: ++# BZ12701 %2i:0X2a:0:-1: ++# BZ12701 %*2i:0X2a:0:-1: ++# BZ12701 %2i:0x2A:0:-1: ++# BZ12701 %*2i:0x2A:0:-1: ++%2i:052:1:2:5: ++%*2i:052:0:2: ++# BZ12701 %2i:0B101010:0:-1: ++# BZ12701 %*2i:0B101010:0:-1: ++# BZ12701 %2i:0b101010:0:-1: ++# BZ12701 %*2i:0b101010:0:-1: ++%2i:2147483647:1:2:21: ++%*2i:2147483647:0:2: ++# BZ12701 %2i:0X7fffffff:0:-1: ++# BZ12701 %*2i:0X7fffffff:0:-1: ++# BZ12701 %2i:0x7FFFFFFF:0:-1: ++# BZ12701 %*2i:0x7FFFFFFF:0:-1: ++%2i:017777777777:1:2:1: ++%*2i:017777777777:0:2: ++# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: ++%2i:2147483648:1:2:21: ++%*2i:2147483648:0:2: ++# BZ12701 %2i:0X80000000:0:-1: ++# BZ12701 %*2i:0X80000000:0:-1: ++# BZ12701 %2i:0x80000000:0:-1: ++# BZ12701 %*2i:0x80000000:0:-1: ++%2i:020000000000:1:2:2: ++%*2i:020000000000:0:2: ++# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: ++%2i:2147487889:1:2:21: ++%*2i:2147487889:0:2: ++# BZ12701 %2i:0X80001091:0:-1: ++# BZ12701 %*2i:0X80001091:0:-1: ++# BZ12701 %2i:0x80001091:0:-1: ++# BZ12701 %*2i:0x80001091:0:-1: ++%2i:020000010221:1:2:2: ++%*2i:020000010221:0:2: ++# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: ++%2i:+0:1:2:0: ++%*2i:+0:0:2: ++%2i:+0X0:1:2:0: ++%*2i:+0X0:0:2: ++%2i:+0x0:1:2:0: ++%*2i:+0x0:0:2: ++%2i:+00:1:2:0: ++%*2i:+00:0:2: ++%2i:+0B0:1:2:0: ++%*2i:+0B0:0:2: ++%2i:+0b0:1:2:0: ++%*2i:+0b0:0:2: ++%2i:+1:1:2:1: ++%*2i:+1:0:2: ++%2i:+0X1:1:2:0: ++%*2i:+0X1:0:2: ++%2i:+0x1:1:2:0: ++%*2i:+0x1:0:2: ++%2i:+01:1:2:0: ++%*2i:+01:0:2: ++%2i:+0B1:1:2:0: ++%*2i:+0B1:0:2: ++%2i:+0b1:1:2:0: ++%*2i:+0b1:0:2: ++%2i:+42:1:2:4: ++%*2i:+42:0:2: ++%2i:+0X2a:1:2:0: ++%*2i:+0X2a:0:2: ++%2i:+0x2A:1:2:0: ++%*2i:+0x2A:0:2: ++%2i:+052:1:2:0: ++%*2i:+052:0:2: ++%2i:+0B101010:1:2:0: ++%*2i:+0B101010:0:2: ++%2i:+0b101010:1:2:0: ++%*2i:+0b101010:0:2: ++%2i:+2147483647:1:2:2: ++%*2i:+2147483647:0:2: ++%2i:+0X7fffffff:1:2:0: ++%*2i:+0X7fffffff:0:2: ++%2i:+0x7FFFFFFF:1:2:0: ++%*2i:+0x7FFFFFFF:0:2: ++%2i:+017777777777:1:2:0: ++%*2i:+017777777777:0:2: ++%2i:+0B1111111111111111111111111111111:1:2:0: ++%*2i:+0B1111111111111111111111111111111:0:2: ++%2i:+0b1111111111111111111111111111111:1:2:0: ++%*2i:+0b1111111111111111111111111111111:0:2: ++%2i:+2147483648:1:2:2: ++%*2i:+2147483648:0:2: ++%2i:+0X80000000:1:2:0: ++%*2i:+0X80000000:0:2: ++%2i:+0x80000000:1:2:0: ++%*2i:+0x80000000:0:2: ++%2i:+020000000000:1:2:0: ++%*2i:+020000000000:0:2: ++%2i:+0B10000000000000000000000000000000:1:2:0: ++%*2i:+0B10000000000000000000000000000000:0:2: ++%2i:+0b10000000000000000000000000000000:1:2:0: ++%*2i:+0b10000000000000000000000000000000:0:2: ++%2i:+2147487889:1:2:2: ++%*2i:+2147487889:0:2: ++%2i:+0X80001091:1:2:0: ++%*2i:+0X80001091:0:2: ++%2i:+0x80001091:1:2:0: ++%*2i:+0x80001091:0:2: ++%2i:+020000010221:1:2:0: ++%*2i:+020000010221:0:2: ++%2i:+0B10000000000000000001000010010001:1:2:0: ++%*2i:+0B10000000000000000001000010010001:0:2: ++%2i:+0b10000000000000000001000010010001:1:2:0: ++%*2i:+0b10000000000000000001000010010001:0:2: ++%8i::0:-1: ++%*8i::0:-1: ++%8i:-2147484882:1:8:-2147484: ++%*8i:-2147484882:0:8: ++%8i:-0X800004d2:1:8:-524288: ++%*8i:-0X800004d2:0:8: ++%8i:-0x800004D2:1:8:-524288: ++%*8i:-0x800004D2:0:8: ++%8i:-020000002322:1:8:-65536: ++%*8i:-020000002322:0:8: ++%8i:-0B10000000000000000000010011010010:1:8:-16: ++%*8i:-0B10000000000000000000010011010010:0:8: ++%8i:-0b10000000000000000000010011010010:1:8:-16: ++%*8i:-0b10000000000000000000010011010010:0:8: ++%8i:-2147483649:1:8:-2147483: ++%*8i:-2147483649:0:8: ++%8i:-0X80000001:1:8:-524288: ++%*8i:-0X80000001:0:8: ++%8i:-0x80000001:1:8:-524288: ++%*8i:-0x80000001:0:8: ++%8i:-020000000001:1:8:-65536: ++%*8i:-020000000001:0:8: ++%8i:-0B10000000000000000000000000000001:1:8:-16: ++%*8i:-0B10000000000000000000000000000001:0:8: ++%8i:-0b10000000000000000000000000000001:1:8:-16: ++%*8i:-0b10000000000000000000000000000001:0:8: ++%8i:-2147483648:1:8:-2147483: ++%*8i:-2147483648:0:8: ++%8i:-0X80000000:1:8:-524288: ++%*8i:-0X80000000:0:8: ++%8i:-0x80000000:1:8:-524288: ++%*8i:-0x80000000:0:8: ++%8i:-020000000000:1:8:-65536: ++%*8i:-020000000000:0:8: ++%8i:-0B10000000000000000000000000000000:1:8:-16: ++%*8i:-0B10000000000000000000000000000000:0:8: ++%8i:-0b10000000000000000000000000000000:1:8:-16: ++%*8i:-0b10000000000000000000000000000000:0:8: ++%8i:-123:1:4:-123: ++%*8i:-123:0:4: ++%8i:-0X7b:1:5:-123: ++%*8i:-0X7b:0:5: ++%8i:-0x7B:1:5:-123: ++%*8i:-0x7B:0:5: ++%8i:-0173:1:5:-123: ++%*8i:-0173:0:5: ++%8i:-0B1111011:1:8:-30: ++%*8i:-0B1111011:0:8: ++%8i:-0b1111011:1:8:-30: ++%*8i:-0b1111011:0:8: ++%8i:-1:1:2:-1: ++%*8i:-1:0:2: ++%8i:-0X1:1:4:-1: ++%*8i:-0X1:0:4: ++%8i:-0x1:1:4:-1: ++%*8i:-0x1:0:4: ++%8i:-01:1:3:-1: ++%*8i:-01:0:3: ++%8i:-0B1:1:4:-1: ++%*8i:-0B1:0:4: ++%8i:-0b1:1:4:-1: ++%*8i:-0b1:0:4: ++%8i:-0:1:2:0: ++%*8i:-0:0:2: ++%8i:-0X0:1:4:0: ++%*8i:-0X0:0:4: ++%8i:-0x0:1:4:0: ++%*8i:-0x0:0:4: ++%8i:-00:1:3:0: ++%*8i:-00:0:3: ++%8i:-0B0:1:4:0: ++%*8i:-0B0:0:4: ++%8i:-0b0:1:4:0: ++%*8i:-0b0:0:4: ++%8i:0:1:1:0: ++%*8i:0:0:1: ++%8i:0X0:1:3:0: ++%*8i:0X0:0:3: ++%8i:0x0:1:3:0: ++%*8i:0x0:0:3: ++%8i:00:1:2:0: ++%*8i:00:0:2: ++%8i:0B0:1:3:0: ++%*8i:0B0:0:3: ++%8i:0b0:1:3:0: ++%*8i:0b0:0:3: ++%8i:1:1:1:1: ++%*8i:1:0:1: ++%8i:0X1:1:3:1: ++%*8i:0X1:0:3: ++%8i:0x1:1:3:1: ++%*8i:0x1:0:3: ++%8i:01:1:2:1: ++%*8i:01:0:2: ++%8i:0B1:1:3:1: ++%*8i:0B1:0:3: ++%8i:0b1:1:3:1: ++%*8i:0b1:0:3: ++%8i:42:1:2:42: ++%*8i:42:0:2: ++%8i:0X2a:1:4:42: ++%*8i:0X2a:0:4: ++%8i:0x2A:1:4:42: ++%*8i:0x2A:0:4: ++%8i:052:1:3:42: ++%*8i:052:0:3: ++%8i:0B101010:1:8:42: ++%*8i:0B101010:0:8: ++%8i:0b101010:1:8:42: ++%*8i:0b101010:0:8: ++%8i:2147483647:1:8:21474836: ++%*8i:2147483647:0:8: ++%8i:0X7fffffff:1:8:8388607: ++%*8i:0X7fffffff:0:8: ++%8i:0x7FFFFFFF:1:8:8388607: ++%*8i:0x7FFFFFFF:0:8: ++%8i:017777777777:1:8:524287: ++%*8i:017777777777:0:8: ++%8i:0B1111111111111111111111111111111:1:8:63: ++%*8i:0B1111111111111111111111111111111:0:8: ++%8i:0b1111111111111111111111111111111:1:8:63: ++%*8i:0b1111111111111111111111111111111:0:8: ++%8i:2147483648:1:8:21474836: ++%*8i:2147483648:0:8: ++%8i:0X80000000:1:8:8388608: ++%*8i:0X80000000:0:8: ++%8i:0x80000000:1:8:8388608: ++%*8i:0x80000000:0:8: ++%8i:020000000000:1:8:524288: ++%*8i:020000000000:0:8: ++%8i:0B10000000000000000000000000000000:1:8:32: ++%*8i:0B10000000000000000000000000000000:0:8: ++%8i:0b10000000000000000000000000000000:1:8:32: ++%*8i:0b10000000000000000000000000000000:0:8: ++%8i:2147487889:1:8:21474878: ++%*8i:2147487889:0:8: ++%8i:0X80001091:1:8:8388624: ++%*8i:0X80001091:0:8: ++%8i:0x80001091:1:8:8388624: ++%*8i:0x80001091:0:8: ++%8i:020000010221:1:8:524289: ++%*8i:020000010221:0:8: ++%8i:0B10000000000000000001000010010001:1:8:32: ++%*8i:0B10000000000000000001000010010001:0:8: ++%8i:0b10000000000000000001000010010001:1:8:32: ++%*8i:0b10000000000000000001000010010001:0:8: ++%8i:+0:1:2:0: ++%*8i:+0:0:2: ++%8i:+0X0:1:4:0: ++%*8i:+0X0:0:4: ++%8i:+0x0:1:4:0: ++%*8i:+0x0:0:4: ++%8i:+00:1:3:0: ++%*8i:+00:0:3: ++%8i:+0B0:1:4:0: ++%*8i:+0B0:0:4: ++%8i:+0b0:1:4:0: ++%*8i:+0b0:0:4: ++%8i:+1:1:2:1: ++%*8i:+1:0:2: ++%8i:+0X1:1:4:1: ++%*8i:+0X1:0:4: ++%8i:+0x1:1:4:1: ++%*8i:+0x1:0:4: ++%8i:+01:1:3:1: ++%*8i:+01:0:3: ++%8i:+0B1:1:4:1: ++%*8i:+0B1:0:4: ++%8i:+0b1:1:4:1: ++%*8i:+0b1:0:4: ++%8i:+42:1:3:42: ++%*8i:+42:0:3: ++%8i:+0X2a:1:5:42: ++%*8i:+0X2a:0:5: ++%8i:+0x2A:1:5:42: ++%*8i:+0x2A:0:5: ++%8i:+052:1:4:42: ++%*8i:+052:0:4: ++%8i:+0B101010:1:8:21: ++%*8i:+0B101010:0:8: ++%8i:+0b101010:1:8:21: ++%*8i:+0b101010:0:8: ++%8i:+2147483647:1:8:2147483: ++%*8i:+2147483647:0:8: ++%8i:+0X7fffffff:1:8:524287: ++%*8i:+0X7fffffff:0:8: ++%8i:+0x7FFFFFFF:1:8:524287: ++%*8i:+0x7FFFFFFF:0:8: ++%8i:+017777777777:1:8:65535: ++%*8i:+017777777777:0:8: ++%8i:+0B1111111111111111111111111111111:1:8:31: ++%*8i:+0B1111111111111111111111111111111:0:8: ++%8i:+0b1111111111111111111111111111111:1:8:31: ++%*8i:+0b1111111111111111111111111111111:0:8: ++%8i:+2147483648:1:8:2147483: ++%*8i:+2147483648:0:8: ++%8i:+0X80000000:1:8:524288: ++%*8i:+0X80000000:0:8: ++%8i:+0x80000000:1:8:524288: ++%*8i:+0x80000000:0:8: ++%8i:+020000000000:1:8:65536: ++%*8i:+020000000000:0:8: ++%8i:+0B10000000000000000000000000000000:1:8:16: ++%*8i:+0B10000000000000000000000000000000:0:8: ++%8i:+0b10000000000000000000000000000000:1:8:16: ++%*8i:+0b10000000000000000000000000000000:0:8: ++%8i:+2147487889:1:8:2147487: ++%*8i:+2147487889:0:8: ++%8i:+0X80001091:1:8:524289: ++%*8i:+0X80001091:0:8: ++%8i:+0x80001091:1:8:524289: ++%*8i:+0x80001091:0:8: ++%8i:+020000010221:1:8:65536: ++%*8i:+020000010221:0:8: ++%8i:+0B10000000000000000001000010010001:1:8:16: ++%*8i:+0B10000000000000000001000010010001:0:8: ++%8i:+0b10000000000000000001000010010001:1:8:16: ++%*8i:+0b10000000000000000001000010010001:0:8: ++%15i::0:-1: ++%*15i::0:-1: ++%15i:-2147484882:1:11:-2147483648: ++%*15i:-2147484882:0:11: ++%15i:-0X800004d2:1:11:-2147483648: ++%*15i:-0X800004d2:0:11: ++%15i:-0x800004D2:1:11:-2147483648: ++%*15i:-0x800004D2:0:11: ++%15i:-020000002322:1:13:-2147483648: ++%*15i:-020000002322:0:13: ++%15i:-0B10000000000000000000010011010010:1:15:-2048: ++%*15i:-0B10000000000000000000010011010010:0:15: ++%15i:-0b10000000000000000000010011010010:1:15:-2048: ++%*15i:-0b10000000000000000000010011010010:0:15: ++%15i:-2147483649:1:11:-2147483648: ++%*15i:-2147483649:0:11: ++%15i:-0X80000001:1:11:-2147483648: ++%*15i:-0X80000001:0:11: ++%15i:-0x80000001:1:11:-2147483648: ++%*15i:-0x80000001:0:11: ++%15i:-020000000001:1:13:-2147483648: ++%*15i:-020000000001:0:13: ++%15i:-0B10000000000000000000000000000001:1:15:-2048: ++%*15i:-0B10000000000000000000000000000001:0:15: ++%15i:-0b10000000000000000000000000000001:1:15:-2048: ++%*15i:-0b10000000000000000000000000000001:0:15: ++%15i:-2147483648:1:11:-2147483648: ++%*15i:-2147483648:0:11: ++%15i:-0X80000000:1:11:-2147483648: ++%*15i:-0X80000000:0:11: ++%15i:-0x80000000:1:11:-2147483648: ++%*15i:-0x80000000:0:11: ++%15i:-020000000000:1:13:-2147483648: ++%*15i:-020000000000:0:13: ++%15i:-0B10000000000000000000000000000000:1:15:-2048: ++%*15i:-0B10000000000000000000000000000000:0:15: ++%15i:-0b10000000000000000000000000000000:1:15:-2048: ++%*15i:-0b10000000000000000000000000000000:0:15: ++%15i:-123:1:4:-123: ++%*15i:-123:0:4: ++%15i:-0X7b:1:5:-123: ++%*15i:-0X7b:0:5: ++%15i:-0x7B:1:5:-123: ++%*15i:-0x7B:0:5: ++%15i:-0173:1:5:-123: ++%*15i:-0173:0:5: ++%15i:-0B1111011:1:10:-123: ++%*15i:-0B1111011:0:10: ++%15i:-0b1111011:1:10:-123: ++%*15i:-0b1111011:0:10: ++%15i:-1:1:2:-1: ++%*15i:-1:0:2: ++%15i:-0X1:1:4:-1: ++%*15i:-0X1:0:4: ++%15i:-0x1:1:4:-1: ++%*15i:-0x1:0:4: ++%15i:-01:1:3:-1: ++%*15i:-01:0:3: ++%15i:-0B1:1:4:-1: ++%*15i:-0B1:0:4: ++%15i:-0b1:1:4:-1: ++%*15i:-0b1:0:4: ++%15i:-0:1:2:0: ++%*15i:-0:0:2: ++%15i:-0X0:1:4:0: ++%*15i:-0X0:0:4: ++%15i:-0x0:1:4:0: ++%*15i:-0x0:0:4: ++%15i:-00:1:3:0: ++%*15i:-00:0:3: ++%15i:-0B0:1:4:0: ++%*15i:-0B0:0:4: ++%15i:-0b0:1:4:0: ++%*15i:-0b0:0:4: ++%15i:0:1:1:0: ++%*15i:0:0:1: ++%15i:0X0:1:3:0: ++%*15i:0X0:0:3: ++%15i:0x0:1:3:0: ++%*15i:0x0:0:3: ++%15i:00:1:2:0: ++%*15i:00:0:2: ++%15i:0B0:1:3:0: ++%*15i:0B0:0:3: ++%15i:0b0:1:3:0: ++%*15i:0b0:0:3: ++%15i:1:1:1:1: ++%*15i:1:0:1: ++%15i:0X1:1:3:1: ++%*15i:0X1:0:3: ++%15i:0x1:1:3:1: ++%*15i:0x1:0:3: ++%15i:01:1:2:1: ++%*15i:01:0:2: ++%15i:0B1:1:3:1: ++%*15i:0B1:0:3: ++%15i:0b1:1:3:1: ++%*15i:0b1:0:3: ++%15i:42:1:2:42: ++%*15i:42:0:2: ++%15i:0X2a:1:4:42: ++%*15i:0X2a:0:4: ++%15i:0x2A:1:4:42: ++%*15i:0x2A:0:4: ++%15i:052:1:3:42: ++%*15i:052:0:3: ++%15i:0B101010:1:8:42: ++%*15i:0B101010:0:8: ++%15i:0b101010:1:8:42: ++%*15i:0b101010:0:8: ++%15i:2147483647:1:10:2147483647: ++%*15i:2147483647:0:10: ++%15i:0X7fffffff:1:10:2147483647: ++%*15i:0X7fffffff:0:10: ++%15i:0x7FFFFFFF:1:10:2147483647: ++%*15i:0x7FFFFFFF:0:10: ++%15i:017777777777:1:12:2147483647: ++%*15i:017777777777:0:12: ++%15i:0B1111111111111111111111111111111:1:15:8191: ++%*15i:0B1111111111111111111111111111111:0:15: ++%15i:0b1111111111111111111111111111111:1:15:8191: ++%*15i:0b1111111111111111111111111111111:0:15: ++%15i:2147483648:1:10:2147483647: ++%*15i:2147483648:0:10: ++%15i:0X80000000:1:10:2147483647: ++%*15i:0X80000000:0:10: ++%15i:0x80000000:1:10:2147483647: ++%*15i:0x80000000:0:10: ++%15i:020000000000:1:12:2147483647: ++%*15i:020000000000:0:12: ++%15i:0B10000000000000000000000000000000:1:15:4096: ++%*15i:0B10000000000000000000000000000000:0:15: ++%15i:0b10000000000000000000000000000000:1:15:4096: ++%*15i:0b10000000000000000000000000000000:0:15: ++%15i:2147487889:1:10:2147483647: ++%*15i:2147487889:0:10: ++%15i:0X80001091:1:10:2147483647: ++%*15i:0X80001091:0:10: ++%15i:0x80001091:1:10:2147483647: ++%*15i:0x80001091:0:10: ++%15i:020000010221:1:12:2147483647: ++%*15i:020000010221:0:12: ++%15i:0B10000000000000000001000010010001:1:15:4096: ++%*15i:0B10000000000000000001000010010001:0:15: ++%15i:0b10000000000000000001000010010001:1:15:4096: ++%*15i:0b10000000000000000001000010010001:0:15: ++%15i:+0:1:2:0: ++%*15i:+0:0:2: ++%15i:+0X0:1:4:0: ++%*15i:+0X0:0:4: ++%15i:+0x0:1:4:0: ++%*15i:+0x0:0:4: ++%15i:+00:1:3:0: ++%*15i:+00:0:3: ++%15i:+0B0:1:4:0: ++%*15i:+0B0:0:4: ++%15i:+0b0:1:4:0: ++%*15i:+0b0:0:4: ++%15i:+1:1:2:1: ++%*15i:+1:0:2: ++%15i:+0X1:1:4:1: ++%*15i:+0X1:0:4: ++%15i:+0x1:1:4:1: ++%*15i:+0x1:0:4: ++%15i:+01:1:3:1: ++%*15i:+01:0:3: ++%15i:+0B1:1:4:1: ++%*15i:+0B1:0:4: ++%15i:+0b1:1:4:1: ++%*15i:+0b1:0:4: ++%15i:+42:1:3:42: ++%*15i:+42:0:3: ++%15i:+0X2a:1:5:42: ++%*15i:+0X2a:0:5: ++%15i:+0x2A:1:5:42: ++%*15i:+0x2A:0:5: ++%15i:+052:1:4:42: ++%*15i:+052:0:4: ++%15i:+0B101010:1:9:42: ++%*15i:+0B101010:0:9: ++%15i:+0b101010:1:9:42: ++%*15i:+0b101010:0:9: ++%15i:+2147483647:1:11:2147483647: ++%*15i:+2147483647:0:11: ++%15i:+0X7fffffff:1:11:2147483647: ++%*15i:+0X7fffffff:0:11: ++%15i:+0x7FFFFFFF:1:11:2147483647: ++%*15i:+0x7FFFFFFF:0:11: ++%15i:+017777777777:1:13:2147483647: ++%*15i:+017777777777:0:13: ++%15i:+0B1111111111111111111111111111111:1:15:4095: ++%*15i:+0B1111111111111111111111111111111:0:15: ++%15i:+0b1111111111111111111111111111111:1:15:4095: ++%*15i:+0b1111111111111111111111111111111:0:15: ++%15i:+2147483648:1:11:2147483647: ++%*15i:+2147483648:0:11: ++%15i:+0X80000000:1:11:2147483647: ++%*15i:+0X80000000:0:11: ++%15i:+0x80000000:1:11:2147483647: ++%*15i:+0x80000000:0:11: ++%15i:+020000000000:1:13:2147483647: ++%*15i:+020000000000:0:13: ++%15i:+0B10000000000000000000000000000000:1:15:2048: ++%*15i:+0B10000000000000000000000000000000:0:15: ++%15i:+0b10000000000000000000000000000000:1:15:2048: ++%*15i:+0b10000000000000000000000000000000:0:15: ++%15i:+2147487889:1:11:2147483647: ++%*15i:+2147487889:0:11: ++%15i:+0X80001091:1:11:2147483647: ++%*15i:+0X80001091:0:11: ++%15i:+0x80001091:1:11:2147483647: ++%*15i:+0x80001091:0:11: ++%15i:+020000010221:1:13:2147483647: ++%*15i:+020000010221:0:13: ++%15i:+0B10000000000000000001000010010001:1:15:2048: ++%*15i:+0B10000000000000000001000010010001:0:15: ++%15i:+0b10000000000000000001000010010001:1:15:2048: ++%*15i:+0b10000000000000000001000010010001:0:15: ++%2i: :0:-1: ++%*2i: :0:-1: ++%2i: -2147484882:1:3:-2: ++%*2i: -2147484882:0:3: ++%2i: -0X800004d2:1:3:0: ++%*2i: -0X800004d2:0:3: ++%2i: -0x800004D2:1:3:0: ++%*2i: -0x800004D2:0:3: ++%2i: -020000002322:1:3:0: ++%*2i: -020000002322:0:3: ++%2i: -0B10000000000000000000010011010010:1:3:0: ++%*2i: -0B10000000000000000000010011010010:0:3: ++%2i: -0b10000000000000000000010011010010:1:3:0: ++%*2i: -0b10000000000000000000010011010010:0:3: ++%2i: -2147483649:1:3:-2: ++%*2i: -2147483649:0:3: ++%2i: -0X80000001:1:3:0: ++%*2i: -0X80000001:0:3: ++%2i: -0x80000001:1:3:0: ++%*2i: -0x80000001:0:3: ++%2i: -020000000001:1:3:0: ++%*2i: -020000000001:0:3: ++%2i: -0B10000000000000000000000000000001:1:3:0: ++%*2i: -0B10000000000000000000000000000001:0:3: ++%2i: -0b10000000000000000000000000000001:1:3:0: ++%*2i: -0b10000000000000000000000000000001:0:3: ++%2i: -2147483648:1:3:-2: ++%*2i: -2147483648:0:3: ++%2i: -0X80000000:1:3:0: ++%*2i: -0X80000000:0:3: ++%2i: -0x80000000:1:3:0: ++%*2i: -0x80000000:0:3: ++%2i: -020000000000:1:3:0: ++%*2i: -020000000000:0:3: ++%2i: -0B10000000000000000000000000000000:1:3:0: ++%*2i: -0B10000000000000000000000000000000:0:3: ++%2i: -0b10000000000000000000000000000000:1:3:0: ++%*2i: -0b10000000000000000000000000000000:0:3: ++%2i: -123:1:3:-1: ++%*2i: -123:0:3: ++%2i: -0X7b:1:3:0: ++%*2i: -0X7b:0:3: ++%2i: -0x7B:1:3:0: ++%*2i: -0x7B:0:3: ++%2i: -0173:1:3:0: ++%*2i: -0173:0:3: ++%2i: -0B1111011:1:3:0: ++%*2i: -0B1111011:0:3: ++%2i: -0b1111011:1:3:0: ++%*2i: -0b1111011:0:3: ++%2i: -1:1:3:-1: ++%*2i: -1:0:3: ++%2i: -0X1:1:3:0: ++%*2i: -0X1:0:3: ++%2i: -0x1:1:3:0: ++%*2i: -0x1:0:3: ++%2i: -01:1:3:0: ++%*2i: -01:0:3: ++%2i: -0B1:1:3:0: ++%*2i: -0B1:0:3: ++%2i: -0b1:1:3:0: ++%*2i: -0b1:0:3: ++%2i: -0:1:3:0: ++%*2i: -0:0:3: ++%2i: -0X0:1:3:0: ++%*2i: -0X0:0:3: ++%2i: -0x0:1:3:0: ++%*2i: -0x0:0:3: ++%2i: -00:1:3:0: ++%*2i: -00:0:3: ++%2i: -0B0:1:3:0: ++%*2i: -0B0:0:3: ++%2i: -0b0:1:3:0: ++%*2i: -0b0:0:3: ++%2i: 0:1:2:0: ++%*2i: 0:0:2: ++# BZ12701 %2i: 0X0:0:-1: ++# BZ12701 %*2i: 0X0:0:-1: ++# BZ12701 %2i: 0x0:0:-1: ++# BZ12701 %*2i: 0x0:0:-1: ++%2i: 00:1:3:0: ++%*2i: 00:0:3: ++# BZ12701 %2i: 0B0:0:-1: ++# BZ12701 %*2i: 0B0:0:-1: ++# BZ12701 %2i: 0b0:0:-1: ++# BZ12701 %*2i: 0b0:0:-1: ++%2i: 1:1:2:1: ++%*2i: 1:0:2: ++# BZ12701 %2i: 0X1:0:-1: ++# BZ12701 %*2i: 0X1:0:-1: ++# BZ12701 %2i: 0x1:0:-1: ++# BZ12701 %*2i: 0x1:0:-1: ++%2i: 01:1:3:1: ++%*2i: 01:0:3: ++# BZ12701 %2i: 0B1:0:-1: ++# BZ12701 %*2i: 0B1:0:-1: ++# BZ12701 %2i: 0b1:0:-1: ++# BZ12701 %*2i: 0b1:0:-1: ++%2i: 42:1:3:42: ++%*2i: 42:0:3: ++# BZ12701 %2i: 0X2a:0:-1: ++# BZ12701 %*2i: 0X2a:0:-1: ++# BZ12701 %2i: 0x2A:0:-1: ++# BZ12701 %*2i: 0x2A:0:-1: ++%2i: 052:1:3:5: ++%*2i: 052:0:3: ++# BZ12701 %2i: 0B101010:0:-1: ++# BZ12701 %*2i: 0B101010:0:-1: ++# BZ12701 %2i: 0b101010:0:-1: ++# BZ12701 %*2i: 0b101010:0:-1: ++%2i: 2147483647:1:3:21: ++%*2i: 2147483647:0:3: ++# BZ12701 %2i: 0X7fffffff:0:-1: ++# BZ12701 %*2i: 0X7fffffff:0:-1: ++# BZ12701 %2i: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2i: 0x7FFFFFFF:0:-1: ++%2i: 017777777777:1:3:1: ++%*2i: 017777777777:0:3: ++# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: ++%2i: 2147483648:1:3:21: ++%*2i: 2147483648:0:3: ++# BZ12701 %2i: 0X80000000:0:-1: ++# BZ12701 %*2i: 0X80000000:0:-1: ++# BZ12701 %2i: 0x80000000:0:-1: ++# BZ12701 %*2i: 0x80000000:0:-1: ++%2i: 020000000000:1:3:2: ++%*2i: 020000000000:0:3: ++# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: ++%2i: 2147487889:1:3:21: ++%*2i: 2147487889:0:3: ++# BZ12701 %2i: 0X80001091:0:-1: ++# BZ12701 %*2i: 0X80001091:0:-1: ++# BZ12701 %2i: 0x80001091:0:-1: ++# BZ12701 %*2i: 0x80001091:0:-1: ++%2i: 020000010221:1:3:2: ++%*2i: 020000010221:0:3: ++# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: ++%2i: +0:1:3:0: ++%*2i: +0:0:3: ++%2i: +0X0:1:3:0: ++%*2i: +0X0:0:3: ++%2i: +0x0:1:3:0: ++%*2i: +0x0:0:3: ++%2i: +00:1:3:0: ++%*2i: +00:0:3: ++%2i: +0B0:1:3:0: ++%*2i: +0B0:0:3: ++%2i: +0b0:1:3:0: ++%*2i: +0b0:0:3: ++%2i: +1:1:3:1: ++%*2i: +1:0:3: ++%2i: +0X1:1:3:0: ++%*2i: +0X1:0:3: ++%2i: +0x1:1:3:0: ++%*2i: +0x1:0:3: ++%2i: +01:1:3:0: ++%*2i: +01:0:3: ++%2i: +0B1:1:3:0: ++%*2i: +0B1:0:3: ++%2i: +0b1:1:3:0: ++%*2i: +0b1:0:3: ++%2i: +42:1:3:4: ++%*2i: +42:0:3: ++%2i: +0X2a:1:3:0: ++%*2i: +0X2a:0:3: ++%2i: +0x2A:1:3:0: ++%*2i: +0x2A:0:3: ++%2i: +052:1:3:0: ++%*2i: +052:0:3: ++%2i: +0B101010:1:3:0: ++%*2i: +0B101010:0:3: ++%2i: +0b101010:1:3:0: ++%*2i: +0b101010:0:3: ++%2i: +2147483647:1:3:2: ++%*2i: +2147483647:0:3: ++%2i: +0X7fffffff:1:3:0: ++%*2i: +0X7fffffff:0:3: ++%2i: +0x7FFFFFFF:1:3:0: ++%*2i: +0x7FFFFFFF:0:3: ++%2i: +017777777777:1:3:0: ++%*2i: +017777777777:0:3: ++%2i: +0B1111111111111111111111111111111:1:3:0: ++%*2i: +0B1111111111111111111111111111111:0:3: ++%2i: +0b1111111111111111111111111111111:1:3:0: ++%*2i: +0b1111111111111111111111111111111:0:3: ++%2i: +2147483648:1:3:2: ++%*2i: +2147483648:0:3: ++%2i: +0X80000000:1:3:0: ++%*2i: +0X80000000:0:3: ++%2i: +0x80000000:1:3:0: ++%*2i: +0x80000000:0:3: ++%2i: +020000000000:1:3:0: ++%*2i: +020000000000:0:3: ++%2i: +0B10000000000000000000000000000000:1:3:0: ++%*2i: +0B10000000000000000000000000000000:0:3: ++%2i: +0b10000000000000000000000000000000:1:3:0: ++%*2i: +0b10000000000000000000000000000000:0:3: ++%2i: +2147487889:1:3:2: ++%*2i: +2147487889:0:3: ++%2i: +0X80001091:1:3:0: ++%*2i: +0X80001091:0:3: ++%2i: +0x80001091:1:3:0: ++%*2i: +0x80001091:0:3: ++%2i: +020000010221:1:3:0: ++%*2i: +020000010221:0:3: ++%2i: +0B10000000000000000001000010010001:1:3:0: ++%*2i: +0B10000000000000000001000010010001:0:3: ++%2i: +0b10000000000000000001000010010001:1:3:0: ++%*2i: +0b10000000000000000001000010010001:0:3: ++%15i: :0:-1: ++%*15i: :0:-1: ++%15i: -2147484882:1:12:-2147483648: ++%*15i: -2147484882:0:12: ++%15i: -0X800004d2:1:12:-2147483648: ++%*15i: -0X800004d2:0:12: ++%15i: -0x800004D2:1:12:-2147483648: ++%*15i: -0x800004D2:0:12: ++%15i: -020000002322:1:14:-2147483648: ++%*15i: -020000002322:0:14: ++%15i: -0B10000000000000000000010011010010:1:16:-2048: ++%*15i: -0B10000000000000000000010011010010:0:16: ++%15i: -0b10000000000000000000010011010010:1:16:-2048: ++%*15i: -0b10000000000000000000010011010010:0:16: ++%15i: -2147483649:1:12:-2147483648: ++%*15i: -2147483649:0:12: ++%15i: -0X80000001:1:12:-2147483648: ++%*15i: -0X80000001:0:12: ++%15i: -0x80000001:1:12:-2147483648: ++%*15i: -0x80000001:0:12: ++%15i: -020000000001:1:14:-2147483648: ++%*15i: -020000000001:0:14: ++%15i: -0B10000000000000000000000000000001:1:16:-2048: ++%*15i: -0B10000000000000000000000000000001:0:16: ++%15i: -0b10000000000000000000000000000001:1:16:-2048: ++%*15i: -0b10000000000000000000000000000001:0:16: ++%15i: -2147483648:1:12:-2147483648: ++%*15i: -2147483648:0:12: ++%15i: -0X80000000:1:12:-2147483648: ++%*15i: -0X80000000:0:12: ++%15i: -0x80000000:1:12:-2147483648: ++%*15i: -0x80000000:0:12: ++%15i: -020000000000:1:14:-2147483648: ++%*15i: -020000000000:0:14: ++%15i: -0B10000000000000000000000000000000:1:16:-2048: ++%*15i: -0B10000000000000000000000000000000:0:16: ++%15i: -0b10000000000000000000000000000000:1:16:-2048: ++%*15i: -0b10000000000000000000000000000000:0:16: ++%15i: -123:1:5:-123: ++%*15i: -123:0:5: ++%15i: -0X7b:1:6:-123: ++%*15i: -0X7b:0:6: ++%15i: -0x7B:1:6:-123: ++%*15i: -0x7B:0:6: ++%15i: -0173:1:6:-123: ++%*15i: -0173:0:6: ++%15i: -0B1111011:1:11:-123: ++%*15i: -0B1111011:0:11: ++%15i: -0b1111011:1:11:-123: ++%*15i: -0b1111011:0:11: ++%15i: -1:1:3:-1: ++%*15i: -1:0:3: ++%15i: -0X1:1:5:-1: ++%*15i: -0X1:0:5: ++%15i: -0x1:1:5:-1: ++%*15i: -0x1:0:5: ++%15i: -01:1:4:-1: ++%*15i: -01:0:4: ++%15i: -0B1:1:5:-1: ++%*15i: -0B1:0:5: ++%15i: -0b1:1:5:-1: ++%*15i: -0b1:0:5: ++%15i: -0:1:3:0: ++%*15i: -0:0:3: ++%15i: -0X0:1:5:0: ++%*15i: -0X0:0:5: ++%15i: -0x0:1:5:0: ++%*15i: -0x0:0:5: ++%15i: -00:1:4:0: ++%*15i: -00:0:4: ++%15i: -0B0:1:5:0: ++%*15i: -0B0:0:5: ++%15i: -0b0:1:5:0: ++%*15i: -0b0:0:5: ++%15i: 0:1:2:0: ++%*15i: 0:0:2: ++%15i: 0X0:1:4:0: ++%*15i: 0X0:0:4: ++%15i: 0x0:1:4:0: ++%*15i: 0x0:0:4: ++%15i: 00:1:3:0: ++%*15i: 00:0:3: ++%15i: 0B0:1:4:0: ++%*15i: 0B0:0:4: ++%15i: 0b0:1:4:0: ++%*15i: 0b0:0:4: ++%15i: 1:1:2:1: ++%*15i: 1:0:2: ++%15i: 0X1:1:4:1: ++%*15i: 0X1:0:4: ++%15i: 0x1:1:4:1: ++%*15i: 0x1:0:4: ++%15i: 01:1:3:1: ++%*15i: 01:0:3: ++%15i: 0B1:1:4:1: ++%*15i: 0B1:0:4: ++%15i: 0b1:1:4:1: ++%*15i: 0b1:0:4: ++%15i: 42:1:3:42: ++%*15i: 42:0:3: ++%15i: 0X2a:1:5:42: ++%*15i: 0X2a:0:5: ++%15i: 0x2A:1:5:42: ++%*15i: 0x2A:0:5: ++%15i: 052:1:4:42: ++%*15i: 052:0:4: ++%15i: 0B101010:1:9:42: ++%*15i: 0B101010:0:9: ++%15i: 0b101010:1:9:42: ++%*15i: 0b101010:0:9: ++%15i: 2147483647:1:11:2147483647: ++%*15i: 2147483647:0:11: ++%15i: 0X7fffffff:1:11:2147483647: ++%*15i: 0X7fffffff:0:11: ++%15i: 0x7FFFFFFF:1:11:2147483647: ++%*15i: 0x7FFFFFFF:0:11: ++%15i: 017777777777:1:13:2147483647: ++%*15i: 017777777777:0:13: ++%15i: 0B1111111111111111111111111111111:1:16:8191: ++%*15i: 0B1111111111111111111111111111111:0:16: ++%15i: 0b1111111111111111111111111111111:1:16:8191: ++%*15i: 0b1111111111111111111111111111111:0:16: ++%15i: 2147483648:1:11:2147483647: ++%*15i: 2147483648:0:11: ++%15i: 0X80000000:1:11:2147483647: ++%*15i: 0X80000000:0:11: ++%15i: 0x80000000:1:11:2147483647: ++%*15i: 0x80000000:0:11: ++%15i: 020000000000:1:13:2147483647: ++%*15i: 020000000000:0:13: ++%15i: 0B10000000000000000000000000000000:1:16:4096: ++%*15i: 0B10000000000000000000000000000000:0:16: ++%15i: 0b10000000000000000000000000000000:1:16:4096: ++%*15i: 0b10000000000000000000000000000000:0:16: ++%15i: 2147487889:1:11:2147483647: ++%*15i: 2147487889:0:11: ++%15i: 0X80001091:1:11:2147483647: ++%*15i: 0X80001091:0:11: ++%15i: 0x80001091:1:11:2147483647: ++%*15i: 0x80001091:0:11: ++%15i: 020000010221:1:13:2147483647: ++%*15i: 020000010221:0:13: ++%15i: 0B10000000000000000001000010010001:1:16:4096: ++%*15i: 0B10000000000000000001000010010001:0:16: ++%15i: 0b10000000000000000001000010010001:1:16:4096: ++%*15i: 0b10000000000000000001000010010001:0:16: ++%15i: +0:1:3:0: ++%*15i: +0:0:3: ++%15i: +0X0:1:5:0: ++%*15i: +0X0:0:5: ++%15i: +0x0:1:5:0: ++%*15i: +0x0:0:5: ++%15i: +00:1:4:0: ++%*15i: +00:0:4: ++%15i: +0B0:1:5:0: ++%*15i: +0B0:0:5: ++%15i: +0b0:1:5:0: ++%*15i: +0b0:0:5: ++%15i: +1:1:3:1: ++%*15i: +1:0:3: ++%15i: +0X1:1:5:1: ++%*15i: +0X1:0:5: ++%15i: +0x1:1:5:1: ++%*15i: +0x1:0:5: ++%15i: +01:1:4:1: ++%*15i: +01:0:4: ++%15i: +0B1:1:5:1: ++%*15i: +0B1:0:5: ++%15i: +0b1:1:5:1: ++%*15i: +0b1:0:5: ++%15i: +42:1:4:42: ++%*15i: +42:0:4: ++%15i: +0X2a:1:6:42: ++%*15i: +0X2a:0:6: ++%15i: +0x2A:1:6:42: ++%*15i: +0x2A:0:6: ++%15i: +052:1:5:42: ++%*15i: +052:0:5: ++%15i: +0B101010:1:10:42: ++%*15i: +0B101010:0:10: ++%15i: +0b101010:1:10:42: ++%*15i: +0b101010:0:10: ++%15i: +2147483647:1:12:2147483647: ++%*15i: +2147483647:0:12: ++%15i: +0X7fffffff:1:12:2147483647: ++%*15i: +0X7fffffff:0:12: ++%15i: +0x7FFFFFFF:1:12:2147483647: ++%*15i: +0x7FFFFFFF:0:12: ++%15i: +017777777777:1:14:2147483647: ++%*15i: +017777777777:0:14: ++%15i: +0B1111111111111111111111111111111:1:16:4095: ++%*15i: +0B1111111111111111111111111111111:0:16: ++%15i: +0b1111111111111111111111111111111:1:16:4095: ++%*15i: +0b1111111111111111111111111111111:0:16: ++%15i: +2147483648:1:12:2147483647: ++%*15i: +2147483648:0:12: ++%15i: +0X80000000:1:12:2147483647: ++%*15i: +0X80000000:0:12: ++%15i: +0x80000000:1:12:2147483647: ++%*15i: +0x80000000:0:12: ++%15i: +020000000000:1:14:2147483647: ++%*15i: +020000000000:0:14: ++%15i: +0B10000000000000000000000000000000:1:16:2048: ++%*15i: +0B10000000000000000000000000000000:0:16: ++%15i: +0b10000000000000000000000000000000:1:16:2048: ++%*15i: +0b10000000000000000000000000000000:0:16: ++%15i: +2147487889:1:12:2147483647: ++%*15i: +2147487889:0:12: ++%15i: +0X80001091:1:12:2147483647: ++%*15i: +0X80001091:0:12: ++%15i: +0x80001091:1:12:2147483647: ++%*15i: +0x80001091:0:12: ++%15i: +020000010221:1:14:2147483647: ++%*15i: +020000010221:0:14: ++%15i: +0B10000000000000000001000010010001:1:16:2048: ++%*15i: +0B10000000000000000001000010010001:0:16: ++%15i: +0b10000000000000000001000010010001:1:16:2048: ++%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-d.input b/sysdeps/wordsize-32/tst-scanf-format-long-d.input +new file mode 100644 +index 0000000000000000..8abbcdd957f95fdb +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-d.input +@@ -0,0 +1,266 @@ ++%ld::0:-1: ++%*ld::0:-1: ++%ld:-2147484882:1:11:-2147483648: ++%*ld:-2147484882:0:11: ++%ld:-2147483649:1:11:-2147483648: ++%*ld:-2147483649:0:11: ++%ld:-2147483648:1:11:-2147483648: ++%*ld:-2147483648:0:11: ++%ld:-123:1:4:-123: ++%*ld:-123:0:4: ++%ld:-1:1:2:-1: ++%*ld:-1:0:2: ++%ld:-0:1:2:0: ++%*ld:-0:0:2: ++%ld:0:1:1:0: ++%*ld:0:0:1: ++%ld:1:1:1:1: ++%*ld:1:0:1: ++%ld:42:1:2:42: ++%*ld:42:0:2: ++%ld:2147483647:1:10:2147483647: ++%*ld:2147483647:0:10: ++%ld:2147483648:1:10:2147483647: ++%*ld:2147483648:0:10: ++%ld:2147487889:1:10:2147483647: ++%*ld:2147487889:0:10: ++%ld:+0:1:2:0: ++%*ld:+0:0:2: ++%ld:+1:1:2:1: ++%*ld:+1:0:2: ++%ld:+42:1:3:42: ++%*ld:+42:0:3: ++%ld:+2147483647:1:11:2147483647: ++%*ld:+2147483647:0:11: ++%ld:+2147483648:1:11:2147483647: ++%*ld:+2147483648:0:11: ++%ld:+2147487889:1:11:2147483647: ++%*ld:+2147487889:0:11: ++%1ld::0:-1: ++%*1ld::0:-1: ++%1ld:-2147484882:0:-1: ++%*1ld:-2147484882:0:-1: ++%1ld:-2147483649:0:-1: ++%*1ld:-2147483649:0:-1: ++%1ld:-2147483648:0:-1: ++%*1ld:-2147483648:0:-1: ++%1ld:-123:0:-1: ++%*1ld:-123:0:-1: ++%1ld:-1:0:-1: ++%*1ld:-1:0:-1: ++%1ld:-0:0:-1: ++%*1ld:-0:0:-1: ++%1ld:0:1:1:0: ++%*1ld:0:0:1: ++%1ld:1:1:1:1: ++%*1ld:1:0:1: ++%1ld:42:1:1:4: ++%*1ld:42:0:1: ++%1ld:2147483647:1:1:2: ++%*1ld:2147483647:0:1: ++%1ld:2147483648:1:1:2: ++%*1ld:2147483648:0:1: ++%1ld:2147487889:1:1:2: ++%*1ld:2147487889:0:1: ++%1ld:+0:0:-1: ++%*1ld:+0:0:-1: ++%1ld:+1:0:-1: ++%*1ld:+1:0:-1: ++%1ld:+42:0:-1: ++%*1ld:+42:0:-1: ++%1ld:+2147483647:0:-1: ++%*1ld:+2147483647:0:-1: ++%1ld:+2147483648:0:-1: ++%*1ld:+2147483648:0:-1: ++%1ld:+2147487889:0:-1: ++%*1ld:+2147487889:0:-1: ++%2ld::0:-1: ++%*2ld::0:-1: ++%2ld:-2147484882:1:2:-2: ++%*2ld:-2147484882:0:2: ++%2ld:-2147483649:1:2:-2: ++%*2ld:-2147483649:0:2: ++%2ld:-2147483648:1:2:-2: ++%*2ld:-2147483648:0:2: ++%2ld:-123:1:2:-1: ++%*2ld:-123:0:2: ++%2ld:-1:1:2:-1: ++%*2ld:-1:0:2: ++%2ld:-0:1:2:0: ++%*2ld:-0:0:2: ++%2ld:0:1:1:0: ++%*2ld:0:0:1: ++%2ld:1:1:1:1: ++%*2ld:1:0:1: ++%2ld:42:1:2:42: ++%*2ld:42:0:2: ++%2ld:2147483647:1:2:21: ++%*2ld:2147483647:0:2: ++%2ld:2147483648:1:2:21: ++%*2ld:2147483648:0:2: ++%2ld:2147487889:1:2:21: ++%*2ld:2147487889:0:2: ++%2ld:+0:1:2:0: ++%*2ld:+0:0:2: ++%2ld:+1:1:2:1: ++%*2ld:+1:0:2: ++%2ld:+42:1:2:4: ++%*2ld:+42:0:2: ++%2ld:+2147483647:1:2:2: ++%*2ld:+2147483647:0:2: ++%2ld:+2147483648:1:2:2: ++%*2ld:+2147483648:0:2: ++%2ld:+2147487889:1:2:2: ++%*2ld:+2147487889:0:2: ++%8ld::0:-1: ++%*8ld::0:-1: ++%8ld:-2147484882:1:8:-2147484: ++%*8ld:-2147484882:0:8: ++%8ld:-2147483649:1:8:-2147483: ++%*8ld:-2147483649:0:8: ++%8ld:-2147483648:1:8:-2147483: ++%*8ld:-2147483648:0:8: ++%8ld:-123:1:4:-123: ++%*8ld:-123:0:4: ++%8ld:-1:1:2:-1: ++%*8ld:-1:0:2: ++%8ld:-0:1:2:0: ++%*8ld:-0:0:2: ++%8ld:0:1:1:0: ++%*8ld:0:0:1: ++%8ld:1:1:1:1: ++%*8ld:1:0:1: ++%8ld:42:1:2:42: ++%*8ld:42:0:2: ++%8ld:2147483647:1:8:21474836: ++%*8ld:2147483647:0:8: ++%8ld:2147483648:1:8:21474836: ++%*8ld:2147483648:0:8: ++%8ld:2147487889:1:8:21474878: ++%*8ld:2147487889:0:8: ++%8ld:+0:1:2:0: ++%*8ld:+0:0:2: ++%8ld:+1:1:2:1: ++%*8ld:+1:0:2: ++%8ld:+42:1:3:42: ++%*8ld:+42:0:3: ++%8ld:+2147483647:1:8:2147483: ++%*8ld:+2147483647:0:8: ++%8ld:+2147483648:1:8:2147483: ++%*8ld:+2147483648:0:8: ++%8ld:+2147487889:1:8:2147487: ++%*8ld:+2147487889:0:8: ++%15ld::0:-1: ++%*15ld::0:-1: ++%15ld:-2147484882:1:11:-2147483648: ++%*15ld:-2147484882:0:11: ++%15ld:-2147483649:1:11:-2147483648: ++%*15ld:-2147483649:0:11: ++%15ld:-2147483648:1:11:-2147483648: ++%*15ld:-2147483648:0:11: ++%15ld:-123:1:4:-123: ++%*15ld:-123:0:4: ++%15ld:-1:1:2:-1: ++%*15ld:-1:0:2: ++%15ld:-0:1:2:0: ++%*15ld:-0:0:2: ++%15ld:0:1:1:0: ++%*15ld:0:0:1: ++%15ld:1:1:1:1: ++%*15ld:1:0:1: ++%15ld:42:1:2:42: ++%*15ld:42:0:2: ++%15ld:2147483647:1:10:2147483647: ++%*15ld:2147483647:0:10: ++%15ld:2147483648:1:10:2147483647: ++%*15ld:2147483648:0:10: ++%15ld:2147487889:1:10:2147483647: ++%*15ld:2147487889:0:10: ++%15ld:+0:1:2:0: ++%*15ld:+0:0:2: ++%15ld:+1:1:2:1: ++%*15ld:+1:0:2: ++%15ld:+42:1:3:42: ++%*15ld:+42:0:3: ++%15ld:+2147483647:1:11:2147483647: ++%*15ld:+2147483647:0:11: ++%15ld:+2147483648:1:11:2147483647: ++%*15ld:+2147483648:0:11: ++%15ld:+2147487889:1:11:2147483647: ++%*15ld:+2147487889:0:11: ++%2ld: :0:-1: ++%*2ld: :0:-1: ++%2ld: -2147484882:1:3:-2: ++%*2ld: -2147484882:0:3: ++%2ld: -2147483649:1:3:-2: ++%*2ld: -2147483649:0:3: ++%2ld: -2147483648:1:3:-2: ++%*2ld: -2147483648:0:3: ++%2ld: -123:1:3:-1: ++%*2ld: -123:0:3: ++%2ld: -1:1:3:-1: ++%*2ld: -1:0:3: ++%2ld: -0:1:3:0: ++%*2ld: -0:0:3: ++%2ld: 0:1:2:0: ++%*2ld: 0:0:2: ++%2ld: 1:1:2:1: ++%*2ld: 1:0:2: ++%2ld: 42:1:3:42: ++%*2ld: 42:0:3: ++%2ld: 2147483647:1:3:21: ++%*2ld: 2147483647:0:3: ++%2ld: 2147483648:1:3:21: ++%*2ld: 2147483648:0:3: ++%2ld: 2147487889:1:3:21: ++%*2ld: 2147487889:0:3: ++%2ld: +0:1:3:0: ++%*2ld: +0:0:3: ++%2ld: +1:1:3:1: ++%*2ld: +1:0:3: ++%2ld: +42:1:3:4: ++%*2ld: +42:0:3: ++%2ld: +2147483647:1:3:2: ++%*2ld: +2147483647:0:3: ++%2ld: +2147483648:1:3:2: ++%*2ld: +2147483648:0:3: ++%2ld: +2147487889:1:3:2: ++%*2ld: +2147487889:0:3: ++%15ld: :0:-1: ++%*15ld: :0:-1: ++%15ld: -2147484882:1:12:-2147483648: ++%*15ld: -2147484882:0:12: ++%15ld: -2147483649:1:12:-2147483648: ++%*15ld: -2147483649:0:12: ++%15ld: -2147483648:1:12:-2147483648: ++%*15ld: -2147483648:0:12: ++%15ld: -123:1:5:-123: ++%*15ld: -123:0:5: ++%15ld: -1:1:3:-1: ++%*15ld: -1:0:3: ++%15ld: -0:1:3:0: ++%*15ld: -0:0:3: ++%15ld: 0:1:2:0: ++%*15ld: 0:0:2: ++%15ld: 1:1:2:1: ++%*15ld: 1:0:2: ++%15ld: 42:1:3:42: ++%*15ld: 42:0:3: ++%15ld: 2147483647:1:11:2147483647: ++%*15ld: 2147483647:0:11: ++%15ld: 2147483648:1:11:2147483647: ++%*15ld: 2147483648:0:11: ++%15ld: 2147487889:1:11:2147483647: ++%*15ld: 2147487889:0:11: ++%15ld: +0:1:3:0: ++%*15ld: +0:0:3: ++%15ld: +1:1:3:1: ++%*15ld: +1:0:3: ++%15ld: +42:1:4:42: ++%*15ld: +42:0:4: ++%15ld: +2147483647:1:12:2147483647: ++%*15ld: +2147483647:0:12: ++%15ld: +2147483648:1:12:2147483647: ++%*15ld: +2147483648:0:12: ++%15ld: +2147487889:1:12:2147483647: ++%*15ld: +2147487889:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-i.input b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +new file mode 100644 +index 0000000000000000..37db25158a611d87 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +@@ -0,0 +1,1526 @@ ++%li::0:-1: ++%*li::0:-1: ++%li:-2147484882:1:11:-2147483648: ++%*li:-2147484882:0:11: ++%li:-0X800004d2:1:11:-2147483648: ++%*li:-0X800004d2:0:11: ++%li:-0x800004D2:1:11:-2147483648: ++%*li:-0x800004D2:0:11: ++%li:-020000002322:1:13:-2147483648: ++%*li:-020000002322:0:13: ++%li:-0B10000000000000000000010011010010:1:35:-2147483648: ++%*li:-0B10000000000000000000010011010010:0:35: ++%li:-0b10000000000000000000010011010010:1:35:-2147483648: ++%*li:-0b10000000000000000000010011010010:0:35: ++%li:-2147483649:1:11:-2147483648: ++%*li:-2147483649:0:11: ++%li:-0X80000001:1:11:-2147483648: ++%*li:-0X80000001:0:11: ++%li:-0x80000001:1:11:-2147483648: ++%*li:-0x80000001:0:11: ++%li:-020000000001:1:13:-2147483648: ++%*li:-020000000001:0:13: ++%li:-0B10000000000000000000000000000001:1:35:-2147483648: ++%*li:-0B10000000000000000000000000000001:0:35: ++%li:-0b10000000000000000000000000000001:1:35:-2147483648: ++%*li:-0b10000000000000000000000000000001:0:35: ++%li:-2147483648:1:11:-2147483648: ++%*li:-2147483648:0:11: ++%li:-0X80000000:1:11:-2147483648: ++%*li:-0X80000000:0:11: ++%li:-0x80000000:1:11:-2147483648: ++%*li:-0x80000000:0:11: ++%li:-020000000000:1:13:-2147483648: ++%*li:-020000000000:0:13: ++%li:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*li:-0B10000000000000000000000000000000:0:35: ++%li:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*li:-0b10000000000000000000000000000000:0:35: ++%li:-123:1:4:-123: ++%*li:-123:0:4: ++%li:-0X7b:1:5:-123: ++%*li:-0X7b:0:5: ++%li:-0x7B:1:5:-123: ++%*li:-0x7B:0:5: ++%li:-0173:1:5:-123: ++%*li:-0173:0:5: ++%li:-0B1111011:1:10:-123: ++%*li:-0B1111011:0:10: ++%li:-0b1111011:1:10:-123: ++%*li:-0b1111011:0:10: ++%li:-1:1:2:-1: ++%*li:-1:0:2: ++%li:-0X1:1:4:-1: ++%*li:-0X1:0:4: ++%li:-0x1:1:4:-1: ++%*li:-0x1:0:4: ++%li:-01:1:3:-1: ++%*li:-01:0:3: ++%li:-0B1:1:4:-1: ++%*li:-0B1:0:4: ++%li:-0b1:1:4:-1: ++%*li:-0b1:0:4: ++%li:-0:1:2:0: ++%*li:-0:0:2: ++%li:-0X0:1:4:0: ++%*li:-0X0:0:4: ++%li:-0x0:1:4:0: ++%*li:-0x0:0:4: ++%li:-00:1:3:0: ++%*li:-00:0:3: ++%li:-0B0:1:4:0: ++%*li:-0B0:0:4: ++%li:-0b0:1:4:0: ++%*li:-0b0:0:4: ++%li:0:1:1:0: ++%*li:0:0:1: ++%li:0X0:1:3:0: ++%*li:0X0:0:3: ++%li:0x0:1:3:0: ++%*li:0x0:0:3: ++%li:00:1:2:0: ++%*li:00:0:2: ++%li:0B0:1:3:0: ++%*li:0B0:0:3: ++%li:0b0:1:3:0: ++%*li:0b0:0:3: ++%li:1:1:1:1: ++%*li:1:0:1: ++%li:0X1:1:3:1: ++%*li:0X1:0:3: ++%li:0x1:1:3:1: ++%*li:0x1:0:3: ++%li:01:1:2:1: ++%*li:01:0:2: ++%li:0B1:1:3:1: ++%*li:0B1:0:3: ++%li:0b1:1:3:1: ++%*li:0b1:0:3: ++%li:42:1:2:42: ++%*li:42:0:2: ++%li:0X2a:1:4:42: ++%*li:0X2a:0:4: ++%li:0x2A:1:4:42: ++%*li:0x2A:0:4: ++%li:052:1:3:42: ++%*li:052:0:3: ++%li:0B101010:1:8:42: ++%*li:0B101010:0:8: ++%li:0b101010:1:8:42: ++%*li:0b101010:0:8: ++%li:2147483647:1:10:2147483647: ++%*li:2147483647:0:10: ++%li:0X7fffffff:1:10:2147483647: ++%*li:0X7fffffff:0:10: ++%li:0x7FFFFFFF:1:10:2147483647: ++%*li:0x7FFFFFFF:0:10: ++%li:017777777777:1:12:2147483647: ++%*li:017777777777:0:12: ++%li:0B1111111111111111111111111111111:1:33:2147483647: ++%*li:0B1111111111111111111111111111111:0:33: ++%li:0b1111111111111111111111111111111:1:33:2147483647: ++%*li:0b1111111111111111111111111111111:0:33: ++%li:2147483648:1:10:2147483647: ++%*li:2147483648:0:10: ++%li:0X80000000:1:10:2147483647: ++%*li:0X80000000:0:10: ++%li:0x80000000:1:10:2147483647: ++%*li:0x80000000:0:10: ++%li:020000000000:1:12:2147483647: ++%*li:020000000000:0:12: ++%li:0B10000000000000000000000000000000:1:34:2147483647: ++%*li:0B10000000000000000000000000000000:0:34: ++%li:0b10000000000000000000000000000000:1:34:2147483647: ++%*li:0b10000000000000000000000000000000:0:34: ++%li:2147487889:1:10:2147483647: ++%*li:2147487889:0:10: ++%li:0X80001091:1:10:2147483647: ++%*li:0X80001091:0:10: ++%li:0x80001091:1:10:2147483647: ++%*li:0x80001091:0:10: ++%li:020000010221:1:12:2147483647: ++%*li:020000010221:0:12: ++%li:0B10000000000000000001000010010001:1:34:2147483647: ++%*li:0B10000000000000000001000010010001:0:34: ++%li:0b10000000000000000001000010010001:1:34:2147483647: ++%*li:0b10000000000000000001000010010001:0:34: ++%li:+0:1:2:0: ++%*li:+0:0:2: ++%li:+0X0:1:4:0: ++%*li:+0X0:0:4: ++%li:+0x0:1:4:0: ++%*li:+0x0:0:4: ++%li:+00:1:3:0: ++%*li:+00:0:3: ++%li:+0B0:1:4:0: ++%*li:+0B0:0:4: ++%li:+0b0:1:4:0: ++%*li:+0b0:0:4: ++%li:+1:1:2:1: ++%*li:+1:0:2: ++%li:+0X1:1:4:1: ++%*li:+0X1:0:4: ++%li:+0x1:1:4:1: ++%*li:+0x1:0:4: ++%li:+01:1:3:1: ++%*li:+01:0:3: ++%li:+0B1:1:4:1: ++%*li:+0B1:0:4: ++%li:+0b1:1:4:1: ++%*li:+0b1:0:4: ++%li:+42:1:3:42: ++%*li:+42:0:3: ++%li:+0X2a:1:5:42: ++%*li:+0X2a:0:5: ++%li:+0x2A:1:5:42: ++%*li:+0x2A:0:5: ++%li:+052:1:4:42: ++%*li:+052:0:4: ++%li:+0B101010:1:9:42: ++%*li:+0B101010:0:9: ++%li:+0b101010:1:9:42: ++%*li:+0b101010:0:9: ++%li:+2147483647:1:11:2147483647: ++%*li:+2147483647:0:11: ++%li:+0X7fffffff:1:11:2147483647: ++%*li:+0X7fffffff:0:11: ++%li:+0x7FFFFFFF:1:11:2147483647: ++%*li:+0x7FFFFFFF:0:11: ++%li:+017777777777:1:13:2147483647: ++%*li:+017777777777:0:13: ++%li:+0B1111111111111111111111111111111:1:34:2147483647: ++%*li:+0B1111111111111111111111111111111:0:34: ++%li:+0b1111111111111111111111111111111:1:34:2147483647: ++%*li:+0b1111111111111111111111111111111:0:34: ++%li:+2147483648:1:11:2147483647: ++%*li:+2147483648:0:11: ++%li:+0X80000000:1:11:2147483647: ++%*li:+0X80000000:0:11: ++%li:+0x80000000:1:11:2147483647: ++%*li:+0x80000000:0:11: ++%li:+020000000000:1:13:2147483647: ++%*li:+020000000000:0:13: ++%li:+0B10000000000000000000000000000000:1:35:2147483647: ++%*li:+0B10000000000000000000000000000000:0:35: ++%li:+0b10000000000000000000000000000000:1:35:2147483647: ++%*li:+0b10000000000000000000000000000000:0:35: ++%li:+2147487889:1:11:2147483647: ++%*li:+2147487889:0:11: ++%li:+0X80001091:1:11:2147483647: ++%*li:+0X80001091:0:11: ++%li:+0x80001091:1:11:2147483647: ++%*li:+0x80001091:0:11: ++%li:+020000010221:1:13:2147483647: ++%*li:+020000010221:0:13: ++%li:+0B10000000000000000001000010010001:1:35:2147483647: ++%*li:+0B10000000000000000001000010010001:0:35: ++%li:+0b10000000000000000001000010010001:1:35:2147483647: ++%*li:+0b10000000000000000001000010010001:0:35: ++%1li::0:-1: ++%*1li::0:-1: ++%1li:-2147484882:0:-1: ++%*1li:-2147484882:0:-1: ++%1li:-0X800004d2:0:-1: ++%*1li:-0X800004d2:0:-1: ++%1li:-0x800004D2:0:-1: ++%*1li:-0x800004D2:0:-1: ++%1li:-020000002322:0:-1: ++%*1li:-020000002322:0:-1: ++%1li:-0B10000000000000000000010011010010:0:-1: ++%*1li:-0B10000000000000000000010011010010:0:-1: ++%1li:-0b10000000000000000000010011010010:0:-1: ++%*1li:-0b10000000000000000000010011010010:0:-1: ++%1li:-2147483649:0:-1: ++%*1li:-2147483649:0:-1: ++%1li:-0X80000001:0:-1: ++%*1li:-0X80000001:0:-1: ++%1li:-0x80000001:0:-1: ++%*1li:-0x80000001:0:-1: ++%1li:-020000000001:0:-1: ++%*1li:-020000000001:0:-1: ++%1li:-0B10000000000000000000000000000001:0:-1: ++%*1li:-0B10000000000000000000000000000001:0:-1: ++%1li:-0b10000000000000000000000000000001:0:-1: ++%*1li:-0b10000000000000000000000000000001:0:-1: ++%1li:-2147483648:0:-1: ++%*1li:-2147483648:0:-1: ++%1li:-0X80000000:0:-1: ++%*1li:-0X80000000:0:-1: ++%1li:-0x80000000:0:-1: ++%*1li:-0x80000000:0:-1: ++%1li:-020000000000:0:-1: ++%*1li:-020000000000:0:-1: ++%1li:-0B10000000000000000000000000000000:0:-1: ++%*1li:-0B10000000000000000000000000000000:0:-1: ++%1li:-0b10000000000000000000000000000000:0:-1: ++%*1li:-0b10000000000000000000000000000000:0:-1: ++%1li:-123:0:-1: ++%*1li:-123:0:-1: ++%1li:-0X7b:0:-1: ++%*1li:-0X7b:0:-1: ++%1li:-0x7B:0:-1: ++%*1li:-0x7B:0:-1: ++%1li:-0173:0:-1: ++%*1li:-0173:0:-1: ++%1li:-0B1111011:0:-1: ++%*1li:-0B1111011:0:-1: ++%1li:-0b1111011:0:-1: ++%*1li:-0b1111011:0:-1: ++%1li:-1:0:-1: ++%*1li:-1:0:-1: ++%1li:-0X1:0:-1: ++%*1li:-0X1:0:-1: ++%1li:-0x1:0:-1: ++%*1li:-0x1:0:-1: ++%1li:-01:0:-1: ++%*1li:-01:0:-1: ++%1li:-0B1:0:-1: ++%*1li:-0B1:0:-1: ++%1li:-0b1:0:-1: ++%*1li:-0b1:0:-1: ++%1li:-0:0:-1: ++%*1li:-0:0:-1: ++%1li:-0X0:0:-1: ++%*1li:-0X0:0:-1: ++%1li:-0x0:0:-1: ++%*1li:-0x0:0:-1: ++%1li:-00:0:-1: ++%*1li:-00:0:-1: ++%1li:-0B0:0:-1: ++%*1li:-0B0:0:-1: ++%1li:-0b0:0:-1: ++%*1li:-0b0:0:-1: ++%1li:0:1:1:0: ++%*1li:0:0:1: ++%1li:0X0:1:1:0: ++%*1li:0X0:0:1: ++%1li:0x0:1:1:0: ++%*1li:0x0:0:1: ++%1li:00:1:1:0: ++%*1li:00:0:1: ++%1li:0B0:1:1:0: ++%*1li:0B0:0:1: ++%1li:0b0:1:1:0: ++%*1li:0b0:0:1: ++%1li:1:1:1:1: ++%*1li:1:0:1: ++%1li:0X1:1:1:0: ++%*1li:0X1:0:1: ++%1li:0x1:1:1:0: ++%*1li:0x1:0:1: ++%1li:01:1:1:0: ++%*1li:01:0:1: ++%1li:0B1:1:1:0: ++%*1li:0B1:0:1: ++%1li:0b1:1:1:0: ++%*1li:0b1:0:1: ++%1li:42:1:1:4: ++%*1li:42:0:1: ++%1li:0X2a:1:1:0: ++%*1li:0X2a:0:1: ++%1li:0x2A:1:1:0: ++%*1li:0x2A:0:1: ++%1li:052:1:1:0: ++%*1li:052:0:1: ++%1li:0B101010:1:1:0: ++%*1li:0B101010:0:1: ++%1li:0b101010:1:1:0: ++%*1li:0b101010:0:1: ++%1li:2147483647:1:1:2: ++%*1li:2147483647:0:1: ++%1li:0X7fffffff:1:1:0: ++%*1li:0X7fffffff:0:1: ++%1li:0x7FFFFFFF:1:1:0: ++%*1li:0x7FFFFFFF:0:1: ++%1li:017777777777:1:1:0: ++%*1li:017777777777:0:1: ++%1li:0B1111111111111111111111111111111:1:1:0: ++%*1li:0B1111111111111111111111111111111:0:1: ++%1li:0b1111111111111111111111111111111:1:1:0: ++%*1li:0b1111111111111111111111111111111:0:1: ++%1li:2147483648:1:1:2: ++%*1li:2147483648:0:1: ++%1li:0X80000000:1:1:0: ++%*1li:0X80000000:0:1: ++%1li:0x80000000:1:1:0: ++%*1li:0x80000000:0:1: ++%1li:020000000000:1:1:0: ++%*1li:020000000000:0:1: ++%1li:0B10000000000000000000000000000000:1:1:0: ++%*1li:0B10000000000000000000000000000000:0:1: ++%1li:0b10000000000000000000000000000000:1:1:0: ++%*1li:0b10000000000000000000000000000000:0:1: ++%1li:2147487889:1:1:2: ++%*1li:2147487889:0:1: ++%1li:0X80001091:1:1:0: ++%*1li:0X80001091:0:1: ++%1li:0x80001091:1:1:0: ++%*1li:0x80001091:0:1: ++%1li:020000010221:1:1:0: ++%*1li:020000010221:0:1: ++%1li:0B10000000000000000001000010010001:1:1:0: ++%*1li:0B10000000000000000001000010010001:0:1: ++%1li:0b10000000000000000001000010010001:1:1:0: ++%*1li:0b10000000000000000001000010010001:0:1: ++%1li:+0:0:-1: ++%*1li:+0:0:-1: ++%1li:+0X0:0:-1: ++%*1li:+0X0:0:-1: ++%1li:+0x0:0:-1: ++%*1li:+0x0:0:-1: ++%1li:+00:0:-1: ++%*1li:+00:0:-1: ++%1li:+0B0:0:-1: ++%*1li:+0B0:0:-1: ++%1li:+0b0:0:-1: ++%*1li:+0b0:0:-1: ++%1li:+1:0:-1: ++%*1li:+1:0:-1: ++%1li:+0X1:0:-1: ++%*1li:+0X1:0:-1: ++%1li:+0x1:0:-1: ++%*1li:+0x1:0:-1: ++%1li:+01:0:-1: ++%*1li:+01:0:-1: ++%1li:+0B1:0:-1: ++%*1li:+0B1:0:-1: ++%1li:+0b1:0:-1: ++%*1li:+0b1:0:-1: ++%1li:+42:0:-1: ++%*1li:+42:0:-1: ++%1li:+0X2a:0:-1: ++%*1li:+0X2a:0:-1: ++%1li:+0x2A:0:-1: ++%*1li:+0x2A:0:-1: ++%1li:+052:0:-1: ++%*1li:+052:0:-1: ++%1li:+0B101010:0:-1: ++%*1li:+0B101010:0:-1: ++%1li:+0b101010:0:-1: ++%*1li:+0b101010:0:-1: ++%1li:+2147483647:0:-1: ++%*1li:+2147483647:0:-1: ++%1li:+0X7fffffff:0:-1: ++%*1li:+0X7fffffff:0:-1: ++%1li:+0x7FFFFFFF:0:-1: ++%*1li:+0x7FFFFFFF:0:-1: ++%1li:+017777777777:0:-1: ++%*1li:+017777777777:0:-1: ++%1li:+0B1111111111111111111111111111111:0:-1: ++%*1li:+0B1111111111111111111111111111111:0:-1: ++%1li:+0b1111111111111111111111111111111:0:-1: ++%*1li:+0b1111111111111111111111111111111:0:-1: ++%1li:+2147483648:0:-1: ++%*1li:+2147483648:0:-1: ++%1li:+0X80000000:0:-1: ++%*1li:+0X80000000:0:-1: ++%1li:+0x80000000:0:-1: ++%*1li:+0x80000000:0:-1: ++%1li:+020000000000:0:-1: ++%*1li:+020000000000:0:-1: ++%1li:+0B10000000000000000000000000000000:0:-1: ++%*1li:+0B10000000000000000000000000000000:0:-1: ++%1li:+0b10000000000000000000000000000000:0:-1: ++%*1li:+0b10000000000000000000000000000000:0:-1: ++%1li:+2147487889:0:-1: ++%*1li:+2147487889:0:-1: ++%1li:+0X80001091:0:-1: ++%*1li:+0X80001091:0:-1: ++%1li:+0x80001091:0:-1: ++%*1li:+0x80001091:0:-1: ++%1li:+020000010221:0:-1: ++%*1li:+020000010221:0:-1: ++%1li:+0B10000000000000000001000010010001:0:-1: ++%*1li:+0B10000000000000000001000010010001:0:-1: ++%1li:+0b10000000000000000001000010010001:0:-1: ++%*1li:+0b10000000000000000001000010010001:0:-1: ++%2li::0:-1: ++%*2li::0:-1: ++%2li:-2147484882:1:2:-2: ++%*2li:-2147484882:0:2: ++%2li:-0X800004d2:1:2:0: ++%*2li:-0X800004d2:0:2: ++%2li:-0x800004D2:1:2:0: ++%*2li:-0x800004D2:0:2: ++%2li:-020000002322:1:2:0: ++%*2li:-020000002322:0:2: ++%2li:-0B10000000000000000000010011010010:1:2:0: ++%*2li:-0B10000000000000000000010011010010:0:2: ++%2li:-0b10000000000000000000010011010010:1:2:0: ++%*2li:-0b10000000000000000000010011010010:0:2: ++%2li:-2147483649:1:2:-2: ++%*2li:-2147483649:0:2: ++%2li:-0X80000001:1:2:0: ++%*2li:-0X80000001:0:2: ++%2li:-0x80000001:1:2:0: ++%*2li:-0x80000001:0:2: ++%2li:-020000000001:1:2:0: ++%*2li:-020000000001:0:2: ++%2li:-0B10000000000000000000000000000001:1:2:0: ++%*2li:-0B10000000000000000000000000000001:0:2: ++%2li:-0b10000000000000000000000000000001:1:2:0: ++%*2li:-0b10000000000000000000000000000001:0:2: ++%2li:-2147483648:1:2:-2: ++%*2li:-2147483648:0:2: ++%2li:-0X80000000:1:2:0: ++%*2li:-0X80000000:0:2: ++%2li:-0x80000000:1:2:0: ++%*2li:-0x80000000:0:2: ++%2li:-020000000000:1:2:0: ++%*2li:-020000000000:0:2: ++%2li:-0B10000000000000000000000000000000:1:2:0: ++%*2li:-0B10000000000000000000000000000000:0:2: ++%2li:-0b10000000000000000000000000000000:1:2:0: ++%*2li:-0b10000000000000000000000000000000:0:2: ++%2li:-123:1:2:-1: ++%*2li:-123:0:2: ++%2li:-0X7b:1:2:0: ++%*2li:-0X7b:0:2: ++%2li:-0x7B:1:2:0: ++%*2li:-0x7B:0:2: ++%2li:-0173:1:2:0: ++%*2li:-0173:0:2: ++%2li:-0B1111011:1:2:0: ++%*2li:-0B1111011:0:2: ++%2li:-0b1111011:1:2:0: ++%*2li:-0b1111011:0:2: ++%2li:-1:1:2:-1: ++%*2li:-1:0:2: ++%2li:-0X1:1:2:0: ++%*2li:-0X1:0:2: ++%2li:-0x1:1:2:0: ++%*2li:-0x1:0:2: ++%2li:-01:1:2:0: ++%*2li:-01:0:2: ++%2li:-0B1:1:2:0: ++%*2li:-0B1:0:2: ++%2li:-0b1:1:2:0: ++%*2li:-0b1:0:2: ++%2li:-0:1:2:0: ++%*2li:-0:0:2: ++%2li:-0X0:1:2:0: ++%*2li:-0X0:0:2: ++%2li:-0x0:1:2:0: ++%*2li:-0x0:0:2: ++%2li:-00:1:2:0: ++%*2li:-00:0:2: ++%2li:-0B0:1:2:0: ++%*2li:-0B0:0:2: ++%2li:-0b0:1:2:0: ++%*2li:-0b0:0:2: ++%2li:0:1:1:0: ++%*2li:0:0:1: ++# BZ12701 %2li:0X0:0:-1: ++# BZ12701 %*2li:0X0:0:-1: ++# BZ12701 %2li:0x0:0:-1: ++# BZ12701 %*2li:0x0:0:-1: ++%2li:00:1:2:0: ++%*2li:00:0:2: ++# BZ12701 %2li:0B0:0:-1: ++# BZ12701 %*2li:0B0:0:-1: ++# BZ12701 %2li:0b0:0:-1: ++# BZ12701 %*2li:0b0:0:-1: ++%2li:1:1:1:1: ++%*2li:1:0:1: ++# BZ12701 %2li:0X1:0:-1: ++# BZ12701 %*2li:0X1:0:-1: ++# BZ12701 %2li:0x1:0:-1: ++# BZ12701 %*2li:0x1:0:-1: ++%2li:01:1:2:1: ++%*2li:01:0:2: ++# BZ12701 %2li:0B1:0:-1: ++# BZ12701 %*2li:0B1:0:-1: ++# BZ12701 %2li:0b1:0:-1: ++# BZ12701 %*2li:0b1:0:-1: ++%2li:42:1:2:42: ++%*2li:42:0:2: ++# BZ12701 %2li:0X2a:0:-1: ++# BZ12701 %*2li:0X2a:0:-1: ++# BZ12701 %2li:0x2A:0:-1: ++# BZ12701 %*2li:0x2A:0:-1: ++%2li:052:1:2:5: ++%*2li:052:0:2: ++# BZ12701 %2li:0B101010:0:-1: ++# BZ12701 %*2li:0B101010:0:-1: ++# BZ12701 %2li:0b101010:0:-1: ++# BZ12701 %*2li:0b101010:0:-1: ++%2li:2147483647:1:2:21: ++%*2li:2147483647:0:2: ++# BZ12701 %2li:0X7fffffff:0:-1: ++# BZ12701 %*2li:0X7fffffff:0:-1: ++# BZ12701 %2li:0x7FFFFFFF:0:-1: ++# BZ12701 %*2li:0x7FFFFFFF:0:-1: ++%2li:017777777777:1:2:1: ++%*2li:017777777777:0:2: ++# BZ12701 %2li:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2li:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0b1111111111111111111111111111111:0:-1: ++%2li:2147483648:1:2:21: ++%*2li:2147483648:0:2: ++# BZ12701 %2li:0X80000000:0:-1: ++# BZ12701 %*2li:0X80000000:0:-1: ++# BZ12701 %2li:0x80000000:0:-1: ++# BZ12701 %*2li:0x80000000:0:-1: ++%2li:020000000000:1:2:2: ++%*2li:020000000000:0:2: ++# BZ12701 %2li:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2li:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0b10000000000000000000000000000000:0:-1: ++%2li:2147487889:1:2:21: ++%*2li:2147487889:0:2: ++# BZ12701 %2li:0X80001091:0:-1: ++# BZ12701 %*2li:0X80001091:0:-1: ++# BZ12701 %2li:0x80001091:0:-1: ++# BZ12701 %*2li:0x80001091:0:-1: ++%2li:020000010221:1:2:2: ++%*2li:020000010221:0:2: ++# BZ12701 %2li:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2li:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li:0b10000000000000000001000010010001:0:-1: ++%2li:+0:1:2:0: ++%*2li:+0:0:2: ++%2li:+0X0:1:2:0: ++%*2li:+0X0:0:2: ++%2li:+0x0:1:2:0: ++%*2li:+0x0:0:2: ++%2li:+00:1:2:0: ++%*2li:+00:0:2: ++%2li:+0B0:1:2:0: ++%*2li:+0B0:0:2: ++%2li:+0b0:1:2:0: ++%*2li:+0b0:0:2: ++%2li:+1:1:2:1: ++%*2li:+1:0:2: ++%2li:+0X1:1:2:0: ++%*2li:+0X1:0:2: ++%2li:+0x1:1:2:0: ++%*2li:+0x1:0:2: ++%2li:+01:1:2:0: ++%*2li:+01:0:2: ++%2li:+0B1:1:2:0: ++%*2li:+0B1:0:2: ++%2li:+0b1:1:2:0: ++%*2li:+0b1:0:2: ++%2li:+42:1:2:4: ++%*2li:+42:0:2: ++%2li:+0X2a:1:2:0: ++%*2li:+0X2a:0:2: ++%2li:+0x2A:1:2:0: ++%*2li:+0x2A:0:2: ++%2li:+052:1:2:0: ++%*2li:+052:0:2: ++%2li:+0B101010:1:2:0: ++%*2li:+0B101010:0:2: ++%2li:+0b101010:1:2:0: ++%*2li:+0b101010:0:2: ++%2li:+2147483647:1:2:2: ++%*2li:+2147483647:0:2: ++%2li:+0X7fffffff:1:2:0: ++%*2li:+0X7fffffff:0:2: ++%2li:+0x7FFFFFFF:1:2:0: ++%*2li:+0x7FFFFFFF:0:2: ++%2li:+017777777777:1:2:0: ++%*2li:+017777777777:0:2: ++%2li:+0B1111111111111111111111111111111:1:2:0: ++%*2li:+0B1111111111111111111111111111111:0:2: ++%2li:+0b1111111111111111111111111111111:1:2:0: ++%*2li:+0b1111111111111111111111111111111:0:2: ++%2li:+2147483648:1:2:2: ++%*2li:+2147483648:0:2: ++%2li:+0X80000000:1:2:0: ++%*2li:+0X80000000:0:2: ++%2li:+0x80000000:1:2:0: ++%*2li:+0x80000000:0:2: ++%2li:+020000000000:1:2:0: ++%*2li:+020000000000:0:2: ++%2li:+0B10000000000000000000000000000000:1:2:0: ++%*2li:+0B10000000000000000000000000000000:0:2: ++%2li:+0b10000000000000000000000000000000:1:2:0: ++%*2li:+0b10000000000000000000000000000000:0:2: ++%2li:+2147487889:1:2:2: ++%*2li:+2147487889:0:2: ++%2li:+0X80001091:1:2:0: ++%*2li:+0X80001091:0:2: ++%2li:+0x80001091:1:2:0: ++%*2li:+0x80001091:0:2: ++%2li:+020000010221:1:2:0: ++%*2li:+020000010221:0:2: ++%2li:+0B10000000000000000001000010010001:1:2:0: ++%*2li:+0B10000000000000000001000010010001:0:2: ++%2li:+0b10000000000000000001000010010001:1:2:0: ++%*2li:+0b10000000000000000001000010010001:0:2: ++%8li::0:-1: ++%*8li::0:-1: ++%8li:-2147484882:1:8:-2147484: ++%*8li:-2147484882:0:8: ++%8li:-0X800004d2:1:8:-524288: ++%*8li:-0X800004d2:0:8: ++%8li:-0x800004D2:1:8:-524288: ++%*8li:-0x800004D2:0:8: ++%8li:-020000002322:1:8:-65536: ++%*8li:-020000002322:0:8: ++%8li:-0B10000000000000000000010011010010:1:8:-16: ++%*8li:-0B10000000000000000000010011010010:0:8: ++%8li:-0b10000000000000000000010011010010:1:8:-16: ++%*8li:-0b10000000000000000000010011010010:0:8: ++%8li:-2147483649:1:8:-2147483: ++%*8li:-2147483649:0:8: ++%8li:-0X80000001:1:8:-524288: ++%*8li:-0X80000001:0:8: ++%8li:-0x80000001:1:8:-524288: ++%*8li:-0x80000001:0:8: ++%8li:-020000000001:1:8:-65536: ++%*8li:-020000000001:0:8: ++%8li:-0B10000000000000000000000000000001:1:8:-16: ++%*8li:-0B10000000000000000000000000000001:0:8: ++%8li:-0b10000000000000000000000000000001:1:8:-16: ++%*8li:-0b10000000000000000000000000000001:0:8: ++%8li:-2147483648:1:8:-2147483: ++%*8li:-2147483648:0:8: ++%8li:-0X80000000:1:8:-524288: ++%*8li:-0X80000000:0:8: ++%8li:-0x80000000:1:8:-524288: ++%*8li:-0x80000000:0:8: ++%8li:-020000000000:1:8:-65536: ++%*8li:-020000000000:0:8: ++%8li:-0B10000000000000000000000000000000:1:8:-16: ++%*8li:-0B10000000000000000000000000000000:0:8: ++%8li:-0b10000000000000000000000000000000:1:8:-16: ++%*8li:-0b10000000000000000000000000000000:0:8: ++%8li:-123:1:4:-123: ++%*8li:-123:0:4: ++%8li:-0X7b:1:5:-123: ++%*8li:-0X7b:0:5: ++%8li:-0x7B:1:5:-123: ++%*8li:-0x7B:0:5: ++%8li:-0173:1:5:-123: ++%*8li:-0173:0:5: ++%8li:-0B1111011:1:8:-30: ++%*8li:-0B1111011:0:8: ++%8li:-0b1111011:1:8:-30: ++%*8li:-0b1111011:0:8: ++%8li:-1:1:2:-1: ++%*8li:-1:0:2: ++%8li:-0X1:1:4:-1: ++%*8li:-0X1:0:4: ++%8li:-0x1:1:4:-1: ++%*8li:-0x1:0:4: ++%8li:-01:1:3:-1: ++%*8li:-01:0:3: ++%8li:-0B1:1:4:-1: ++%*8li:-0B1:0:4: ++%8li:-0b1:1:4:-1: ++%*8li:-0b1:0:4: ++%8li:-0:1:2:0: ++%*8li:-0:0:2: ++%8li:-0X0:1:4:0: ++%*8li:-0X0:0:4: ++%8li:-0x0:1:4:0: ++%*8li:-0x0:0:4: ++%8li:-00:1:3:0: ++%*8li:-00:0:3: ++%8li:-0B0:1:4:0: ++%*8li:-0B0:0:4: ++%8li:-0b0:1:4:0: ++%*8li:-0b0:0:4: ++%8li:0:1:1:0: ++%*8li:0:0:1: ++%8li:0X0:1:3:0: ++%*8li:0X0:0:3: ++%8li:0x0:1:3:0: ++%*8li:0x0:0:3: ++%8li:00:1:2:0: ++%*8li:00:0:2: ++%8li:0B0:1:3:0: ++%*8li:0B0:0:3: ++%8li:0b0:1:3:0: ++%*8li:0b0:0:3: ++%8li:1:1:1:1: ++%*8li:1:0:1: ++%8li:0X1:1:3:1: ++%*8li:0X1:0:3: ++%8li:0x1:1:3:1: ++%*8li:0x1:0:3: ++%8li:01:1:2:1: ++%*8li:01:0:2: ++%8li:0B1:1:3:1: ++%*8li:0B1:0:3: ++%8li:0b1:1:3:1: ++%*8li:0b1:0:3: ++%8li:42:1:2:42: ++%*8li:42:0:2: ++%8li:0X2a:1:4:42: ++%*8li:0X2a:0:4: ++%8li:0x2A:1:4:42: ++%*8li:0x2A:0:4: ++%8li:052:1:3:42: ++%*8li:052:0:3: ++%8li:0B101010:1:8:42: ++%*8li:0B101010:0:8: ++%8li:0b101010:1:8:42: ++%*8li:0b101010:0:8: ++%8li:2147483647:1:8:21474836: ++%*8li:2147483647:0:8: ++%8li:0X7fffffff:1:8:8388607: ++%*8li:0X7fffffff:0:8: ++%8li:0x7FFFFFFF:1:8:8388607: ++%*8li:0x7FFFFFFF:0:8: ++%8li:017777777777:1:8:524287: ++%*8li:017777777777:0:8: ++%8li:0B1111111111111111111111111111111:1:8:63: ++%*8li:0B1111111111111111111111111111111:0:8: ++%8li:0b1111111111111111111111111111111:1:8:63: ++%*8li:0b1111111111111111111111111111111:0:8: ++%8li:2147483648:1:8:21474836: ++%*8li:2147483648:0:8: ++%8li:0X80000000:1:8:8388608: ++%*8li:0X80000000:0:8: ++%8li:0x80000000:1:8:8388608: ++%*8li:0x80000000:0:8: ++%8li:020000000000:1:8:524288: ++%*8li:020000000000:0:8: ++%8li:0B10000000000000000000000000000000:1:8:32: ++%*8li:0B10000000000000000000000000000000:0:8: ++%8li:0b10000000000000000000000000000000:1:8:32: ++%*8li:0b10000000000000000000000000000000:0:8: ++%8li:2147487889:1:8:21474878: ++%*8li:2147487889:0:8: ++%8li:0X80001091:1:8:8388624: ++%*8li:0X80001091:0:8: ++%8li:0x80001091:1:8:8388624: ++%*8li:0x80001091:0:8: ++%8li:020000010221:1:8:524289: ++%*8li:020000010221:0:8: ++%8li:0B10000000000000000001000010010001:1:8:32: ++%*8li:0B10000000000000000001000010010001:0:8: ++%8li:0b10000000000000000001000010010001:1:8:32: ++%*8li:0b10000000000000000001000010010001:0:8: ++%8li:+0:1:2:0: ++%*8li:+0:0:2: ++%8li:+0X0:1:4:0: ++%*8li:+0X0:0:4: ++%8li:+0x0:1:4:0: ++%*8li:+0x0:0:4: ++%8li:+00:1:3:0: ++%*8li:+00:0:3: ++%8li:+0B0:1:4:0: ++%*8li:+0B0:0:4: ++%8li:+0b0:1:4:0: ++%*8li:+0b0:0:4: ++%8li:+1:1:2:1: ++%*8li:+1:0:2: ++%8li:+0X1:1:4:1: ++%*8li:+0X1:0:4: ++%8li:+0x1:1:4:1: ++%*8li:+0x1:0:4: ++%8li:+01:1:3:1: ++%*8li:+01:0:3: ++%8li:+0B1:1:4:1: ++%*8li:+0B1:0:4: ++%8li:+0b1:1:4:1: ++%*8li:+0b1:0:4: ++%8li:+42:1:3:42: ++%*8li:+42:0:3: ++%8li:+0X2a:1:5:42: ++%*8li:+0X2a:0:5: ++%8li:+0x2A:1:5:42: ++%*8li:+0x2A:0:5: ++%8li:+052:1:4:42: ++%*8li:+052:0:4: ++%8li:+0B101010:1:8:21: ++%*8li:+0B101010:0:8: ++%8li:+0b101010:1:8:21: ++%*8li:+0b101010:0:8: ++%8li:+2147483647:1:8:2147483: ++%*8li:+2147483647:0:8: ++%8li:+0X7fffffff:1:8:524287: ++%*8li:+0X7fffffff:0:8: ++%8li:+0x7FFFFFFF:1:8:524287: ++%*8li:+0x7FFFFFFF:0:8: ++%8li:+017777777777:1:8:65535: ++%*8li:+017777777777:0:8: ++%8li:+0B1111111111111111111111111111111:1:8:31: ++%*8li:+0B1111111111111111111111111111111:0:8: ++%8li:+0b1111111111111111111111111111111:1:8:31: ++%*8li:+0b1111111111111111111111111111111:0:8: ++%8li:+2147483648:1:8:2147483: ++%*8li:+2147483648:0:8: ++%8li:+0X80000000:1:8:524288: ++%*8li:+0X80000000:0:8: ++%8li:+0x80000000:1:8:524288: ++%*8li:+0x80000000:0:8: ++%8li:+020000000000:1:8:65536: ++%*8li:+020000000000:0:8: ++%8li:+0B10000000000000000000000000000000:1:8:16: ++%*8li:+0B10000000000000000000000000000000:0:8: ++%8li:+0b10000000000000000000000000000000:1:8:16: ++%*8li:+0b10000000000000000000000000000000:0:8: ++%8li:+2147487889:1:8:2147487: ++%*8li:+2147487889:0:8: ++%8li:+0X80001091:1:8:524289: ++%*8li:+0X80001091:0:8: ++%8li:+0x80001091:1:8:524289: ++%*8li:+0x80001091:0:8: ++%8li:+020000010221:1:8:65536: ++%*8li:+020000010221:0:8: ++%8li:+0B10000000000000000001000010010001:1:8:16: ++%*8li:+0B10000000000000000001000010010001:0:8: ++%8li:+0b10000000000000000001000010010001:1:8:16: ++%*8li:+0b10000000000000000001000010010001:0:8: ++%15li::0:-1: ++%*15li::0:-1: ++%15li:-2147484882:1:11:-2147483648: ++%*15li:-2147484882:0:11: ++%15li:-0X800004d2:1:11:-2147483648: ++%*15li:-0X800004d2:0:11: ++%15li:-0x800004D2:1:11:-2147483648: ++%*15li:-0x800004D2:0:11: ++%15li:-020000002322:1:13:-2147483648: ++%*15li:-020000002322:0:13: ++%15li:-0B10000000000000000000010011010010:1:15:-2048: ++%*15li:-0B10000000000000000000010011010010:0:15: ++%15li:-0b10000000000000000000010011010010:1:15:-2048: ++%*15li:-0b10000000000000000000010011010010:0:15: ++%15li:-2147483649:1:11:-2147483648: ++%*15li:-2147483649:0:11: ++%15li:-0X80000001:1:11:-2147483648: ++%*15li:-0X80000001:0:11: ++%15li:-0x80000001:1:11:-2147483648: ++%*15li:-0x80000001:0:11: ++%15li:-020000000001:1:13:-2147483648: ++%*15li:-020000000001:0:13: ++%15li:-0B10000000000000000000000000000001:1:15:-2048: ++%*15li:-0B10000000000000000000000000000001:0:15: ++%15li:-0b10000000000000000000000000000001:1:15:-2048: ++%*15li:-0b10000000000000000000000000000001:0:15: ++%15li:-2147483648:1:11:-2147483648: ++%*15li:-2147483648:0:11: ++%15li:-0X80000000:1:11:-2147483648: ++%*15li:-0X80000000:0:11: ++%15li:-0x80000000:1:11:-2147483648: ++%*15li:-0x80000000:0:11: ++%15li:-020000000000:1:13:-2147483648: ++%*15li:-020000000000:0:13: ++%15li:-0B10000000000000000000000000000000:1:15:-2048: ++%*15li:-0B10000000000000000000000000000000:0:15: ++%15li:-0b10000000000000000000000000000000:1:15:-2048: ++%*15li:-0b10000000000000000000000000000000:0:15: ++%15li:-123:1:4:-123: ++%*15li:-123:0:4: ++%15li:-0X7b:1:5:-123: ++%*15li:-0X7b:0:5: ++%15li:-0x7B:1:5:-123: ++%*15li:-0x7B:0:5: ++%15li:-0173:1:5:-123: ++%*15li:-0173:0:5: ++%15li:-0B1111011:1:10:-123: ++%*15li:-0B1111011:0:10: ++%15li:-0b1111011:1:10:-123: ++%*15li:-0b1111011:0:10: ++%15li:-1:1:2:-1: ++%*15li:-1:0:2: ++%15li:-0X1:1:4:-1: ++%*15li:-0X1:0:4: ++%15li:-0x1:1:4:-1: ++%*15li:-0x1:0:4: ++%15li:-01:1:3:-1: ++%*15li:-01:0:3: ++%15li:-0B1:1:4:-1: ++%*15li:-0B1:0:4: ++%15li:-0b1:1:4:-1: ++%*15li:-0b1:0:4: ++%15li:-0:1:2:0: ++%*15li:-0:0:2: ++%15li:-0X0:1:4:0: ++%*15li:-0X0:0:4: ++%15li:-0x0:1:4:0: ++%*15li:-0x0:0:4: ++%15li:-00:1:3:0: ++%*15li:-00:0:3: ++%15li:-0B0:1:4:0: ++%*15li:-0B0:0:4: ++%15li:-0b0:1:4:0: ++%*15li:-0b0:0:4: ++%15li:0:1:1:0: ++%*15li:0:0:1: ++%15li:0X0:1:3:0: ++%*15li:0X0:0:3: ++%15li:0x0:1:3:0: ++%*15li:0x0:0:3: ++%15li:00:1:2:0: ++%*15li:00:0:2: ++%15li:0B0:1:3:0: ++%*15li:0B0:0:3: ++%15li:0b0:1:3:0: ++%*15li:0b0:0:3: ++%15li:1:1:1:1: ++%*15li:1:0:1: ++%15li:0X1:1:3:1: ++%*15li:0X1:0:3: ++%15li:0x1:1:3:1: ++%*15li:0x1:0:3: ++%15li:01:1:2:1: ++%*15li:01:0:2: ++%15li:0B1:1:3:1: ++%*15li:0B1:0:3: ++%15li:0b1:1:3:1: ++%*15li:0b1:0:3: ++%15li:42:1:2:42: ++%*15li:42:0:2: ++%15li:0X2a:1:4:42: ++%*15li:0X2a:0:4: ++%15li:0x2A:1:4:42: ++%*15li:0x2A:0:4: ++%15li:052:1:3:42: ++%*15li:052:0:3: ++%15li:0B101010:1:8:42: ++%*15li:0B101010:0:8: ++%15li:0b101010:1:8:42: ++%*15li:0b101010:0:8: ++%15li:2147483647:1:10:2147483647: ++%*15li:2147483647:0:10: ++%15li:0X7fffffff:1:10:2147483647: ++%*15li:0X7fffffff:0:10: ++%15li:0x7FFFFFFF:1:10:2147483647: ++%*15li:0x7FFFFFFF:0:10: ++%15li:017777777777:1:12:2147483647: ++%*15li:017777777777:0:12: ++%15li:0B1111111111111111111111111111111:1:15:8191: ++%*15li:0B1111111111111111111111111111111:0:15: ++%15li:0b1111111111111111111111111111111:1:15:8191: ++%*15li:0b1111111111111111111111111111111:0:15: ++%15li:2147483648:1:10:2147483647: ++%*15li:2147483648:0:10: ++%15li:0X80000000:1:10:2147483647: ++%*15li:0X80000000:0:10: ++%15li:0x80000000:1:10:2147483647: ++%*15li:0x80000000:0:10: ++%15li:020000000000:1:12:2147483647: ++%*15li:020000000000:0:12: ++%15li:0B10000000000000000000000000000000:1:15:4096: ++%*15li:0B10000000000000000000000000000000:0:15: ++%15li:0b10000000000000000000000000000000:1:15:4096: ++%*15li:0b10000000000000000000000000000000:0:15: ++%15li:2147487889:1:10:2147483647: ++%*15li:2147487889:0:10: ++%15li:0X80001091:1:10:2147483647: ++%*15li:0X80001091:0:10: ++%15li:0x80001091:1:10:2147483647: ++%*15li:0x80001091:0:10: ++%15li:020000010221:1:12:2147483647: ++%*15li:020000010221:0:12: ++%15li:0B10000000000000000001000010010001:1:15:4096: ++%*15li:0B10000000000000000001000010010001:0:15: ++%15li:0b10000000000000000001000010010001:1:15:4096: ++%*15li:0b10000000000000000001000010010001:0:15: ++%15li:+0:1:2:0: ++%*15li:+0:0:2: ++%15li:+0X0:1:4:0: ++%*15li:+0X0:0:4: ++%15li:+0x0:1:4:0: ++%*15li:+0x0:0:4: ++%15li:+00:1:3:0: ++%*15li:+00:0:3: ++%15li:+0B0:1:4:0: ++%*15li:+0B0:0:4: ++%15li:+0b0:1:4:0: ++%*15li:+0b0:0:4: ++%15li:+1:1:2:1: ++%*15li:+1:0:2: ++%15li:+0X1:1:4:1: ++%*15li:+0X1:0:4: ++%15li:+0x1:1:4:1: ++%*15li:+0x1:0:4: ++%15li:+01:1:3:1: ++%*15li:+01:0:3: ++%15li:+0B1:1:4:1: ++%*15li:+0B1:0:4: ++%15li:+0b1:1:4:1: ++%*15li:+0b1:0:4: ++%15li:+42:1:3:42: ++%*15li:+42:0:3: ++%15li:+0X2a:1:5:42: ++%*15li:+0X2a:0:5: ++%15li:+0x2A:1:5:42: ++%*15li:+0x2A:0:5: ++%15li:+052:1:4:42: ++%*15li:+052:0:4: ++%15li:+0B101010:1:9:42: ++%*15li:+0B101010:0:9: ++%15li:+0b101010:1:9:42: ++%*15li:+0b101010:0:9: ++%15li:+2147483647:1:11:2147483647: ++%*15li:+2147483647:0:11: ++%15li:+0X7fffffff:1:11:2147483647: ++%*15li:+0X7fffffff:0:11: ++%15li:+0x7FFFFFFF:1:11:2147483647: ++%*15li:+0x7FFFFFFF:0:11: ++%15li:+017777777777:1:13:2147483647: ++%*15li:+017777777777:0:13: ++%15li:+0B1111111111111111111111111111111:1:15:4095: ++%*15li:+0B1111111111111111111111111111111:0:15: ++%15li:+0b1111111111111111111111111111111:1:15:4095: ++%*15li:+0b1111111111111111111111111111111:0:15: ++%15li:+2147483648:1:11:2147483647: ++%*15li:+2147483648:0:11: ++%15li:+0X80000000:1:11:2147483647: ++%*15li:+0X80000000:0:11: ++%15li:+0x80000000:1:11:2147483647: ++%*15li:+0x80000000:0:11: ++%15li:+020000000000:1:13:2147483647: ++%*15li:+020000000000:0:13: ++%15li:+0B10000000000000000000000000000000:1:15:2048: ++%*15li:+0B10000000000000000000000000000000:0:15: ++%15li:+0b10000000000000000000000000000000:1:15:2048: ++%*15li:+0b10000000000000000000000000000000:0:15: ++%15li:+2147487889:1:11:2147483647: ++%*15li:+2147487889:0:11: ++%15li:+0X80001091:1:11:2147483647: ++%*15li:+0X80001091:0:11: ++%15li:+0x80001091:1:11:2147483647: ++%*15li:+0x80001091:0:11: ++%15li:+020000010221:1:13:2147483647: ++%*15li:+020000010221:0:13: ++%15li:+0B10000000000000000001000010010001:1:15:2048: ++%*15li:+0B10000000000000000001000010010001:0:15: ++%15li:+0b10000000000000000001000010010001:1:15:2048: ++%*15li:+0b10000000000000000001000010010001:0:15: ++%2li: :0:-1: ++%*2li: :0:-1: ++%2li: -2147484882:1:3:-2: ++%*2li: -2147484882:0:3: ++%2li: -0X800004d2:1:3:0: ++%*2li: -0X800004d2:0:3: ++%2li: -0x800004D2:1:3:0: ++%*2li: -0x800004D2:0:3: ++%2li: -020000002322:1:3:0: ++%*2li: -020000002322:0:3: ++%2li: -0B10000000000000000000010011010010:1:3:0: ++%*2li: -0B10000000000000000000010011010010:0:3: ++%2li: -0b10000000000000000000010011010010:1:3:0: ++%*2li: -0b10000000000000000000010011010010:0:3: ++%2li: -2147483649:1:3:-2: ++%*2li: -2147483649:0:3: ++%2li: -0X80000001:1:3:0: ++%*2li: -0X80000001:0:3: ++%2li: -0x80000001:1:3:0: ++%*2li: -0x80000001:0:3: ++%2li: -020000000001:1:3:0: ++%*2li: -020000000001:0:3: ++%2li: -0B10000000000000000000000000000001:1:3:0: ++%*2li: -0B10000000000000000000000000000001:0:3: ++%2li: -0b10000000000000000000000000000001:1:3:0: ++%*2li: -0b10000000000000000000000000000001:0:3: ++%2li: -2147483648:1:3:-2: ++%*2li: -2147483648:0:3: ++%2li: -0X80000000:1:3:0: ++%*2li: -0X80000000:0:3: ++%2li: -0x80000000:1:3:0: ++%*2li: -0x80000000:0:3: ++%2li: -020000000000:1:3:0: ++%*2li: -020000000000:0:3: ++%2li: -0B10000000000000000000000000000000:1:3:0: ++%*2li: -0B10000000000000000000000000000000:0:3: ++%2li: -0b10000000000000000000000000000000:1:3:0: ++%*2li: -0b10000000000000000000000000000000:0:3: ++%2li: -123:1:3:-1: ++%*2li: -123:0:3: ++%2li: -0X7b:1:3:0: ++%*2li: -0X7b:0:3: ++%2li: -0x7B:1:3:0: ++%*2li: -0x7B:0:3: ++%2li: -0173:1:3:0: ++%*2li: -0173:0:3: ++%2li: -0B1111011:1:3:0: ++%*2li: -0B1111011:0:3: ++%2li: -0b1111011:1:3:0: ++%*2li: -0b1111011:0:3: ++%2li: -1:1:3:-1: ++%*2li: -1:0:3: ++%2li: -0X1:1:3:0: ++%*2li: -0X1:0:3: ++%2li: -0x1:1:3:0: ++%*2li: -0x1:0:3: ++%2li: -01:1:3:0: ++%*2li: -01:0:3: ++%2li: -0B1:1:3:0: ++%*2li: -0B1:0:3: ++%2li: -0b1:1:3:0: ++%*2li: -0b1:0:3: ++%2li: -0:1:3:0: ++%*2li: -0:0:3: ++%2li: -0X0:1:3:0: ++%*2li: -0X0:0:3: ++%2li: -0x0:1:3:0: ++%*2li: -0x0:0:3: ++%2li: -00:1:3:0: ++%*2li: -00:0:3: ++%2li: -0B0:1:3:0: ++%*2li: -0B0:0:3: ++%2li: -0b0:1:3:0: ++%*2li: -0b0:0:3: ++%2li: 0:1:2:0: ++%*2li: 0:0:2: ++# BZ12701 %2li: 0X0:0:-1: ++# BZ12701 %*2li: 0X0:0:-1: ++# BZ12701 %2li: 0x0:0:-1: ++# BZ12701 %*2li: 0x0:0:-1: ++%2li: 00:1:3:0: ++%*2li: 00:0:3: ++# BZ12701 %2li: 0B0:0:-1: ++# BZ12701 %*2li: 0B0:0:-1: ++# BZ12701 %2li: 0b0:0:-1: ++# BZ12701 %*2li: 0b0:0:-1: ++%2li: 1:1:2:1: ++%*2li: 1:0:2: ++# BZ12701 %2li: 0X1:0:-1: ++# BZ12701 %*2li: 0X1:0:-1: ++# BZ12701 %2li: 0x1:0:-1: ++# BZ12701 %*2li: 0x1:0:-1: ++%2li: 01:1:3:1: ++%*2li: 01:0:3: ++# BZ12701 %2li: 0B1:0:-1: ++# BZ12701 %*2li: 0B1:0:-1: ++# BZ12701 %2li: 0b1:0:-1: ++# BZ12701 %*2li: 0b1:0:-1: ++%2li: 42:1:3:42: ++%*2li: 42:0:3: ++# BZ12701 %2li: 0X2a:0:-1: ++# BZ12701 %*2li: 0X2a:0:-1: ++# BZ12701 %2li: 0x2A:0:-1: ++# BZ12701 %*2li: 0x2A:0:-1: ++%2li: 052:1:3:5: ++%*2li: 052:0:3: ++# BZ12701 %2li: 0B101010:0:-1: ++# BZ12701 %*2li: 0B101010:0:-1: ++# BZ12701 %2li: 0b101010:0:-1: ++# BZ12701 %*2li: 0b101010:0:-1: ++%2li: 2147483647:1:3:21: ++%*2li: 2147483647:0:3: ++# BZ12701 %2li: 0X7fffffff:0:-1: ++# BZ12701 %*2li: 0X7fffffff:0:-1: ++# BZ12701 %2li: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2li: 0x7FFFFFFF:0:-1: ++%2li: 017777777777:1:3:1: ++%*2li: 017777777777:0:3: ++# BZ12701 %2li: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2li: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0b1111111111111111111111111111111:0:-1: ++%2li: 2147483648:1:3:21: ++%*2li: 2147483648:0:3: ++# BZ12701 %2li: 0X80000000:0:-1: ++# BZ12701 %*2li: 0X80000000:0:-1: ++# BZ12701 %2li: 0x80000000:0:-1: ++# BZ12701 %*2li: 0x80000000:0:-1: ++%2li: 020000000000:1:3:2: ++%*2li: 020000000000:0:3: ++# BZ12701 %2li: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2li: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0b10000000000000000000000000000000:0:-1: ++%2li: 2147487889:1:3:21: ++%*2li: 2147487889:0:3: ++# BZ12701 %2li: 0X80001091:0:-1: ++# BZ12701 %*2li: 0X80001091:0:-1: ++# BZ12701 %2li: 0x80001091:0:-1: ++# BZ12701 %*2li: 0x80001091:0:-1: ++%2li: 020000010221:1:3:2: ++%*2li: 020000010221:0:3: ++# BZ12701 %2li: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2li: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li: 0b10000000000000000001000010010001:0:-1: ++%2li: +0:1:3:0: ++%*2li: +0:0:3: ++%2li: +0X0:1:3:0: ++%*2li: +0X0:0:3: ++%2li: +0x0:1:3:0: ++%*2li: +0x0:0:3: ++%2li: +00:1:3:0: ++%*2li: +00:0:3: ++%2li: +0B0:1:3:0: ++%*2li: +0B0:0:3: ++%2li: +0b0:1:3:0: ++%*2li: +0b0:0:3: ++%2li: +1:1:3:1: ++%*2li: +1:0:3: ++%2li: +0X1:1:3:0: ++%*2li: +0X1:0:3: ++%2li: +0x1:1:3:0: ++%*2li: +0x1:0:3: ++%2li: +01:1:3:0: ++%*2li: +01:0:3: ++%2li: +0B1:1:3:0: ++%*2li: +0B1:0:3: ++%2li: +0b1:1:3:0: ++%*2li: +0b1:0:3: ++%2li: +42:1:3:4: ++%*2li: +42:0:3: ++%2li: +0X2a:1:3:0: ++%*2li: +0X2a:0:3: ++%2li: +0x2A:1:3:0: ++%*2li: +0x2A:0:3: ++%2li: +052:1:3:0: ++%*2li: +052:0:3: ++%2li: +0B101010:1:3:0: ++%*2li: +0B101010:0:3: ++%2li: +0b101010:1:3:0: ++%*2li: +0b101010:0:3: ++%2li: +2147483647:1:3:2: ++%*2li: +2147483647:0:3: ++%2li: +0X7fffffff:1:3:0: ++%*2li: +0X7fffffff:0:3: ++%2li: +0x7FFFFFFF:1:3:0: ++%*2li: +0x7FFFFFFF:0:3: ++%2li: +017777777777:1:3:0: ++%*2li: +017777777777:0:3: ++%2li: +0B1111111111111111111111111111111:1:3:0: ++%*2li: +0B1111111111111111111111111111111:0:3: ++%2li: +0b1111111111111111111111111111111:1:3:0: ++%*2li: +0b1111111111111111111111111111111:0:3: ++%2li: +2147483648:1:3:2: ++%*2li: +2147483648:0:3: ++%2li: +0X80000000:1:3:0: ++%*2li: +0X80000000:0:3: ++%2li: +0x80000000:1:3:0: ++%*2li: +0x80000000:0:3: ++%2li: +020000000000:1:3:0: ++%*2li: +020000000000:0:3: ++%2li: +0B10000000000000000000000000000000:1:3:0: ++%*2li: +0B10000000000000000000000000000000:0:3: ++%2li: +0b10000000000000000000000000000000:1:3:0: ++%*2li: +0b10000000000000000000000000000000:0:3: ++%2li: +2147487889:1:3:2: ++%*2li: +2147487889:0:3: ++%2li: +0X80001091:1:3:0: ++%*2li: +0X80001091:0:3: ++%2li: +0x80001091:1:3:0: ++%*2li: +0x80001091:0:3: ++%2li: +020000010221:1:3:0: ++%*2li: +020000010221:0:3: ++%2li: +0B10000000000000000001000010010001:1:3:0: ++%*2li: +0B10000000000000000001000010010001:0:3: ++%2li: +0b10000000000000000001000010010001:1:3:0: ++%*2li: +0b10000000000000000001000010010001:0:3: ++%15li: :0:-1: ++%*15li: :0:-1: ++%15li: -2147484882:1:12:-2147483648: ++%*15li: -2147484882:0:12: ++%15li: -0X800004d2:1:12:-2147483648: ++%*15li: -0X800004d2:0:12: ++%15li: -0x800004D2:1:12:-2147483648: ++%*15li: -0x800004D2:0:12: ++%15li: -020000002322:1:14:-2147483648: ++%*15li: -020000002322:0:14: ++%15li: -0B10000000000000000000010011010010:1:16:-2048: ++%*15li: -0B10000000000000000000010011010010:0:16: ++%15li: -0b10000000000000000000010011010010:1:16:-2048: ++%*15li: -0b10000000000000000000010011010010:0:16: ++%15li: -2147483649:1:12:-2147483648: ++%*15li: -2147483649:0:12: ++%15li: -0X80000001:1:12:-2147483648: ++%*15li: -0X80000001:0:12: ++%15li: -0x80000001:1:12:-2147483648: ++%*15li: -0x80000001:0:12: ++%15li: -020000000001:1:14:-2147483648: ++%*15li: -020000000001:0:14: ++%15li: -0B10000000000000000000000000000001:1:16:-2048: ++%*15li: -0B10000000000000000000000000000001:0:16: ++%15li: -0b10000000000000000000000000000001:1:16:-2048: ++%*15li: -0b10000000000000000000000000000001:0:16: ++%15li: -2147483648:1:12:-2147483648: ++%*15li: -2147483648:0:12: ++%15li: -0X80000000:1:12:-2147483648: ++%*15li: -0X80000000:0:12: ++%15li: -0x80000000:1:12:-2147483648: ++%*15li: -0x80000000:0:12: ++%15li: -020000000000:1:14:-2147483648: ++%*15li: -020000000000:0:14: ++%15li: -0B10000000000000000000000000000000:1:16:-2048: ++%*15li: -0B10000000000000000000000000000000:0:16: ++%15li: -0b10000000000000000000000000000000:1:16:-2048: ++%*15li: -0b10000000000000000000000000000000:0:16: ++%15li: -123:1:5:-123: ++%*15li: -123:0:5: ++%15li: -0X7b:1:6:-123: ++%*15li: -0X7b:0:6: ++%15li: -0x7B:1:6:-123: ++%*15li: -0x7B:0:6: ++%15li: -0173:1:6:-123: ++%*15li: -0173:0:6: ++%15li: -0B1111011:1:11:-123: ++%*15li: -0B1111011:0:11: ++%15li: -0b1111011:1:11:-123: ++%*15li: -0b1111011:0:11: ++%15li: -1:1:3:-1: ++%*15li: -1:0:3: ++%15li: -0X1:1:5:-1: ++%*15li: -0X1:0:5: ++%15li: -0x1:1:5:-1: ++%*15li: -0x1:0:5: ++%15li: -01:1:4:-1: ++%*15li: -01:0:4: ++%15li: -0B1:1:5:-1: ++%*15li: -0B1:0:5: ++%15li: -0b1:1:5:-1: ++%*15li: -0b1:0:5: ++%15li: -0:1:3:0: ++%*15li: -0:0:3: ++%15li: -0X0:1:5:0: ++%*15li: -0X0:0:5: ++%15li: -0x0:1:5:0: ++%*15li: -0x0:0:5: ++%15li: -00:1:4:0: ++%*15li: -00:0:4: ++%15li: -0B0:1:5:0: ++%*15li: -0B0:0:5: ++%15li: -0b0:1:5:0: ++%*15li: -0b0:0:5: ++%15li: 0:1:2:0: ++%*15li: 0:0:2: ++%15li: 0X0:1:4:0: ++%*15li: 0X0:0:4: ++%15li: 0x0:1:4:0: ++%*15li: 0x0:0:4: ++%15li: 00:1:3:0: ++%*15li: 00:0:3: ++%15li: 0B0:1:4:0: ++%*15li: 0B0:0:4: ++%15li: 0b0:1:4:0: ++%*15li: 0b0:0:4: ++%15li: 1:1:2:1: ++%*15li: 1:0:2: ++%15li: 0X1:1:4:1: ++%*15li: 0X1:0:4: ++%15li: 0x1:1:4:1: ++%*15li: 0x1:0:4: ++%15li: 01:1:3:1: ++%*15li: 01:0:3: ++%15li: 0B1:1:4:1: ++%*15li: 0B1:0:4: ++%15li: 0b1:1:4:1: ++%*15li: 0b1:0:4: ++%15li: 42:1:3:42: ++%*15li: 42:0:3: ++%15li: 0X2a:1:5:42: ++%*15li: 0X2a:0:5: ++%15li: 0x2A:1:5:42: ++%*15li: 0x2A:0:5: ++%15li: 052:1:4:42: ++%*15li: 052:0:4: ++%15li: 0B101010:1:9:42: ++%*15li: 0B101010:0:9: ++%15li: 0b101010:1:9:42: ++%*15li: 0b101010:0:9: ++%15li: 2147483647:1:11:2147483647: ++%*15li: 2147483647:0:11: ++%15li: 0X7fffffff:1:11:2147483647: ++%*15li: 0X7fffffff:0:11: ++%15li: 0x7FFFFFFF:1:11:2147483647: ++%*15li: 0x7FFFFFFF:0:11: ++%15li: 017777777777:1:13:2147483647: ++%*15li: 017777777777:0:13: ++%15li: 0B1111111111111111111111111111111:1:16:8191: ++%*15li: 0B1111111111111111111111111111111:0:16: ++%15li: 0b1111111111111111111111111111111:1:16:8191: ++%*15li: 0b1111111111111111111111111111111:0:16: ++%15li: 2147483648:1:11:2147483647: ++%*15li: 2147483648:0:11: ++%15li: 0X80000000:1:11:2147483647: ++%*15li: 0X80000000:0:11: ++%15li: 0x80000000:1:11:2147483647: ++%*15li: 0x80000000:0:11: ++%15li: 020000000000:1:13:2147483647: ++%*15li: 020000000000:0:13: ++%15li: 0B10000000000000000000000000000000:1:16:4096: ++%*15li: 0B10000000000000000000000000000000:0:16: ++%15li: 0b10000000000000000000000000000000:1:16:4096: ++%*15li: 0b10000000000000000000000000000000:0:16: ++%15li: 2147487889:1:11:2147483647: ++%*15li: 2147487889:0:11: ++%15li: 0X80001091:1:11:2147483647: ++%*15li: 0X80001091:0:11: ++%15li: 0x80001091:1:11:2147483647: ++%*15li: 0x80001091:0:11: ++%15li: 020000010221:1:13:2147483647: ++%*15li: 020000010221:0:13: ++%15li: 0B10000000000000000001000010010001:1:16:4096: ++%*15li: 0B10000000000000000001000010010001:0:16: ++%15li: 0b10000000000000000001000010010001:1:16:4096: ++%*15li: 0b10000000000000000001000010010001:0:16: ++%15li: +0:1:3:0: ++%*15li: +0:0:3: ++%15li: +0X0:1:5:0: ++%*15li: +0X0:0:5: ++%15li: +0x0:1:5:0: ++%*15li: +0x0:0:5: ++%15li: +00:1:4:0: ++%*15li: +00:0:4: ++%15li: +0B0:1:5:0: ++%*15li: +0B0:0:5: ++%15li: +0b0:1:5:0: ++%*15li: +0b0:0:5: ++%15li: +1:1:3:1: ++%*15li: +1:0:3: ++%15li: +0X1:1:5:1: ++%*15li: +0X1:0:5: ++%15li: +0x1:1:5:1: ++%*15li: +0x1:0:5: ++%15li: +01:1:4:1: ++%*15li: +01:0:4: ++%15li: +0B1:1:5:1: ++%*15li: +0B1:0:5: ++%15li: +0b1:1:5:1: ++%*15li: +0b1:0:5: ++%15li: +42:1:4:42: ++%*15li: +42:0:4: ++%15li: +0X2a:1:6:42: ++%*15li: +0X2a:0:6: ++%15li: +0x2A:1:6:42: ++%*15li: +0x2A:0:6: ++%15li: +052:1:5:42: ++%*15li: +052:0:5: ++%15li: +0B101010:1:10:42: ++%*15li: +0B101010:0:10: ++%15li: +0b101010:1:10:42: ++%*15li: +0b101010:0:10: ++%15li: +2147483647:1:12:2147483647: ++%*15li: +2147483647:0:12: ++%15li: +0X7fffffff:1:12:2147483647: ++%*15li: +0X7fffffff:0:12: ++%15li: +0x7FFFFFFF:1:12:2147483647: ++%*15li: +0x7FFFFFFF:0:12: ++%15li: +017777777777:1:14:2147483647: ++%*15li: +017777777777:0:14: ++%15li: +0B1111111111111111111111111111111:1:16:4095: ++%*15li: +0B1111111111111111111111111111111:0:16: ++%15li: +0b1111111111111111111111111111111:1:16:4095: ++%*15li: +0b1111111111111111111111111111111:0:16: ++%15li: +2147483648:1:12:2147483647: ++%*15li: +2147483648:0:12: ++%15li: +0X80000000:1:12:2147483647: ++%*15li: +0X80000000:0:12: ++%15li: +0x80000000:1:12:2147483647: ++%*15li: +0x80000000:0:12: ++%15li: +020000000000:1:14:2147483647: ++%*15li: +020000000000:0:14: ++%15li: +0B10000000000000000000000000000000:1:16:2048: ++%*15li: +0B10000000000000000000000000000000:0:16: ++%15li: +0b10000000000000000000000000000000:1:16:2048: ++%*15li: +0b10000000000000000000000000000000:0:16: ++%15li: +2147487889:1:12:2147483647: ++%*15li: +2147487889:0:12: ++%15li: +0X80001091:1:12:2147483647: ++%*15li: +0X80001091:0:12: ++%15li: +0x80001091:1:12:2147483647: ++%*15li: +0x80001091:0:12: ++%15li: +020000010221:1:14:2147483647: ++%*15li: +020000010221:0:14: ++%15li: +0B10000000000000000001000010010001:1:16:2048: ++%*15li: +0B10000000000000000001000010010001:0:16: ++%15li: +0b10000000000000000001000010010001:1:16:2048: ++%*15li: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +new file mode 100644 +index 0000000000000000..34aa451bfc732b2f +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +@@ -0,0 +1,644 @@ ++%b::0:-1: ++%*b::0:-1: ++%b:-1111011:1:8:4294967173: ++%*b:-1111011:0:8: ++%b:-0B1111011:1:10:4294967173: ++%*b:-0B1111011:0:10: ++%b:-0b1111011:1:10:4294967173: ++%*b:-0b1111011:0:10: ++%b:-1:1:2:4294967295: ++%*b:-1:0:2: ++%b:-0B1:1:4:4294967295: ++%*b:-0B1:0:4: ++%b:-0b1:1:4:4294967295: ++%*b:-0b1:0:4: ++%b:-0:1:2:0: ++%*b:-0:0:2: ++%b:-0B0:1:4:0: ++%*b:-0B0:0:4: ++%b:-0b0:1:4:0: ++%*b:-0b0:0:4: ++%b:0:1:1:0: ++%*b:0:0:1: ++%b:0B0:1:3:0: ++%*b:0B0:0:3: ++%b:0b0:1:3:0: ++%*b:0b0:0:3: ++%b:1:1:1:1: ++%*b:1:0:1: ++%b:0B1:1:3:1: ++%*b:0B1:0:3: ++%b:0b1:1:3:1: ++%*b:0b1:0:3: ++%b:101010:1:6:42: ++%*b:101010:0:6: ++%b:0B101010:1:8:42: ++%*b:0B101010:0:8: ++%b:0b101010:1:8:42: ++%*b:0b101010:0:8: ++%b:11111111111111111111111111111111:1:32:4294967295: ++%*b:11111111111111111111111111111111:0:32: ++%b:0B11111111111111111111111111111111:1:34:4294967295: ++%*b:0B11111111111111111111111111111111:0:34: ++%b:0b11111111111111111111111111111111:1:34:4294967295: ++%*b:0b11111111111111111111111111111111:0:34: ++%b:100000000000000000000000000000000:1:33:4294967295: ++%*b:100000000000000000000000000000000:0:33: ++%b:0B100000000000000000000000000000000:1:35:4294967295: ++%*b:0B100000000000000000000000000000000:0:35: ++%b:0b100000000000000000000000000000000:1:35:4294967295: ++%*b:0b100000000000000000000000000000000:0:35: ++%b:100000000000000000001000010010001:1:33:4294967295: ++%*b:100000000000000000001000010010001:0:33: ++%b:0B100000000000000000001000010010001:1:35:4294967295: ++%*b:0B100000000000000000001000010010001:0:35: ++%b:0b100000000000000000001000010010001:1:35:4294967295: ++%*b:0b100000000000000000001000010010001:0:35: ++%b:+0:1:2:0: ++%*b:+0:0:2: ++%b:+0B0:1:4:0: ++%*b:+0B0:0:4: ++%b:+0b0:1:4:0: ++%*b:+0b0:0:4: ++%b:+1:1:2:1: ++%*b:+1:0:2: ++%b:+0B1:1:4:1: ++%*b:+0B1:0:4: ++%b:+0b1:1:4:1: ++%*b:+0b1:0:4: ++%b:+101010:1:7:42: ++%*b:+101010:0:7: ++%b:+0B101010:1:9:42: ++%*b:+0B101010:0:9: ++%b:+0b101010:1:9:42: ++%*b:+0b101010:0:9: ++%b:+11111111111111111111111111111111:1:33:4294967295: ++%*b:+11111111111111111111111111111111:0:33: ++%b:+0B11111111111111111111111111111111:1:35:4294967295: ++%*b:+0B11111111111111111111111111111111:0:35: ++%b:+0b11111111111111111111111111111111:1:35:4294967295: ++%*b:+0b11111111111111111111111111111111:0:35: ++%b:+100000000000000000000000000000000:1:34:4294967295: ++%*b:+100000000000000000000000000000000:0:34: ++%b:+0B100000000000000000000000000000000:1:36:4294967295: ++%*b:+0B100000000000000000000000000000000:0:36: ++%b:+0b100000000000000000000000000000000:1:36:4294967295: ++%*b:+0b100000000000000000000000000000000:0:36: ++%b:+100000000000000000001000010010001:1:34:4294967295: ++%*b:+100000000000000000001000010010001:0:34: ++%b:+0B100000000000000000001000010010001:1:36:4294967295: ++%*b:+0B100000000000000000001000010010001:0:36: ++%b:+0b100000000000000000001000010010001:1:36:4294967295: ++%*b:+0b100000000000000000001000010010001:0:36: ++%1b::0:-1: ++%*1b::0:-1: ++%1b:-1111011:0:-1: ++%*1b:-1111011:0:-1: ++%1b:-0B1111011:0:-1: ++%*1b:-0B1111011:0:-1: ++%1b:-0b1111011:0:-1: ++%*1b:-0b1111011:0:-1: ++%1b:-1:0:-1: ++%*1b:-1:0:-1: ++%1b:-0B1:0:-1: ++%*1b:-0B1:0:-1: ++%1b:-0b1:0:-1: ++%*1b:-0b1:0:-1: ++%1b:-0:0:-1: ++%*1b:-0:0:-1: ++%1b:-0B0:0:-1: ++%*1b:-0B0:0:-1: ++%1b:-0b0:0:-1: ++%*1b:-0b0:0:-1: ++%1b:0:1:1:0: ++%*1b:0:0:1: ++%1b:0B0:1:1:0: ++%*1b:0B0:0:1: ++%1b:0b0:1:1:0: ++%*1b:0b0:0:1: ++%1b:1:1:1:1: ++%*1b:1:0:1: ++%1b:0B1:1:1:0: ++%*1b:0B1:0:1: ++%1b:0b1:1:1:0: ++%*1b:0b1:0:1: ++%1b:101010:1:1:1: ++%*1b:101010:0:1: ++%1b:0B101010:1:1:0: ++%*1b:0B101010:0:1: ++%1b:0b101010:1:1:0: ++%*1b:0b101010:0:1: ++%1b:11111111111111111111111111111111:1:1:1: ++%*1b:11111111111111111111111111111111:0:1: ++%1b:0B11111111111111111111111111111111:1:1:0: ++%*1b:0B11111111111111111111111111111111:0:1: ++%1b:0b11111111111111111111111111111111:1:1:0: ++%*1b:0b11111111111111111111111111111111:0:1: ++%1b:100000000000000000000000000000000:1:1:1: ++%*1b:100000000000000000000000000000000:0:1: ++%1b:0B100000000000000000000000000000000:1:1:0: ++%*1b:0B100000000000000000000000000000000:0:1: ++%1b:0b100000000000000000000000000000000:1:1:0: ++%*1b:0b100000000000000000000000000000000:0:1: ++%1b:100000000000000000001000010010001:1:1:1: ++%*1b:100000000000000000001000010010001:0:1: ++%1b:0B100000000000000000001000010010001:1:1:0: ++%*1b:0B100000000000000000001000010010001:0:1: ++%1b:0b100000000000000000001000010010001:1:1:0: ++%*1b:0b100000000000000000001000010010001:0:1: ++%1b:+0:0:-1: ++%*1b:+0:0:-1: ++%1b:+0B0:0:-1: ++%*1b:+0B0:0:-1: ++%1b:+0b0:0:-1: ++%*1b:+0b0:0:-1: ++%1b:+1:0:-1: ++%*1b:+1:0:-1: ++%1b:+0B1:0:-1: ++%*1b:+0B1:0:-1: ++%1b:+0b1:0:-1: ++%*1b:+0b1:0:-1: ++%1b:+101010:0:-1: ++%*1b:+101010:0:-1: ++%1b:+0B101010:0:-1: ++%*1b:+0B101010:0:-1: ++%1b:+0b101010:0:-1: ++%*1b:+0b101010:0:-1: ++%1b:+11111111111111111111111111111111:0:-1: ++%*1b:+11111111111111111111111111111111:0:-1: ++%1b:+0B11111111111111111111111111111111:0:-1: ++%*1b:+0B11111111111111111111111111111111:0:-1: ++%1b:+0b11111111111111111111111111111111:0:-1: ++%*1b:+0b11111111111111111111111111111111:0:-1: ++%1b:+100000000000000000000000000000000:0:-1: ++%*1b:+100000000000000000000000000000000:0:-1: ++%1b:+0B100000000000000000000000000000000:0:-1: ++%*1b:+0B100000000000000000000000000000000:0:-1: ++%1b:+0b100000000000000000000000000000000:0:-1: ++%*1b:+0b100000000000000000000000000000000:0:-1: ++%1b:+100000000000000000001000010010001:0:-1: ++%*1b:+100000000000000000001000010010001:0:-1: ++%1b:+0B100000000000000000001000010010001:0:-1: ++%*1b:+0B100000000000000000001000010010001:0:-1: ++%1b:+0b100000000000000000001000010010001:0:-1: ++%*1b:+0b100000000000000000001000010010001:0:-1: ++%2b::0:-1: ++%*2b::0:-1: ++%2b:-1111011:1:2:4294967295: ++%*2b:-1111011:0:2: ++%2b:-0B1111011:1:2:0: ++%*2b:-0B1111011:0:2: ++%2b:-0b1111011:1:2:0: ++%*2b:-0b1111011:0:2: ++%2b:-1:1:2:4294967295: ++%*2b:-1:0:2: ++%2b:-0B1:1:2:0: ++%*2b:-0B1:0:2: ++%2b:-0b1:1:2:0: ++%*2b:-0b1:0:2: ++%2b:-0:1:2:0: ++%*2b:-0:0:2: ++%2b:-0B0:1:2:0: ++%*2b:-0B0:0:2: ++%2b:-0b0:1:2:0: ++%*2b:-0b0:0:2: ++%2b:0:1:1:0: ++%*2b:0:0:1: ++# BZ12701 %2b:0B0:0:-1: ++# BZ12701 %*2b:0B0:0:-1: ++# BZ12701 %2b:0b0:0:-1: ++# BZ12701 %*2b:0b0:0:-1: ++%2b:1:1:1:1: ++%*2b:1:0:1: ++# BZ12701 %2b:0B1:0:-1: ++# BZ12701 %*2b:0B1:0:-1: ++# BZ12701 %2b:0b1:0:-1: ++# BZ12701 %*2b:0b1:0:-1: ++%2b:101010:1:2:2: ++%*2b:101010:0:2: ++# BZ12701 %2b:0B101010:0:-1: ++# BZ12701 %*2b:0B101010:0:-1: ++# BZ12701 %2b:0b101010:0:-1: ++# BZ12701 %*2b:0b101010:0:-1: ++%2b:11111111111111111111111111111111:1:2:3: ++%*2b:11111111111111111111111111111111:0:2: ++# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: ++%2b:100000000000000000000000000000000:1:2:2: ++%*2b:100000000000000000000000000000000:0:2: ++# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: ++%2b:100000000000000000001000010010001:1:2:2: ++%*2b:100000000000000000001000010010001:0:2: ++# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: ++%2b:+0:1:2:0: ++%*2b:+0:0:2: ++%2b:+0B0:1:2:0: ++%*2b:+0B0:0:2: ++%2b:+0b0:1:2:0: ++%*2b:+0b0:0:2: ++%2b:+1:1:2:1: ++%*2b:+1:0:2: ++%2b:+0B1:1:2:0: ++%*2b:+0B1:0:2: ++%2b:+0b1:1:2:0: ++%*2b:+0b1:0:2: ++%2b:+101010:1:2:1: ++%*2b:+101010:0:2: ++%2b:+0B101010:1:2:0: ++%*2b:+0B101010:0:2: ++%2b:+0b101010:1:2:0: ++%*2b:+0b101010:0:2: ++%2b:+11111111111111111111111111111111:1:2:1: ++%*2b:+11111111111111111111111111111111:0:2: ++%2b:+0B11111111111111111111111111111111:1:2:0: ++%*2b:+0B11111111111111111111111111111111:0:2: ++%2b:+0b11111111111111111111111111111111:1:2:0: ++%*2b:+0b11111111111111111111111111111111:0:2: ++%2b:+100000000000000000000000000000000:1:2:1: ++%*2b:+100000000000000000000000000000000:0:2: ++%2b:+0B100000000000000000000000000000000:1:2:0: ++%*2b:+0B100000000000000000000000000000000:0:2: ++%2b:+0b100000000000000000000000000000000:1:2:0: ++%*2b:+0b100000000000000000000000000000000:0:2: ++%2b:+100000000000000000001000010010001:1:2:1: ++%*2b:+100000000000000000001000010010001:0:2: ++%2b:+0B100000000000000000001000010010001:1:2:0: ++%*2b:+0B100000000000000000001000010010001:0:2: ++%2b:+0b100000000000000000001000010010001:1:2:0: ++%*2b:+0b100000000000000000001000010010001:0:2: ++%8b::0:-1: ++%*8b::0:-1: ++%8b:-1111011:1:8:4294967173: ++%*8b:-1111011:0:8: ++%8b:-0B1111011:1:8:4294967266: ++%*8b:-0B1111011:0:8: ++%8b:-0b1111011:1:8:4294967266: ++%*8b:-0b1111011:0:8: ++%8b:-1:1:2:4294967295: ++%*8b:-1:0:2: ++%8b:-0B1:1:4:4294967295: ++%*8b:-0B1:0:4: ++%8b:-0b1:1:4:4294967295: ++%*8b:-0b1:0:4: ++%8b:-0:1:2:0: ++%*8b:-0:0:2: ++%8b:-0B0:1:4:0: ++%*8b:-0B0:0:4: ++%8b:-0b0:1:4:0: ++%*8b:-0b0:0:4: ++%8b:0:1:1:0: ++%*8b:0:0:1: ++%8b:0B0:1:3:0: ++%*8b:0B0:0:3: ++%8b:0b0:1:3:0: ++%*8b:0b0:0:3: ++%8b:1:1:1:1: ++%*8b:1:0:1: ++%8b:0B1:1:3:1: ++%*8b:0B1:0:3: ++%8b:0b1:1:3:1: ++%*8b:0b1:0:3: ++%8b:101010:1:6:42: ++%*8b:101010:0:6: ++%8b:0B101010:1:8:42: ++%*8b:0B101010:0:8: ++%8b:0b101010:1:8:42: ++%*8b:0b101010:0:8: ++%8b:11111111111111111111111111111111:1:8:255: ++%*8b:11111111111111111111111111111111:0:8: ++%8b:0B11111111111111111111111111111111:1:8:63: ++%*8b:0B11111111111111111111111111111111:0:8: ++%8b:0b11111111111111111111111111111111:1:8:63: ++%*8b:0b11111111111111111111111111111111:0:8: ++%8b:100000000000000000000000000000000:1:8:128: ++%*8b:100000000000000000000000000000000:0:8: ++%8b:0B100000000000000000000000000000000:1:8:32: ++%*8b:0B100000000000000000000000000000000:0:8: ++%8b:0b100000000000000000000000000000000:1:8:32: ++%*8b:0b100000000000000000000000000000000:0:8: ++%8b:100000000000000000001000010010001:1:8:128: ++%*8b:100000000000000000001000010010001:0:8: ++%8b:0B100000000000000000001000010010001:1:8:32: ++%*8b:0B100000000000000000001000010010001:0:8: ++%8b:0b100000000000000000001000010010001:1:8:32: ++%*8b:0b100000000000000000001000010010001:0:8: ++%8b:+0:1:2:0: ++%*8b:+0:0:2: ++%8b:+0B0:1:4:0: ++%*8b:+0B0:0:4: ++%8b:+0b0:1:4:0: ++%*8b:+0b0:0:4: ++%8b:+1:1:2:1: ++%*8b:+1:0:2: ++%8b:+0B1:1:4:1: ++%*8b:+0B1:0:4: ++%8b:+0b1:1:4:1: ++%*8b:+0b1:0:4: ++%8b:+101010:1:7:42: ++%*8b:+101010:0:7: ++%8b:+0B101010:1:8:21: ++%*8b:+0B101010:0:8: ++%8b:+0b101010:1:8:21: ++%*8b:+0b101010:0:8: ++%8b:+11111111111111111111111111111111:1:8:127: ++%*8b:+11111111111111111111111111111111:0:8: ++%8b:+0B11111111111111111111111111111111:1:8:31: ++%*8b:+0B11111111111111111111111111111111:0:8: ++%8b:+0b11111111111111111111111111111111:1:8:31: ++%*8b:+0b11111111111111111111111111111111:0:8: ++%8b:+100000000000000000000000000000000:1:8:64: ++%*8b:+100000000000000000000000000000000:0:8: ++%8b:+0B100000000000000000000000000000000:1:8:16: ++%*8b:+0B100000000000000000000000000000000:0:8: ++%8b:+0b100000000000000000000000000000000:1:8:16: ++%*8b:+0b100000000000000000000000000000000:0:8: ++%8b:+100000000000000000001000010010001:1:8:64: ++%*8b:+100000000000000000001000010010001:0:8: ++%8b:+0B100000000000000000001000010010001:1:8:16: ++%*8b:+0B100000000000000000001000010010001:0:8: ++%8b:+0b100000000000000000001000010010001:1:8:16: ++%*8b:+0b100000000000000000001000010010001:0:8: ++%15b::0:-1: ++%*15b::0:-1: ++%15b:-1111011:1:8:4294967173: ++%*15b:-1111011:0:8: ++%15b:-0B1111011:1:10:4294967173: ++%*15b:-0B1111011:0:10: ++%15b:-0b1111011:1:10:4294967173: ++%*15b:-0b1111011:0:10: ++%15b:-1:1:2:4294967295: ++%*15b:-1:0:2: ++%15b:-0B1:1:4:4294967295: ++%*15b:-0B1:0:4: ++%15b:-0b1:1:4:4294967295: ++%*15b:-0b1:0:4: ++%15b:-0:1:2:0: ++%*15b:-0:0:2: ++%15b:-0B0:1:4:0: ++%*15b:-0B0:0:4: ++%15b:-0b0:1:4:0: ++%*15b:-0b0:0:4: ++%15b:0:1:1:0: ++%*15b:0:0:1: ++%15b:0B0:1:3:0: ++%*15b:0B0:0:3: ++%15b:0b0:1:3:0: ++%*15b:0b0:0:3: ++%15b:1:1:1:1: ++%*15b:1:0:1: ++%15b:0B1:1:3:1: ++%*15b:0B1:0:3: ++%15b:0b1:1:3:1: ++%*15b:0b1:0:3: ++%15b:101010:1:6:42: ++%*15b:101010:0:6: ++%15b:0B101010:1:8:42: ++%*15b:0B101010:0:8: ++%15b:0b101010:1:8:42: ++%*15b:0b101010:0:8: ++%15b:11111111111111111111111111111111:1:15:32767: ++%*15b:11111111111111111111111111111111:0:15: ++%15b:0B11111111111111111111111111111111:1:15:8191: ++%*15b:0B11111111111111111111111111111111:0:15: ++%15b:0b11111111111111111111111111111111:1:15:8191: ++%*15b:0b11111111111111111111111111111111:0:15: ++%15b:100000000000000000000000000000000:1:15:16384: ++%*15b:100000000000000000000000000000000:0:15: ++%15b:0B100000000000000000000000000000000:1:15:4096: ++%*15b:0B100000000000000000000000000000000:0:15: ++%15b:0b100000000000000000000000000000000:1:15:4096: ++%*15b:0b100000000000000000000000000000000:0:15: ++%15b:100000000000000000001000010010001:1:15:16384: ++%*15b:100000000000000000001000010010001:0:15: ++%15b:0B100000000000000000001000010010001:1:15:4096: ++%*15b:0B100000000000000000001000010010001:0:15: ++%15b:0b100000000000000000001000010010001:1:15:4096: ++%*15b:0b100000000000000000001000010010001:0:15: ++%15b:+0:1:2:0: ++%*15b:+0:0:2: ++%15b:+0B0:1:4:0: ++%*15b:+0B0:0:4: ++%15b:+0b0:1:4:0: ++%*15b:+0b0:0:4: ++%15b:+1:1:2:1: ++%*15b:+1:0:2: ++%15b:+0B1:1:4:1: ++%*15b:+0B1:0:4: ++%15b:+0b1:1:4:1: ++%*15b:+0b1:0:4: ++%15b:+101010:1:7:42: ++%*15b:+101010:0:7: ++%15b:+0B101010:1:9:42: ++%*15b:+0B101010:0:9: ++%15b:+0b101010:1:9:42: ++%*15b:+0b101010:0:9: ++%15b:+11111111111111111111111111111111:1:15:16383: ++%*15b:+11111111111111111111111111111111:0:15: ++%15b:+0B11111111111111111111111111111111:1:15:4095: ++%*15b:+0B11111111111111111111111111111111:0:15: ++%15b:+0b11111111111111111111111111111111:1:15:4095: ++%*15b:+0b11111111111111111111111111111111:0:15: ++%15b:+100000000000000000000000000000000:1:15:8192: ++%*15b:+100000000000000000000000000000000:0:15: ++%15b:+0B100000000000000000000000000000000:1:15:2048: ++%*15b:+0B100000000000000000000000000000000:0:15: ++%15b:+0b100000000000000000000000000000000:1:15:2048: ++%*15b:+0b100000000000000000000000000000000:0:15: ++%15b:+100000000000000000001000010010001:1:15:8192: ++%*15b:+100000000000000000001000010010001:0:15: ++%15b:+0B100000000000000000001000010010001:1:15:2048: ++%*15b:+0B100000000000000000001000010010001:0:15: ++%15b:+0b100000000000000000001000010010001:1:15:2048: ++%*15b:+0b100000000000000000001000010010001:0:15: ++%2b: :0:-1: ++%*2b: :0:-1: ++%2b: -1111011:1:3:4294967295: ++%*2b: -1111011:0:3: ++%2b: -0B1111011:1:3:0: ++%*2b: -0B1111011:0:3: ++%2b: -0b1111011:1:3:0: ++%*2b: -0b1111011:0:3: ++%2b: -1:1:3:4294967295: ++%*2b: -1:0:3: ++%2b: -0B1:1:3:0: ++%*2b: -0B1:0:3: ++%2b: -0b1:1:3:0: ++%*2b: -0b1:0:3: ++%2b: -0:1:3:0: ++%*2b: -0:0:3: ++%2b: -0B0:1:3:0: ++%*2b: -0B0:0:3: ++%2b: -0b0:1:3:0: ++%*2b: -0b0:0:3: ++%2b: 0:1:2:0: ++%*2b: 0:0:2: ++# BZ12701 %2b: 0B0:0:-1: ++# BZ12701 %*2b: 0B0:0:-1: ++# BZ12701 %2b: 0b0:0:-1: ++# BZ12701 %*2b: 0b0:0:-1: ++%2b: 1:1:2:1: ++%*2b: 1:0:2: ++# BZ12701 %2b: 0B1:0:-1: ++# BZ12701 %*2b: 0B1:0:-1: ++# BZ12701 %2b: 0b1:0:-1: ++# BZ12701 %*2b: 0b1:0:-1: ++%2b: 101010:1:3:2: ++%*2b: 101010:0:3: ++# BZ12701 %2b: 0B101010:0:-1: ++# BZ12701 %*2b: 0B101010:0:-1: ++# BZ12701 %2b: 0b101010:0:-1: ++# BZ12701 %*2b: 0b101010:0:-1: ++%2b: 11111111111111111111111111111111:1:3:3: ++%*2b: 11111111111111111111111111111111:0:3: ++# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: ++%2b: 100000000000000000000000000000000:1:3:2: ++%*2b: 100000000000000000000000000000000:0:3: ++# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: ++%2b: 100000000000000000001000010010001:1:3:2: ++%*2b: 100000000000000000001000010010001:0:3: ++# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: ++%2b: +0:1:3:0: ++%*2b: +0:0:3: ++%2b: +0B0:1:3:0: ++%*2b: +0B0:0:3: ++%2b: +0b0:1:3:0: ++%*2b: +0b0:0:3: ++%2b: +1:1:3:1: ++%*2b: +1:0:3: ++%2b: +0B1:1:3:0: ++%*2b: +0B1:0:3: ++%2b: +0b1:1:3:0: ++%*2b: +0b1:0:3: ++%2b: +101010:1:3:1: ++%*2b: +101010:0:3: ++%2b: +0B101010:1:3:0: ++%*2b: +0B101010:0:3: ++%2b: +0b101010:1:3:0: ++%*2b: +0b101010:0:3: ++%2b: +11111111111111111111111111111111:1:3:1: ++%*2b: +11111111111111111111111111111111:0:3: ++%2b: +0B11111111111111111111111111111111:1:3:0: ++%*2b: +0B11111111111111111111111111111111:0:3: ++%2b: +0b11111111111111111111111111111111:1:3:0: ++%*2b: +0b11111111111111111111111111111111:0:3: ++%2b: +100000000000000000000000000000000:1:3:1: ++%*2b: +100000000000000000000000000000000:0:3: ++%2b: +0B100000000000000000000000000000000:1:3:0: ++%*2b: +0B100000000000000000000000000000000:0:3: ++%2b: +0b100000000000000000000000000000000:1:3:0: ++%*2b: +0b100000000000000000000000000000000:0:3: ++%2b: +100000000000000000001000010010001:1:3:1: ++%*2b: +100000000000000000001000010010001:0:3: ++%2b: +0B100000000000000000001000010010001:1:3:0: ++%*2b: +0B100000000000000000001000010010001:0:3: ++%2b: +0b100000000000000000001000010010001:1:3:0: ++%*2b: +0b100000000000000000001000010010001:0:3: ++%15b: :0:-1: ++%*15b: :0:-1: ++%15b: -1111011:1:9:4294967173: ++%*15b: -1111011:0:9: ++%15b: -0B1111011:1:11:4294967173: ++%*15b: -0B1111011:0:11: ++%15b: -0b1111011:1:11:4294967173: ++%*15b: -0b1111011:0:11: ++%15b: -1:1:3:4294967295: ++%*15b: -1:0:3: ++%15b: -0B1:1:5:4294967295: ++%*15b: -0B1:0:5: ++%15b: -0b1:1:5:4294967295: ++%*15b: -0b1:0:5: ++%15b: -0:1:3:0: ++%*15b: -0:0:3: ++%15b: -0B0:1:5:0: ++%*15b: -0B0:0:5: ++%15b: -0b0:1:5:0: ++%*15b: -0b0:0:5: ++%15b: 0:1:2:0: ++%*15b: 0:0:2: ++%15b: 0B0:1:4:0: ++%*15b: 0B0:0:4: ++%15b: 0b0:1:4:0: ++%*15b: 0b0:0:4: ++%15b: 1:1:2:1: ++%*15b: 1:0:2: ++%15b: 0B1:1:4:1: ++%*15b: 0B1:0:4: ++%15b: 0b1:1:4:1: ++%*15b: 0b1:0:4: ++%15b: 101010:1:7:42: ++%*15b: 101010:0:7: ++%15b: 0B101010:1:9:42: ++%*15b: 0B101010:0:9: ++%15b: 0b101010:1:9:42: ++%*15b: 0b101010:0:9: ++%15b: 11111111111111111111111111111111:1:16:32767: ++%*15b: 11111111111111111111111111111111:0:16: ++%15b: 0B11111111111111111111111111111111:1:16:8191: ++%*15b: 0B11111111111111111111111111111111:0:16: ++%15b: 0b11111111111111111111111111111111:1:16:8191: ++%*15b: 0b11111111111111111111111111111111:0:16: ++%15b: 100000000000000000000000000000000:1:16:16384: ++%*15b: 100000000000000000000000000000000:0:16: ++%15b: 0B100000000000000000000000000000000:1:16:4096: ++%*15b: 0B100000000000000000000000000000000:0:16: ++%15b: 0b100000000000000000000000000000000:1:16:4096: ++%*15b: 0b100000000000000000000000000000000:0:16: ++%15b: 100000000000000000001000010010001:1:16:16384: ++%*15b: 100000000000000000001000010010001:0:16: ++%15b: 0B100000000000000000001000010010001:1:16:4096: ++%*15b: 0B100000000000000000001000010010001:0:16: ++%15b: 0b100000000000000000001000010010001:1:16:4096: ++%*15b: 0b100000000000000000001000010010001:0:16: ++%15b: +0:1:3:0: ++%*15b: +0:0:3: ++%15b: +0B0:1:5:0: ++%*15b: +0B0:0:5: ++%15b: +0b0:1:5:0: ++%*15b: +0b0:0:5: ++%15b: +1:1:3:1: ++%*15b: +1:0:3: ++%15b: +0B1:1:5:1: ++%*15b: +0B1:0:5: ++%15b: +0b1:1:5:1: ++%*15b: +0b1:0:5: ++%15b: +101010:1:8:42: ++%*15b: +101010:0:8: ++%15b: +0B101010:1:10:42: ++%*15b: +0B101010:0:10: ++%15b: +0b101010:1:10:42: ++%*15b: +0b101010:0:10: ++%15b: +11111111111111111111111111111111:1:16:16383: ++%*15b: +11111111111111111111111111111111:0:16: ++%15b: +0B11111111111111111111111111111111:1:16:4095: ++%*15b: +0B11111111111111111111111111111111:0:16: ++%15b: +0b11111111111111111111111111111111:1:16:4095: ++%*15b: +0b11111111111111111111111111111111:0:16: ++%15b: +100000000000000000000000000000000:1:16:8192: ++%*15b: +100000000000000000000000000000000:0:16: ++%15b: +0B100000000000000000000000000000000:1:16:2048: ++%*15b: +0B100000000000000000000000000000000:0:16: ++%15b: +0b100000000000000000000000000000000:1:16:2048: ++%*15b: +0b100000000000000000000000000000000:0:16: ++%15b: +100000000000000000001000010010001:1:16:8192: ++%*15b: +100000000000000000001000010010001:0:16: ++%15b: +0B100000000000000000001000010010001:1:16:2048: ++%*15b: +0B100000000000000000001000010010001:0:16: ++%15b: +0b100000000000000000001000010010001:1:16:2048: ++%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-o.input b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input +new file mode 100644 +index 0000000000000000..1762194d535f6a77 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input +@@ -0,0 +1,434 @@ ++%o::0:-1: ++%*o::0:-1: ++%o:-173:1:4:4294967173: ++%*o:-173:0:4: ++%o:-0173:1:5:4294967173: ++%*o:-0173:0:5: ++%o:-1:1:2:4294967295: ++%*o:-1:0:2: ++%o:-01:1:3:4294967295: ++%*o:-01:0:3: ++%o:-0:1:2:0: ++%*o:-0:0:2: ++%o:-00:1:3:0: ++%*o:-00:0:3: ++%o:0:1:1:0: ++%*o:0:0:1: ++%o:00:1:2:0: ++%*o:00:0:2: ++%o:1:1:1:1: ++%*o:1:0:1: ++%o:01:1:2:1: ++%*o:01:0:2: ++%o:52:1:2:42: ++%*o:52:0:2: ++%o:052:1:3:42: ++%*o:052:0:3: ++%o:37777777777:1:11:4294967295: ++%*o:37777777777:0:11: ++%o:037777777777:1:12:4294967295: ++%*o:037777777777:0:12: ++%o:40000000000:1:11:4294967295: ++%*o:40000000000:0:11: ++%o:040000000000:1:12:4294967295: ++%*o:040000000000:0:12: ++%o:40000010221:1:11:4294967295: ++%*o:40000010221:0:11: ++%o:040000010221:1:12:4294967295: ++%*o:040000010221:0:12: ++%o:+0:1:2:0: ++%*o:+0:0:2: ++%o:+00:1:3:0: ++%*o:+00:0:3: ++%o:+1:1:2:1: ++%*o:+1:0:2: ++%o:+01:1:3:1: ++%*o:+01:0:3: ++%o:+52:1:3:42: ++%*o:+52:0:3: ++%o:+052:1:4:42: ++%*o:+052:0:4: ++%o:+37777777777:1:12:4294967295: ++%*o:+37777777777:0:12: ++%o:+037777777777:1:13:4294967295: ++%*o:+037777777777:0:13: ++%o:+40000000000:1:12:4294967295: ++%*o:+40000000000:0:12: ++%o:+040000000000:1:13:4294967295: ++%*o:+040000000000:0:13: ++%o:+40000010221:1:12:4294967295: ++%*o:+40000010221:0:12: ++%o:+040000010221:1:13:4294967295: ++%*o:+040000010221:0:13: ++%1o::0:-1: ++%*1o::0:-1: ++%1o:-173:0:-1: ++%*1o:-173:0:-1: ++%1o:-0173:0:-1: ++%*1o:-0173:0:-1: ++%1o:-1:0:-1: ++%*1o:-1:0:-1: ++%1o:-01:0:-1: ++%*1o:-01:0:-1: ++%1o:-0:0:-1: ++%*1o:-0:0:-1: ++%1o:-00:0:-1: ++%*1o:-00:0:-1: ++%1o:0:1:1:0: ++%*1o:0:0:1: ++%1o:00:1:1:0: ++%*1o:00:0:1: ++%1o:1:1:1:1: ++%*1o:1:0:1: ++%1o:01:1:1:0: ++%*1o:01:0:1: ++%1o:52:1:1:5: ++%*1o:52:0:1: ++%1o:052:1:1:0: ++%*1o:052:0:1: ++%1o:37777777777:1:1:3: ++%*1o:37777777777:0:1: ++%1o:037777777777:1:1:0: ++%*1o:037777777777:0:1: ++%1o:40000000000:1:1:4: ++%*1o:40000000000:0:1: ++%1o:040000000000:1:1:0: ++%*1o:040000000000:0:1: ++%1o:40000010221:1:1:4: ++%*1o:40000010221:0:1: ++%1o:040000010221:1:1:0: ++%*1o:040000010221:0:1: ++%1o:+0:0:-1: ++%*1o:+0:0:-1: ++%1o:+00:0:-1: ++%*1o:+00:0:-1: ++%1o:+1:0:-1: ++%*1o:+1:0:-1: ++%1o:+01:0:-1: ++%*1o:+01:0:-1: ++%1o:+52:0:-1: ++%*1o:+52:0:-1: ++%1o:+052:0:-1: ++%*1o:+052:0:-1: ++%1o:+37777777777:0:-1: ++%*1o:+37777777777:0:-1: ++%1o:+037777777777:0:-1: ++%*1o:+037777777777:0:-1: ++%1o:+40000000000:0:-1: ++%*1o:+40000000000:0:-1: ++%1o:+040000000000:0:-1: ++%*1o:+040000000000:0:-1: ++%1o:+40000010221:0:-1: ++%*1o:+40000010221:0:-1: ++%1o:+040000010221:0:-1: ++%*1o:+040000010221:0:-1: ++%2o::0:-1: ++%*2o::0:-1: ++%2o:-173:1:2:4294967295: ++%*2o:-173:0:2: ++%2o:-0173:1:2:0: ++%*2o:-0173:0:2: ++%2o:-1:1:2:4294967295: ++%*2o:-1:0:2: ++%2o:-01:1:2:0: ++%*2o:-01:0:2: ++%2o:-0:1:2:0: ++%*2o:-0:0:2: ++%2o:-00:1:2:0: ++%*2o:-00:0:2: ++%2o:0:1:1:0: ++%*2o:0:0:1: ++%2o:00:1:2:0: ++%*2o:00:0:2: ++%2o:1:1:1:1: ++%*2o:1:0:1: ++%2o:01:1:2:1: ++%*2o:01:0:2: ++%2o:52:1:2:42: ++%*2o:52:0:2: ++%2o:052:1:2:5: ++%*2o:052:0:2: ++%2o:37777777777:1:2:31: ++%*2o:37777777777:0:2: ++%2o:037777777777:1:2:3: ++%*2o:037777777777:0:2: ++%2o:40000000000:1:2:32: ++%*2o:40000000000:0:2: ++%2o:040000000000:1:2:4: ++%*2o:040000000000:0:2: ++%2o:40000010221:1:2:32: ++%*2o:40000010221:0:2: ++%2o:040000010221:1:2:4: ++%*2o:040000010221:0:2: ++%2o:+0:1:2:0: ++%*2o:+0:0:2: ++%2o:+00:1:2:0: ++%*2o:+00:0:2: ++%2o:+1:1:2:1: ++%*2o:+1:0:2: ++%2o:+01:1:2:0: ++%*2o:+01:0:2: ++%2o:+52:1:2:5: ++%*2o:+52:0:2: ++%2o:+052:1:2:0: ++%*2o:+052:0:2: ++%2o:+37777777777:1:2:3: ++%*2o:+37777777777:0:2: ++%2o:+037777777777:1:2:0: ++%*2o:+037777777777:0:2: ++%2o:+40000000000:1:2:4: ++%*2o:+40000000000:0:2: ++%2o:+040000000000:1:2:0: ++%*2o:+040000000000:0:2: ++%2o:+40000010221:1:2:4: ++%*2o:+40000010221:0:2: ++%2o:+040000010221:1:2:0: ++%*2o:+040000010221:0:2: ++%8o::0:-1: ++%*8o::0:-1: ++%8o:-173:1:4:4294967173: ++%*8o:-173:0:4: ++%8o:-0173:1:5:4294967173: ++%*8o:-0173:0:5: ++%8o:-1:1:2:4294967295: ++%*8o:-1:0:2: ++%8o:-01:1:3:4294967295: ++%*8o:-01:0:3: ++%8o:-0:1:2:0: ++%*8o:-0:0:2: ++%8o:-00:1:3:0: ++%*8o:-00:0:3: ++%8o:0:1:1:0: ++%*8o:0:0:1: ++%8o:00:1:2:0: ++%*8o:00:0:2: ++%8o:1:1:1:1: ++%*8o:1:0:1: ++%8o:01:1:2:1: ++%*8o:01:0:2: ++%8o:52:1:2:42: ++%*8o:52:0:2: ++%8o:052:1:3:42: ++%*8o:052:0:3: ++%8o:37777777777:1:8:8388607: ++%*8o:37777777777:0:8: ++%8o:037777777777:1:8:1048575: ++%*8o:037777777777:0:8: ++%8o:40000000000:1:8:8388608: ++%*8o:40000000000:0:8: ++%8o:040000000000:1:8:1048576: ++%*8o:040000000000:0:8: ++%8o:40000010221:1:8:8388616: ++%*8o:40000010221:0:8: ++%8o:040000010221:1:8:1048577: ++%*8o:040000010221:0:8: ++%8o:+0:1:2:0: ++%*8o:+0:0:2: ++%8o:+00:1:3:0: ++%*8o:+00:0:3: ++%8o:+1:1:2:1: ++%*8o:+1:0:2: ++%8o:+01:1:3:1: ++%*8o:+01:0:3: ++%8o:+52:1:3:42: ++%*8o:+52:0:3: ++%8o:+052:1:4:42: ++%*8o:+052:0:4: ++%8o:+37777777777:1:8:1048575: ++%*8o:+37777777777:0:8: ++%8o:+037777777777:1:8:131071: ++%*8o:+037777777777:0:8: ++%8o:+40000000000:1:8:1048576: ++%*8o:+40000000000:0:8: ++%8o:+040000000000:1:8:131072: ++%*8o:+040000000000:0:8: ++%8o:+40000010221:1:8:1048577: ++%*8o:+40000010221:0:8: ++%8o:+040000010221:1:8:131072: ++%*8o:+040000010221:0:8: ++%15o::0:-1: ++%*15o::0:-1: ++%15o:-173:1:4:4294967173: ++%*15o:-173:0:4: ++%15o:-0173:1:5:4294967173: ++%*15o:-0173:0:5: ++%15o:-1:1:2:4294967295: ++%*15o:-1:0:2: ++%15o:-01:1:3:4294967295: ++%*15o:-01:0:3: ++%15o:-0:1:2:0: ++%*15o:-0:0:2: ++%15o:-00:1:3:0: ++%*15o:-00:0:3: ++%15o:0:1:1:0: ++%*15o:0:0:1: ++%15o:00:1:2:0: ++%*15o:00:0:2: ++%15o:1:1:1:1: ++%*15o:1:0:1: ++%15o:01:1:2:1: ++%*15o:01:0:2: ++%15o:52:1:2:42: ++%*15o:52:0:2: ++%15o:052:1:3:42: ++%*15o:052:0:3: ++%15o:37777777777:1:11:4294967295: ++%*15o:37777777777:0:11: ++%15o:037777777777:1:12:4294967295: ++%*15o:037777777777:0:12: ++%15o:40000000000:1:11:4294967295: ++%*15o:40000000000:0:11: ++%15o:040000000000:1:12:4294967295: ++%*15o:040000000000:0:12: ++%15o:40000010221:1:11:4294967295: ++%*15o:40000010221:0:11: ++%15o:040000010221:1:12:4294967295: ++%*15o:040000010221:0:12: ++%15o:+0:1:2:0: ++%*15o:+0:0:2: ++%15o:+00:1:3:0: ++%*15o:+00:0:3: ++%15o:+1:1:2:1: ++%*15o:+1:0:2: ++%15o:+01:1:3:1: ++%*15o:+01:0:3: ++%15o:+52:1:3:42: ++%*15o:+52:0:3: ++%15o:+052:1:4:42: ++%*15o:+052:0:4: ++%15o:+37777777777:1:12:4294967295: ++%*15o:+37777777777:0:12: ++%15o:+037777777777:1:13:4294967295: ++%*15o:+037777777777:0:13: ++%15o:+40000000000:1:12:4294967295: ++%*15o:+40000000000:0:12: ++%15o:+040000000000:1:13:4294967295: ++%*15o:+040000000000:0:13: ++%15o:+40000010221:1:12:4294967295: ++%*15o:+40000010221:0:12: ++%15o:+040000010221:1:13:4294967295: ++%*15o:+040000010221:0:13: ++%2o: :0:-1: ++%*2o: :0:-1: ++%2o: -173:1:3:4294967295: ++%*2o: -173:0:3: ++%2o: -0173:1:3:0: ++%*2o: -0173:0:3: ++%2o: -1:1:3:4294967295: ++%*2o: -1:0:3: ++%2o: -01:1:3:0: ++%*2o: -01:0:3: ++%2o: -0:1:3:0: ++%*2o: -0:0:3: ++%2o: -00:1:3:0: ++%*2o: -00:0:3: ++%2o: 0:1:2:0: ++%*2o: 0:0:2: ++%2o: 00:1:3:0: ++%*2o: 00:0:3: ++%2o: 1:1:2:1: ++%*2o: 1:0:2: ++%2o: 01:1:3:1: ++%*2o: 01:0:3: ++%2o: 52:1:3:42: ++%*2o: 52:0:3: ++%2o: 052:1:3:5: ++%*2o: 052:0:3: ++%2o: 37777777777:1:3:31: ++%*2o: 37777777777:0:3: ++%2o: 037777777777:1:3:3: ++%*2o: 037777777777:0:3: ++%2o: 40000000000:1:3:32: ++%*2o: 40000000000:0:3: ++%2o: 040000000000:1:3:4: ++%*2o: 040000000000:0:3: ++%2o: 40000010221:1:3:32: ++%*2o: 40000010221:0:3: ++%2o: 040000010221:1:3:4: ++%*2o: 040000010221:0:3: ++%2o: +0:1:3:0: ++%*2o: +0:0:3: ++%2o: +00:1:3:0: ++%*2o: +00:0:3: ++%2o: +1:1:3:1: ++%*2o: +1:0:3: ++%2o: +01:1:3:0: ++%*2o: +01:0:3: ++%2o: +52:1:3:5: ++%*2o: +52:0:3: ++%2o: +052:1:3:0: ++%*2o: +052:0:3: ++%2o: +37777777777:1:3:3: ++%*2o: +37777777777:0:3: ++%2o: +037777777777:1:3:0: ++%*2o: +037777777777:0:3: ++%2o: +40000000000:1:3:4: ++%*2o: +40000000000:0:3: ++%2o: +040000000000:1:3:0: ++%*2o: +040000000000:0:3: ++%2o: +40000010221:1:3:4: ++%*2o: +40000010221:0:3: ++%2o: +040000010221:1:3:0: ++%*2o: +040000010221:0:3: ++%15o: :0:-1: ++%*15o: :0:-1: ++%15o: -173:1:5:4294967173: ++%*15o: -173:0:5: ++%15o: -0173:1:6:4294967173: ++%*15o: -0173:0:6: ++%15o: -1:1:3:4294967295: ++%*15o: -1:0:3: ++%15o: -01:1:4:4294967295: ++%*15o: -01:0:4: ++%15o: -0:1:3:0: ++%*15o: -0:0:3: ++%15o: -00:1:4:0: ++%*15o: -00:0:4: ++%15o: 0:1:2:0: ++%*15o: 0:0:2: ++%15o: 00:1:3:0: ++%*15o: 00:0:3: ++%15o: 1:1:2:1: ++%*15o: 1:0:2: ++%15o: 01:1:3:1: ++%*15o: 01:0:3: ++%15o: 52:1:3:42: ++%*15o: 52:0:3: ++%15o: 052:1:4:42: ++%*15o: 052:0:4: ++%15o: 37777777777:1:12:4294967295: ++%*15o: 37777777777:0:12: ++%15o: 037777777777:1:13:4294967295: ++%*15o: 037777777777:0:13: ++%15o: 40000000000:1:12:4294967295: ++%*15o: 40000000000:0:12: ++%15o: 040000000000:1:13:4294967295: ++%*15o: 040000000000:0:13: ++%15o: 40000010221:1:12:4294967295: ++%*15o: 40000010221:0:12: ++%15o: 040000010221:1:13:4294967295: ++%*15o: 040000010221:0:13: ++%15o: +0:1:3:0: ++%*15o: +0:0:3: ++%15o: +00:1:4:0: ++%*15o: +00:0:4: ++%15o: +1:1:3:1: ++%*15o: +1:0:3: ++%15o: +01:1:4:1: ++%*15o: +01:0:4: ++%15o: +52:1:4:42: ++%*15o: +52:0:4: ++%15o: +052:1:5:42: ++%*15o: +052:0:5: ++%15o: +37777777777:1:13:4294967295: ++%*15o: +37777777777:0:13: ++%15o: +037777777777:1:14:4294967295: ++%*15o: +037777777777:0:14: ++%15o: +40000000000:1:13:4294967295: ++%*15o: +40000000000:0:13: ++%15o: +040000000000:1:14:4294967295: ++%*15o: +040000000000:0:14: ++%15o: +40000010221:1:13:4294967295: ++%*15o: +40000010221:0:13: ++%15o: +040000010221:1:14:4294967295: ++%*15o: +040000010221:0:14: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-u.input b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input +new file mode 100644 +index 0000000000000000..d2e04fd43c24ad28 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input +@@ -0,0 +1,224 @@ ++%u::0:-1: ++%*u::0:-1: ++%u:-123:1:4:4294967173: ++%*u:-123:0:4: ++%u:-1:1:2:4294967295: ++%*u:-1:0:2: ++%u:-0:1:2:0: ++%*u:-0:0:2: ++%u:0:1:1:0: ++%*u:0:0:1: ++%u:1:1:1:1: ++%*u:1:0:1: ++%u:42:1:2:42: ++%*u:42:0:2: ++%u:4294967295:1:10:4294967295: ++%*u:4294967295:0:10: ++%u:4294967296:1:10:4294967295: ++%*u:4294967296:0:10: ++%u:4294971537:1:10:4294967295: ++%*u:4294971537:0:10: ++%u:+0:1:2:0: ++%*u:+0:0:2: ++%u:+1:1:2:1: ++%*u:+1:0:2: ++%u:+42:1:3:42: ++%*u:+42:0:3: ++%u:+4294967295:1:11:4294967295: ++%*u:+4294967295:0:11: ++%u:+4294967296:1:11:4294967295: ++%*u:+4294967296:0:11: ++%u:+4294971537:1:11:4294967295: ++%*u:+4294971537:0:11: ++%1u::0:-1: ++%*1u::0:-1: ++%1u:-123:0:-1: ++%*1u:-123:0:-1: ++%1u:-1:0:-1: ++%*1u:-1:0:-1: ++%1u:-0:0:-1: ++%*1u:-0:0:-1: ++%1u:0:1:1:0: ++%*1u:0:0:1: ++%1u:1:1:1:1: ++%*1u:1:0:1: ++%1u:42:1:1:4: ++%*1u:42:0:1: ++%1u:4294967295:1:1:4: ++%*1u:4294967295:0:1: ++%1u:4294967296:1:1:4: ++%*1u:4294967296:0:1: ++%1u:4294971537:1:1:4: ++%*1u:4294971537:0:1: ++%1u:+0:0:-1: ++%*1u:+0:0:-1: ++%1u:+1:0:-1: ++%*1u:+1:0:-1: ++%1u:+42:0:-1: ++%*1u:+42:0:-1: ++%1u:+4294967295:0:-1: ++%*1u:+4294967295:0:-1: ++%1u:+4294967296:0:-1: ++%*1u:+4294967296:0:-1: ++%1u:+4294971537:0:-1: ++%*1u:+4294971537:0:-1: ++%2u::0:-1: ++%*2u::0:-1: ++%2u:-123:1:2:4294967295: ++%*2u:-123:0:2: ++%2u:-1:1:2:4294967295: ++%*2u:-1:0:2: ++%2u:-0:1:2:0: ++%*2u:-0:0:2: ++%2u:0:1:1:0: ++%*2u:0:0:1: ++%2u:1:1:1:1: ++%*2u:1:0:1: ++%2u:42:1:2:42: ++%*2u:42:0:2: ++%2u:4294967295:1:2:42: ++%*2u:4294967295:0:2: ++%2u:4294967296:1:2:42: ++%*2u:4294967296:0:2: ++%2u:4294971537:1:2:42: ++%*2u:4294971537:0:2: ++%2u:+0:1:2:0: ++%*2u:+0:0:2: ++%2u:+1:1:2:1: ++%*2u:+1:0:2: ++%2u:+42:1:2:4: ++%*2u:+42:0:2: ++%2u:+4294967295:1:2:4: ++%*2u:+4294967295:0:2: ++%2u:+4294967296:1:2:4: ++%*2u:+4294967296:0:2: ++%2u:+4294971537:1:2:4: ++%*2u:+4294971537:0:2: ++%8u::0:-1: ++%*8u::0:-1: ++%8u:-123:1:4:4294967173: ++%*8u:-123:0:4: ++%8u:-1:1:2:4294967295: ++%*8u:-1:0:2: ++%8u:-0:1:2:0: ++%*8u:-0:0:2: ++%8u:0:1:1:0: ++%*8u:0:0:1: ++%8u:1:1:1:1: ++%*8u:1:0:1: ++%8u:42:1:2:42: ++%*8u:42:0:2: ++%8u:4294967295:1:8:42949672: ++%*8u:4294967295:0:8: ++%8u:4294967296:1:8:42949672: ++%*8u:4294967296:0:8: ++%8u:4294971537:1:8:42949715: ++%*8u:4294971537:0:8: ++%8u:+0:1:2:0: ++%*8u:+0:0:2: ++%8u:+1:1:2:1: ++%*8u:+1:0:2: ++%8u:+42:1:3:42: ++%*8u:+42:0:3: ++%8u:+4294967295:1:8:4294967: ++%*8u:+4294967295:0:8: ++%8u:+4294967296:1:8:4294967: ++%*8u:+4294967296:0:8: ++%8u:+4294971537:1:8:4294971: ++%*8u:+4294971537:0:8: ++%15u::0:-1: ++%*15u::0:-1: ++%15u:-123:1:4:4294967173: ++%*15u:-123:0:4: ++%15u:-1:1:2:4294967295: ++%*15u:-1:0:2: ++%15u:-0:1:2:0: ++%*15u:-0:0:2: ++%15u:0:1:1:0: ++%*15u:0:0:1: ++%15u:1:1:1:1: ++%*15u:1:0:1: ++%15u:42:1:2:42: ++%*15u:42:0:2: ++%15u:4294967295:1:10:4294967295: ++%*15u:4294967295:0:10: ++%15u:4294967296:1:10:4294967295: ++%*15u:4294967296:0:10: ++%15u:4294971537:1:10:4294967295: ++%*15u:4294971537:0:10: ++%15u:+0:1:2:0: ++%*15u:+0:0:2: ++%15u:+1:1:2:1: ++%*15u:+1:0:2: ++%15u:+42:1:3:42: ++%*15u:+42:0:3: ++%15u:+4294967295:1:11:4294967295: ++%*15u:+4294967295:0:11: ++%15u:+4294967296:1:11:4294967295: ++%*15u:+4294967296:0:11: ++%15u:+4294971537:1:11:4294967295: ++%*15u:+4294971537:0:11: ++%2u: :0:-1: ++%*2u: :0:-1: ++%2u: -123:1:3:4294967295: ++%*2u: -123:0:3: ++%2u: -1:1:3:4294967295: ++%*2u: -1:0:3: ++%2u: -0:1:3:0: ++%*2u: -0:0:3: ++%2u: 0:1:2:0: ++%*2u: 0:0:2: ++%2u: 1:1:2:1: ++%*2u: 1:0:2: ++%2u: 42:1:3:42: ++%*2u: 42:0:3: ++%2u: 4294967295:1:3:42: ++%*2u: 4294967295:0:3: ++%2u: 4294967296:1:3:42: ++%*2u: 4294967296:0:3: ++%2u: 4294971537:1:3:42: ++%*2u: 4294971537:0:3: ++%2u: +0:1:3:0: ++%*2u: +0:0:3: ++%2u: +1:1:3:1: ++%*2u: +1:0:3: ++%2u: +42:1:3:4: ++%*2u: +42:0:3: ++%2u: +4294967295:1:3:4: ++%*2u: +4294967295:0:3: ++%2u: +4294967296:1:3:4: ++%*2u: +4294967296:0:3: ++%2u: +4294971537:1:3:4: ++%*2u: +4294971537:0:3: ++%15u: :0:-1: ++%*15u: :0:-1: ++%15u: -123:1:5:4294967173: ++%*15u: -123:0:5: ++%15u: -1:1:3:4294967295: ++%*15u: -1:0:3: ++%15u: -0:1:3:0: ++%*15u: -0:0:3: ++%15u: 0:1:2:0: ++%*15u: 0:0:2: ++%15u: 1:1:2:1: ++%*15u: 1:0:2: ++%15u: 42:1:3:42: ++%*15u: 42:0:3: ++%15u: 4294967295:1:11:4294967295: ++%*15u: 4294967295:0:11: ++%15u: 4294967296:1:11:4294967295: ++%*15u: 4294967296:0:11: ++%15u: 4294971537:1:11:4294967295: ++%*15u: 4294971537:0:11: ++%15u: +0:1:3:0: ++%*15u: +0:0:3: ++%15u: +1:1:3:1: ++%*15u: +1:0:3: ++%15u: +42:1:4:42: ++%*15u: +42:0:4: ++%15u: +4294967295:1:12:4294967295: ++%*15u: +4294967295:0:12: ++%15u: +4294967296:1:12:4294967295: ++%*15u: +4294967296:0:12: ++%15u: +4294971537:1:12:4294967295: ++%*15u: +4294971537:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-x.input b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input +new file mode 100644 +index 0000000000000000..066318d40e26b720 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input +@@ -0,0 +1,714 @@ ++%x::0:-1: ++%*x::0:-1: ++%x:-7b:1:3:4294967173: ++%*x:-7b:0:3: ++%x:-7B:1:3:4294967173: ++%*x:-7B:0:3: ++%x:-0X7b:1:5:4294967173: ++%*x:-0X7b:0:5: ++%x:-0x7B:1:5:4294967173: ++%*x:-0x7B:0:5: ++%x:-1:1:2:4294967295: ++%*x:-1:0:2: ++%x:-0X1:1:4:4294967295: ++%*x:-0X1:0:4: ++%x:-0x1:1:4:4294967295: ++%*x:-0x1:0:4: ++%x:-0:1:2:0: ++%*x:-0:0:2: ++%x:-0X0:1:4:0: ++%*x:-0X0:0:4: ++%x:-0x0:1:4:0: ++%*x:-0x0:0:4: ++%x:0:1:1:0: ++%*x:0:0:1: ++%x:0X0:1:3:0: ++%*x:0X0:0:3: ++%x:0x0:1:3:0: ++%*x:0x0:0:3: ++%x:1:1:1:1: ++%*x:1:0:1: ++%x:0X1:1:3:1: ++%*x:0X1:0:3: ++%x:0x1:1:3:1: ++%*x:0x1:0:3: ++%x:2a:1:2:42: ++%*x:2a:0:2: ++%x:2A:1:2:42: ++%*x:2A:0:2: ++%x:0X2a:1:4:42: ++%*x:0X2a:0:4: ++%x:0x2A:1:4:42: ++%*x:0x2A:0:4: ++%x:ffffffff:1:8:4294967295: ++%*x:ffffffff:0:8: ++%x:FFFFFFFF:1:8:4294967295: ++%*x:FFFFFFFF:0:8: ++%x:0Xffffffff:1:10:4294967295: ++%*x:0Xffffffff:0:10: ++%x:0xFFFFFFFF:1:10:4294967295: ++%*x:0xFFFFFFFF:0:10: ++%x:100000000:1:9:4294967295: ++%*x:100000000:0:9: ++%x:0X100000000:1:11:4294967295: ++%*x:0X100000000:0:11: ++%x:0x100000000:1:11:4294967295: ++%*x:0x100000000:0:11: ++%x:100001091:1:9:4294967295: ++%*x:100001091:0:9: ++%x:0X100001091:1:11:4294967295: ++%*x:0X100001091:0:11: ++%x:0x100001091:1:11:4294967295: ++%*x:0x100001091:0:11: ++%x:+0:1:2:0: ++%*x:+0:0:2: ++%x:+0X0:1:4:0: ++%*x:+0X0:0:4: ++%x:+0x0:1:4:0: ++%*x:+0x0:0:4: ++%x:+1:1:2:1: ++%*x:+1:0:2: ++%x:+0X1:1:4:1: ++%*x:+0X1:0:4: ++%x:+0x1:1:4:1: ++%*x:+0x1:0:4: ++%x:+2a:1:3:42: ++%*x:+2a:0:3: ++%x:+2A:1:3:42: ++%*x:+2A:0:3: ++%x:+0X2a:1:5:42: ++%*x:+0X2a:0:5: ++%x:+0x2A:1:5:42: ++%*x:+0x2A:0:5: ++%x:+ffffffff:1:9:4294967295: ++%*x:+ffffffff:0:9: ++%x:+FFFFFFFF:1:9:4294967295: ++%*x:+FFFFFFFF:0:9: ++%x:+0Xffffffff:1:11:4294967295: ++%*x:+0Xffffffff:0:11: ++%x:+0xFFFFFFFF:1:11:4294967295: ++%*x:+0xFFFFFFFF:0:11: ++%x:+100000000:1:10:4294967295: ++%*x:+100000000:0:10: ++%x:+0X100000000:1:12:4294967295: ++%*x:+0X100000000:0:12: ++%x:+0x100000000:1:12:4294967295: ++%*x:+0x100000000:0:12: ++%x:+100001091:1:10:4294967295: ++%*x:+100001091:0:10: ++%x:+0X100001091:1:12:4294967295: ++%*x:+0X100001091:0:12: ++%x:+0x100001091:1:12:4294967295: ++%*x:+0x100001091:0:12: ++%1x::0:-1: ++%*1x::0:-1: ++%1x:-7b:0:-1: ++%*1x:-7b:0:-1: ++%1x:-7B:0:-1: ++%*1x:-7B:0:-1: ++%1x:-0X7b:0:-1: ++%*1x:-0X7b:0:-1: ++%1x:-0x7B:0:-1: ++%*1x:-0x7B:0:-1: ++%1x:-1:0:-1: ++%*1x:-1:0:-1: ++%1x:-0X1:0:-1: ++%*1x:-0X1:0:-1: ++%1x:-0x1:0:-1: ++%*1x:-0x1:0:-1: ++%1x:-0:0:-1: ++%*1x:-0:0:-1: ++%1x:-0X0:0:-1: ++%*1x:-0X0:0:-1: ++%1x:-0x0:0:-1: ++%*1x:-0x0:0:-1: ++%1x:0:1:1:0: ++%*1x:0:0:1: ++%1x:0X0:1:1:0: ++%*1x:0X0:0:1: ++%1x:0x0:1:1:0: ++%*1x:0x0:0:1: ++%1x:1:1:1:1: ++%*1x:1:0:1: ++%1x:0X1:1:1:0: ++%*1x:0X1:0:1: ++%1x:0x1:1:1:0: ++%*1x:0x1:0:1: ++%1x:2a:1:1:2: ++%*1x:2a:0:1: ++%1x:2A:1:1:2: ++%*1x:2A:0:1: ++%1x:0X2a:1:1:0: ++%*1x:0X2a:0:1: ++%1x:0x2A:1:1:0: ++%*1x:0x2A:0:1: ++%1x:ffffffff:1:1:15: ++%*1x:ffffffff:0:1: ++%1x:FFFFFFFF:1:1:15: ++%*1x:FFFFFFFF:0:1: ++%1x:0Xffffffff:1:1:0: ++%*1x:0Xffffffff:0:1: ++%1x:0xFFFFFFFF:1:1:0: ++%*1x:0xFFFFFFFF:0:1: ++%1x:100000000:1:1:1: ++%*1x:100000000:0:1: ++%1x:0X100000000:1:1:0: ++%*1x:0X100000000:0:1: ++%1x:0x100000000:1:1:0: ++%*1x:0x100000000:0:1: ++%1x:100001091:1:1:1: ++%*1x:100001091:0:1: ++%1x:0X100001091:1:1:0: ++%*1x:0X100001091:0:1: ++%1x:0x100001091:1:1:0: ++%*1x:0x100001091:0:1: ++%1x:+0:0:-1: ++%*1x:+0:0:-1: ++%1x:+0X0:0:-1: ++%*1x:+0X0:0:-1: ++%1x:+0x0:0:-1: ++%*1x:+0x0:0:-1: ++%1x:+1:0:-1: ++%*1x:+1:0:-1: ++%1x:+0X1:0:-1: ++%*1x:+0X1:0:-1: ++%1x:+0x1:0:-1: ++%*1x:+0x1:0:-1: ++%1x:+2a:0:-1: ++%*1x:+2a:0:-1: ++%1x:+2A:0:-1: ++%*1x:+2A:0:-1: ++%1x:+0X2a:0:-1: ++%*1x:+0X2a:0:-1: ++%1x:+0x2A:0:-1: ++%*1x:+0x2A:0:-1: ++%1x:+ffffffff:0:-1: ++%*1x:+ffffffff:0:-1: ++%1x:+FFFFFFFF:0:-1: ++%*1x:+FFFFFFFF:0:-1: ++%1x:+0Xffffffff:0:-1: ++%*1x:+0Xffffffff:0:-1: ++%1x:+0xFFFFFFFF:0:-1: ++%*1x:+0xFFFFFFFF:0:-1: ++%1x:+100000000:0:-1: ++%*1x:+100000000:0:-1: ++%1x:+0X100000000:0:-1: ++%*1x:+0X100000000:0:-1: ++%1x:+0x100000000:0:-1: ++%*1x:+0x100000000:0:-1: ++%1x:+100001091:0:-1: ++%*1x:+100001091:0:-1: ++%1x:+0X100001091:0:-1: ++%*1x:+0X100001091:0:-1: ++%1x:+0x100001091:0:-1: ++%*1x:+0x100001091:0:-1: ++%2x::0:-1: ++%*2x::0:-1: ++%2x:-7b:1:2:4294967289: ++%*2x:-7b:0:2: ++%2x:-7B:1:2:4294967289: ++%*2x:-7B:0:2: ++%2x:-0X7b:1:2:0: ++%*2x:-0X7b:0:2: ++%2x:-0x7B:1:2:0: ++%*2x:-0x7B:0:2: ++%2x:-1:1:2:4294967295: ++%*2x:-1:0:2: ++%2x:-0X1:1:2:0: ++%*2x:-0X1:0:2: ++%2x:-0x1:1:2:0: ++%*2x:-0x1:0:2: ++%2x:-0:1:2:0: ++%*2x:-0:0:2: ++%2x:-0X0:1:2:0: ++%*2x:-0X0:0:2: ++%2x:-0x0:1:2:0: ++%*2x:-0x0:0:2: ++%2x:0:1:1:0: ++%*2x:0:0:1: ++# BZ12701 %2x:0X0:0:-1: ++# BZ12701 %*2x:0X0:0:-1: ++# BZ12701 %2x:0x0:0:-1: ++# BZ12701 %*2x:0x0:0:-1: ++%2x:1:1:1:1: ++%*2x:1:0:1: ++# BZ12701 %2x:0X1:0:-1: ++# BZ12701 %*2x:0X1:0:-1: ++# BZ12701 %2x:0x1:0:-1: ++# BZ12701 %*2x:0x1:0:-1: ++%2x:2a:1:2:42: ++%*2x:2a:0:2: ++%2x:2A:1:2:42: ++%*2x:2A:0:2: ++# BZ12701 %2x:0X2a:0:-1: ++# BZ12701 %*2x:0X2a:0:-1: ++# BZ12701 %2x:0x2A:0:-1: ++# BZ12701 %*2x:0x2A:0:-1: ++%2x:ffffffff:1:2:255: ++%*2x:ffffffff:0:2: ++%2x:FFFFFFFF:1:2:255: ++%*2x:FFFFFFFF:0:2: ++# BZ12701 %2x:0Xffffffff:0:-1: ++# BZ12701 %*2x:0Xffffffff:0:-1: ++# BZ12701 %2x:0xFFFFFFFF:0:-1: ++# BZ12701 %*2x:0xFFFFFFFF:0:-1: ++%2x:100000000:1:2:16: ++%*2x:100000000:0:2: ++# BZ12701 %2x:0X100000000:0:-1: ++# BZ12701 %*2x:0X100000000:0:-1: ++# BZ12701 %2x:0x100000000:0:-1: ++# BZ12701 %*2x:0x100000000:0:-1: ++%2x:100001091:1:2:16: ++%*2x:100001091:0:2: ++# BZ12701 %2x:0X100001091:0:-1: ++# BZ12701 %*2x:0X100001091:0:-1: ++# BZ12701 %2x:0x100001091:0:-1: ++# BZ12701 %*2x:0x100001091:0:-1: ++%2x:+0:1:2:0: ++%*2x:+0:0:2: ++%2x:+0X0:1:2:0: ++%*2x:+0X0:0:2: ++%2x:+0x0:1:2:0: ++%*2x:+0x0:0:2: ++%2x:+1:1:2:1: ++%*2x:+1:0:2: ++%2x:+0X1:1:2:0: ++%*2x:+0X1:0:2: ++%2x:+0x1:1:2:0: ++%*2x:+0x1:0:2: ++%2x:+2a:1:2:2: ++%*2x:+2a:0:2: ++%2x:+2A:1:2:2: ++%*2x:+2A:0:2: ++%2x:+0X2a:1:2:0: ++%*2x:+0X2a:0:2: ++%2x:+0x2A:1:2:0: ++%*2x:+0x2A:0:2: ++%2x:+ffffffff:1:2:15: ++%*2x:+ffffffff:0:2: ++%2x:+FFFFFFFF:1:2:15: ++%*2x:+FFFFFFFF:0:2: ++%2x:+0Xffffffff:1:2:0: ++%*2x:+0Xffffffff:0:2: ++%2x:+0xFFFFFFFF:1:2:0: ++%*2x:+0xFFFFFFFF:0:2: ++%2x:+100000000:1:2:1: ++%*2x:+100000000:0:2: ++%2x:+0X100000000:1:2:0: ++%*2x:+0X100000000:0:2: ++%2x:+0x100000000:1:2:0: ++%*2x:+0x100000000:0:2: ++%2x:+100001091:1:2:1: ++%*2x:+100001091:0:2: ++%2x:+0X100001091:1:2:0: ++%*2x:+0X100001091:0:2: ++%2x:+0x100001091:1:2:0: ++%*2x:+0x100001091:0:2: ++%8x::0:-1: ++%*8x::0:-1: ++%8x:-7b:1:3:4294967173: ++%*8x:-7b:0:3: ++%8x:-7B:1:3:4294967173: ++%*8x:-7B:0:3: ++%8x:-0X7b:1:5:4294967173: ++%*8x:-0X7b:0:5: ++%8x:-0x7B:1:5:4294967173: ++%*8x:-0x7B:0:5: ++%8x:-1:1:2:4294967295: ++%*8x:-1:0:2: ++%8x:-0X1:1:4:4294967295: ++%*8x:-0X1:0:4: ++%8x:-0x1:1:4:4294967295: ++%*8x:-0x1:0:4: ++%8x:-0:1:2:0: ++%*8x:-0:0:2: ++%8x:-0X0:1:4:0: ++%*8x:-0X0:0:4: ++%8x:-0x0:1:4:0: ++%*8x:-0x0:0:4: ++%8x:0:1:1:0: ++%*8x:0:0:1: ++%8x:0X0:1:3:0: ++%*8x:0X0:0:3: ++%8x:0x0:1:3:0: ++%*8x:0x0:0:3: ++%8x:1:1:1:1: ++%*8x:1:0:1: ++%8x:0X1:1:3:1: ++%*8x:0X1:0:3: ++%8x:0x1:1:3:1: ++%*8x:0x1:0:3: ++%8x:2a:1:2:42: ++%*8x:2a:0:2: ++%8x:2A:1:2:42: ++%*8x:2A:0:2: ++%8x:0X2a:1:4:42: ++%*8x:0X2a:0:4: ++%8x:0x2A:1:4:42: ++%*8x:0x2A:0:4: ++%8x:ffffffff:1:8:4294967295: ++%*8x:ffffffff:0:8: ++%8x:FFFFFFFF:1:8:4294967295: ++%*8x:FFFFFFFF:0:8: ++%8x:0Xffffffff:1:8:16777215: ++%*8x:0Xffffffff:0:8: ++%8x:0xFFFFFFFF:1:8:16777215: ++%*8x:0xFFFFFFFF:0:8: ++%8x:100000000:1:8:268435456: ++%*8x:100000000:0:8: ++%8x:0X100000000:1:8:1048576: ++%*8x:0X100000000:0:8: ++%8x:0x100000000:1:8:1048576: ++%*8x:0x100000000:0:8: ++%8x:100001091:1:8:268435721: ++%*8x:100001091:0:8: ++%8x:0X100001091:1:8:1048577: ++%*8x:0X100001091:0:8: ++%8x:0x100001091:1:8:1048577: ++%*8x:0x100001091:0:8: ++%8x:+0:1:2:0: ++%*8x:+0:0:2: ++%8x:+0X0:1:4:0: ++%*8x:+0X0:0:4: ++%8x:+0x0:1:4:0: ++%*8x:+0x0:0:4: ++%8x:+1:1:2:1: ++%*8x:+1:0:2: ++%8x:+0X1:1:4:1: ++%*8x:+0X1:0:4: ++%8x:+0x1:1:4:1: ++%*8x:+0x1:0:4: ++%8x:+2a:1:3:42: ++%*8x:+2a:0:3: ++%8x:+2A:1:3:42: ++%*8x:+2A:0:3: ++%8x:+0X2a:1:5:42: ++%*8x:+0X2a:0:5: ++%8x:+0x2A:1:5:42: ++%*8x:+0x2A:0:5: ++%8x:+ffffffff:1:8:268435455: ++%*8x:+ffffffff:0:8: ++%8x:+FFFFFFFF:1:8:268435455: ++%*8x:+FFFFFFFF:0:8: ++%8x:+0Xffffffff:1:8:1048575: ++%*8x:+0Xffffffff:0:8: ++%8x:+0xFFFFFFFF:1:8:1048575: ++%*8x:+0xFFFFFFFF:0:8: ++%8x:+100000000:1:8:16777216: ++%*8x:+100000000:0:8: ++%8x:+0X100000000:1:8:65536: ++%*8x:+0X100000000:0:8: ++%8x:+0x100000000:1:8:65536: ++%*8x:+0x100000000:0:8: ++%8x:+100001091:1:8:16777232: ++%*8x:+100001091:0:8: ++%8x:+0X100001091:1:8:65536: ++%*8x:+0X100001091:0:8: ++%8x:+0x100001091:1:8:65536: ++%*8x:+0x100001091:0:8: ++%15x::0:-1: ++%*15x::0:-1: ++%15x:-7b:1:3:4294967173: ++%*15x:-7b:0:3: ++%15x:-7B:1:3:4294967173: ++%*15x:-7B:0:3: ++%15x:-0X7b:1:5:4294967173: ++%*15x:-0X7b:0:5: ++%15x:-0x7B:1:5:4294967173: ++%*15x:-0x7B:0:5: ++%15x:-1:1:2:4294967295: ++%*15x:-1:0:2: ++%15x:-0X1:1:4:4294967295: ++%*15x:-0X1:0:4: ++%15x:-0x1:1:4:4294967295: ++%*15x:-0x1:0:4: ++%15x:-0:1:2:0: ++%*15x:-0:0:2: ++%15x:-0X0:1:4:0: ++%*15x:-0X0:0:4: ++%15x:-0x0:1:4:0: ++%*15x:-0x0:0:4: ++%15x:0:1:1:0: ++%*15x:0:0:1: ++%15x:0X0:1:3:0: ++%*15x:0X0:0:3: ++%15x:0x0:1:3:0: ++%*15x:0x0:0:3: ++%15x:1:1:1:1: ++%*15x:1:0:1: ++%15x:0X1:1:3:1: ++%*15x:0X1:0:3: ++%15x:0x1:1:3:1: ++%*15x:0x1:0:3: ++%15x:2a:1:2:42: ++%*15x:2a:0:2: ++%15x:2A:1:2:42: ++%*15x:2A:0:2: ++%15x:0X2a:1:4:42: ++%*15x:0X2a:0:4: ++%15x:0x2A:1:4:42: ++%*15x:0x2A:0:4: ++%15x:ffffffff:1:8:4294967295: ++%*15x:ffffffff:0:8: ++%15x:FFFFFFFF:1:8:4294967295: ++%*15x:FFFFFFFF:0:8: ++%15x:0Xffffffff:1:10:4294967295: ++%*15x:0Xffffffff:0:10: ++%15x:0xFFFFFFFF:1:10:4294967295: ++%*15x:0xFFFFFFFF:0:10: ++%15x:100000000:1:9:4294967295: ++%*15x:100000000:0:9: ++%15x:0X100000000:1:11:4294967295: ++%*15x:0X100000000:0:11: ++%15x:0x100000000:1:11:4294967295: ++%*15x:0x100000000:0:11: ++%15x:100001091:1:9:4294967295: ++%*15x:100001091:0:9: ++%15x:0X100001091:1:11:4294967295: ++%*15x:0X100001091:0:11: ++%15x:0x100001091:1:11:4294967295: ++%*15x:0x100001091:0:11: ++%15x:+0:1:2:0: ++%*15x:+0:0:2: ++%15x:+0X0:1:4:0: ++%*15x:+0X0:0:4: ++%15x:+0x0:1:4:0: ++%*15x:+0x0:0:4: ++%15x:+1:1:2:1: ++%*15x:+1:0:2: ++%15x:+0X1:1:4:1: ++%*15x:+0X1:0:4: ++%15x:+0x1:1:4:1: ++%*15x:+0x1:0:4: ++%15x:+2a:1:3:42: ++%*15x:+2a:0:3: ++%15x:+2A:1:3:42: ++%*15x:+2A:0:3: ++%15x:+0X2a:1:5:42: ++%*15x:+0X2a:0:5: ++%15x:+0x2A:1:5:42: ++%*15x:+0x2A:0:5: ++%15x:+ffffffff:1:9:4294967295: ++%*15x:+ffffffff:0:9: ++%15x:+FFFFFFFF:1:9:4294967295: ++%*15x:+FFFFFFFF:0:9: ++%15x:+0Xffffffff:1:11:4294967295: ++%*15x:+0Xffffffff:0:11: ++%15x:+0xFFFFFFFF:1:11:4294967295: ++%*15x:+0xFFFFFFFF:0:11: ++%15x:+100000000:1:10:4294967295: ++%*15x:+100000000:0:10: ++%15x:+0X100000000:1:12:4294967295: ++%*15x:+0X100000000:0:12: ++%15x:+0x100000000:1:12:4294967295: ++%*15x:+0x100000000:0:12: ++%15x:+100001091:1:10:4294967295: ++%*15x:+100001091:0:10: ++%15x:+0X100001091:1:12:4294967295: ++%*15x:+0X100001091:0:12: ++%15x:+0x100001091:1:12:4294967295: ++%*15x:+0x100001091:0:12: ++%2x: :0:-1: ++%*2x: :0:-1: ++%2x: -7b:1:3:4294967289: ++%*2x: -7b:0:3: ++%2x: -7B:1:3:4294967289: ++%*2x: -7B:0:3: ++%2x: -0X7b:1:3:0: ++%*2x: -0X7b:0:3: ++%2x: -0x7B:1:3:0: ++%*2x: -0x7B:0:3: ++%2x: -1:1:3:4294967295: ++%*2x: -1:0:3: ++%2x: -0X1:1:3:0: ++%*2x: -0X1:0:3: ++%2x: -0x1:1:3:0: ++%*2x: -0x1:0:3: ++%2x: -0:1:3:0: ++%*2x: -0:0:3: ++%2x: -0X0:1:3:0: ++%*2x: -0X0:0:3: ++%2x: -0x0:1:3:0: ++%*2x: -0x0:0:3: ++%2x: 0:1:2:0: ++%*2x: 0:0:2: ++# BZ12701 %2x: 0X0:0:-1: ++# BZ12701 %*2x: 0X0:0:-1: ++# BZ12701 %2x: 0x0:0:-1: ++# BZ12701 %*2x: 0x0:0:-1: ++%2x: 1:1:2:1: ++%*2x: 1:0:2: ++# BZ12701 %2x: 0X1:0:-1: ++# BZ12701 %*2x: 0X1:0:-1: ++# BZ12701 %2x: 0x1:0:-1: ++# BZ12701 %*2x: 0x1:0:-1: ++%2x: 2a:1:3:42: ++%*2x: 2a:0:3: ++%2x: 2A:1:3:42: ++%*2x: 2A:0:3: ++# BZ12701 %2x: 0X2a:0:-1: ++# BZ12701 %*2x: 0X2a:0:-1: ++# BZ12701 %2x: 0x2A:0:-1: ++# BZ12701 %*2x: 0x2A:0:-1: ++%2x: ffffffff:1:3:255: ++%*2x: ffffffff:0:3: ++%2x: FFFFFFFF:1:3:255: ++%*2x: FFFFFFFF:0:3: ++# BZ12701 %2x: 0Xffffffff:0:-1: ++# BZ12701 %*2x: 0Xffffffff:0:-1: ++# BZ12701 %2x: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2x: 0xFFFFFFFF:0:-1: ++%2x: 100000000:1:3:16: ++%*2x: 100000000:0:3: ++# BZ12701 %2x: 0X100000000:0:-1: ++# BZ12701 %*2x: 0X100000000:0:-1: ++# BZ12701 %2x: 0x100000000:0:-1: ++# BZ12701 %*2x: 0x100000000:0:-1: ++%2x: 100001091:1:3:16: ++%*2x: 100001091:0:3: ++# BZ12701 %2x: 0X100001091:0:-1: ++# BZ12701 %*2x: 0X100001091:0:-1: ++# BZ12701 %2x: 0x100001091:0:-1: ++# BZ12701 %*2x: 0x100001091:0:-1: ++%2x: +0:1:3:0: ++%*2x: +0:0:3: ++%2x: +0X0:1:3:0: ++%*2x: +0X0:0:3: ++%2x: +0x0:1:3:0: ++%*2x: +0x0:0:3: ++%2x: +1:1:3:1: ++%*2x: +1:0:3: ++%2x: +0X1:1:3:0: ++%*2x: +0X1:0:3: ++%2x: +0x1:1:3:0: ++%*2x: +0x1:0:3: ++%2x: +2a:1:3:2: ++%*2x: +2a:0:3: ++%2x: +2A:1:3:2: ++%*2x: +2A:0:3: ++%2x: +0X2a:1:3:0: ++%*2x: +0X2a:0:3: ++%2x: +0x2A:1:3:0: ++%*2x: +0x2A:0:3: ++%2x: +ffffffff:1:3:15: ++%*2x: +ffffffff:0:3: ++%2x: +FFFFFFFF:1:3:15: ++%*2x: +FFFFFFFF:0:3: ++%2x: +0Xffffffff:1:3:0: ++%*2x: +0Xffffffff:0:3: ++%2x: +0xFFFFFFFF:1:3:0: ++%*2x: +0xFFFFFFFF:0:3: ++%2x: +100000000:1:3:1: ++%*2x: +100000000:0:3: ++%2x: +0X100000000:1:3:0: ++%*2x: +0X100000000:0:3: ++%2x: +0x100000000:1:3:0: ++%*2x: +0x100000000:0:3: ++%2x: +100001091:1:3:1: ++%*2x: +100001091:0:3: ++%2x: +0X100001091:1:3:0: ++%*2x: +0X100001091:0:3: ++%2x: +0x100001091:1:3:0: ++%*2x: +0x100001091:0:3: ++%15x: :0:-1: ++%*15x: :0:-1: ++%15x: -7b:1:4:4294967173: ++%*15x: -7b:0:4: ++%15x: -7B:1:4:4294967173: ++%*15x: -7B:0:4: ++%15x: -0X7b:1:6:4294967173: ++%*15x: -0X7b:0:6: ++%15x: -0x7B:1:6:4294967173: ++%*15x: -0x7B:0:6: ++%15x: -1:1:3:4294967295: ++%*15x: -1:0:3: ++%15x: -0X1:1:5:4294967295: ++%*15x: -0X1:0:5: ++%15x: -0x1:1:5:4294967295: ++%*15x: -0x1:0:5: ++%15x: -0:1:3:0: ++%*15x: -0:0:3: ++%15x: -0X0:1:5:0: ++%*15x: -0X0:0:5: ++%15x: -0x0:1:5:0: ++%*15x: -0x0:0:5: ++%15x: 0:1:2:0: ++%*15x: 0:0:2: ++%15x: 0X0:1:4:0: ++%*15x: 0X0:0:4: ++%15x: 0x0:1:4:0: ++%*15x: 0x0:0:4: ++%15x: 1:1:2:1: ++%*15x: 1:0:2: ++%15x: 0X1:1:4:1: ++%*15x: 0X1:0:4: ++%15x: 0x1:1:4:1: ++%*15x: 0x1:0:4: ++%15x: 2a:1:3:42: ++%*15x: 2a:0:3: ++%15x: 2A:1:3:42: ++%*15x: 2A:0:3: ++%15x: 0X2a:1:5:42: ++%*15x: 0X2a:0:5: ++%15x: 0x2A:1:5:42: ++%*15x: 0x2A:0:5: ++%15x: ffffffff:1:9:4294967295: ++%*15x: ffffffff:0:9: ++%15x: FFFFFFFF:1:9:4294967295: ++%*15x: FFFFFFFF:0:9: ++%15x: 0Xffffffff:1:11:4294967295: ++%*15x: 0Xffffffff:0:11: ++%15x: 0xFFFFFFFF:1:11:4294967295: ++%*15x: 0xFFFFFFFF:0:11: ++%15x: 100000000:1:10:4294967295: ++%*15x: 100000000:0:10: ++%15x: 0X100000000:1:12:4294967295: ++%*15x: 0X100000000:0:12: ++%15x: 0x100000000:1:12:4294967295: ++%*15x: 0x100000000:0:12: ++%15x: 100001091:1:10:4294967295: ++%*15x: 100001091:0:10: ++%15x: 0X100001091:1:12:4294967295: ++%*15x: 0X100001091:0:12: ++%15x: 0x100001091:1:12:4294967295: ++%*15x: 0x100001091:0:12: ++%15x: +0:1:3:0: ++%*15x: +0:0:3: ++%15x: +0X0:1:5:0: ++%*15x: +0X0:0:5: ++%15x: +0x0:1:5:0: ++%*15x: +0x0:0:5: ++%15x: +1:1:3:1: ++%*15x: +1:0:3: ++%15x: +0X1:1:5:1: ++%*15x: +0X1:0:5: ++%15x: +0x1:1:5:1: ++%*15x: +0x1:0:5: ++%15x: +2a:1:4:42: ++%*15x: +2a:0:4: ++%15x: +2A:1:4:42: ++%*15x: +2A:0:4: ++%15x: +0X2a:1:6:42: ++%*15x: +0X2a:0:6: ++%15x: +0x2A:1:6:42: ++%*15x: +0x2A:0:6: ++%15x: +ffffffff:1:10:4294967295: ++%*15x: +ffffffff:0:10: ++%15x: +FFFFFFFF:1:10:4294967295: ++%*15x: +FFFFFFFF:0:10: ++%15x: +0Xffffffff:1:12:4294967295: ++%*15x: +0Xffffffff:0:12: ++%15x: +0xFFFFFFFF:1:12:4294967295: ++%*15x: +0xFFFFFFFF:0:12: ++%15x: +100000000:1:11:4294967295: ++%*15x: +100000000:0:11: ++%15x: +0X100000000:1:13:4294967295: ++%*15x: +0X100000000:0:13: ++%15x: +0x100000000:1:13:4294967295: ++%*15x: +0x100000000:0:13: ++%15x: +100001091:1:11:4294967295: ++%*15x: +100001091:0:11: ++%15x: +0X100001091:1:13:4294967295: ++%*15x: +0X100001091:0:13: ++%15x: +0x100001091:1:13:4294967295: ++%*15x: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input +new file mode 100644 +index 0000000000000000..bfadb7f9bb8d4fd7 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input +@@ -0,0 +1,714 @@ ++%X::0:-1: ++%*X::0:-1: ++%X:-7b:1:3:4294967173: ++%*X:-7b:0:3: ++%X:-7B:1:3:4294967173: ++%*X:-7B:0:3: ++%X:-0X7b:1:5:4294967173: ++%*X:-0X7b:0:5: ++%X:-0x7B:1:5:4294967173: ++%*X:-0x7B:0:5: ++%X:-1:1:2:4294967295: ++%*X:-1:0:2: ++%X:-0X1:1:4:4294967295: ++%*X:-0X1:0:4: ++%X:-0x1:1:4:4294967295: ++%*X:-0x1:0:4: ++%X:-0:1:2:0: ++%*X:-0:0:2: ++%X:-0X0:1:4:0: ++%*X:-0X0:0:4: ++%X:-0x0:1:4:0: ++%*X:-0x0:0:4: ++%X:0:1:1:0: ++%*X:0:0:1: ++%X:0X0:1:3:0: ++%*X:0X0:0:3: ++%X:0x0:1:3:0: ++%*X:0x0:0:3: ++%X:1:1:1:1: ++%*X:1:0:1: ++%X:0X1:1:3:1: ++%*X:0X1:0:3: ++%X:0x1:1:3:1: ++%*X:0x1:0:3: ++%X:2a:1:2:42: ++%*X:2a:0:2: ++%X:2A:1:2:42: ++%*X:2A:0:2: ++%X:0X2a:1:4:42: ++%*X:0X2a:0:4: ++%X:0x2A:1:4:42: ++%*X:0x2A:0:4: ++%X:ffffffff:1:8:4294967295: ++%*X:ffffffff:0:8: ++%X:FFFFFFFF:1:8:4294967295: ++%*X:FFFFFFFF:0:8: ++%X:0Xffffffff:1:10:4294967295: ++%*X:0Xffffffff:0:10: ++%X:0xFFFFFFFF:1:10:4294967295: ++%*X:0xFFFFFFFF:0:10: ++%X:100000000:1:9:4294967295: ++%*X:100000000:0:9: ++%X:0X100000000:1:11:4294967295: ++%*X:0X100000000:0:11: ++%X:0x100000000:1:11:4294967295: ++%*X:0x100000000:0:11: ++%X:100001091:1:9:4294967295: ++%*X:100001091:0:9: ++%X:0X100001091:1:11:4294967295: ++%*X:0X100001091:0:11: ++%X:0x100001091:1:11:4294967295: ++%*X:0x100001091:0:11: ++%X:+0:1:2:0: ++%*X:+0:0:2: ++%X:+0X0:1:4:0: ++%*X:+0X0:0:4: ++%X:+0x0:1:4:0: ++%*X:+0x0:0:4: ++%X:+1:1:2:1: ++%*X:+1:0:2: ++%X:+0X1:1:4:1: ++%*X:+0X1:0:4: ++%X:+0x1:1:4:1: ++%*X:+0x1:0:4: ++%X:+2a:1:3:42: ++%*X:+2a:0:3: ++%X:+2A:1:3:42: ++%*X:+2A:0:3: ++%X:+0X2a:1:5:42: ++%*X:+0X2a:0:5: ++%X:+0x2A:1:5:42: ++%*X:+0x2A:0:5: ++%X:+ffffffff:1:9:4294967295: ++%*X:+ffffffff:0:9: ++%X:+FFFFFFFF:1:9:4294967295: ++%*X:+FFFFFFFF:0:9: ++%X:+0Xffffffff:1:11:4294967295: ++%*X:+0Xffffffff:0:11: ++%X:+0xFFFFFFFF:1:11:4294967295: ++%*X:+0xFFFFFFFF:0:11: ++%X:+100000000:1:10:4294967295: ++%*X:+100000000:0:10: ++%X:+0X100000000:1:12:4294967295: ++%*X:+0X100000000:0:12: ++%X:+0x100000000:1:12:4294967295: ++%*X:+0x100000000:0:12: ++%X:+100001091:1:10:4294967295: ++%*X:+100001091:0:10: ++%X:+0X100001091:1:12:4294967295: ++%*X:+0X100001091:0:12: ++%X:+0x100001091:1:12:4294967295: ++%*X:+0x100001091:0:12: ++%1X::0:-1: ++%*1X::0:-1: ++%1X:-7b:0:-1: ++%*1X:-7b:0:-1: ++%1X:-7B:0:-1: ++%*1X:-7B:0:-1: ++%1X:-0X7b:0:-1: ++%*1X:-0X7b:0:-1: ++%1X:-0x7B:0:-1: ++%*1X:-0x7B:0:-1: ++%1X:-1:0:-1: ++%*1X:-1:0:-1: ++%1X:-0X1:0:-1: ++%*1X:-0X1:0:-1: ++%1X:-0x1:0:-1: ++%*1X:-0x1:0:-1: ++%1X:-0:0:-1: ++%*1X:-0:0:-1: ++%1X:-0X0:0:-1: ++%*1X:-0X0:0:-1: ++%1X:-0x0:0:-1: ++%*1X:-0x0:0:-1: ++%1X:0:1:1:0: ++%*1X:0:0:1: ++%1X:0X0:1:1:0: ++%*1X:0X0:0:1: ++%1X:0x0:1:1:0: ++%*1X:0x0:0:1: ++%1X:1:1:1:1: ++%*1X:1:0:1: ++%1X:0X1:1:1:0: ++%*1X:0X1:0:1: ++%1X:0x1:1:1:0: ++%*1X:0x1:0:1: ++%1X:2a:1:1:2: ++%*1X:2a:0:1: ++%1X:2A:1:1:2: ++%*1X:2A:0:1: ++%1X:0X2a:1:1:0: ++%*1X:0X2a:0:1: ++%1X:0x2A:1:1:0: ++%*1X:0x2A:0:1: ++%1X:ffffffff:1:1:15: ++%*1X:ffffffff:0:1: ++%1X:FFFFFFFF:1:1:15: ++%*1X:FFFFFFFF:0:1: ++%1X:0Xffffffff:1:1:0: ++%*1X:0Xffffffff:0:1: ++%1X:0xFFFFFFFF:1:1:0: ++%*1X:0xFFFFFFFF:0:1: ++%1X:100000000:1:1:1: ++%*1X:100000000:0:1: ++%1X:0X100000000:1:1:0: ++%*1X:0X100000000:0:1: ++%1X:0x100000000:1:1:0: ++%*1X:0x100000000:0:1: ++%1X:100001091:1:1:1: ++%*1X:100001091:0:1: ++%1X:0X100001091:1:1:0: ++%*1X:0X100001091:0:1: ++%1X:0x100001091:1:1:0: ++%*1X:0x100001091:0:1: ++%1X:+0:0:-1: ++%*1X:+0:0:-1: ++%1X:+0X0:0:-1: ++%*1X:+0X0:0:-1: ++%1X:+0x0:0:-1: ++%*1X:+0x0:0:-1: ++%1X:+1:0:-1: ++%*1X:+1:0:-1: ++%1X:+0X1:0:-1: ++%*1X:+0X1:0:-1: ++%1X:+0x1:0:-1: ++%*1X:+0x1:0:-1: ++%1X:+2a:0:-1: ++%*1X:+2a:0:-1: ++%1X:+2A:0:-1: ++%*1X:+2A:0:-1: ++%1X:+0X2a:0:-1: ++%*1X:+0X2a:0:-1: ++%1X:+0x2A:0:-1: ++%*1X:+0x2A:0:-1: ++%1X:+ffffffff:0:-1: ++%*1X:+ffffffff:0:-1: ++%1X:+FFFFFFFF:0:-1: ++%*1X:+FFFFFFFF:0:-1: ++%1X:+0Xffffffff:0:-1: ++%*1X:+0Xffffffff:0:-1: ++%1X:+0xFFFFFFFF:0:-1: ++%*1X:+0xFFFFFFFF:0:-1: ++%1X:+100000000:0:-1: ++%*1X:+100000000:0:-1: ++%1X:+0X100000000:0:-1: ++%*1X:+0X100000000:0:-1: ++%1X:+0x100000000:0:-1: ++%*1X:+0x100000000:0:-1: ++%1X:+100001091:0:-1: ++%*1X:+100001091:0:-1: ++%1X:+0X100001091:0:-1: ++%*1X:+0X100001091:0:-1: ++%1X:+0x100001091:0:-1: ++%*1X:+0x100001091:0:-1: ++%2X::0:-1: ++%*2X::0:-1: ++%2X:-7b:1:2:4294967289: ++%*2X:-7b:0:2: ++%2X:-7B:1:2:4294967289: ++%*2X:-7B:0:2: ++%2X:-0X7b:1:2:0: ++%*2X:-0X7b:0:2: ++%2X:-0x7B:1:2:0: ++%*2X:-0x7B:0:2: ++%2X:-1:1:2:4294967295: ++%*2X:-1:0:2: ++%2X:-0X1:1:2:0: ++%*2X:-0X1:0:2: ++%2X:-0x1:1:2:0: ++%*2X:-0x1:0:2: ++%2X:-0:1:2:0: ++%*2X:-0:0:2: ++%2X:-0X0:1:2:0: ++%*2X:-0X0:0:2: ++%2X:-0x0:1:2:0: ++%*2X:-0x0:0:2: ++%2X:0:1:1:0: ++%*2X:0:0:1: ++# BZ12701 %2X:0X0:0:-1: ++# BZ12701 %*2X:0X0:0:-1: ++# BZ12701 %2X:0x0:0:-1: ++# BZ12701 %*2X:0x0:0:-1: ++%2X:1:1:1:1: ++%*2X:1:0:1: ++# BZ12701 %2X:0X1:0:-1: ++# BZ12701 %*2X:0X1:0:-1: ++# BZ12701 %2X:0x1:0:-1: ++# BZ12701 %*2X:0x1:0:-1: ++%2X:2a:1:2:42: ++%*2X:2a:0:2: ++%2X:2A:1:2:42: ++%*2X:2A:0:2: ++# BZ12701 %2X:0X2a:0:-1: ++# BZ12701 %*2X:0X2a:0:-1: ++# BZ12701 %2X:0x2A:0:-1: ++# BZ12701 %*2X:0x2A:0:-1: ++%2X:ffffffff:1:2:255: ++%*2X:ffffffff:0:2: ++%2X:FFFFFFFF:1:2:255: ++%*2X:FFFFFFFF:0:2: ++# BZ12701 %2X:0Xffffffff:0:-1: ++# BZ12701 %*2X:0Xffffffff:0:-1: ++# BZ12701 %2X:0xFFFFFFFF:0:-1: ++# BZ12701 %*2X:0xFFFFFFFF:0:-1: ++%2X:100000000:1:2:16: ++%*2X:100000000:0:2: ++# BZ12701 %2X:0X100000000:0:-1: ++# BZ12701 %*2X:0X100000000:0:-1: ++# BZ12701 %2X:0x100000000:0:-1: ++# BZ12701 %*2X:0x100000000:0:-1: ++%2X:100001091:1:2:16: ++%*2X:100001091:0:2: ++# BZ12701 %2X:0X100001091:0:-1: ++# BZ12701 %*2X:0X100001091:0:-1: ++# BZ12701 %2X:0x100001091:0:-1: ++# BZ12701 %*2X:0x100001091:0:-1: ++%2X:+0:1:2:0: ++%*2X:+0:0:2: ++%2X:+0X0:1:2:0: ++%*2X:+0X0:0:2: ++%2X:+0x0:1:2:0: ++%*2X:+0x0:0:2: ++%2X:+1:1:2:1: ++%*2X:+1:0:2: ++%2X:+0X1:1:2:0: ++%*2X:+0X1:0:2: ++%2X:+0x1:1:2:0: ++%*2X:+0x1:0:2: ++%2X:+2a:1:2:2: ++%*2X:+2a:0:2: ++%2X:+2A:1:2:2: ++%*2X:+2A:0:2: ++%2X:+0X2a:1:2:0: ++%*2X:+0X2a:0:2: ++%2X:+0x2A:1:2:0: ++%*2X:+0x2A:0:2: ++%2X:+ffffffff:1:2:15: ++%*2X:+ffffffff:0:2: ++%2X:+FFFFFFFF:1:2:15: ++%*2X:+FFFFFFFF:0:2: ++%2X:+0Xffffffff:1:2:0: ++%*2X:+0Xffffffff:0:2: ++%2X:+0xFFFFFFFF:1:2:0: ++%*2X:+0xFFFFFFFF:0:2: ++%2X:+100000000:1:2:1: ++%*2X:+100000000:0:2: ++%2X:+0X100000000:1:2:0: ++%*2X:+0X100000000:0:2: ++%2X:+0x100000000:1:2:0: ++%*2X:+0x100000000:0:2: ++%2X:+100001091:1:2:1: ++%*2X:+100001091:0:2: ++%2X:+0X100001091:1:2:0: ++%*2X:+0X100001091:0:2: ++%2X:+0x100001091:1:2:0: ++%*2X:+0x100001091:0:2: ++%8X::0:-1: ++%*8X::0:-1: ++%8X:-7b:1:3:4294967173: ++%*8X:-7b:0:3: ++%8X:-7B:1:3:4294967173: ++%*8X:-7B:0:3: ++%8X:-0X7b:1:5:4294967173: ++%*8X:-0X7b:0:5: ++%8X:-0x7B:1:5:4294967173: ++%*8X:-0x7B:0:5: ++%8X:-1:1:2:4294967295: ++%*8X:-1:0:2: ++%8X:-0X1:1:4:4294967295: ++%*8X:-0X1:0:4: ++%8X:-0x1:1:4:4294967295: ++%*8X:-0x1:0:4: ++%8X:-0:1:2:0: ++%*8X:-0:0:2: ++%8X:-0X0:1:4:0: ++%*8X:-0X0:0:4: ++%8X:-0x0:1:4:0: ++%*8X:-0x0:0:4: ++%8X:0:1:1:0: ++%*8X:0:0:1: ++%8X:0X0:1:3:0: ++%*8X:0X0:0:3: ++%8X:0x0:1:3:0: ++%*8X:0x0:0:3: ++%8X:1:1:1:1: ++%*8X:1:0:1: ++%8X:0X1:1:3:1: ++%*8X:0X1:0:3: ++%8X:0x1:1:3:1: ++%*8X:0x1:0:3: ++%8X:2a:1:2:42: ++%*8X:2a:0:2: ++%8X:2A:1:2:42: ++%*8X:2A:0:2: ++%8X:0X2a:1:4:42: ++%*8X:0X2a:0:4: ++%8X:0x2A:1:4:42: ++%*8X:0x2A:0:4: ++%8X:ffffffff:1:8:4294967295: ++%*8X:ffffffff:0:8: ++%8X:FFFFFFFF:1:8:4294967295: ++%*8X:FFFFFFFF:0:8: ++%8X:0Xffffffff:1:8:16777215: ++%*8X:0Xffffffff:0:8: ++%8X:0xFFFFFFFF:1:8:16777215: ++%*8X:0xFFFFFFFF:0:8: ++%8X:100000000:1:8:268435456: ++%*8X:100000000:0:8: ++%8X:0X100000000:1:8:1048576: ++%*8X:0X100000000:0:8: ++%8X:0x100000000:1:8:1048576: ++%*8X:0x100000000:0:8: ++%8X:100001091:1:8:268435721: ++%*8X:100001091:0:8: ++%8X:0X100001091:1:8:1048577: ++%*8X:0X100001091:0:8: ++%8X:0x100001091:1:8:1048577: ++%*8X:0x100001091:0:8: ++%8X:+0:1:2:0: ++%*8X:+0:0:2: ++%8X:+0X0:1:4:0: ++%*8X:+0X0:0:4: ++%8X:+0x0:1:4:0: ++%*8X:+0x0:0:4: ++%8X:+1:1:2:1: ++%*8X:+1:0:2: ++%8X:+0X1:1:4:1: ++%*8X:+0X1:0:4: ++%8X:+0x1:1:4:1: ++%*8X:+0x1:0:4: ++%8X:+2a:1:3:42: ++%*8X:+2a:0:3: ++%8X:+2A:1:3:42: ++%*8X:+2A:0:3: ++%8X:+0X2a:1:5:42: ++%*8X:+0X2a:0:5: ++%8X:+0x2A:1:5:42: ++%*8X:+0x2A:0:5: ++%8X:+ffffffff:1:8:268435455: ++%*8X:+ffffffff:0:8: ++%8X:+FFFFFFFF:1:8:268435455: ++%*8X:+FFFFFFFF:0:8: ++%8X:+0Xffffffff:1:8:1048575: ++%*8X:+0Xffffffff:0:8: ++%8X:+0xFFFFFFFF:1:8:1048575: ++%*8X:+0xFFFFFFFF:0:8: ++%8X:+100000000:1:8:16777216: ++%*8X:+100000000:0:8: ++%8X:+0X100000000:1:8:65536: ++%*8X:+0X100000000:0:8: ++%8X:+0x100000000:1:8:65536: ++%*8X:+0x100000000:0:8: ++%8X:+100001091:1:8:16777232: ++%*8X:+100001091:0:8: ++%8X:+0X100001091:1:8:65536: ++%*8X:+0X100001091:0:8: ++%8X:+0x100001091:1:8:65536: ++%*8X:+0x100001091:0:8: ++%15X::0:-1: ++%*15X::0:-1: ++%15X:-7b:1:3:4294967173: ++%*15X:-7b:0:3: ++%15X:-7B:1:3:4294967173: ++%*15X:-7B:0:3: ++%15X:-0X7b:1:5:4294967173: ++%*15X:-0X7b:0:5: ++%15X:-0x7B:1:5:4294967173: ++%*15X:-0x7B:0:5: ++%15X:-1:1:2:4294967295: ++%*15X:-1:0:2: ++%15X:-0X1:1:4:4294967295: ++%*15X:-0X1:0:4: ++%15X:-0x1:1:4:4294967295: ++%*15X:-0x1:0:4: ++%15X:-0:1:2:0: ++%*15X:-0:0:2: ++%15X:-0X0:1:4:0: ++%*15X:-0X0:0:4: ++%15X:-0x0:1:4:0: ++%*15X:-0x0:0:4: ++%15X:0:1:1:0: ++%*15X:0:0:1: ++%15X:0X0:1:3:0: ++%*15X:0X0:0:3: ++%15X:0x0:1:3:0: ++%*15X:0x0:0:3: ++%15X:1:1:1:1: ++%*15X:1:0:1: ++%15X:0X1:1:3:1: ++%*15X:0X1:0:3: ++%15X:0x1:1:3:1: ++%*15X:0x1:0:3: ++%15X:2a:1:2:42: ++%*15X:2a:0:2: ++%15X:2A:1:2:42: ++%*15X:2A:0:2: ++%15X:0X2a:1:4:42: ++%*15X:0X2a:0:4: ++%15X:0x2A:1:4:42: ++%*15X:0x2A:0:4: ++%15X:ffffffff:1:8:4294967295: ++%*15X:ffffffff:0:8: ++%15X:FFFFFFFF:1:8:4294967295: ++%*15X:FFFFFFFF:0:8: ++%15X:0Xffffffff:1:10:4294967295: ++%*15X:0Xffffffff:0:10: ++%15X:0xFFFFFFFF:1:10:4294967295: ++%*15X:0xFFFFFFFF:0:10: ++%15X:100000000:1:9:4294967295: ++%*15X:100000000:0:9: ++%15X:0X100000000:1:11:4294967295: ++%*15X:0X100000000:0:11: ++%15X:0x100000000:1:11:4294967295: ++%*15X:0x100000000:0:11: ++%15X:100001091:1:9:4294967295: ++%*15X:100001091:0:9: ++%15X:0X100001091:1:11:4294967295: ++%*15X:0X100001091:0:11: ++%15X:0x100001091:1:11:4294967295: ++%*15X:0x100001091:0:11: ++%15X:+0:1:2:0: ++%*15X:+0:0:2: ++%15X:+0X0:1:4:0: ++%*15X:+0X0:0:4: ++%15X:+0x0:1:4:0: ++%*15X:+0x0:0:4: ++%15X:+1:1:2:1: ++%*15X:+1:0:2: ++%15X:+0X1:1:4:1: ++%*15X:+0X1:0:4: ++%15X:+0x1:1:4:1: ++%*15X:+0x1:0:4: ++%15X:+2a:1:3:42: ++%*15X:+2a:0:3: ++%15X:+2A:1:3:42: ++%*15X:+2A:0:3: ++%15X:+0X2a:1:5:42: ++%*15X:+0X2a:0:5: ++%15X:+0x2A:1:5:42: ++%*15X:+0x2A:0:5: ++%15X:+ffffffff:1:9:4294967295: ++%*15X:+ffffffff:0:9: ++%15X:+FFFFFFFF:1:9:4294967295: ++%*15X:+FFFFFFFF:0:9: ++%15X:+0Xffffffff:1:11:4294967295: ++%*15X:+0Xffffffff:0:11: ++%15X:+0xFFFFFFFF:1:11:4294967295: ++%*15X:+0xFFFFFFFF:0:11: ++%15X:+100000000:1:10:4294967295: ++%*15X:+100000000:0:10: ++%15X:+0X100000000:1:12:4294967295: ++%*15X:+0X100000000:0:12: ++%15X:+0x100000000:1:12:4294967295: ++%*15X:+0x100000000:0:12: ++%15X:+100001091:1:10:4294967295: ++%*15X:+100001091:0:10: ++%15X:+0X100001091:1:12:4294967295: ++%*15X:+0X100001091:0:12: ++%15X:+0x100001091:1:12:4294967295: ++%*15X:+0x100001091:0:12: ++%2X: :0:-1: ++%*2X: :0:-1: ++%2X: -7b:1:3:4294967289: ++%*2X: -7b:0:3: ++%2X: -7B:1:3:4294967289: ++%*2X: -7B:0:3: ++%2X: -0X7b:1:3:0: ++%*2X: -0X7b:0:3: ++%2X: -0x7B:1:3:0: ++%*2X: -0x7B:0:3: ++%2X: -1:1:3:4294967295: ++%*2X: -1:0:3: ++%2X: -0X1:1:3:0: ++%*2X: -0X1:0:3: ++%2X: -0x1:1:3:0: ++%*2X: -0x1:0:3: ++%2X: -0:1:3:0: ++%*2X: -0:0:3: ++%2X: -0X0:1:3:0: ++%*2X: -0X0:0:3: ++%2X: -0x0:1:3:0: ++%*2X: -0x0:0:3: ++%2X: 0:1:2:0: ++%*2X: 0:0:2: ++# BZ12701 %2X: 0X0:0:-1: ++# BZ12701 %*2X: 0X0:0:-1: ++# BZ12701 %2X: 0x0:0:-1: ++# BZ12701 %*2X: 0x0:0:-1: ++%2X: 1:1:2:1: ++%*2X: 1:0:2: ++# BZ12701 %2X: 0X1:0:-1: ++# BZ12701 %*2X: 0X1:0:-1: ++# BZ12701 %2X: 0x1:0:-1: ++# BZ12701 %*2X: 0x1:0:-1: ++%2X: 2a:1:3:42: ++%*2X: 2a:0:3: ++%2X: 2A:1:3:42: ++%*2X: 2A:0:3: ++# BZ12701 %2X: 0X2a:0:-1: ++# BZ12701 %*2X: 0X2a:0:-1: ++# BZ12701 %2X: 0x2A:0:-1: ++# BZ12701 %*2X: 0x2A:0:-1: ++%2X: ffffffff:1:3:255: ++%*2X: ffffffff:0:3: ++%2X: FFFFFFFF:1:3:255: ++%*2X: FFFFFFFF:0:3: ++# BZ12701 %2X: 0Xffffffff:0:-1: ++# BZ12701 %*2X: 0Xffffffff:0:-1: ++# BZ12701 %2X: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2X: 0xFFFFFFFF:0:-1: ++%2X: 100000000:1:3:16: ++%*2X: 100000000:0:3: ++# BZ12701 %2X: 0X100000000:0:-1: ++# BZ12701 %*2X: 0X100000000:0:-1: ++# BZ12701 %2X: 0x100000000:0:-1: ++# BZ12701 %*2X: 0x100000000:0:-1: ++%2X: 100001091:1:3:16: ++%*2X: 100001091:0:3: ++# BZ12701 %2X: 0X100001091:0:-1: ++# BZ12701 %*2X: 0X100001091:0:-1: ++# BZ12701 %2X: 0x100001091:0:-1: ++# BZ12701 %*2X: 0x100001091:0:-1: ++%2X: +0:1:3:0: ++%*2X: +0:0:3: ++%2X: +0X0:1:3:0: ++%*2X: +0X0:0:3: ++%2X: +0x0:1:3:0: ++%*2X: +0x0:0:3: ++%2X: +1:1:3:1: ++%*2X: +1:0:3: ++%2X: +0X1:1:3:0: ++%*2X: +0X1:0:3: ++%2X: +0x1:1:3:0: ++%*2X: +0x1:0:3: ++%2X: +2a:1:3:2: ++%*2X: +2a:0:3: ++%2X: +2A:1:3:2: ++%*2X: +2A:0:3: ++%2X: +0X2a:1:3:0: ++%*2X: +0X2a:0:3: ++%2X: +0x2A:1:3:0: ++%*2X: +0x2A:0:3: ++%2X: +ffffffff:1:3:15: ++%*2X: +ffffffff:0:3: ++%2X: +FFFFFFFF:1:3:15: ++%*2X: +FFFFFFFF:0:3: ++%2X: +0Xffffffff:1:3:0: ++%*2X: +0Xffffffff:0:3: ++%2X: +0xFFFFFFFF:1:3:0: ++%*2X: +0xFFFFFFFF:0:3: ++%2X: +100000000:1:3:1: ++%*2X: +100000000:0:3: ++%2X: +0X100000000:1:3:0: ++%*2X: +0X100000000:0:3: ++%2X: +0x100000000:1:3:0: ++%*2X: +0x100000000:0:3: ++%2X: +100001091:1:3:1: ++%*2X: +100001091:0:3: ++%2X: +0X100001091:1:3:0: ++%*2X: +0X100001091:0:3: ++%2X: +0x100001091:1:3:0: ++%*2X: +0x100001091:0:3: ++%15X: :0:-1: ++%*15X: :0:-1: ++%15X: -7b:1:4:4294967173: ++%*15X: -7b:0:4: ++%15X: -7B:1:4:4294967173: ++%*15X: -7B:0:4: ++%15X: -0X7b:1:6:4294967173: ++%*15X: -0X7b:0:6: ++%15X: -0x7B:1:6:4294967173: ++%*15X: -0x7B:0:6: ++%15X: -1:1:3:4294967295: ++%*15X: -1:0:3: ++%15X: -0X1:1:5:4294967295: ++%*15X: -0X1:0:5: ++%15X: -0x1:1:5:4294967295: ++%*15X: -0x1:0:5: ++%15X: -0:1:3:0: ++%*15X: -0:0:3: ++%15X: -0X0:1:5:0: ++%*15X: -0X0:0:5: ++%15X: -0x0:1:5:0: ++%*15X: -0x0:0:5: ++%15X: 0:1:2:0: ++%*15X: 0:0:2: ++%15X: 0X0:1:4:0: ++%*15X: 0X0:0:4: ++%15X: 0x0:1:4:0: ++%*15X: 0x0:0:4: ++%15X: 1:1:2:1: ++%*15X: 1:0:2: ++%15X: 0X1:1:4:1: ++%*15X: 0X1:0:4: ++%15X: 0x1:1:4:1: ++%*15X: 0x1:0:4: ++%15X: 2a:1:3:42: ++%*15X: 2a:0:3: ++%15X: 2A:1:3:42: ++%*15X: 2A:0:3: ++%15X: 0X2a:1:5:42: ++%*15X: 0X2a:0:5: ++%15X: 0x2A:1:5:42: ++%*15X: 0x2A:0:5: ++%15X: ffffffff:1:9:4294967295: ++%*15X: ffffffff:0:9: ++%15X: FFFFFFFF:1:9:4294967295: ++%*15X: FFFFFFFF:0:9: ++%15X: 0Xffffffff:1:11:4294967295: ++%*15X: 0Xffffffff:0:11: ++%15X: 0xFFFFFFFF:1:11:4294967295: ++%*15X: 0xFFFFFFFF:0:11: ++%15X: 100000000:1:10:4294967295: ++%*15X: 100000000:0:10: ++%15X: 0X100000000:1:12:4294967295: ++%*15X: 0X100000000:0:12: ++%15X: 0x100000000:1:12:4294967295: ++%*15X: 0x100000000:0:12: ++%15X: 100001091:1:10:4294967295: ++%*15X: 100001091:0:10: ++%15X: 0X100001091:1:12:4294967295: ++%*15X: 0X100001091:0:12: ++%15X: 0x100001091:1:12:4294967295: ++%*15X: 0x100001091:0:12: ++%15X: +0:1:3:0: ++%*15X: +0:0:3: ++%15X: +0X0:1:5:0: ++%*15X: +0X0:0:5: ++%15X: +0x0:1:5:0: ++%*15X: +0x0:0:5: ++%15X: +1:1:3:1: ++%*15X: +1:0:3: ++%15X: +0X1:1:5:1: ++%*15X: +0X1:0:5: ++%15X: +0x1:1:5:1: ++%*15X: +0x1:0:5: ++%15X: +2a:1:4:42: ++%*15X: +2a:0:4: ++%15X: +2A:1:4:42: ++%*15X: +2A:0:4: ++%15X: +0X2a:1:6:42: ++%*15X: +0X2a:0:6: ++%15X: +0x2A:1:6:42: ++%*15X: +0x2A:0:6: ++%15X: +ffffffff:1:10:4294967295: ++%*15X: +ffffffff:0:10: ++%15X: +FFFFFFFF:1:10:4294967295: ++%*15X: +FFFFFFFF:0:10: ++%15X: +0Xffffffff:1:12:4294967295: ++%*15X: +0Xffffffff:0:12: ++%15X: +0xFFFFFFFF:1:12:4294967295: ++%*15X: +0xFFFFFFFF:0:12: ++%15X: +100000000:1:11:4294967295: ++%*15X: +100000000:0:11: ++%15X: +0X100000000:1:13:4294967295: ++%*15X: +0X100000000:0:13: ++%15X: +0x100000000:1:13:4294967295: ++%*15X: +0x100000000:0:13: ++%15X: +100001091:1:11:4294967295: ++%*15X: +100001091:0:11: ++%15X: +0X100001091:1:13:4294967295: ++%*15X: +0X100001091:0:13: ++%15X: +0x100001091:1:13:4294967295: ++%*15X: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +new file mode 100644 +index 0000000000000000..311ee862476f51d0 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +@@ -0,0 +1,644 @@ ++%lb::0:-1: ++%*lb::0:-1: ++%lb:-1111011:1:8:4294967173: ++%*lb:-1111011:0:8: ++%lb:-0B1111011:1:10:4294967173: ++%*lb:-0B1111011:0:10: ++%lb:-0b1111011:1:10:4294967173: ++%*lb:-0b1111011:0:10: ++%lb:-1:1:2:4294967295: ++%*lb:-1:0:2: ++%lb:-0B1:1:4:4294967295: ++%*lb:-0B1:0:4: ++%lb:-0b1:1:4:4294967295: ++%*lb:-0b1:0:4: ++%lb:-0:1:2:0: ++%*lb:-0:0:2: ++%lb:-0B0:1:4:0: ++%*lb:-0B0:0:4: ++%lb:-0b0:1:4:0: ++%*lb:-0b0:0:4: ++%lb:0:1:1:0: ++%*lb:0:0:1: ++%lb:0B0:1:3:0: ++%*lb:0B0:0:3: ++%lb:0b0:1:3:0: ++%*lb:0b0:0:3: ++%lb:1:1:1:1: ++%*lb:1:0:1: ++%lb:0B1:1:3:1: ++%*lb:0B1:0:3: ++%lb:0b1:1:3:1: ++%*lb:0b1:0:3: ++%lb:101010:1:6:42: ++%*lb:101010:0:6: ++%lb:0B101010:1:8:42: ++%*lb:0B101010:0:8: ++%lb:0b101010:1:8:42: ++%*lb:0b101010:0:8: ++%lb:11111111111111111111111111111111:1:32:4294967295: ++%*lb:11111111111111111111111111111111:0:32: ++%lb:0B11111111111111111111111111111111:1:34:4294967295: ++%*lb:0B11111111111111111111111111111111:0:34: ++%lb:0b11111111111111111111111111111111:1:34:4294967295: ++%*lb:0b11111111111111111111111111111111:0:34: ++%lb:100000000000000000000000000000000:1:33:4294967295: ++%*lb:100000000000000000000000000000000:0:33: ++%lb:0B100000000000000000000000000000000:1:35:4294967295: ++%*lb:0B100000000000000000000000000000000:0:35: ++%lb:0b100000000000000000000000000000000:1:35:4294967295: ++%*lb:0b100000000000000000000000000000000:0:35: ++%lb:100000000000000000001000010010001:1:33:4294967295: ++%*lb:100000000000000000001000010010001:0:33: ++%lb:0B100000000000000000001000010010001:1:35:4294967295: ++%*lb:0B100000000000000000001000010010001:0:35: ++%lb:0b100000000000000000001000010010001:1:35:4294967295: ++%*lb:0b100000000000000000001000010010001:0:35: ++%lb:+0:1:2:0: ++%*lb:+0:0:2: ++%lb:+0B0:1:4:0: ++%*lb:+0B0:0:4: ++%lb:+0b0:1:4:0: ++%*lb:+0b0:0:4: ++%lb:+1:1:2:1: ++%*lb:+1:0:2: ++%lb:+0B1:1:4:1: ++%*lb:+0B1:0:4: ++%lb:+0b1:1:4:1: ++%*lb:+0b1:0:4: ++%lb:+101010:1:7:42: ++%*lb:+101010:0:7: ++%lb:+0B101010:1:9:42: ++%*lb:+0B101010:0:9: ++%lb:+0b101010:1:9:42: ++%*lb:+0b101010:0:9: ++%lb:+11111111111111111111111111111111:1:33:4294967295: ++%*lb:+11111111111111111111111111111111:0:33: ++%lb:+0B11111111111111111111111111111111:1:35:4294967295: ++%*lb:+0B11111111111111111111111111111111:0:35: ++%lb:+0b11111111111111111111111111111111:1:35:4294967295: ++%*lb:+0b11111111111111111111111111111111:0:35: ++%lb:+100000000000000000000000000000000:1:34:4294967295: ++%*lb:+100000000000000000000000000000000:0:34: ++%lb:+0B100000000000000000000000000000000:1:36:4294967295: ++%*lb:+0B100000000000000000000000000000000:0:36: ++%lb:+0b100000000000000000000000000000000:1:36:4294967295: ++%*lb:+0b100000000000000000000000000000000:0:36: ++%lb:+100000000000000000001000010010001:1:34:4294967295: ++%*lb:+100000000000000000001000010010001:0:34: ++%lb:+0B100000000000000000001000010010001:1:36:4294967295: ++%*lb:+0B100000000000000000001000010010001:0:36: ++%lb:+0b100000000000000000001000010010001:1:36:4294967295: ++%*lb:+0b100000000000000000001000010010001:0:36: ++%1lb::0:-1: ++%*1lb::0:-1: ++%1lb:-1111011:0:-1: ++%*1lb:-1111011:0:-1: ++%1lb:-0B1111011:0:-1: ++%*1lb:-0B1111011:0:-1: ++%1lb:-0b1111011:0:-1: ++%*1lb:-0b1111011:0:-1: ++%1lb:-1:0:-1: ++%*1lb:-1:0:-1: ++%1lb:-0B1:0:-1: ++%*1lb:-0B1:0:-1: ++%1lb:-0b1:0:-1: ++%*1lb:-0b1:0:-1: ++%1lb:-0:0:-1: ++%*1lb:-0:0:-1: ++%1lb:-0B0:0:-1: ++%*1lb:-0B0:0:-1: ++%1lb:-0b0:0:-1: ++%*1lb:-0b0:0:-1: ++%1lb:0:1:1:0: ++%*1lb:0:0:1: ++%1lb:0B0:1:1:0: ++%*1lb:0B0:0:1: ++%1lb:0b0:1:1:0: ++%*1lb:0b0:0:1: ++%1lb:1:1:1:1: ++%*1lb:1:0:1: ++%1lb:0B1:1:1:0: ++%*1lb:0B1:0:1: ++%1lb:0b1:1:1:0: ++%*1lb:0b1:0:1: ++%1lb:101010:1:1:1: ++%*1lb:101010:0:1: ++%1lb:0B101010:1:1:0: ++%*1lb:0B101010:0:1: ++%1lb:0b101010:1:1:0: ++%*1lb:0b101010:0:1: ++%1lb:11111111111111111111111111111111:1:1:1: ++%*1lb:11111111111111111111111111111111:0:1: ++%1lb:0B11111111111111111111111111111111:1:1:0: ++%*1lb:0B11111111111111111111111111111111:0:1: ++%1lb:0b11111111111111111111111111111111:1:1:0: ++%*1lb:0b11111111111111111111111111111111:0:1: ++%1lb:100000000000000000000000000000000:1:1:1: ++%*1lb:100000000000000000000000000000000:0:1: ++%1lb:0B100000000000000000000000000000000:1:1:0: ++%*1lb:0B100000000000000000000000000000000:0:1: ++%1lb:0b100000000000000000000000000000000:1:1:0: ++%*1lb:0b100000000000000000000000000000000:0:1: ++%1lb:100000000000000000001000010010001:1:1:1: ++%*1lb:100000000000000000001000010010001:0:1: ++%1lb:0B100000000000000000001000010010001:1:1:0: ++%*1lb:0B100000000000000000001000010010001:0:1: ++%1lb:0b100000000000000000001000010010001:1:1:0: ++%*1lb:0b100000000000000000001000010010001:0:1: ++%1lb:+0:0:-1: ++%*1lb:+0:0:-1: ++%1lb:+0B0:0:-1: ++%*1lb:+0B0:0:-1: ++%1lb:+0b0:0:-1: ++%*1lb:+0b0:0:-1: ++%1lb:+1:0:-1: ++%*1lb:+1:0:-1: ++%1lb:+0B1:0:-1: ++%*1lb:+0B1:0:-1: ++%1lb:+0b1:0:-1: ++%*1lb:+0b1:0:-1: ++%1lb:+101010:0:-1: ++%*1lb:+101010:0:-1: ++%1lb:+0B101010:0:-1: ++%*1lb:+0B101010:0:-1: ++%1lb:+0b101010:0:-1: ++%*1lb:+0b101010:0:-1: ++%1lb:+11111111111111111111111111111111:0:-1: ++%*1lb:+11111111111111111111111111111111:0:-1: ++%1lb:+0B11111111111111111111111111111111:0:-1: ++%*1lb:+0B11111111111111111111111111111111:0:-1: ++%1lb:+0b11111111111111111111111111111111:0:-1: ++%*1lb:+0b11111111111111111111111111111111:0:-1: ++%1lb:+100000000000000000000000000000000:0:-1: ++%*1lb:+100000000000000000000000000000000:0:-1: ++%1lb:+0B100000000000000000000000000000000:0:-1: ++%*1lb:+0B100000000000000000000000000000000:0:-1: ++%1lb:+0b100000000000000000000000000000000:0:-1: ++%*1lb:+0b100000000000000000000000000000000:0:-1: ++%1lb:+100000000000000000001000010010001:0:-1: ++%*1lb:+100000000000000000001000010010001:0:-1: ++%1lb:+0B100000000000000000001000010010001:0:-1: ++%*1lb:+0B100000000000000000001000010010001:0:-1: ++%1lb:+0b100000000000000000001000010010001:0:-1: ++%*1lb:+0b100000000000000000001000010010001:0:-1: ++%2lb::0:-1: ++%*2lb::0:-1: ++%2lb:-1111011:1:2:4294967295: ++%*2lb:-1111011:0:2: ++%2lb:-0B1111011:1:2:0: ++%*2lb:-0B1111011:0:2: ++%2lb:-0b1111011:1:2:0: ++%*2lb:-0b1111011:0:2: ++%2lb:-1:1:2:4294967295: ++%*2lb:-1:0:2: ++%2lb:-0B1:1:2:0: ++%*2lb:-0B1:0:2: ++%2lb:-0b1:1:2:0: ++%*2lb:-0b1:0:2: ++%2lb:-0:1:2:0: ++%*2lb:-0:0:2: ++%2lb:-0B0:1:2:0: ++%*2lb:-0B0:0:2: ++%2lb:-0b0:1:2:0: ++%*2lb:-0b0:0:2: ++%2lb:0:1:1:0: ++%*2lb:0:0:1: ++# BZ12701 %2lb:0B0:0:-1: ++# BZ12701 %*2lb:0B0:0:-1: ++# BZ12701 %2lb:0b0:0:-1: ++# BZ12701 %*2lb:0b0:0:-1: ++%2lb:1:1:1:1: ++%*2lb:1:0:1: ++# BZ12701 %2lb:0B1:0:-1: ++# BZ12701 %*2lb:0B1:0:-1: ++# BZ12701 %2lb:0b1:0:-1: ++# BZ12701 %*2lb:0b1:0:-1: ++%2lb:101010:1:2:2: ++%*2lb:101010:0:2: ++# BZ12701 %2lb:0B101010:0:-1: ++# BZ12701 %*2lb:0B101010:0:-1: ++# BZ12701 %2lb:0b101010:0:-1: ++# BZ12701 %*2lb:0b101010:0:-1: ++%2lb:11111111111111111111111111111111:1:2:3: ++%*2lb:11111111111111111111111111111111:0:2: ++# BZ12701 %2lb:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2lb:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0b11111111111111111111111111111111:0:-1: ++%2lb:100000000000000000000000000000000:1:2:2: ++%*2lb:100000000000000000000000000000000:0:2: ++# BZ12701 %2lb:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2lb:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0b100000000000000000000000000000000:0:-1: ++%2lb:100000000000000000001000010010001:1:2:2: ++%*2lb:100000000000000000001000010010001:0:2: ++# BZ12701 %2lb:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2lb:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb:0b100000000000000000001000010010001:0:-1: ++%2lb:+0:1:2:0: ++%*2lb:+0:0:2: ++%2lb:+0B0:1:2:0: ++%*2lb:+0B0:0:2: ++%2lb:+0b0:1:2:0: ++%*2lb:+0b0:0:2: ++%2lb:+1:1:2:1: ++%*2lb:+1:0:2: ++%2lb:+0B1:1:2:0: ++%*2lb:+0B1:0:2: ++%2lb:+0b1:1:2:0: ++%*2lb:+0b1:0:2: ++%2lb:+101010:1:2:1: ++%*2lb:+101010:0:2: ++%2lb:+0B101010:1:2:0: ++%*2lb:+0B101010:0:2: ++%2lb:+0b101010:1:2:0: ++%*2lb:+0b101010:0:2: ++%2lb:+11111111111111111111111111111111:1:2:1: ++%*2lb:+11111111111111111111111111111111:0:2: ++%2lb:+0B11111111111111111111111111111111:1:2:0: ++%*2lb:+0B11111111111111111111111111111111:0:2: ++%2lb:+0b11111111111111111111111111111111:1:2:0: ++%*2lb:+0b11111111111111111111111111111111:0:2: ++%2lb:+100000000000000000000000000000000:1:2:1: ++%*2lb:+100000000000000000000000000000000:0:2: ++%2lb:+0B100000000000000000000000000000000:1:2:0: ++%*2lb:+0B100000000000000000000000000000000:0:2: ++%2lb:+0b100000000000000000000000000000000:1:2:0: ++%*2lb:+0b100000000000000000000000000000000:0:2: ++%2lb:+100000000000000000001000010010001:1:2:1: ++%*2lb:+100000000000000000001000010010001:0:2: ++%2lb:+0B100000000000000000001000010010001:1:2:0: ++%*2lb:+0B100000000000000000001000010010001:0:2: ++%2lb:+0b100000000000000000001000010010001:1:2:0: ++%*2lb:+0b100000000000000000001000010010001:0:2: ++%8lb::0:-1: ++%*8lb::0:-1: ++%8lb:-1111011:1:8:4294967173: ++%*8lb:-1111011:0:8: ++%8lb:-0B1111011:1:8:4294967266: ++%*8lb:-0B1111011:0:8: ++%8lb:-0b1111011:1:8:4294967266: ++%*8lb:-0b1111011:0:8: ++%8lb:-1:1:2:4294967295: ++%*8lb:-1:0:2: ++%8lb:-0B1:1:4:4294967295: ++%*8lb:-0B1:0:4: ++%8lb:-0b1:1:4:4294967295: ++%*8lb:-0b1:0:4: ++%8lb:-0:1:2:0: ++%*8lb:-0:0:2: ++%8lb:-0B0:1:4:0: ++%*8lb:-0B0:0:4: ++%8lb:-0b0:1:4:0: ++%*8lb:-0b0:0:4: ++%8lb:0:1:1:0: ++%*8lb:0:0:1: ++%8lb:0B0:1:3:0: ++%*8lb:0B0:0:3: ++%8lb:0b0:1:3:0: ++%*8lb:0b0:0:3: ++%8lb:1:1:1:1: ++%*8lb:1:0:1: ++%8lb:0B1:1:3:1: ++%*8lb:0B1:0:3: ++%8lb:0b1:1:3:1: ++%*8lb:0b1:0:3: ++%8lb:101010:1:6:42: ++%*8lb:101010:0:6: ++%8lb:0B101010:1:8:42: ++%*8lb:0B101010:0:8: ++%8lb:0b101010:1:8:42: ++%*8lb:0b101010:0:8: ++%8lb:11111111111111111111111111111111:1:8:255: ++%*8lb:11111111111111111111111111111111:0:8: ++%8lb:0B11111111111111111111111111111111:1:8:63: ++%*8lb:0B11111111111111111111111111111111:0:8: ++%8lb:0b11111111111111111111111111111111:1:8:63: ++%*8lb:0b11111111111111111111111111111111:0:8: ++%8lb:100000000000000000000000000000000:1:8:128: ++%*8lb:100000000000000000000000000000000:0:8: ++%8lb:0B100000000000000000000000000000000:1:8:32: ++%*8lb:0B100000000000000000000000000000000:0:8: ++%8lb:0b100000000000000000000000000000000:1:8:32: ++%*8lb:0b100000000000000000000000000000000:0:8: ++%8lb:100000000000000000001000010010001:1:8:128: ++%*8lb:100000000000000000001000010010001:0:8: ++%8lb:0B100000000000000000001000010010001:1:8:32: ++%*8lb:0B100000000000000000001000010010001:0:8: ++%8lb:0b100000000000000000001000010010001:1:8:32: ++%*8lb:0b100000000000000000001000010010001:0:8: ++%8lb:+0:1:2:0: ++%*8lb:+0:0:2: ++%8lb:+0B0:1:4:0: ++%*8lb:+0B0:0:4: ++%8lb:+0b0:1:4:0: ++%*8lb:+0b0:0:4: ++%8lb:+1:1:2:1: ++%*8lb:+1:0:2: ++%8lb:+0B1:1:4:1: ++%*8lb:+0B1:0:4: ++%8lb:+0b1:1:4:1: ++%*8lb:+0b1:0:4: ++%8lb:+101010:1:7:42: ++%*8lb:+101010:0:7: ++%8lb:+0B101010:1:8:21: ++%*8lb:+0B101010:0:8: ++%8lb:+0b101010:1:8:21: ++%*8lb:+0b101010:0:8: ++%8lb:+11111111111111111111111111111111:1:8:127: ++%*8lb:+11111111111111111111111111111111:0:8: ++%8lb:+0B11111111111111111111111111111111:1:8:31: ++%*8lb:+0B11111111111111111111111111111111:0:8: ++%8lb:+0b11111111111111111111111111111111:1:8:31: ++%*8lb:+0b11111111111111111111111111111111:0:8: ++%8lb:+100000000000000000000000000000000:1:8:64: ++%*8lb:+100000000000000000000000000000000:0:8: ++%8lb:+0B100000000000000000000000000000000:1:8:16: ++%*8lb:+0B100000000000000000000000000000000:0:8: ++%8lb:+0b100000000000000000000000000000000:1:8:16: ++%*8lb:+0b100000000000000000000000000000000:0:8: ++%8lb:+100000000000000000001000010010001:1:8:64: ++%*8lb:+100000000000000000001000010010001:0:8: ++%8lb:+0B100000000000000000001000010010001:1:8:16: ++%*8lb:+0B100000000000000000001000010010001:0:8: ++%8lb:+0b100000000000000000001000010010001:1:8:16: ++%*8lb:+0b100000000000000000001000010010001:0:8: ++%15lb::0:-1: ++%*15lb::0:-1: ++%15lb:-1111011:1:8:4294967173: ++%*15lb:-1111011:0:8: ++%15lb:-0B1111011:1:10:4294967173: ++%*15lb:-0B1111011:0:10: ++%15lb:-0b1111011:1:10:4294967173: ++%*15lb:-0b1111011:0:10: ++%15lb:-1:1:2:4294967295: ++%*15lb:-1:0:2: ++%15lb:-0B1:1:4:4294967295: ++%*15lb:-0B1:0:4: ++%15lb:-0b1:1:4:4294967295: ++%*15lb:-0b1:0:4: ++%15lb:-0:1:2:0: ++%*15lb:-0:0:2: ++%15lb:-0B0:1:4:0: ++%*15lb:-0B0:0:4: ++%15lb:-0b0:1:4:0: ++%*15lb:-0b0:0:4: ++%15lb:0:1:1:0: ++%*15lb:0:0:1: ++%15lb:0B0:1:3:0: ++%*15lb:0B0:0:3: ++%15lb:0b0:1:3:0: ++%*15lb:0b0:0:3: ++%15lb:1:1:1:1: ++%*15lb:1:0:1: ++%15lb:0B1:1:3:1: ++%*15lb:0B1:0:3: ++%15lb:0b1:1:3:1: ++%*15lb:0b1:0:3: ++%15lb:101010:1:6:42: ++%*15lb:101010:0:6: ++%15lb:0B101010:1:8:42: ++%*15lb:0B101010:0:8: ++%15lb:0b101010:1:8:42: ++%*15lb:0b101010:0:8: ++%15lb:11111111111111111111111111111111:1:15:32767: ++%*15lb:11111111111111111111111111111111:0:15: ++%15lb:0B11111111111111111111111111111111:1:15:8191: ++%*15lb:0B11111111111111111111111111111111:0:15: ++%15lb:0b11111111111111111111111111111111:1:15:8191: ++%*15lb:0b11111111111111111111111111111111:0:15: ++%15lb:100000000000000000000000000000000:1:15:16384: ++%*15lb:100000000000000000000000000000000:0:15: ++%15lb:0B100000000000000000000000000000000:1:15:4096: ++%*15lb:0B100000000000000000000000000000000:0:15: ++%15lb:0b100000000000000000000000000000000:1:15:4096: ++%*15lb:0b100000000000000000000000000000000:0:15: ++%15lb:100000000000000000001000010010001:1:15:16384: ++%*15lb:100000000000000000001000010010001:0:15: ++%15lb:0B100000000000000000001000010010001:1:15:4096: ++%*15lb:0B100000000000000000001000010010001:0:15: ++%15lb:0b100000000000000000001000010010001:1:15:4096: ++%*15lb:0b100000000000000000001000010010001:0:15: ++%15lb:+0:1:2:0: ++%*15lb:+0:0:2: ++%15lb:+0B0:1:4:0: ++%*15lb:+0B0:0:4: ++%15lb:+0b0:1:4:0: ++%*15lb:+0b0:0:4: ++%15lb:+1:1:2:1: ++%*15lb:+1:0:2: ++%15lb:+0B1:1:4:1: ++%*15lb:+0B1:0:4: ++%15lb:+0b1:1:4:1: ++%*15lb:+0b1:0:4: ++%15lb:+101010:1:7:42: ++%*15lb:+101010:0:7: ++%15lb:+0B101010:1:9:42: ++%*15lb:+0B101010:0:9: ++%15lb:+0b101010:1:9:42: ++%*15lb:+0b101010:0:9: ++%15lb:+11111111111111111111111111111111:1:15:16383: ++%*15lb:+11111111111111111111111111111111:0:15: ++%15lb:+0B11111111111111111111111111111111:1:15:4095: ++%*15lb:+0B11111111111111111111111111111111:0:15: ++%15lb:+0b11111111111111111111111111111111:1:15:4095: ++%*15lb:+0b11111111111111111111111111111111:0:15: ++%15lb:+100000000000000000000000000000000:1:15:8192: ++%*15lb:+100000000000000000000000000000000:0:15: ++%15lb:+0B100000000000000000000000000000000:1:15:2048: ++%*15lb:+0B100000000000000000000000000000000:0:15: ++%15lb:+0b100000000000000000000000000000000:1:15:2048: ++%*15lb:+0b100000000000000000000000000000000:0:15: ++%15lb:+100000000000000000001000010010001:1:15:8192: ++%*15lb:+100000000000000000001000010010001:0:15: ++%15lb:+0B100000000000000000001000010010001:1:15:2048: ++%*15lb:+0B100000000000000000001000010010001:0:15: ++%15lb:+0b100000000000000000001000010010001:1:15:2048: ++%*15lb:+0b100000000000000000001000010010001:0:15: ++%2lb: :0:-1: ++%*2lb: :0:-1: ++%2lb: -1111011:1:3:4294967295: ++%*2lb: -1111011:0:3: ++%2lb: -0B1111011:1:3:0: ++%*2lb: -0B1111011:0:3: ++%2lb: -0b1111011:1:3:0: ++%*2lb: -0b1111011:0:3: ++%2lb: -1:1:3:4294967295: ++%*2lb: -1:0:3: ++%2lb: -0B1:1:3:0: ++%*2lb: -0B1:0:3: ++%2lb: -0b1:1:3:0: ++%*2lb: -0b1:0:3: ++%2lb: -0:1:3:0: ++%*2lb: -0:0:3: ++%2lb: -0B0:1:3:0: ++%*2lb: -0B0:0:3: ++%2lb: -0b0:1:3:0: ++%*2lb: -0b0:0:3: ++%2lb: 0:1:2:0: ++%*2lb: 0:0:2: ++# BZ12701 %2lb: 0B0:0:-1: ++# BZ12701 %*2lb: 0B0:0:-1: ++# BZ12701 %2lb: 0b0:0:-1: ++# BZ12701 %*2lb: 0b0:0:-1: ++%2lb: 1:1:2:1: ++%*2lb: 1:0:2: ++# BZ12701 %2lb: 0B1:0:-1: ++# BZ12701 %*2lb: 0B1:0:-1: ++# BZ12701 %2lb: 0b1:0:-1: ++# BZ12701 %*2lb: 0b1:0:-1: ++%2lb: 101010:1:3:2: ++%*2lb: 101010:0:3: ++# BZ12701 %2lb: 0B101010:0:-1: ++# BZ12701 %*2lb: 0B101010:0:-1: ++# BZ12701 %2lb: 0b101010:0:-1: ++# BZ12701 %*2lb: 0b101010:0:-1: ++%2lb: 11111111111111111111111111111111:1:3:3: ++%*2lb: 11111111111111111111111111111111:0:3: ++# BZ12701 %2lb: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2lb: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0b11111111111111111111111111111111:0:-1: ++%2lb: 100000000000000000000000000000000:1:3:2: ++%*2lb: 100000000000000000000000000000000:0:3: ++# BZ12701 %2lb: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2lb: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0b100000000000000000000000000000000:0:-1: ++%2lb: 100000000000000000001000010010001:1:3:2: ++%*2lb: 100000000000000000001000010010001:0:3: ++# BZ12701 %2lb: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2lb: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb: 0b100000000000000000001000010010001:0:-1: ++%2lb: +0:1:3:0: ++%*2lb: +0:0:3: ++%2lb: +0B0:1:3:0: ++%*2lb: +0B0:0:3: ++%2lb: +0b0:1:3:0: ++%*2lb: +0b0:0:3: ++%2lb: +1:1:3:1: ++%*2lb: +1:0:3: ++%2lb: +0B1:1:3:0: ++%*2lb: +0B1:0:3: ++%2lb: +0b1:1:3:0: ++%*2lb: +0b1:0:3: ++%2lb: +101010:1:3:1: ++%*2lb: +101010:0:3: ++%2lb: +0B101010:1:3:0: ++%*2lb: +0B101010:0:3: ++%2lb: +0b101010:1:3:0: ++%*2lb: +0b101010:0:3: ++%2lb: +11111111111111111111111111111111:1:3:1: ++%*2lb: +11111111111111111111111111111111:0:3: ++%2lb: +0B11111111111111111111111111111111:1:3:0: ++%*2lb: +0B11111111111111111111111111111111:0:3: ++%2lb: +0b11111111111111111111111111111111:1:3:0: ++%*2lb: +0b11111111111111111111111111111111:0:3: ++%2lb: +100000000000000000000000000000000:1:3:1: ++%*2lb: +100000000000000000000000000000000:0:3: ++%2lb: +0B100000000000000000000000000000000:1:3:0: ++%*2lb: +0B100000000000000000000000000000000:0:3: ++%2lb: +0b100000000000000000000000000000000:1:3:0: ++%*2lb: +0b100000000000000000000000000000000:0:3: ++%2lb: +100000000000000000001000010010001:1:3:1: ++%*2lb: +100000000000000000001000010010001:0:3: ++%2lb: +0B100000000000000000001000010010001:1:3:0: ++%*2lb: +0B100000000000000000001000010010001:0:3: ++%2lb: +0b100000000000000000001000010010001:1:3:0: ++%*2lb: +0b100000000000000000001000010010001:0:3: ++%15lb: :0:-1: ++%*15lb: :0:-1: ++%15lb: -1111011:1:9:4294967173: ++%*15lb: -1111011:0:9: ++%15lb: -0B1111011:1:11:4294967173: ++%*15lb: -0B1111011:0:11: ++%15lb: -0b1111011:1:11:4294967173: ++%*15lb: -0b1111011:0:11: ++%15lb: -1:1:3:4294967295: ++%*15lb: -1:0:3: ++%15lb: -0B1:1:5:4294967295: ++%*15lb: -0B1:0:5: ++%15lb: -0b1:1:5:4294967295: ++%*15lb: -0b1:0:5: ++%15lb: -0:1:3:0: ++%*15lb: -0:0:3: ++%15lb: -0B0:1:5:0: ++%*15lb: -0B0:0:5: ++%15lb: -0b0:1:5:0: ++%*15lb: -0b0:0:5: ++%15lb: 0:1:2:0: ++%*15lb: 0:0:2: ++%15lb: 0B0:1:4:0: ++%*15lb: 0B0:0:4: ++%15lb: 0b0:1:4:0: ++%*15lb: 0b0:0:4: ++%15lb: 1:1:2:1: ++%*15lb: 1:0:2: ++%15lb: 0B1:1:4:1: ++%*15lb: 0B1:0:4: ++%15lb: 0b1:1:4:1: ++%*15lb: 0b1:0:4: ++%15lb: 101010:1:7:42: ++%*15lb: 101010:0:7: ++%15lb: 0B101010:1:9:42: ++%*15lb: 0B101010:0:9: ++%15lb: 0b101010:1:9:42: ++%*15lb: 0b101010:0:9: ++%15lb: 11111111111111111111111111111111:1:16:32767: ++%*15lb: 11111111111111111111111111111111:0:16: ++%15lb: 0B11111111111111111111111111111111:1:16:8191: ++%*15lb: 0B11111111111111111111111111111111:0:16: ++%15lb: 0b11111111111111111111111111111111:1:16:8191: ++%*15lb: 0b11111111111111111111111111111111:0:16: ++%15lb: 100000000000000000000000000000000:1:16:16384: ++%*15lb: 100000000000000000000000000000000:0:16: ++%15lb: 0B100000000000000000000000000000000:1:16:4096: ++%*15lb: 0B100000000000000000000000000000000:0:16: ++%15lb: 0b100000000000000000000000000000000:1:16:4096: ++%*15lb: 0b100000000000000000000000000000000:0:16: ++%15lb: 100000000000000000001000010010001:1:16:16384: ++%*15lb: 100000000000000000001000010010001:0:16: ++%15lb: 0B100000000000000000001000010010001:1:16:4096: ++%*15lb: 0B100000000000000000001000010010001:0:16: ++%15lb: 0b100000000000000000001000010010001:1:16:4096: ++%*15lb: 0b100000000000000000001000010010001:0:16: ++%15lb: +0:1:3:0: ++%*15lb: +0:0:3: ++%15lb: +0B0:1:5:0: ++%*15lb: +0B0:0:5: ++%15lb: +0b0:1:5:0: ++%*15lb: +0b0:0:5: ++%15lb: +1:1:3:1: ++%*15lb: +1:0:3: ++%15lb: +0B1:1:5:1: ++%*15lb: +0B1:0:5: ++%15lb: +0b1:1:5:1: ++%*15lb: +0b1:0:5: ++%15lb: +101010:1:8:42: ++%*15lb: +101010:0:8: ++%15lb: +0B101010:1:10:42: ++%*15lb: +0B101010:0:10: ++%15lb: +0b101010:1:10:42: ++%*15lb: +0b101010:0:10: ++%15lb: +11111111111111111111111111111111:1:16:16383: ++%*15lb: +11111111111111111111111111111111:0:16: ++%15lb: +0B11111111111111111111111111111111:1:16:4095: ++%*15lb: +0B11111111111111111111111111111111:0:16: ++%15lb: +0b11111111111111111111111111111111:1:16:4095: ++%*15lb: +0b11111111111111111111111111111111:0:16: ++%15lb: +100000000000000000000000000000000:1:16:8192: ++%*15lb: +100000000000000000000000000000000:0:16: ++%15lb: +0B100000000000000000000000000000000:1:16:2048: ++%*15lb: +0B100000000000000000000000000000000:0:16: ++%15lb: +0b100000000000000000000000000000000:1:16:2048: ++%*15lb: +0b100000000000000000000000000000000:0:16: ++%15lb: +100000000000000000001000010010001:1:16:8192: ++%*15lb: +100000000000000000001000010010001:0:16: ++%15lb: +0B100000000000000000001000010010001:1:16:2048: ++%*15lb: +0B100000000000000000001000010010001:0:16: ++%15lb: +0b100000000000000000001000010010001:1:16:2048: ++%*15lb: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input +new file mode 100644 +index 0000000000000000..b350aa96bdf54d33 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input +@@ -0,0 +1,434 @@ ++%lo::0:-1: ++%*lo::0:-1: ++%lo:-173:1:4:4294967173: ++%*lo:-173:0:4: ++%lo:-0173:1:5:4294967173: ++%*lo:-0173:0:5: ++%lo:-1:1:2:4294967295: ++%*lo:-1:0:2: ++%lo:-01:1:3:4294967295: ++%*lo:-01:0:3: ++%lo:-0:1:2:0: ++%*lo:-0:0:2: ++%lo:-00:1:3:0: ++%*lo:-00:0:3: ++%lo:0:1:1:0: ++%*lo:0:0:1: ++%lo:00:1:2:0: ++%*lo:00:0:2: ++%lo:1:1:1:1: ++%*lo:1:0:1: ++%lo:01:1:2:1: ++%*lo:01:0:2: ++%lo:52:1:2:42: ++%*lo:52:0:2: ++%lo:052:1:3:42: ++%*lo:052:0:3: ++%lo:37777777777:1:11:4294967295: ++%*lo:37777777777:0:11: ++%lo:037777777777:1:12:4294967295: ++%*lo:037777777777:0:12: ++%lo:40000000000:1:11:4294967295: ++%*lo:40000000000:0:11: ++%lo:040000000000:1:12:4294967295: ++%*lo:040000000000:0:12: ++%lo:40000010221:1:11:4294967295: ++%*lo:40000010221:0:11: ++%lo:040000010221:1:12:4294967295: ++%*lo:040000010221:0:12: ++%lo:+0:1:2:0: ++%*lo:+0:0:2: ++%lo:+00:1:3:0: ++%*lo:+00:0:3: ++%lo:+1:1:2:1: ++%*lo:+1:0:2: ++%lo:+01:1:3:1: ++%*lo:+01:0:3: ++%lo:+52:1:3:42: ++%*lo:+52:0:3: ++%lo:+052:1:4:42: ++%*lo:+052:0:4: ++%lo:+37777777777:1:12:4294967295: ++%*lo:+37777777777:0:12: ++%lo:+037777777777:1:13:4294967295: ++%*lo:+037777777777:0:13: ++%lo:+40000000000:1:12:4294967295: ++%*lo:+40000000000:0:12: ++%lo:+040000000000:1:13:4294967295: ++%*lo:+040000000000:0:13: ++%lo:+40000010221:1:12:4294967295: ++%*lo:+40000010221:0:12: ++%lo:+040000010221:1:13:4294967295: ++%*lo:+040000010221:0:13: ++%1lo::0:-1: ++%*1lo::0:-1: ++%1lo:-173:0:-1: ++%*1lo:-173:0:-1: ++%1lo:-0173:0:-1: ++%*1lo:-0173:0:-1: ++%1lo:-1:0:-1: ++%*1lo:-1:0:-1: ++%1lo:-01:0:-1: ++%*1lo:-01:0:-1: ++%1lo:-0:0:-1: ++%*1lo:-0:0:-1: ++%1lo:-00:0:-1: ++%*1lo:-00:0:-1: ++%1lo:0:1:1:0: ++%*1lo:0:0:1: ++%1lo:00:1:1:0: ++%*1lo:00:0:1: ++%1lo:1:1:1:1: ++%*1lo:1:0:1: ++%1lo:01:1:1:0: ++%*1lo:01:0:1: ++%1lo:52:1:1:5: ++%*1lo:52:0:1: ++%1lo:052:1:1:0: ++%*1lo:052:0:1: ++%1lo:37777777777:1:1:3: ++%*1lo:37777777777:0:1: ++%1lo:037777777777:1:1:0: ++%*1lo:037777777777:0:1: ++%1lo:40000000000:1:1:4: ++%*1lo:40000000000:0:1: ++%1lo:040000000000:1:1:0: ++%*1lo:040000000000:0:1: ++%1lo:40000010221:1:1:4: ++%*1lo:40000010221:0:1: ++%1lo:040000010221:1:1:0: ++%*1lo:040000010221:0:1: ++%1lo:+0:0:-1: ++%*1lo:+0:0:-1: ++%1lo:+00:0:-1: ++%*1lo:+00:0:-1: ++%1lo:+1:0:-1: ++%*1lo:+1:0:-1: ++%1lo:+01:0:-1: ++%*1lo:+01:0:-1: ++%1lo:+52:0:-1: ++%*1lo:+52:0:-1: ++%1lo:+052:0:-1: ++%*1lo:+052:0:-1: ++%1lo:+37777777777:0:-1: ++%*1lo:+37777777777:0:-1: ++%1lo:+037777777777:0:-1: ++%*1lo:+037777777777:0:-1: ++%1lo:+40000000000:0:-1: ++%*1lo:+40000000000:0:-1: ++%1lo:+040000000000:0:-1: ++%*1lo:+040000000000:0:-1: ++%1lo:+40000010221:0:-1: ++%*1lo:+40000010221:0:-1: ++%1lo:+040000010221:0:-1: ++%*1lo:+040000010221:0:-1: ++%2lo::0:-1: ++%*2lo::0:-1: ++%2lo:-173:1:2:4294967295: ++%*2lo:-173:0:2: ++%2lo:-0173:1:2:0: ++%*2lo:-0173:0:2: ++%2lo:-1:1:2:4294967295: ++%*2lo:-1:0:2: ++%2lo:-01:1:2:0: ++%*2lo:-01:0:2: ++%2lo:-0:1:2:0: ++%*2lo:-0:0:2: ++%2lo:-00:1:2:0: ++%*2lo:-00:0:2: ++%2lo:0:1:1:0: ++%*2lo:0:0:1: ++%2lo:00:1:2:0: ++%*2lo:00:0:2: ++%2lo:1:1:1:1: ++%*2lo:1:0:1: ++%2lo:01:1:2:1: ++%*2lo:01:0:2: ++%2lo:52:1:2:42: ++%*2lo:52:0:2: ++%2lo:052:1:2:5: ++%*2lo:052:0:2: ++%2lo:37777777777:1:2:31: ++%*2lo:37777777777:0:2: ++%2lo:037777777777:1:2:3: ++%*2lo:037777777777:0:2: ++%2lo:40000000000:1:2:32: ++%*2lo:40000000000:0:2: ++%2lo:040000000000:1:2:4: ++%*2lo:040000000000:0:2: ++%2lo:40000010221:1:2:32: ++%*2lo:40000010221:0:2: ++%2lo:040000010221:1:2:4: ++%*2lo:040000010221:0:2: ++%2lo:+0:1:2:0: ++%*2lo:+0:0:2: ++%2lo:+00:1:2:0: ++%*2lo:+00:0:2: ++%2lo:+1:1:2:1: ++%*2lo:+1:0:2: ++%2lo:+01:1:2:0: ++%*2lo:+01:0:2: ++%2lo:+52:1:2:5: ++%*2lo:+52:0:2: ++%2lo:+052:1:2:0: ++%*2lo:+052:0:2: ++%2lo:+37777777777:1:2:3: ++%*2lo:+37777777777:0:2: ++%2lo:+037777777777:1:2:0: ++%*2lo:+037777777777:0:2: ++%2lo:+40000000000:1:2:4: ++%*2lo:+40000000000:0:2: ++%2lo:+040000000000:1:2:0: ++%*2lo:+040000000000:0:2: ++%2lo:+40000010221:1:2:4: ++%*2lo:+40000010221:0:2: ++%2lo:+040000010221:1:2:0: ++%*2lo:+040000010221:0:2: ++%8lo::0:-1: ++%*8lo::0:-1: ++%8lo:-173:1:4:4294967173: ++%*8lo:-173:0:4: ++%8lo:-0173:1:5:4294967173: ++%*8lo:-0173:0:5: ++%8lo:-1:1:2:4294967295: ++%*8lo:-1:0:2: ++%8lo:-01:1:3:4294967295: ++%*8lo:-01:0:3: ++%8lo:-0:1:2:0: ++%*8lo:-0:0:2: ++%8lo:-00:1:3:0: ++%*8lo:-00:0:3: ++%8lo:0:1:1:0: ++%*8lo:0:0:1: ++%8lo:00:1:2:0: ++%*8lo:00:0:2: ++%8lo:1:1:1:1: ++%*8lo:1:0:1: ++%8lo:01:1:2:1: ++%*8lo:01:0:2: ++%8lo:52:1:2:42: ++%*8lo:52:0:2: ++%8lo:052:1:3:42: ++%*8lo:052:0:3: ++%8lo:37777777777:1:8:8388607: ++%*8lo:37777777777:0:8: ++%8lo:037777777777:1:8:1048575: ++%*8lo:037777777777:0:8: ++%8lo:40000000000:1:8:8388608: ++%*8lo:40000000000:0:8: ++%8lo:040000000000:1:8:1048576: ++%*8lo:040000000000:0:8: ++%8lo:40000010221:1:8:8388616: ++%*8lo:40000010221:0:8: ++%8lo:040000010221:1:8:1048577: ++%*8lo:040000010221:0:8: ++%8lo:+0:1:2:0: ++%*8lo:+0:0:2: ++%8lo:+00:1:3:0: ++%*8lo:+00:0:3: ++%8lo:+1:1:2:1: ++%*8lo:+1:0:2: ++%8lo:+01:1:3:1: ++%*8lo:+01:0:3: ++%8lo:+52:1:3:42: ++%*8lo:+52:0:3: ++%8lo:+052:1:4:42: ++%*8lo:+052:0:4: ++%8lo:+37777777777:1:8:1048575: ++%*8lo:+37777777777:0:8: ++%8lo:+037777777777:1:8:131071: ++%*8lo:+037777777777:0:8: ++%8lo:+40000000000:1:8:1048576: ++%*8lo:+40000000000:0:8: ++%8lo:+040000000000:1:8:131072: ++%*8lo:+040000000000:0:8: ++%8lo:+40000010221:1:8:1048577: ++%*8lo:+40000010221:0:8: ++%8lo:+040000010221:1:8:131072: ++%*8lo:+040000010221:0:8: ++%15lo::0:-1: ++%*15lo::0:-1: ++%15lo:-173:1:4:4294967173: ++%*15lo:-173:0:4: ++%15lo:-0173:1:5:4294967173: ++%*15lo:-0173:0:5: ++%15lo:-1:1:2:4294967295: ++%*15lo:-1:0:2: ++%15lo:-01:1:3:4294967295: ++%*15lo:-01:0:3: ++%15lo:-0:1:2:0: ++%*15lo:-0:0:2: ++%15lo:-00:1:3:0: ++%*15lo:-00:0:3: ++%15lo:0:1:1:0: ++%*15lo:0:0:1: ++%15lo:00:1:2:0: ++%*15lo:00:0:2: ++%15lo:1:1:1:1: ++%*15lo:1:0:1: ++%15lo:01:1:2:1: ++%*15lo:01:0:2: ++%15lo:52:1:2:42: ++%*15lo:52:0:2: ++%15lo:052:1:3:42: ++%*15lo:052:0:3: ++%15lo:37777777777:1:11:4294967295: ++%*15lo:37777777777:0:11: ++%15lo:037777777777:1:12:4294967295: ++%*15lo:037777777777:0:12: ++%15lo:40000000000:1:11:4294967295: ++%*15lo:40000000000:0:11: ++%15lo:040000000000:1:12:4294967295: ++%*15lo:040000000000:0:12: ++%15lo:40000010221:1:11:4294967295: ++%*15lo:40000010221:0:11: ++%15lo:040000010221:1:12:4294967295: ++%*15lo:040000010221:0:12: ++%15lo:+0:1:2:0: ++%*15lo:+0:0:2: ++%15lo:+00:1:3:0: ++%*15lo:+00:0:3: ++%15lo:+1:1:2:1: ++%*15lo:+1:0:2: ++%15lo:+01:1:3:1: ++%*15lo:+01:0:3: ++%15lo:+52:1:3:42: ++%*15lo:+52:0:3: ++%15lo:+052:1:4:42: ++%*15lo:+052:0:4: ++%15lo:+37777777777:1:12:4294967295: ++%*15lo:+37777777777:0:12: ++%15lo:+037777777777:1:13:4294967295: ++%*15lo:+037777777777:0:13: ++%15lo:+40000000000:1:12:4294967295: ++%*15lo:+40000000000:0:12: ++%15lo:+040000000000:1:13:4294967295: ++%*15lo:+040000000000:0:13: ++%15lo:+40000010221:1:12:4294967295: ++%*15lo:+40000010221:0:12: ++%15lo:+040000010221:1:13:4294967295: ++%*15lo:+040000010221:0:13: ++%2lo: :0:-1: ++%*2lo: :0:-1: ++%2lo: -173:1:3:4294967295: ++%*2lo: -173:0:3: ++%2lo: -0173:1:3:0: ++%*2lo: -0173:0:3: ++%2lo: -1:1:3:4294967295: ++%*2lo: -1:0:3: ++%2lo: -01:1:3:0: ++%*2lo: -01:0:3: ++%2lo: -0:1:3:0: ++%*2lo: -0:0:3: ++%2lo: -00:1:3:0: ++%*2lo: -00:0:3: ++%2lo: 0:1:2:0: ++%*2lo: 0:0:2: ++%2lo: 00:1:3:0: ++%*2lo: 00:0:3: ++%2lo: 1:1:2:1: ++%*2lo: 1:0:2: ++%2lo: 01:1:3:1: ++%*2lo: 01:0:3: ++%2lo: 52:1:3:42: ++%*2lo: 52:0:3: ++%2lo: 052:1:3:5: ++%*2lo: 052:0:3: ++%2lo: 37777777777:1:3:31: ++%*2lo: 37777777777:0:3: ++%2lo: 037777777777:1:3:3: ++%*2lo: 037777777777:0:3: ++%2lo: 40000000000:1:3:32: ++%*2lo: 40000000000:0:3: ++%2lo: 040000000000:1:3:4: ++%*2lo: 040000000000:0:3: ++%2lo: 40000010221:1:3:32: ++%*2lo: 40000010221:0:3: ++%2lo: 040000010221:1:3:4: ++%*2lo: 040000010221:0:3: ++%2lo: +0:1:3:0: ++%*2lo: +0:0:3: ++%2lo: +00:1:3:0: ++%*2lo: +00:0:3: ++%2lo: +1:1:3:1: ++%*2lo: +1:0:3: ++%2lo: +01:1:3:0: ++%*2lo: +01:0:3: ++%2lo: +52:1:3:5: ++%*2lo: +52:0:3: ++%2lo: +052:1:3:0: ++%*2lo: +052:0:3: ++%2lo: +37777777777:1:3:3: ++%*2lo: +37777777777:0:3: ++%2lo: +037777777777:1:3:0: ++%*2lo: +037777777777:0:3: ++%2lo: +40000000000:1:3:4: ++%*2lo: +40000000000:0:3: ++%2lo: +040000000000:1:3:0: ++%*2lo: +040000000000:0:3: ++%2lo: +40000010221:1:3:4: ++%*2lo: +40000010221:0:3: ++%2lo: +040000010221:1:3:0: ++%*2lo: +040000010221:0:3: ++%15lo: :0:-1: ++%*15lo: :0:-1: ++%15lo: -173:1:5:4294967173: ++%*15lo: -173:0:5: ++%15lo: -0173:1:6:4294967173: ++%*15lo: -0173:0:6: ++%15lo: -1:1:3:4294967295: ++%*15lo: -1:0:3: ++%15lo: -01:1:4:4294967295: ++%*15lo: -01:0:4: ++%15lo: -0:1:3:0: ++%*15lo: -0:0:3: ++%15lo: -00:1:4:0: ++%*15lo: -00:0:4: ++%15lo: 0:1:2:0: ++%*15lo: 0:0:2: ++%15lo: 00:1:3:0: ++%*15lo: 00:0:3: ++%15lo: 1:1:2:1: ++%*15lo: 1:0:2: ++%15lo: 01:1:3:1: ++%*15lo: 01:0:3: ++%15lo: 52:1:3:42: ++%*15lo: 52:0:3: ++%15lo: 052:1:4:42: ++%*15lo: 052:0:4: ++%15lo: 37777777777:1:12:4294967295: ++%*15lo: 37777777777:0:12: ++%15lo: 037777777777:1:13:4294967295: ++%*15lo: 037777777777:0:13: ++%15lo: 40000000000:1:12:4294967295: ++%*15lo: 40000000000:0:12: ++%15lo: 040000000000:1:13:4294967295: ++%*15lo: 040000000000:0:13: ++%15lo: 40000010221:1:12:4294967295: ++%*15lo: 40000010221:0:12: ++%15lo: 040000010221:1:13:4294967295: ++%*15lo: 040000010221:0:13: ++%15lo: +0:1:3:0: ++%*15lo: +0:0:3: ++%15lo: +00:1:4:0: ++%*15lo: +00:0:4: ++%15lo: +1:1:3:1: ++%*15lo: +1:0:3: ++%15lo: +01:1:4:1: ++%*15lo: +01:0:4: ++%15lo: +52:1:4:42: ++%*15lo: +52:0:4: ++%15lo: +052:1:5:42: ++%*15lo: +052:0:5: ++%15lo: +37777777777:1:13:4294967295: ++%*15lo: +37777777777:0:13: ++%15lo: +037777777777:1:14:4294967295: ++%*15lo: +037777777777:0:14: ++%15lo: +40000000000:1:13:4294967295: ++%*15lo: +40000000000:0:13: ++%15lo: +040000000000:1:14:4294967295: ++%*15lo: +040000000000:0:14: ++%15lo: +40000010221:1:13:4294967295: ++%*15lo: +40000010221:0:13: ++%15lo: +040000010221:1:14:4294967295: ++%*15lo: +040000010221:0:14: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input +new file mode 100644 +index 0000000000000000..5895e3d0fd44af15 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input +@@ -0,0 +1,224 @@ ++%lu::0:-1: ++%*lu::0:-1: ++%lu:-123:1:4:4294967173: ++%*lu:-123:0:4: ++%lu:-1:1:2:4294967295: ++%*lu:-1:0:2: ++%lu:-0:1:2:0: ++%*lu:-0:0:2: ++%lu:0:1:1:0: ++%*lu:0:0:1: ++%lu:1:1:1:1: ++%*lu:1:0:1: ++%lu:42:1:2:42: ++%*lu:42:0:2: ++%lu:4294967295:1:10:4294967295: ++%*lu:4294967295:0:10: ++%lu:4294967296:1:10:4294967295: ++%*lu:4294967296:0:10: ++%lu:4294971537:1:10:4294967295: ++%*lu:4294971537:0:10: ++%lu:+0:1:2:0: ++%*lu:+0:0:2: ++%lu:+1:1:2:1: ++%*lu:+1:0:2: ++%lu:+42:1:3:42: ++%*lu:+42:0:3: ++%lu:+4294967295:1:11:4294967295: ++%*lu:+4294967295:0:11: ++%lu:+4294967296:1:11:4294967295: ++%*lu:+4294967296:0:11: ++%lu:+4294971537:1:11:4294967295: ++%*lu:+4294971537:0:11: ++%1lu::0:-1: ++%*1lu::0:-1: ++%1lu:-123:0:-1: ++%*1lu:-123:0:-1: ++%1lu:-1:0:-1: ++%*1lu:-1:0:-1: ++%1lu:-0:0:-1: ++%*1lu:-0:0:-1: ++%1lu:0:1:1:0: ++%*1lu:0:0:1: ++%1lu:1:1:1:1: ++%*1lu:1:0:1: ++%1lu:42:1:1:4: ++%*1lu:42:0:1: ++%1lu:4294967295:1:1:4: ++%*1lu:4294967295:0:1: ++%1lu:4294967296:1:1:4: ++%*1lu:4294967296:0:1: ++%1lu:4294971537:1:1:4: ++%*1lu:4294971537:0:1: ++%1lu:+0:0:-1: ++%*1lu:+0:0:-1: ++%1lu:+1:0:-1: ++%*1lu:+1:0:-1: ++%1lu:+42:0:-1: ++%*1lu:+42:0:-1: ++%1lu:+4294967295:0:-1: ++%*1lu:+4294967295:0:-1: ++%1lu:+4294967296:0:-1: ++%*1lu:+4294967296:0:-1: ++%1lu:+4294971537:0:-1: ++%*1lu:+4294971537:0:-1: ++%2lu::0:-1: ++%*2lu::0:-1: ++%2lu:-123:1:2:4294967295: ++%*2lu:-123:0:2: ++%2lu:-1:1:2:4294967295: ++%*2lu:-1:0:2: ++%2lu:-0:1:2:0: ++%*2lu:-0:0:2: ++%2lu:0:1:1:0: ++%*2lu:0:0:1: ++%2lu:1:1:1:1: ++%*2lu:1:0:1: ++%2lu:42:1:2:42: ++%*2lu:42:0:2: ++%2lu:4294967295:1:2:42: ++%*2lu:4294967295:0:2: ++%2lu:4294967296:1:2:42: ++%*2lu:4294967296:0:2: ++%2lu:4294971537:1:2:42: ++%*2lu:4294971537:0:2: ++%2lu:+0:1:2:0: ++%*2lu:+0:0:2: ++%2lu:+1:1:2:1: ++%*2lu:+1:0:2: ++%2lu:+42:1:2:4: ++%*2lu:+42:0:2: ++%2lu:+4294967295:1:2:4: ++%*2lu:+4294967295:0:2: ++%2lu:+4294967296:1:2:4: ++%*2lu:+4294967296:0:2: ++%2lu:+4294971537:1:2:4: ++%*2lu:+4294971537:0:2: ++%8lu::0:-1: ++%*8lu::0:-1: ++%8lu:-123:1:4:4294967173: ++%*8lu:-123:0:4: ++%8lu:-1:1:2:4294967295: ++%*8lu:-1:0:2: ++%8lu:-0:1:2:0: ++%*8lu:-0:0:2: ++%8lu:0:1:1:0: ++%*8lu:0:0:1: ++%8lu:1:1:1:1: ++%*8lu:1:0:1: ++%8lu:42:1:2:42: ++%*8lu:42:0:2: ++%8lu:4294967295:1:8:42949672: ++%*8lu:4294967295:0:8: ++%8lu:4294967296:1:8:42949672: ++%*8lu:4294967296:0:8: ++%8lu:4294971537:1:8:42949715: ++%*8lu:4294971537:0:8: ++%8lu:+0:1:2:0: ++%*8lu:+0:0:2: ++%8lu:+1:1:2:1: ++%*8lu:+1:0:2: ++%8lu:+42:1:3:42: ++%*8lu:+42:0:3: ++%8lu:+4294967295:1:8:4294967: ++%*8lu:+4294967295:0:8: ++%8lu:+4294967296:1:8:4294967: ++%*8lu:+4294967296:0:8: ++%8lu:+4294971537:1:8:4294971: ++%*8lu:+4294971537:0:8: ++%15lu::0:-1: ++%*15lu::0:-1: ++%15lu:-123:1:4:4294967173: ++%*15lu:-123:0:4: ++%15lu:-1:1:2:4294967295: ++%*15lu:-1:0:2: ++%15lu:-0:1:2:0: ++%*15lu:-0:0:2: ++%15lu:0:1:1:0: ++%*15lu:0:0:1: ++%15lu:1:1:1:1: ++%*15lu:1:0:1: ++%15lu:42:1:2:42: ++%*15lu:42:0:2: ++%15lu:4294967295:1:10:4294967295: ++%*15lu:4294967295:0:10: ++%15lu:4294967296:1:10:4294967295: ++%*15lu:4294967296:0:10: ++%15lu:4294971537:1:10:4294967295: ++%*15lu:4294971537:0:10: ++%15lu:+0:1:2:0: ++%*15lu:+0:0:2: ++%15lu:+1:1:2:1: ++%*15lu:+1:0:2: ++%15lu:+42:1:3:42: ++%*15lu:+42:0:3: ++%15lu:+4294967295:1:11:4294967295: ++%*15lu:+4294967295:0:11: ++%15lu:+4294967296:1:11:4294967295: ++%*15lu:+4294967296:0:11: ++%15lu:+4294971537:1:11:4294967295: ++%*15lu:+4294971537:0:11: ++%2lu: :0:-1: ++%*2lu: :0:-1: ++%2lu: -123:1:3:4294967295: ++%*2lu: -123:0:3: ++%2lu: -1:1:3:4294967295: ++%*2lu: -1:0:3: ++%2lu: -0:1:3:0: ++%*2lu: -0:0:3: ++%2lu: 0:1:2:0: ++%*2lu: 0:0:2: ++%2lu: 1:1:2:1: ++%*2lu: 1:0:2: ++%2lu: 42:1:3:42: ++%*2lu: 42:0:3: ++%2lu: 4294967295:1:3:42: ++%*2lu: 4294967295:0:3: ++%2lu: 4294967296:1:3:42: ++%*2lu: 4294967296:0:3: ++%2lu: 4294971537:1:3:42: ++%*2lu: 4294971537:0:3: ++%2lu: +0:1:3:0: ++%*2lu: +0:0:3: ++%2lu: +1:1:3:1: ++%*2lu: +1:0:3: ++%2lu: +42:1:3:4: ++%*2lu: +42:0:3: ++%2lu: +4294967295:1:3:4: ++%*2lu: +4294967295:0:3: ++%2lu: +4294967296:1:3:4: ++%*2lu: +4294967296:0:3: ++%2lu: +4294971537:1:3:4: ++%*2lu: +4294971537:0:3: ++%15lu: :0:-1: ++%*15lu: :0:-1: ++%15lu: -123:1:5:4294967173: ++%*15lu: -123:0:5: ++%15lu: -1:1:3:4294967295: ++%*15lu: -1:0:3: ++%15lu: -0:1:3:0: ++%*15lu: -0:0:3: ++%15lu: 0:1:2:0: ++%*15lu: 0:0:2: ++%15lu: 1:1:2:1: ++%*15lu: 1:0:2: ++%15lu: 42:1:3:42: ++%*15lu: 42:0:3: ++%15lu: 4294967295:1:11:4294967295: ++%*15lu: 4294967295:0:11: ++%15lu: 4294967296:1:11:4294967295: ++%*15lu: 4294967296:0:11: ++%15lu: 4294971537:1:11:4294967295: ++%*15lu: 4294971537:0:11: ++%15lu: +0:1:3:0: ++%*15lu: +0:0:3: ++%15lu: +1:1:3:1: ++%*15lu: +1:0:3: ++%15lu: +42:1:4:42: ++%*15lu: +42:0:4: ++%15lu: +4294967295:1:12:4294967295: ++%*15lu: +4294967295:0:12: ++%15lu: +4294967296:1:12:4294967295: ++%*15lu: +4294967296:0:12: ++%15lu: +4294971537:1:12:4294967295: ++%*15lu: +4294971537:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input +new file mode 100644 +index 0000000000000000..28ae944ad5c9ce26 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input +@@ -0,0 +1,714 @@ ++%lx::0:-1: ++%*lx::0:-1: ++%lx:-7b:1:3:4294967173: ++%*lx:-7b:0:3: ++%lx:-7B:1:3:4294967173: ++%*lx:-7B:0:3: ++%lx:-0X7b:1:5:4294967173: ++%*lx:-0X7b:0:5: ++%lx:-0x7B:1:5:4294967173: ++%*lx:-0x7B:0:5: ++%lx:-1:1:2:4294967295: ++%*lx:-1:0:2: ++%lx:-0X1:1:4:4294967295: ++%*lx:-0X1:0:4: ++%lx:-0x1:1:4:4294967295: ++%*lx:-0x1:0:4: ++%lx:-0:1:2:0: ++%*lx:-0:0:2: ++%lx:-0X0:1:4:0: ++%*lx:-0X0:0:4: ++%lx:-0x0:1:4:0: ++%*lx:-0x0:0:4: ++%lx:0:1:1:0: ++%*lx:0:0:1: ++%lx:0X0:1:3:0: ++%*lx:0X0:0:3: ++%lx:0x0:1:3:0: ++%*lx:0x0:0:3: ++%lx:1:1:1:1: ++%*lx:1:0:1: ++%lx:0X1:1:3:1: ++%*lx:0X1:0:3: ++%lx:0x1:1:3:1: ++%*lx:0x1:0:3: ++%lx:2a:1:2:42: ++%*lx:2a:0:2: ++%lx:2A:1:2:42: ++%*lx:2A:0:2: ++%lx:0X2a:1:4:42: ++%*lx:0X2a:0:4: ++%lx:0x2A:1:4:42: ++%*lx:0x2A:0:4: ++%lx:ffffffff:1:8:4294967295: ++%*lx:ffffffff:0:8: ++%lx:FFFFFFFF:1:8:4294967295: ++%*lx:FFFFFFFF:0:8: ++%lx:0Xffffffff:1:10:4294967295: ++%*lx:0Xffffffff:0:10: ++%lx:0xFFFFFFFF:1:10:4294967295: ++%*lx:0xFFFFFFFF:0:10: ++%lx:100000000:1:9:4294967295: ++%*lx:100000000:0:9: ++%lx:0X100000000:1:11:4294967295: ++%*lx:0X100000000:0:11: ++%lx:0x100000000:1:11:4294967295: ++%*lx:0x100000000:0:11: ++%lx:100001091:1:9:4294967295: ++%*lx:100001091:0:9: ++%lx:0X100001091:1:11:4294967295: ++%*lx:0X100001091:0:11: ++%lx:0x100001091:1:11:4294967295: ++%*lx:0x100001091:0:11: ++%lx:+0:1:2:0: ++%*lx:+0:0:2: ++%lx:+0X0:1:4:0: ++%*lx:+0X0:0:4: ++%lx:+0x0:1:4:0: ++%*lx:+0x0:0:4: ++%lx:+1:1:2:1: ++%*lx:+1:0:2: ++%lx:+0X1:1:4:1: ++%*lx:+0X1:0:4: ++%lx:+0x1:1:4:1: ++%*lx:+0x1:0:4: ++%lx:+2a:1:3:42: ++%*lx:+2a:0:3: ++%lx:+2A:1:3:42: ++%*lx:+2A:0:3: ++%lx:+0X2a:1:5:42: ++%*lx:+0X2a:0:5: ++%lx:+0x2A:1:5:42: ++%*lx:+0x2A:0:5: ++%lx:+ffffffff:1:9:4294967295: ++%*lx:+ffffffff:0:9: ++%lx:+FFFFFFFF:1:9:4294967295: ++%*lx:+FFFFFFFF:0:9: ++%lx:+0Xffffffff:1:11:4294967295: ++%*lx:+0Xffffffff:0:11: ++%lx:+0xFFFFFFFF:1:11:4294967295: ++%*lx:+0xFFFFFFFF:0:11: ++%lx:+100000000:1:10:4294967295: ++%*lx:+100000000:0:10: ++%lx:+0X100000000:1:12:4294967295: ++%*lx:+0X100000000:0:12: ++%lx:+0x100000000:1:12:4294967295: ++%*lx:+0x100000000:0:12: ++%lx:+100001091:1:10:4294967295: ++%*lx:+100001091:0:10: ++%lx:+0X100001091:1:12:4294967295: ++%*lx:+0X100001091:0:12: ++%lx:+0x100001091:1:12:4294967295: ++%*lx:+0x100001091:0:12: ++%1lx::0:-1: ++%*1lx::0:-1: ++%1lx:-7b:0:-1: ++%*1lx:-7b:0:-1: ++%1lx:-7B:0:-1: ++%*1lx:-7B:0:-1: ++%1lx:-0X7b:0:-1: ++%*1lx:-0X7b:0:-1: ++%1lx:-0x7B:0:-1: ++%*1lx:-0x7B:0:-1: ++%1lx:-1:0:-1: ++%*1lx:-1:0:-1: ++%1lx:-0X1:0:-1: ++%*1lx:-0X1:0:-1: ++%1lx:-0x1:0:-1: ++%*1lx:-0x1:0:-1: ++%1lx:-0:0:-1: ++%*1lx:-0:0:-1: ++%1lx:-0X0:0:-1: ++%*1lx:-0X0:0:-1: ++%1lx:-0x0:0:-1: ++%*1lx:-0x0:0:-1: ++%1lx:0:1:1:0: ++%*1lx:0:0:1: ++%1lx:0X0:1:1:0: ++%*1lx:0X0:0:1: ++%1lx:0x0:1:1:0: ++%*1lx:0x0:0:1: ++%1lx:1:1:1:1: ++%*1lx:1:0:1: ++%1lx:0X1:1:1:0: ++%*1lx:0X1:0:1: ++%1lx:0x1:1:1:0: ++%*1lx:0x1:0:1: ++%1lx:2a:1:1:2: ++%*1lx:2a:0:1: ++%1lx:2A:1:1:2: ++%*1lx:2A:0:1: ++%1lx:0X2a:1:1:0: ++%*1lx:0X2a:0:1: ++%1lx:0x2A:1:1:0: ++%*1lx:0x2A:0:1: ++%1lx:ffffffff:1:1:15: ++%*1lx:ffffffff:0:1: ++%1lx:FFFFFFFF:1:1:15: ++%*1lx:FFFFFFFF:0:1: ++%1lx:0Xffffffff:1:1:0: ++%*1lx:0Xffffffff:0:1: ++%1lx:0xFFFFFFFF:1:1:0: ++%*1lx:0xFFFFFFFF:0:1: ++%1lx:100000000:1:1:1: ++%*1lx:100000000:0:1: ++%1lx:0X100000000:1:1:0: ++%*1lx:0X100000000:0:1: ++%1lx:0x100000000:1:1:0: ++%*1lx:0x100000000:0:1: ++%1lx:100001091:1:1:1: ++%*1lx:100001091:0:1: ++%1lx:0X100001091:1:1:0: ++%*1lx:0X100001091:0:1: ++%1lx:0x100001091:1:1:0: ++%*1lx:0x100001091:0:1: ++%1lx:+0:0:-1: ++%*1lx:+0:0:-1: ++%1lx:+0X0:0:-1: ++%*1lx:+0X0:0:-1: ++%1lx:+0x0:0:-1: ++%*1lx:+0x0:0:-1: ++%1lx:+1:0:-1: ++%*1lx:+1:0:-1: ++%1lx:+0X1:0:-1: ++%*1lx:+0X1:0:-1: ++%1lx:+0x1:0:-1: ++%*1lx:+0x1:0:-1: ++%1lx:+2a:0:-1: ++%*1lx:+2a:0:-1: ++%1lx:+2A:0:-1: ++%*1lx:+2A:0:-1: ++%1lx:+0X2a:0:-1: ++%*1lx:+0X2a:0:-1: ++%1lx:+0x2A:0:-1: ++%*1lx:+0x2A:0:-1: ++%1lx:+ffffffff:0:-1: ++%*1lx:+ffffffff:0:-1: ++%1lx:+FFFFFFFF:0:-1: ++%*1lx:+FFFFFFFF:0:-1: ++%1lx:+0Xffffffff:0:-1: ++%*1lx:+0Xffffffff:0:-1: ++%1lx:+0xFFFFFFFF:0:-1: ++%*1lx:+0xFFFFFFFF:0:-1: ++%1lx:+100000000:0:-1: ++%*1lx:+100000000:0:-1: ++%1lx:+0X100000000:0:-1: ++%*1lx:+0X100000000:0:-1: ++%1lx:+0x100000000:0:-1: ++%*1lx:+0x100000000:0:-1: ++%1lx:+100001091:0:-1: ++%*1lx:+100001091:0:-1: ++%1lx:+0X100001091:0:-1: ++%*1lx:+0X100001091:0:-1: ++%1lx:+0x100001091:0:-1: ++%*1lx:+0x100001091:0:-1: ++%2lx::0:-1: ++%*2lx::0:-1: ++%2lx:-7b:1:2:4294967289: ++%*2lx:-7b:0:2: ++%2lx:-7B:1:2:4294967289: ++%*2lx:-7B:0:2: ++%2lx:-0X7b:1:2:0: ++%*2lx:-0X7b:0:2: ++%2lx:-0x7B:1:2:0: ++%*2lx:-0x7B:0:2: ++%2lx:-1:1:2:4294967295: ++%*2lx:-1:0:2: ++%2lx:-0X1:1:2:0: ++%*2lx:-0X1:0:2: ++%2lx:-0x1:1:2:0: ++%*2lx:-0x1:0:2: ++%2lx:-0:1:2:0: ++%*2lx:-0:0:2: ++%2lx:-0X0:1:2:0: ++%*2lx:-0X0:0:2: ++%2lx:-0x0:1:2:0: ++%*2lx:-0x0:0:2: ++%2lx:0:1:1:0: ++%*2lx:0:0:1: ++# BZ12701 %2lx:0X0:0:-1: ++# BZ12701 %*2lx:0X0:0:-1: ++# BZ12701 %2lx:0x0:0:-1: ++# BZ12701 %*2lx:0x0:0:-1: ++%2lx:1:1:1:1: ++%*2lx:1:0:1: ++# BZ12701 %2lx:0X1:0:-1: ++# BZ12701 %*2lx:0X1:0:-1: ++# BZ12701 %2lx:0x1:0:-1: ++# BZ12701 %*2lx:0x1:0:-1: ++%2lx:2a:1:2:42: ++%*2lx:2a:0:2: ++%2lx:2A:1:2:42: ++%*2lx:2A:0:2: ++# BZ12701 %2lx:0X2a:0:-1: ++# BZ12701 %*2lx:0X2a:0:-1: ++# BZ12701 %2lx:0x2A:0:-1: ++# BZ12701 %*2lx:0x2A:0:-1: ++%2lx:ffffffff:1:2:255: ++%*2lx:ffffffff:0:2: ++%2lx:FFFFFFFF:1:2:255: ++%*2lx:FFFFFFFF:0:2: ++# BZ12701 %2lx:0Xffffffff:0:-1: ++# BZ12701 %*2lx:0Xffffffff:0:-1: ++# BZ12701 %2lx:0xFFFFFFFF:0:-1: ++# BZ12701 %*2lx:0xFFFFFFFF:0:-1: ++%2lx:100000000:1:2:16: ++%*2lx:100000000:0:2: ++# BZ12701 %2lx:0X100000000:0:-1: ++# BZ12701 %*2lx:0X100000000:0:-1: ++# BZ12701 %2lx:0x100000000:0:-1: ++# BZ12701 %*2lx:0x100000000:0:-1: ++%2lx:100001091:1:2:16: ++%*2lx:100001091:0:2: ++# BZ12701 %2lx:0X100001091:0:-1: ++# BZ12701 %*2lx:0X100001091:0:-1: ++# BZ12701 %2lx:0x100001091:0:-1: ++# BZ12701 %*2lx:0x100001091:0:-1: ++%2lx:+0:1:2:0: ++%*2lx:+0:0:2: ++%2lx:+0X0:1:2:0: ++%*2lx:+0X0:0:2: ++%2lx:+0x0:1:2:0: ++%*2lx:+0x0:0:2: ++%2lx:+1:1:2:1: ++%*2lx:+1:0:2: ++%2lx:+0X1:1:2:0: ++%*2lx:+0X1:0:2: ++%2lx:+0x1:1:2:0: ++%*2lx:+0x1:0:2: ++%2lx:+2a:1:2:2: ++%*2lx:+2a:0:2: ++%2lx:+2A:1:2:2: ++%*2lx:+2A:0:2: ++%2lx:+0X2a:1:2:0: ++%*2lx:+0X2a:0:2: ++%2lx:+0x2A:1:2:0: ++%*2lx:+0x2A:0:2: ++%2lx:+ffffffff:1:2:15: ++%*2lx:+ffffffff:0:2: ++%2lx:+FFFFFFFF:1:2:15: ++%*2lx:+FFFFFFFF:0:2: ++%2lx:+0Xffffffff:1:2:0: ++%*2lx:+0Xffffffff:0:2: ++%2lx:+0xFFFFFFFF:1:2:0: ++%*2lx:+0xFFFFFFFF:0:2: ++%2lx:+100000000:1:2:1: ++%*2lx:+100000000:0:2: ++%2lx:+0X100000000:1:2:0: ++%*2lx:+0X100000000:0:2: ++%2lx:+0x100000000:1:2:0: ++%*2lx:+0x100000000:0:2: ++%2lx:+100001091:1:2:1: ++%*2lx:+100001091:0:2: ++%2lx:+0X100001091:1:2:0: ++%*2lx:+0X100001091:0:2: ++%2lx:+0x100001091:1:2:0: ++%*2lx:+0x100001091:0:2: ++%8lx::0:-1: ++%*8lx::0:-1: ++%8lx:-7b:1:3:4294967173: ++%*8lx:-7b:0:3: ++%8lx:-7B:1:3:4294967173: ++%*8lx:-7B:0:3: ++%8lx:-0X7b:1:5:4294967173: ++%*8lx:-0X7b:0:5: ++%8lx:-0x7B:1:5:4294967173: ++%*8lx:-0x7B:0:5: ++%8lx:-1:1:2:4294967295: ++%*8lx:-1:0:2: ++%8lx:-0X1:1:4:4294967295: ++%*8lx:-0X1:0:4: ++%8lx:-0x1:1:4:4294967295: ++%*8lx:-0x1:0:4: ++%8lx:-0:1:2:0: ++%*8lx:-0:0:2: ++%8lx:-0X0:1:4:0: ++%*8lx:-0X0:0:4: ++%8lx:-0x0:1:4:0: ++%*8lx:-0x0:0:4: ++%8lx:0:1:1:0: ++%*8lx:0:0:1: ++%8lx:0X0:1:3:0: ++%*8lx:0X0:0:3: ++%8lx:0x0:1:3:0: ++%*8lx:0x0:0:3: ++%8lx:1:1:1:1: ++%*8lx:1:0:1: ++%8lx:0X1:1:3:1: ++%*8lx:0X1:0:3: ++%8lx:0x1:1:3:1: ++%*8lx:0x1:0:3: ++%8lx:2a:1:2:42: ++%*8lx:2a:0:2: ++%8lx:2A:1:2:42: ++%*8lx:2A:0:2: ++%8lx:0X2a:1:4:42: ++%*8lx:0X2a:0:4: ++%8lx:0x2A:1:4:42: ++%*8lx:0x2A:0:4: ++%8lx:ffffffff:1:8:4294967295: ++%*8lx:ffffffff:0:8: ++%8lx:FFFFFFFF:1:8:4294967295: ++%*8lx:FFFFFFFF:0:8: ++%8lx:0Xffffffff:1:8:16777215: ++%*8lx:0Xffffffff:0:8: ++%8lx:0xFFFFFFFF:1:8:16777215: ++%*8lx:0xFFFFFFFF:0:8: ++%8lx:100000000:1:8:268435456: ++%*8lx:100000000:0:8: ++%8lx:0X100000000:1:8:1048576: ++%*8lx:0X100000000:0:8: ++%8lx:0x100000000:1:8:1048576: ++%*8lx:0x100000000:0:8: ++%8lx:100001091:1:8:268435721: ++%*8lx:100001091:0:8: ++%8lx:0X100001091:1:8:1048577: ++%*8lx:0X100001091:0:8: ++%8lx:0x100001091:1:8:1048577: ++%*8lx:0x100001091:0:8: ++%8lx:+0:1:2:0: ++%*8lx:+0:0:2: ++%8lx:+0X0:1:4:0: ++%*8lx:+0X0:0:4: ++%8lx:+0x0:1:4:0: ++%*8lx:+0x0:0:4: ++%8lx:+1:1:2:1: ++%*8lx:+1:0:2: ++%8lx:+0X1:1:4:1: ++%*8lx:+0X1:0:4: ++%8lx:+0x1:1:4:1: ++%*8lx:+0x1:0:4: ++%8lx:+2a:1:3:42: ++%*8lx:+2a:0:3: ++%8lx:+2A:1:3:42: ++%*8lx:+2A:0:3: ++%8lx:+0X2a:1:5:42: ++%*8lx:+0X2a:0:5: ++%8lx:+0x2A:1:5:42: ++%*8lx:+0x2A:0:5: ++%8lx:+ffffffff:1:8:268435455: ++%*8lx:+ffffffff:0:8: ++%8lx:+FFFFFFFF:1:8:268435455: ++%*8lx:+FFFFFFFF:0:8: ++%8lx:+0Xffffffff:1:8:1048575: ++%*8lx:+0Xffffffff:0:8: ++%8lx:+0xFFFFFFFF:1:8:1048575: ++%*8lx:+0xFFFFFFFF:0:8: ++%8lx:+100000000:1:8:16777216: ++%*8lx:+100000000:0:8: ++%8lx:+0X100000000:1:8:65536: ++%*8lx:+0X100000000:0:8: ++%8lx:+0x100000000:1:8:65536: ++%*8lx:+0x100000000:0:8: ++%8lx:+100001091:1:8:16777232: ++%*8lx:+100001091:0:8: ++%8lx:+0X100001091:1:8:65536: ++%*8lx:+0X100001091:0:8: ++%8lx:+0x100001091:1:8:65536: ++%*8lx:+0x100001091:0:8: ++%15lx::0:-1: ++%*15lx::0:-1: ++%15lx:-7b:1:3:4294967173: ++%*15lx:-7b:0:3: ++%15lx:-7B:1:3:4294967173: ++%*15lx:-7B:0:3: ++%15lx:-0X7b:1:5:4294967173: ++%*15lx:-0X7b:0:5: ++%15lx:-0x7B:1:5:4294967173: ++%*15lx:-0x7B:0:5: ++%15lx:-1:1:2:4294967295: ++%*15lx:-1:0:2: ++%15lx:-0X1:1:4:4294967295: ++%*15lx:-0X1:0:4: ++%15lx:-0x1:1:4:4294967295: ++%*15lx:-0x1:0:4: ++%15lx:-0:1:2:0: ++%*15lx:-0:0:2: ++%15lx:-0X0:1:4:0: ++%*15lx:-0X0:0:4: ++%15lx:-0x0:1:4:0: ++%*15lx:-0x0:0:4: ++%15lx:0:1:1:0: ++%*15lx:0:0:1: ++%15lx:0X0:1:3:0: ++%*15lx:0X0:0:3: ++%15lx:0x0:1:3:0: ++%*15lx:0x0:0:3: ++%15lx:1:1:1:1: ++%*15lx:1:0:1: ++%15lx:0X1:1:3:1: ++%*15lx:0X1:0:3: ++%15lx:0x1:1:3:1: ++%*15lx:0x1:0:3: ++%15lx:2a:1:2:42: ++%*15lx:2a:0:2: ++%15lx:2A:1:2:42: ++%*15lx:2A:0:2: ++%15lx:0X2a:1:4:42: ++%*15lx:0X2a:0:4: ++%15lx:0x2A:1:4:42: ++%*15lx:0x2A:0:4: ++%15lx:ffffffff:1:8:4294967295: ++%*15lx:ffffffff:0:8: ++%15lx:FFFFFFFF:1:8:4294967295: ++%*15lx:FFFFFFFF:0:8: ++%15lx:0Xffffffff:1:10:4294967295: ++%*15lx:0Xffffffff:0:10: ++%15lx:0xFFFFFFFF:1:10:4294967295: ++%*15lx:0xFFFFFFFF:0:10: ++%15lx:100000000:1:9:4294967295: ++%*15lx:100000000:0:9: ++%15lx:0X100000000:1:11:4294967295: ++%*15lx:0X100000000:0:11: ++%15lx:0x100000000:1:11:4294967295: ++%*15lx:0x100000000:0:11: ++%15lx:100001091:1:9:4294967295: ++%*15lx:100001091:0:9: ++%15lx:0X100001091:1:11:4294967295: ++%*15lx:0X100001091:0:11: ++%15lx:0x100001091:1:11:4294967295: ++%*15lx:0x100001091:0:11: ++%15lx:+0:1:2:0: ++%*15lx:+0:0:2: ++%15lx:+0X0:1:4:0: ++%*15lx:+0X0:0:4: ++%15lx:+0x0:1:4:0: ++%*15lx:+0x0:0:4: ++%15lx:+1:1:2:1: ++%*15lx:+1:0:2: ++%15lx:+0X1:1:4:1: ++%*15lx:+0X1:0:4: ++%15lx:+0x1:1:4:1: ++%*15lx:+0x1:0:4: ++%15lx:+2a:1:3:42: ++%*15lx:+2a:0:3: ++%15lx:+2A:1:3:42: ++%*15lx:+2A:0:3: ++%15lx:+0X2a:1:5:42: ++%*15lx:+0X2a:0:5: ++%15lx:+0x2A:1:5:42: ++%*15lx:+0x2A:0:5: ++%15lx:+ffffffff:1:9:4294967295: ++%*15lx:+ffffffff:0:9: ++%15lx:+FFFFFFFF:1:9:4294967295: ++%*15lx:+FFFFFFFF:0:9: ++%15lx:+0Xffffffff:1:11:4294967295: ++%*15lx:+0Xffffffff:0:11: ++%15lx:+0xFFFFFFFF:1:11:4294967295: ++%*15lx:+0xFFFFFFFF:0:11: ++%15lx:+100000000:1:10:4294967295: ++%*15lx:+100000000:0:10: ++%15lx:+0X100000000:1:12:4294967295: ++%*15lx:+0X100000000:0:12: ++%15lx:+0x100000000:1:12:4294967295: ++%*15lx:+0x100000000:0:12: ++%15lx:+100001091:1:10:4294967295: ++%*15lx:+100001091:0:10: ++%15lx:+0X100001091:1:12:4294967295: ++%*15lx:+0X100001091:0:12: ++%15lx:+0x100001091:1:12:4294967295: ++%*15lx:+0x100001091:0:12: ++%2lx: :0:-1: ++%*2lx: :0:-1: ++%2lx: -7b:1:3:4294967289: ++%*2lx: -7b:0:3: ++%2lx: -7B:1:3:4294967289: ++%*2lx: -7B:0:3: ++%2lx: -0X7b:1:3:0: ++%*2lx: -0X7b:0:3: ++%2lx: -0x7B:1:3:0: ++%*2lx: -0x7B:0:3: ++%2lx: -1:1:3:4294967295: ++%*2lx: -1:0:3: ++%2lx: -0X1:1:3:0: ++%*2lx: -0X1:0:3: ++%2lx: -0x1:1:3:0: ++%*2lx: -0x1:0:3: ++%2lx: -0:1:3:0: ++%*2lx: -0:0:3: ++%2lx: -0X0:1:3:0: ++%*2lx: -0X0:0:3: ++%2lx: -0x0:1:3:0: ++%*2lx: -0x0:0:3: ++%2lx: 0:1:2:0: ++%*2lx: 0:0:2: ++# BZ12701 %2lx: 0X0:0:-1: ++# BZ12701 %*2lx: 0X0:0:-1: ++# BZ12701 %2lx: 0x0:0:-1: ++# BZ12701 %*2lx: 0x0:0:-1: ++%2lx: 1:1:2:1: ++%*2lx: 1:0:2: ++# BZ12701 %2lx: 0X1:0:-1: ++# BZ12701 %*2lx: 0X1:0:-1: ++# BZ12701 %2lx: 0x1:0:-1: ++# BZ12701 %*2lx: 0x1:0:-1: ++%2lx: 2a:1:3:42: ++%*2lx: 2a:0:3: ++%2lx: 2A:1:3:42: ++%*2lx: 2A:0:3: ++# BZ12701 %2lx: 0X2a:0:-1: ++# BZ12701 %*2lx: 0X2a:0:-1: ++# BZ12701 %2lx: 0x2A:0:-1: ++# BZ12701 %*2lx: 0x2A:0:-1: ++%2lx: ffffffff:1:3:255: ++%*2lx: ffffffff:0:3: ++%2lx: FFFFFFFF:1:3:255: ++%*2lx: FFFFFFFF:0:3: ++# BZ12701 %2lx: 0Xffffffff:0:-1: ++# BZ12701 %*2lx: 0Xffffffff:0:-1: ++# BZ12701 %2lx: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2lx: 0xFFFFFFFF:0:-1: ++%2lx: 100000000:1:3:16: ++%*2lx: 100000000:0:3: ++# BZ12701 %2lx: 0X100000000:0:-1: ++# BZ12701 %*2lx: 0X100000000:0:-1: ++# BZ12701 %2lx: 0x100000000:0:-1: ++# BZ12701 %*2lx: 0x100000000:0:-1: ++%2lx: 100001091:1:3:16: ++%*2lx: 100001091:0:3: ++# BZ12701 %2lx: 0X100001091:0:-1: ++# BZ12701 %*2lx: 0X100001091:0:-1: ++# BZ12701 %2lx: 0x100001091:0:-1: ++# BZ12701 %*2lx: 0x100001091:0:-1: ++%2lx: +0:1:3:0: ++%*2lx: +0:0:3: ++%2lx: +0X0:1:3:0: ++%*2lx: +0X0:0:3: ++%2lx: +0x0:1:3:0: ++%*2lx: +0x0:0:3: ++%2lx: +1:1:3:1: ++%*2lx: +1:0:3: ++%2lx: +0X1:1:3:0: ++%*2lx: +0X1:0:3: ++%2lx: +0x1:1:3:0: ++%*2lx: +0x1:0:3: ++%2lx: +2a:1:3:2: ++%*2lx: +2a:0:3: ++%2lx: +2A:1:3:2: ++%*2lx: +2A:0:3: ++%2lx: +0X2a:1:3:0: ++%*2lx: +0X2a:0:3: ++%2lx: +0x2A:1:3:0: ++%*2lx: +0x2A:0:3: ++%2lx: +ffffffff:1:3:15: ++%*2lx: +ffffffff:0:3: ++%2lx: +FFFFFFFF:1:3:15: ++%*2lx: +FFFFFFFF:0:3: ++%2lx: +0Xffffffff:1:3:0: ++%*2lx: +0Xffffffff:0:3: ++%2lx: +0xFFFFFFFF:1:3:0: ++%*2lx: +0xFFFFFFFF:0:3: ++%2lx: +100000000:1:3:1: ++%*2lx: +100000000:0:3: ++%2lx: +0X100000000:1:3:0: ++%*2lx: +0X100000000:0:3: ++%2lx: +0x100000000:1:3:0: ++%*2lx: +0x100000000:0:3: ++%2lx: +100001091:1:3:1: ++%*2lx: +100001091:0:3: ++%2lx: +0X100001091:1:3:0: ++%*2lx: +0X100001091:0:3: ++%2lx: +0x100001091:1:3:0: ++%*2lx: +0x100001091:0:3: ++%15lx: :0:-1: ++%*15lx: :0:-1: ++%15lx: -7b:1:4:4294967173: ++%*15lx: -7b:0:4: ++%15lx: -7B:1:4:4294967173: ++%*15lx: -7B:0:4: ++%15lx: -0X7b:1:6:4294967173: ++%*15lx: -0X7b:0:6: ++%15lx: -0x7B:1:6:4294967173: ++%*15lx: -0x7B:0:6: ++%15lx: -1:1:3:4294967295: ++%*15lx: -1:0:3: ++%15lx: -0X1:1:5:4294967295: ++%*15lx: -0X1:0:5: ++%15lx: -0x1:1:5:4294967295: ++%*15lx: -0x1:0:5: ++%15lx: -0:1:3:0: ++%*15lx: -0:0:3: ++%15lx: -0X0:1:5:0: ++%*15lx: -0X0:0:5: ++%15lx: -0x0:1:5:0: ++%*15lx: -0x0:0:5: ++%15lx: 0:1:2:0: ++%*15lx: 0:0:2: ++%15lx: 0X0:1:4:0: ++%*15lx: 0X0:0:4: ++%15lx: 0x0:1:4:0: ++%*15lx: 0x0:0:4: ++%15lx: 1:1:2:1: ++%*15lx: 1:0:2: ++%15lx: 0X1:1:4:1: ++%*15lx: 0X1:0:4: ++%15lx: 0x1:1:4:1: ++%*15lx: 0x1:0:4: ++%15lx: 2a:1:3:42: ++%*15lx: 2a:0:3: ++%15lx: 2A:1:3:42: ++%*15lx: 2A:0:3: ++%15lx: 0X2a:1:5:42: ++%*15lx: 0X2a:0:5: ++%15lx: 0x2A:1:5:42: ++%*15lx: 0x2A:0:5: ++%15lx: ffffffff:1:9:4294967295: ++%*15lx: ffffffff:0:9: ++%15lx: FFFFFFFF:1:9:4294967295: ++%*15lx: FFFFFFFF:0:9: ++%15lx: 0Xffffffff:1:11:4294967295: ++%*15lx: 0Xffffffff:0:11: ++%15lx: 0xFFFFFFFF:1:11:4294967295: ++%*15lx: 0xFFFFFFFF:0:11: ++%15lx: 100000000:1:10:4294967295: ++%*15lx: 100000000:0:10: ++%15lx: 0X100000000:1:12:4294967295: ++%*15lx: 0X100000000:0:12: ++%15lx: 0x100000000:1:12:4294967295: ++%*15lx: 0x100000000:0:12: ++%15lx: 100001091:1:10:4294967295: ++%*15lx: 100001091:0:10: ++%15lx: 0X100001091:1:12:4294967295: ++%*15lx: 0X100001091:0:12: ++%15lx: 0x100001091:1:12:4294967295: ++%*15lx: 0x100001091:0:12: ++%15lx: +0:1:3:0: ++%*15lx: +0:0:3: ++%15lx: +0X0:1:5:0: ++%*15lx: +0X0:0:5: ++%15lx: +0x0:1:5:0: ++%*15lx: +0x0:0:5: ++%15lx: +1:1:3:1: ++%*15lx: +1:0:3: ++%15lx: +0X1:1:5:1: ++%*15lx: +0X1:0:5: ++%15lx: +0x1:1:5:1: ++%*15lx: +0x1:0:5: ++%15lx: +2a:1:4:42: ++%*15lx: +2a:0:4: ++%15lx: +2A:1:4:42: ++%*15lx: +2A:0:4: ++%15lx: +0X2a:1:6:42: ++%*15lx: +0X2a:0:6: ++%15lx: +0x2A:1:6:42: ++%*15lx: +0x2A:0:6: ++%15lx: +ffffffff:1:10:4294967295: ++%*15lx: +ffffffff:0:10: ++%15lx: +FFFFFFFF:1:10:4294967295: ++%*15lx: +FFFFFFFF:0:10: ++%15lx: +0Xffffffff:1:12:4294967295: ++%*15lx: +0Xffffffff:0:12: ++%15lx: +0xFFFFFFFF:1:12:4294967295: ++%*15lx: +0xFFFFFFFF:0:12: ++%15lx: +100000000:1:11:4294967295: ++%*15lx: +100000000:0:11: ++%15lx: +0X100000000:1:13:4294967295: ++%*15lx: +0X100000000:0:13: ++%15lx: +0x100000000:1:13:4294967295: ++%*15lx: +0x100000000:0:13: ++%15lx: +100001091:1:11:4294967295: ++%*15lx: +100001091:0:11: ++%15lx: +0X100001091:1:13:4294967295: ++%*15lx: +0X100001091:0:13: ++%15lx: +0x100001091:1:13:4294967295: ++%*15lx: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input +new file mode 100644 +index 0000000000000000..fc59225615205901 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input +@@ -0,0 +1,714 @@ ++%lX::0:-1: ++%*lX::0:-1: ++%lX:-7b:1:3:4294967173: ++%*lX:-7b:0:3: ++%lX:-7B:1:3:4294967173: ++%*lX:-7B:0:3: ++%lX:-0X7b:1:5:4294967173: ++%*lX:-0X7b:0:5: ++%lX:-0x7B:1:5:4294967173: ++%*lX:-0x7B:0:5: ++%lX:-1:1:2:4294967295: ++%*lX:-1:0:2: ++%lX:-0X1:1:4:4294967295: ++%*lX:-0X1:0:4: ++%lX:-0x1:1:4:4294967295: ++%*lX:-0x1:0:4: ++%lX:-0:1:2:0: ++%*lX:-0:0:2: ++%lX:-0X0:1:4:0: ++%*lX:-0X0:0:4: ++%lX:-0x0:1:4:0: ++%*lX:-0x0:0:4: ++%lX:0:1:1:0: ++%*lX:0:0:1: ++%lX:0X0:1:3:0: ++%*lX:0X0:0:3: ++%lX:0x0:1:3:0: ++%*lX:0x0:0:3: ++%lX:1:1:1:1: ++%*lX:1:0:1: ++%lX:0X1:1:3:1: ++%*lX:0X1:0:3: ++%lX:0x1:1:3:1: ++%*lX:0x1:0:3: ++%lX:2a:1:2:42: ++%*lX:2a:0:2: ++%lX:2A:1:2:42: ++%*lX:2A:0:2: ++%lX:0X2a:1:4:42: ++%*lX:0X2a:0:4: ++%lX:0x2A:1:4:42: ++%*lX:0x2A:0:4: ++%lX:ffffffff:1:8:4294967295: ++%*lX:ffffffff:0:8: ++%lX:FFFFFFFF:1:8:4294967295: ++%*lX:FFFFFFFF:0:8: ++%lX:0Xffffffff:1:10:4294967295: ++%*lX:0Xffffffff:0:10: ++%lX:0xFFFFFFFF:1:10:4294967295: ++%*lX:0xFFFFFFFF:0:10: ++%lX:100000000:1:9:4294967295: ++%*lX:100000000:0:9: ++%lX:0X100000000:1:11:4294967295: ++%*lX:0X100000000:0:11: ++%lX:0x100000000:1:11:4294967295: ++%*lX:0x100000000:0:11: ++%lX:100001091:1:9:4294967295: ++%*lX:100001091:0:9: ++%lX:0X100001091:1:11:4294967295: ++%*lX:0X100001091:0:11: ++%lX:0x100001091:1:11:4294967295: ++%*lX:0x100001091:0:11: ++%lX:+0:1:2:0: ++%*lX:+0:0:2: ++%lX:+0X0:1:4:0: ++%*lX:+0X0:0:4: ++%lX:+0x0:1:4:0: ++%*lX:+0x0:0:4: ++%lX:+1:1:2:1: ++%*lX:+1:0:2: ++%lX:+0X1:1:4:1: ++%*lX:+0X1:0:4: ++%lX:+0x1:1:4:1: ++%*lX:+0x1:0:4: ++%lX:+2a:1:3:42: ++%*lX:+2a:0:3: ++%lX:+2A:1:3:42: ++%*lX:+2A:0:3: ++%lX:+0X2a:1:5:42: ++%*lX:+0X2a:0:5: ++%lX:+0x2A:1:5:42: ++%*lX:+0x2A:0:5: ++%lX:+ffffffff:1:9:4294967295: ++%*lX:+ffffffff:0:9: ++%lX:+FFFFFFFF:1:9:4294967295: ++%*lX:+FFFFFFFF:0:9: ++%lX:+0Xffffffff:1:11:4294967295: ++%*lX:+0Xffffffff:0:11: ++%lX:+0xFFFFFFFF:1:11:4294967295: ++%*lX:+0xFFFFFFFF:0:11: ++%lX:+100000000:1:10:4294967295: ++%*lX:+100000000:0:10: ++%lX:+0X100000000:1:12:4294967295: ++%*lX:+0X100000000:0:12: ++%lX:+0x100000000:1:12:4294967295: ++%*lX:+0x100000000:0:12: ++%lX:+100001091:1:10:4294967295: ++%*lX:+100001091:0:10: ++%lX:+0X100001091:1:12:4294967295: ++%*lX:+0X100001091:0:12: ++%lX:+0x100001091:1:12:4294967295: ++%*lX:+0x100001091:0:12: ++%1lX::0:-1: ++%*1lX::0:-1: ++%1lX:-7b:0:-1: ++%*1lX:-7b:0:-1: ++%1lX:-7B:0:-1: ++%*1lX:-7B:0:-1: ++%1lX:-0X7b:0:-1: ++%*1lX:-0X7b:0:-1: ++%1lX:-0x7B:0:-1: ++%*1lX:-0x7B:0:-1: ++%1lX:-1:0:-1: ++%*1lX:-1:0:-1: ++%1lX:-0X1:0:-1: ++%*1lX:-0X1:0:-1: ++%1lX:-0x1:0:-1: ++%*1lX:-0x1:0:-1: ++%1lX:-0:0:-1: ++%*1lX:-0:0:-1: ++%1lX:-0X0:0:-1: ++%*1lX:-0X0:0:-1: ++%1lX:-0x0:0:-1: ++%*1lX:-0x0:0:-1: ++%1lX:0:1:1:0: ++%*1lX:0:0:1: ++%1lX:0X0:1:1:0: ++%*1lX:0X0:0:1: ++%1lX:0x0:1:1:0: ++%*1lX:0x0:0:1: ++%1lX:1:1:1:1: ++%*1lX:1:0:1: ++%1lX:0X1:1:1:0: ++%*1lX:0X1:0:1: ++%1lX:0x1:1:1:0: ++%*1lX:0x1:0:1: ++%1lX:2a:1:1:2: ++%*1lX:2a:0:1: ++%1lX:2A:1:1:2: ++%*1lX:2A:0:1: ++%1lX:0X2a:1:1:0: ++%*1lX:0X2a:0:1: ++%1lX:0x2A:1:1:0: ++%*1lX:0x2A:0:1: ++%1lX:ffffffff:1:1:15: ++%*1lX:ffffffff:0:1: ++%1lX:FFFFFFFF:1:1:15: ++%*1lX:FFFFFFFF:0:1: ++%1lX:0Xffffffff:1:1:0: ++%*1lX:0Xffffffff:0:1: ++%1lX:0xFFFFFFFF:1:1:0: ++%*1lX:0xFFFFFFFF:0:1: ++%1lX:100000000:1:1:1: ++%*1lX:100000000:0:1: ++%1lX:0X100000000:1:1:0: ++%*1lX:0X100000000:0:1: ++%1lX:0x100000000:1:1:0: ++%*1lX:0x100000000:0:1: ++%1lX:100001091:1:1:1: ++%*1lX:100001091:0:1: ++%1lX:0X100001091:1:1:0: ++%*1lX:0X100001091:0:1: ++%1lX:0x100001091:1:1:0: ++%*1lX:0x100001091:0:1: ++%1lX:+0:0:-1: ++%*1lX:+0:0:-1: ++%1lX:+0X0:0:-1: ++%*1lX:+0X0:0:-1: ++%1lX:+0x0:0:-1: ++%*1lX:+0x0:0:-1: ++%1lX:+1:0:-1: ++%*1lX:+1:0:-1: ++%1lX:+0X1:0:-1: ++%*1lX:+0X1:0:-1: ++%1lX:+0x1:0:-1: ++%*1lX:+0x1:0:-1: ++%1lX:+2a:0:-1: ++%*1lX:+2a:0:-1: ++%1lX:+2A:0:-1: ++%*1lX:+2A:0:-1: ++%1lX:+0X2a:0:-1: ++%*1lX:+0X2a:0:-1: ++%1lX:+0x2A:0:-1: ++%*1lX:+0x2A:0:-1: ++%1lX:+ffffffff:0:-1: ++%*1lX:+ffffffff:0:-1: ++%1lX:+FFFFFFFF:0:-1: ++%*1lX:+FFFFFFFF:0:-1: ++%1lX:+0Xffffffff:0:-1: ++%*1lX:+0Xffffffff:0:-1: ++%1lX:+0xFFFFFFFF:0:-1: ++%*1lX:+0xFFFFFFFF:0:-1: ++%1lX:+100000000:0:-1: ++%*1lX:+100000000:0:-1: ++%1lX:+0X100000000:0:-1: ++%*1lX:+0X100000000:0:-1: ++%1lX:+0x100000000:0:-1: ++%*1lX:+0x100000000:0:-1: ++%1lX:+100001091:0:-1: ++%*1lX:+100001091:0:-1: ++%1lX:+0X100001091:0:-1: ++%*1lX:+0X100001091:0:-1: ++%1lX:+0x100001091:0:-1: ++%*1lX:+0x100001091:0:-1: ++%2lX::0:-1: ++%*2lX::0:-1: ++%2lX:-7b:1:2:4294967289: ++%*2lX:-7b:0:2: ++%2lX:-7B:1:2:4294967289: ++%*2lX:-7B:0:2: ++%2lX:-0X7b:1:2:0: ++%*2lX:-0X7b:0:2: ++%2lX:-0x7B:1:2:0: ++%*2lX:-0x7B:0:2: ++%2lX:-1:1:2:4294967295: ++%*2lX:-1:0:2: ++%2lX:-0X1:1:2:0: ++%*2lX:-0X1:0:2: ++%2lX:-0x1:1:2:0: ++%*2lX:-0x1:0:2: ++%2lX:-0:1:2:0: ++%*2lX:-0:0:2: ++%2lX:-0X0:1:2:0: ++%*2lX:-0X0:0:2: ++%2lX:-0x0:1:2:0: ++%*2lX:-0x0:0:2: ++%2lX:0:1:1:0: ++%*2lX:0:0:1: ++# BZ12701 %2lX:0X0:0:-1: ++# BZ12701 %*2lX:0X0:0:-1: ++# BZ12701 %2lX:0x0:0:-1: ++# BZ12701 %*2lX:0x0:0:-1: ++%2lX:1:1:1:1: ++%*2lX:1:0:1: ++# BZ12701 %2lX:0X1:0:-1: ++# BZ12701 %*2lX:0X1:0:-1: ++# BZ12701 %2lX:0x1:0:-1: ++# BZ12701 %*2lX:0x1:0:-1: ++%2lX:2a:1:2:42: ++%*2lX:2a:0:2: ++%2lX:2A:1:2:42: ++%*2lX:2A:0:2: ++# BZ12701 %2lX:0X2a:0:-1: ++# BZ12701 %*2lX:0X2a:0:-1: ++# BZ12701 %2lX:0x2A:0:-1: ++# BZ12701 %*2lX:0x2A:0:-1: ++%2lX:ffffffff:1:2:255: ++%*2lX:ffffffff:0:2: ++%2lX:FFFFFFFF:1:2:255: ++%*2lX:FFFFFFFF:0:2: ++# BZ12701 %2lX:0Xffffffff:0:-1: ++# BZ12701 %*2lX:0Xffffffff:0:-1: ++# BZ12701 %2lX:0xFFFFFFFF:0:-1: ++# BZ12701 %*2lX:0xFFFFFFFF:0:-1: ++%2lX:100000000:1:2:16: ++%*2lX:100000000:0:2: ++# BZ12701 %2lX:0X100000000:0:-1: ++# BZ12701 %*2lX:0X100000000:0:-1: ++# BZ12701 %2lX:0x100000000:0:-1: ++# BZ12701 %*2lX:0x100000000:0:-1: ++%2lX:100001091:1:2:16: ++%*2lX:100001091:0:2: ++# BZ12701 %2lX:0X100001091:0:-1: ++# BZ12701 %*2lX:0X100001091:0:-1: ++# BZ12701 %2lX:0x100001091:0:-1: ++# BZ12701 %*2lX:0x100001091:0:-1: ++%2lX:+0:1:2:0: ++%*2lX:+0:0:2: ++%2lX:+0X0:1:2:0: ++%*2lX:+0X0:0:2: ++%2lX:+0x0:1:2:0: ++%*2lX:+0x0:0:2: ++%2lX:+1:1:2:1: ++%*2lX:+1:0:2: ++%2lX:+0X1:1:2:0: ++%*2lX:+0X1:0:2: ++%2lX:+0x1:1:2:0: ++%*2lX:+0x1:0:2: ++%2lX:+2a:1:2:2: ++%*2lX:+2a:0:2: ++%2lX:+2A:1:2:2: ++%*2lX:+2A:0:2: ++%2lX:+0X2a:1:2:0: ++%*2lX:+0X2a:0:2: ++%2lX:+0x2A:1:2:0: ++%*2lX:+0x2A:0:2: ++%2lX:+ffffffff:1:2:15: ++%*2lX:+ffffffff:0:2: ++%2lX:+FFFFFFFF:1:2:15: ++%*2lX:+FFFFFFFF:0:2: ++%2lX:+0Xffffffff:1:2:0: ++%*2lX:+0Xffffffff:0:2: ++%2lX:+0xFFFFFFFF:1:2:0: ++%*2lX:+0xFFFFFFFF:0:2: ++%2lX:+100000000:1:2:1: ++%*2lX:+100000000:0:2: ++%2lX:+0X100000000:1:2:0: ++%*2lX:+0X100000000:0:2: ++%2lX:+0x100000000:1:2:0: ++%*2lX:+0x100000000:0:2: ++%2lX:+100001091:1:2:1: ++%*2lX:+100001091:0:2: ++%2lX:+0X100001091:1:2:0: ++%*2lX:+0X100001091:0:2: ++%2lX:+0x100001091:1:2:0: ++%*2lX:+0x100001091:0:2: ++%8lX::0:-1: ++%*8lX::0:-1: ++%8lX:-7b:1:3:4294967173: ++%*8lX:-7b:0:3: ++%8lX:-7B:1:3:4294967173: ++%*8lX:-7B:0:3: ++%8lX:-0X7b:1:5:4294967173: ++%*8lX:-0X7b:0:5: ++%8lX:-0x7B:1:5:4294967173: ++%*8lX:-0x7B:0:5: ++%8lX:-1:1:2:4294967295: ++%*8lX:-1:0:2: ++%8lX:-0X1:1:4:4294967295: ++%*8lX:-0X1:0:4: ++%8lX:-0x1:1:4:4294967295: ++%*8lX:-0x1:0:4: ++%8lX:-0:1:2:0: ++%*8lX:-0:0:2: ++%8lX:-0X0:1:4:0: ++%*8lX:-0X0:0:4: ++%8lX:-0x0:1:4:0: ++%*8lX:-0x0:0:4: ++%8lX:0:1:1:0: ++%*8lX:0:0:1: ++%8lX:0X0:1:3:0: ++%*8lX:0X0:0:3: ++%8lX:0x0:1:3:0: ++%*8lX:0x0:0:3: ++%8lX:1:1:1:1: ++%*8lX:1:0:1: ++%8lX:0X1:1:3:1: ++%*8lX:0X1:0:3: ++%8lX:0x1:1:3:1: ++%*8lX:0x1:0:3: ++%8lX:2a:1:2:42: ++%*8lX:2a:0:2: ++%8lX:2A:1:2:42: ++%*8lX:2A:0:2: ++%8lX:0X2a:1:4:42: ++%*8lX:0X2a:0:4: ++%8lX:0x2A:1:4:42: ++%*8lX:0x2A:0:4: ++%8lX:ffffffff:1:8:4294967295: ++%*8lX:ffffffff:0:8: ++%8lX:FFFFFFFF:1:8:4294967295: ++%*8lX:FFFFFFFF:0:8: ++%8lX:0Xffffffff:1:8:16777215: ++%*8lX:0Xffffffff:0:8: ++%8lX:0xFFFFFFFF:1:8:16777215: ++%*8lX:0xFFFFFFFF:0:8: ++%8lX:100000000:1:8:268435456: ++%*8lX:100000000:0:8: ++%8lX:0X100000000:1:8:1048576: ++%*8lX:0X100000000:0:8: ++%8lX:0x100000000:1:8:1048576: ++%*8lX:0x100000000:0:8: ++%8lX:100001091:1:8:268435721: ++%*8lX:100001091:0:8: ++%8lX:0X100001091:1:8:1048577: ++%*8lX:0X100001091:0:8: ++%8lX:0x100001091:1:8:1048577: ++%*8lX:0x100001091:0:8: ++%8lX:+0:1:2:0: ++%*8lX:+0:0:2: ++%8lX:+0X0:1:4:0: ++%*8lX:+0X0:0:4: ++%8lX:+0x0:1:4:0: ++%*8lX:+0x0:0:4: ++%8lX:+1:1:2:1: ++%*8lX:+1:0:2: ++%8lX:+0X1:1:4:1: ++%*8lX:+0X1:0:4: ++%8lX:+0x1:1:4:1: ++%*8lX:+0x1:0:4: ++%8lX:+2a:1:3:42: ++%*8lX:+2a:0:3: ++%8lX:+2A:1:3:42: ++%*8lX:+2A:0:3: ++%8lX:+0X2a:1:5:42: ++%*8lX:+0X2a:0:5: ++%8lX:+0x2A:1:5:42: ++%*8lX:+0x2A:0:5: ++%8lX:+ffffffff:1:8:268435455: ++%*8lX:+ffffffff:0:8: ++%8lX:+FFFFFFFF:1:8:268435455: ++%*8lX:+FFFFFFFF:0:8: ++%8lX:+0Xffffffff:1:8:1048575: ++%*8lX:+0Xffffffff:0:8: ++%8lX:+0xFFFFFFFF:1:8:1048575: ++%*8lX:+0xFFFFFFFF:0:8: ++%8lX:+100000000:1:8:16777216: ++%*8lX:+100000000:0:8: ++%8lX:+0X100000000:1:8:65536: ++%*8lX:+0X100000000:0:8: ++%8lX:+0x100000000:1:8:65536: ++%*8lX:+0x100000000:0:8: ++%8lX:+100001091:1:8:16777232: ++%*8lX:+100001091:0:8: ++%8lX:+0X100001091:1:8:65536: ++%*8lX:+0X100001091:0:8: ++%8lX:+0x100001091:1:8:65536: ++%*8lX:+0x100001091:0:8: ++%15lX::0:-1: ++%*15lX::0:-1: ++%15lX:-7b:1:3:4294967173: ++%*15lX:-7b:0:3: ++%15lX:-7B:1:3:4294967173: ++%*15lX:-7B:0:3: ++%15lX:-0X7b:1:5:4294967173: ++%*15lX:-0X7b:0:5: ++%15lX:-0x7B:1:5:4294967173: ++%*15lX:-0x7B:0:5: ++%15lX:-1:1:2:4294967295: ++%*15lX:-1:0:2: ++%15lX:-0X1:1:4:4294967295: ++%*15lX:-0X1:0:4: ++%15lX:-0x1:1:4:4294967295: ++%*15lX:-0x1:0:4: ++%15lX:-0:1:2:0: ++%*15lX:-0:0:2: ++%15lX:-0X0:1:4:0: ++%*15lX:-0X0:0:4: ++%15lX:-0x0:1:4:0: ++%*15lX:-0x0:0:4: ++%15lX:0:1:1:0: ++%*15lX:0:0:1: ++%15lX:0X0:1:3:0: ++%*15lX:0X0:0:3: ++%15lX:0x0:1:3:0: ++%*15lX:0x0:0:3: ++%15lX:1:1:1:1: ++%*15lX:1:0:1: ++%15lX:0X1:1:3:1: ++%*15lX:0X1:0:3: ++%15lX:0x1:1:3:1: ++%*15lX:0x1:0:3: ++%15lX:2a:1:2:42: ++%*15lX:2a:0:2: ++%15lX:2A:1:2:42: ++%*15lX:2A:0:2: ++%15lX:0X2a:1:4:42: ++%*15lX:0X2a:0:4: ++%15lX:0x2A:1:4:42: ++%*15lX:0x2A:0:4: ++%15lX:ffffffff:1:8:4294967295: ++%*15lX:ffffffff:0:8: ++%15lX:FFFFFFFF:1:8:4294967295: ++%*15lX:FFFFFFFF:0:8: ++%15lX:0Xffffffff:1:10:4294967295: ++%*15lX:0Xffffffff:0:10: ++%15lX:0xFFFFFFFF:1:10:4294967295: ++%*15lX:0xFFFFFFFF:0:10: ++%15lX:100000000:1:9:4294967295: ++%*15lX:100000000:0:9: ++%15lX:0X100000000:1:11:4294967295: ++%*15lX:0X100000000:0:11: ++%15lX:0x100000000:1:11:4294967295: ++%*15lX:0x100000000:0:11: ++%15lX:100001091:1:9:4294967295: ++%*15lX:100001091:0:9: ++%15lX:0X100001091:1:11:4294967295: ++%*15lX:0X100001091:0:11: ++%15lX:0x100001091:1:11:4294967295: ++%*15lX:0x100001091:0:11: ++%15lX:+0:1:2:0: ++%*15lX:+0:0:2: ++%15lX:+0X0:1:4:0: ++%*15lX:+0X0:0:4: ++%15lX:+0x0:1:4:0: ++%*15lX:+0x0:0:4: ++%15lX:+1:1:2:1: ++%*15lX:+1:0:2: ++%15lX:+0X1:1:4:1: ++%*15lX:+0X1:0:4: ++%15lX:+0x1:1:4:1: ++%*15lX:+0x1:0:4: ++%15lX:+2a:1:3:42: ++%*15lX:+2a:0:3: ++%15lX:+2A:1:3:42: ++%*15lX:+2A:0:3: ++%15lX:+0X2a:1:5:42: ++%*15lX:+0X2a:0:5: ++%15lX:+0x2A:1:5:42: ++%*15lX:+0x2A:0:5: ++%15lX:+ffffffff:1:9:4294967295: ++%*15lX:+ffffffff:0:9: ++%15lX:+FFFFFFFF:1:9:4294967295: ++%*15lX:+FFFFFFFF:0:9: ++%15lX:+0Xffffffff:1:11:4294967295: ++%*15lX:+0Xffffffff:0:11: ++%15lX:+0xFFFFFFFF:1:11:4294967295: ++%*15lX:+0xFFFFFFFF:0:11: ++%15lX:+100000000:1:10:4294967295: ++%*15lX:+100000000:0:10: ++%15lX:+0X100000000:1:12:4294967295: ++%*15lX:+0X100000000:0:12: ++%15lX:+0x100000000:1:12:4294967295: ++%*15lX:+0x100000000:0:12: ++%15lX:+100001091:1:10:4294967295: ++%*15lX:+100001091:0:10: ++%15lX:+0X100001091:1:12:4294967295: ++%*15lX:+0X100001091:0:12: ++%15lX:+0x100001091:1:12:4294967295: ++%*15lX:+0x100001091:0:12: ++%2lX: :0:-1: ++%*2lX: :0:-1: ++%2lX: -7b:1:3:4294967289: ++%*2lX: -7b:0:3: ++%2lX: -7B:1:3:4294967289: ++%*2lX: -7B:0:3: ++%2lX: -0X7b:1:3:0: ++%*2lX: -0X7b:0:3: ++%2lX: -0x7B:1:3:0: ++%*2lX: -0x7B:0:3: ++%2lX: -1:1:3:4294967295: ++%*2lX: -1:0:3: ++%2lX: -0X1:1:3:0: ++%*2lX: -0X1:0:3: ++%2lX: -0x1:1:3:0: ++%*2lX: -0x1:0:3: ++%2lX: -0:1:3:0: ++%*2lX: -0:0:3: ++%2lX: -0X0:1:3:0: ++%*2lX: -0X0:0:3: ++%2lX: -0x0:1:3:0: ++%*2lX: -0x0:0:3: ++%2lX: 0:1:2:0: ++%*2lX: 0:0:2: ++# BZ12701 %2lX: 0X0:0:-1: ++# BZ12701 %*2lX: 0X0:0:-1: ++# BZ12701 %2lX: 0x0:0:-1: ++# BZ12701 %*2lX: 0x0:0:-1: ++%2lX: 1:1:2:1: ++%*2lX: 1:0:2: ++# BZ12701 %2lX: 0X1:0:-1: ++# BZ12701 %*2lX: 0X1:0:-1: ++# BZ12701 %2lX: 0x1:0:-1: ++# BZ12701 %*2lX: 0x1:0:-1: ++%2lX: 2a:1:3:42: ++%*2lX: 2a:0:3: ++%2lX: 2A:1:3:42: ++%*2lX: 2A:0:3: ++# BZ12701 %2lX: 0X2a:0:-1: ++# BZ12701 %*2lX: 0X2a:0:-1: ++# BZ12701 %2lX: 0x2A:0:-1: ++# BZ12701 %*2lX: 0x2A:0:-1: ++%2lX: ffffffff:1:3:255: ++%*2lX: ffffffff:0:3: ++%2lX: FFFFFFFF:1:3:255: ++%*2lX: FFFFFFFF:0:3: ++# BZ12701 %2lX: 0Xffffffff:0:-1: ++# BZ12701 %*2lX: 0Xffffffff:0:-1: ++# BZ12701 %2lX: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2lX: 0xFFFFFFFF:0:-1: ++%2lX: 100000000:1:3:16: ++%*2lX: 100000000:0:3: ++# BZ12701 %2lX: 0X100000000:0:-1: ++# BZ12701 %*2lX: 0X100000000:0:-1: ++# BZ12701 %2lX: 0x100000000:0:-1: ++# BZ12701 %*2lX: 0x100000000:0:-1: ++%2lX: 100001091:1:3:16: ++%*2lX: 100001091:0:3: ++# BZ12701 %2lX: 0X100001091:0:-1: ++# BZ12701 %*2lX: 0X100001091:0:-1: ++# BZ12701 %2lX: 0x100001091:0:-1: ++# BZ12701 %*2lX: 0x100001091:0:-1: ++%2lX: +0:1:3:0: ++%*2lX: +0:0:3: ++%2lX: +0X0:1:3:0: ++%*2lX: +0X0:0:3: ++%2lX: +0x0:1:3:0: ++%*2lX: +0x0:0:3: ++%2lX: +1:1:3:1: ++%*2lX: +1:0:3: ++%2lX: +0X1:1:3:0: ++%*2lX: +0X1:0:3: ++%2lX: +0x1:1:3:0: ++%*2lX: +0x1:0:3: ++%2lX: +2a:1:3:2: ++%*2lX: +2a:0:3: ++%2lX: +2A:1:3:2: ++%*2lX: +2A:0:3: ++%2lX: +0X2a:1:3:0: ++%*2lX: +0X2a:0:3: ++%2lX: +0x2A:1:3:0: ++%*2lX: +0x2A:0:3: ++%2lX: +ffffffff:1:3:15: ++%*2lX: +ffffffff:0:3: ++%2lX: +FFFFFFFF:1:3:15: ++%*2lX: +FFFFFFFF:0:3: ++%2lX: +0Xffffffff:1:3:0: ++%*2lX: +0Xffffffff:0:3: ++%2lX: +0xFFFFFFFF:1:3:0: ++%*2lX: +0xFFFFFFFF:0:3: ++%2lX: +100000000:1:3:1: ++%*2lX: +100000000:0:3: ++%2lX: +0X100000000:1:3:0: ++%*2lX: +0X100000000:0:3: ++%2lX: +0x100000000:1:3:0: ++%*2lX: +0x100000000:0:3: ++%2lX: +100001091:1:3:1: ++%*2lX: +100001091:0:3: ++%2lX: +0X100001091:1:3:0: ++%*2lX: +0X100001091:0:3: ++%2lX: +0x100001091:1:3:0: ++%*2lX: +0x100001091:0:3: ++%15lX: :0:-1: ++%*15lX: :0:-1: ++%15lX: -7b:1:4:4294967173: ++%*15lX: -7b:0:4: ++%15lX: -7B:1:4:4294967173: ++%*15lX: -7B:0:4: ++%15lX: -0X7b:1:6:4294967173: ++%*15lX: -0X7b:0:6: ++%15lX: -0x7B:1:6:4294967173: ++%*15lX: -0x7B:0:6: ++%15lX: -1:1:3:4294967295: ++%*15lX: -1:0:3: ++%15lX: -0X1:1:5:4294967295: ++%*15lX: -0X1:0:5: ++%15lX: -0x1:1:5:4294967295: ++%*15lX: -0x1:0:5: ++%15lX: -0:1:3:0: ++%*15lX: -0:0:3: ++%15lX: -0X0:1:5:0: ++%*15lX: -0X0:0:5: ++%15lX: -0x0:1:5:0: ++%*15lX: -0x0:0:5: ++%15lX: 0:1:2:0: ++%*15lX: 0:0:2: ++%15lX: 0X0:1:4:0: ++%*15lX: 0X0:0:4: ++%15lX: 0x0:1:4:0: ++%*15lX: 0x0:0:4: ++%15lX: 1:1:2:1: ++%*15lX: 1:0:2: ++%15lX: 0X1:1:4:1: ++%*15lX: 0X1:0:4: ++%15lX: 0x1:1:4:1: ++%*15lX: 0x1:0:4: ++%15lX: 2a:1:3:42: ++%*15lX: 2a:0:3: ++%15lX: 2A:1:3:42: ++%*15lX: 2A:0:3: ++%15lX: 0X2a:1:5:42: ++%*15lX: 0X2a:0:5: ++%15lX: 0x2A:1:5:42: ++%*15lX: 0x2A:0:5: ++%15lX: ffffffff:1:9:4294967295: ++%*15lX: ffffffff:0:9: ++%15lX: FFFFFFFF:1:9:4294967295: ++%*15lX: FFFFFFFF:0:9: ++%15lX: 0Xffffffff:1:11:4294967295: ++%*15lX: 0Xffffffff:0:11: ++%15lX: 0xFFFFFFFF:1:11:4294967295: ++%*15lX: 0xFFFFFFFF:0:11: ++%15lX: 100000000:1:10:4294967295: ++%*15lX: 100000000:0:10: ++%15lX: 0X100000000:1:12:4294967295: ++%*15lX: 0X100000000:0:12: ++%15lX: 0x100000000:1:12:4294967295: ++%*15lX: 0x100000000:0:12: ++%15lX: 100001091:1:10:4294967295: ++%*15lX: 100001091:0:10: ++%15lX: 0X100001091:1:12:4294967295: ++%*15lX: 0X100001091:0:12: ++%15lX: 0x100001091:1:12:4294967295: ++%*15lX: 0x100001091:0:12: ++%15lX: +0:1:3:0: ++%*15lX: +0:0:3: ++%15lX: +0X0:1:5:0: ++%*15lX: +0X0:0:5: ++%15lX: +0x0:1:5:0: ++%*15lX: +0x0:0:5: ++%15lX: +1:1:3:1: ++%*15lX: +1:0:3: ++%15lX: +0X1:1:5:1: ++%*15lX: +0X1:0:5: ++%15lX: +0x1:1:5:1: ++%*15lX: +0x1:0:5: ++%15lX: +2a:1:4:42: ++%*15lX: +2a:0:4: ++%15lX: +2A:1:4:42: ++%*15lX: +2A:0:4: ++%15lX: +0X2a:1:6:42: ++%*15lX: +0X2a:0:6: ++%15lX: +0x2A:1:6:42: ++%*15lX: +0x2A:0:6: ++%15lX: +ffffffff:1:10:4294967295: ++%*15lX: +ffffffff:0:10: ++%15lX: +FFFFFFFF:1:10:4294967295: ++%*15lX: +FFFFFFFF:0:10: ++%15lX: +0Xffffffff:1:12:4294967295: ++%*15lX: +0Xffffffff:0:12: ++%15lX: +0xFFFFFFFF:1:12:4294967295: ++%*15lX: +0xFFFFFFFF:0:12: ++%15lX: +100000000:1:11:4294967295: ++%*15lX: +100000000:0:11: ++%15lX: +0X100000000:1:13:4294967295: ++%*15lX: +0X100000000:0:13: ++%15lX: +0x100000000:1:13:4294967295: ++%*15lX: +0x100000000:0:13: ++%15lX: +100001091:1:11:4294967295: ++%*15lX: +100001091:0:11: ++%15lX: +0X100001091:1:13:4294967295: ++%*15lX: +0X100001091:0:13: ++%15lX: +0x100001091:1:13:4294967295: ++%*15lX: +0x100001091:0:13: diff --git a/SOURCES/glibc-RHEL-84306-3.patch b/SOURCES/glibc-RHEL-84306-3.patch new file mode 100644 index 0000000..ae3ee19 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-3.patch @@ -0,0 +1,9223 @@ +commit a2bacea239c1780b20a1b23a9c3c836ef61c6172 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf integer data for LP64 targets + + Add Makefile infrastructure and `int' and `long' integer input data, + signed and unsigned, for LP64 targets. + + While the size of `int' data is the same between ILP32 and LP64 targets, + resulting scanf output is different between them for out of range input + data and while ISO C and POSIX both say that the behavior is undefined + if the result of the conversion cannot be represented we want to keep + track of our output to prevent inadvertent changes. Hence the use of + distinct `int' integer input data between ILP32 and LP64 targets. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0b' or '0x'. + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/wordsize-64/Makefile + (missing Clang support commit 8d98c7c00f3f06545de9e5ce5cf778 + downstream) + +diff --git a/sysdeps/wordsize-64/Makefile b/sysdeps/wordsize-64/Makefile +index 2fa934751f04053d..25978365381ba06b 100644 +--- a/sysdeps/wordsize-64/Makefile ++++ b/sysdeps/wordsize-64/Makefile +@@ -1,3 +1,8 @@ + ifeq ($(subdir),misc) + tests += tst-writev + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-int-convs += int long ++fmt-xscanf-uint-convs += uint ulong ++endif +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-d.input b/sysdeps/wordsize-64/tst-scanf-format-int-d.input +new file mode 100644 +index 0000000000000000..d8c2b10af50e0ad3 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-d.input +@@ -0,0 +1,266 @@ ++%d::0:-1: ++%*d::0:-1: ++%d:-2147484882:1:11:2147482414: ++%*d:-2147484882:0:11: ++%d:-2147483649:1:11:2147483647: ++%*d:-2147483649:0:11: ++%d:-2147483648:1:11:-2147483648: ++%*d:-2147483648:0:11: ++%d:-123:1:4:-123: ++%*d:-123:0:4: ++%d:-1:1:2:-1: ++%*d:-1:0:2: ++%d:-0:1:2:0: ++%*d:-0:0:2: ++%d:0:1:1:0: ++%*d:0:0:1: ++%d:1:1:1:1: ++%*d:1:0:1: ++%d:42:1:2:42: ++%*d:42:0:2: ++%d:2147483647:1:10:2147483647: ++%*d:2147483647:0:10: ++%d:2147483648:1:10:-2147483648: ++%*d:2147483648:0:10: ++%d:2147487889:1:10:-2147479407: ++%*d:2147487889:0:10: ++%d:+0:1:2:0: ++%*d:+0:0:2: ++%d:+1:1:2:1: ++%*d:+1:0:2: ++%d:+42:1:3:42: ++%*d:+42:0:3: ++%d:+2147483647:1:11:2147483647: ++%*d:+2147483647:0:11: ++%d:+2147483648:1:11:-2147483648: ++%*d:+2147483648:0:11: ++%d:+2147487889:1:11:-2147479407: ++%*d:+2147487889:0:11: ++%1d::0:-1: ++%*1d::0:-1: ++%1d:-2147484882:0:-1: ++%*1d:-2147484882:0:-1: ++%1d:-2147483649:0:-1: ++%*1d:-2147483649:0:-1: ++%1d:-2147483648:0:-1: ++%*1d:-2147483648:0:-1: ++%1d:-123:0:-1: ++%*1d:-123:0:-1: ++%1d:-1:0:-1: ++%*1d:-1:0:-1: ++%1d:-0:0:-1: ++%*1d:-0:0:-1: ++%1d:0:1:1:0: ++%*1d:0:0:1: ++%1d:1:1:1:1: ++%*1d:1:0:1: ++%1d:42:1:1:4: ++%*1d:42:0:1: ++%1d:2147483647:1:1:2: ++%*1d:2147483647:0:1: ++%1d:2147483648:1:1:2: ++%*1d:2147483648:0:1: ++%1d:2147487889:1:1:2: ++%*1d:2147487889:0:1: ++%1d:+0:0:-1: ++%*1d:+0:0:-1: ++%1d:+1:0:-1: ++%*1d:+1:0:-1: ++%1d:+42:0:-1: ++%*1d:+42:0:-1: ++%1d:+2147483647:0:-1: ++%*1d:+2147483647:0:-1: ++%1d:+2147483648:0:-1: ++%*1d:+2147483648:0:-1: ++%1d:+2147487889:0:-1: ++%*1d:+2147487889:0:-1: ++%2d::0:-1: ++%*2d::0:-1: ++%2d:-2147484882:1:2:-2: ++%*2d:-2147484882:0:2: ++%2d:-2147483649:1:2:-2: ++%*2d:-2147483649:0:2: ++%2d:-2147483648:1:2:-2: ++%*2d:-2147483648:0:2: ++%2d:-123:1:2:-1: ++%*2d:-123:0:2: ++%2d:-1:1:2:-1: ++%*2d:-1:0:2: ++%2d:-0:1:2:0: ++%*2d:-0:0:2: ++%2d:0:1:1:0: ++%*2d:0:0:1: ++%2d:1:1:1:1: ++%*2d:1:0:1: ++%2d:42:1:2:42: ++%*2d:42:0:2: ++%2d:2147483647:1:2:21: ++%*2d:2147483647:0:2: ++%2d:2147483648:1:2:21: ++%*2d:2147483648:0:2: ++%2d:2147487889:1:2:21: ++%*2d:2147487889:0:2: ++%2d:+0:1:2:0: ++%*2d:+0:0:2: ++%2d:+1:1:2:1: ++%*2d:+1:0:2: ++%2d:+42:1:2:4: ++%*2d:+42:0:2: ++%2d:+2147483647:1:2:2: ++%*2d:+2147483647:0:2: ++%2d:+2147483648:1:2:2: ++%*2d:+2147483648:0:2: ++%2d:+2147487889:1:2:2: ++%*2d:+2147487889:0:2: ++%8d::0:-1: ++%*8d::0:-1: ++%8d:-2147484882:1:8:-2147484: ++%*8d:-2147484882:0:8: ++%8d:-2147483649:1:8:-2147483: ++%*8d:-2147483649:0:8: ++%8d:-2147483648:1:8:-2147483: ++%*8d:-2147483648:0:8: ++%8d:-123:1:4:-123: ++%*8d:-123:0:4: ++%8d:-1:1:2:-1: ++%*8d:-1:0:2: ++%8d:-0:1:2:0: ++%*8d:-0:0:2: ++%8d:0:1:1:0: ++%*8d:0:0:1: ++%8d:1:1:1:1: ++%*8d:1:0:1: ++%8d:42:1:2:42: ++%*8d:42:0:2: ++%8d:2147483647:1:8:21474836: ++%*8d:2147483647:0:8: ++%8d:2147483648:1:8:21474836: ++%*8d:2147483648:0:8: ++%8d:2147487889:1:8:21474878: ++%*8d:2147487889:0:8: ++%8d:+0:1:2:0: ++%*8d:+0:0:2: ++%8d:+1:1:2:1: ++%*8d:+1:0:2: ++%8d:+42:1:3:42: ++%*8d:+42:0:3: ++%8d:+2147483647:1:8:2147483: ++%*8d:+2147483647:0:8: ++%8d:+2147483648:1:8:2147483: ++%*8d:+2147483648:0:8: ++%8d:+2147487889:1:8:2147487: ++%*8d:+2147487889:0:8: ++%15d::0:-1: ++%*15d::0:-1: ++%15d:-2147484882:1:11:2147482414: ++%*15d:-2147484882:0:11: ++%15d:-2147483649:1:11:2147483647: ++%*15d:-2147483649:0:11: ++%15d:-2147483648:1:11:-2147483648: ++%*15d:-2147483648:0:11: ++%15d:-123:1:4:-123: ++%*15d:-123:0:4: ++%15d:-1:1:2:-1: ++%*15d:-1:0:2: ++%15d:-0:1:2:0: ++%*15d:-0:0:2: ++%15d:0:1:1:0: ++%*15d:0:0:1: ++%15d:1:1:1:1: ++%*15d:1:0:1: ++%15d:42:1:2:42: ++%*15d:42:0:2: ++%15d:2147483647:1:10:2147483647: ++%*15d:2147483647:0:10: ++%15d:2147483648:1:10:-2147483648: ++%*15d:2147483648:0:10: ++%15d:2147487889:1:10:-2147479407: ++%*15d:2147487889:0:10: ++%15d:+0:1:2:0: ++%*15d:+0:0:2: ++%15d:+1:1:2:1: ++%*15d:+1:0:2: ++%15d:+42:1:3:42: ++%*15d:+42:0:3: ++%15d:+2147483647:1:11:2147483647: ++%*15d:+2147483647:0:11: ++%15d:+2147483648:1:11:-2147483648: ++%*15d:+2147483648:0:11: ++%15d:+2147487889:1:11:-2147479407: ++%*15d:+2147487889:0:11: ++%2d: :0:-1: ++%*2d: :0:-1: ++%2d: -2147484882:1:3:-2: ++%*2d: -2147484882:0:3: ++%2d: -2147483649:1:3:-2: ++%*2d: -2147483649:0:3: ++%2d: -2147483648:1:3:-2: ++%*2d: -2147483648:0:3: ++%2d: -123:1:3:-1: ++%*2d: -123:0:3: ++%2d: -1:1:3:-1: ++%*2d: -1:0:3: ++%2d: -0:1:3:0: ++%*2d: -0:0:3: ++%2d: 0:1:2:0: ++%*2d: 0:0:2: ++%2d: 1:1:2:1: ++%*2d: 1:0:2: ++%2d: 42:1:3:42: ++%*2d: 42:0:3: ++%2d: 2147483647:1:3:21: ++%*2d: 2147483647:0:3: ++%2d: 2147483648:1:3:21: ++%*2d: 2147483648:0:3: ++%2d: 2147487889:1:3:21: ++%*2d: 2147487889:0:3: ++%2d: +0:1:3:0: ++%*2d: +0:0:3: ++%2d: +1:1:3:1: ++%*2d: +1:0:3: ++%2d: +42:1:3:4: ++%*2d: +42:0:3: ++%2d: +2147483647:1:3:2: ++%*2d: +2147483647:0:3: ++%2d: +2147483648:1:3:2: ++%*2d: +2147483648:0:3: ++%2d: +2147487889:1:3:2: ++%*2d: +2147487889:0:3: ++%15d: :0:-1: ++%*15d: :0:-1: ++%15d: -2147484882:1:12:2147482414: ++%*15d: -2147484882:0:12: ++%15d: -2147483649:1:12:2147483647: ++%*15d: -2147483649:0:12: ++%15d: -2147483648:1:12:-2147483648: ++%*15d: -2147483648:0:12: ++%15d: -123:1:5:-123: ++%*15d: -123:0:5: ++%15d: -1:1:3:-1: ++%*15d: -1:0:3: ++%15d: -0:1:3:0: ++%*15d: -0:0:3: ++%15d: 0:1:2:0: ++%*15d: 0:0:2: ++%15d: 1:1:2:1: ++%*15d: 1:0:2: ++%15d: 42:1:3:42: ++%*15d: 42:0:3: ++%15d: 2147483647:1:11:2147483647: ++%*15d: 2147483647:0:11: ++%15d: 2147483648:1:11:-2147483648: ++%*15d: 2147483648:0:11: ++%15d: 2147487889:1:11:-2147479407: ++%*15d: 2147487889:0:11: ++%15d: +0:1:3:0: ++%*15d: +0:0:3: ++%15d: +1:1:3:1: ++%*15d: +1:0:3: ++%15d: +42:1:4:42: ++%*15d: +42:0:4: ++%15d: +2147483647:1:12:2147483647: ++%*15d: +2147483647:0:12: ++%15d: +2147483648:1:12:-2147483648: ++%*15d: +2147483648:0:12: ++%15d: +2147487889:1:12:-2147479407: ++%*15d: +2147487889:0:12: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-i.input b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +new file mode 100644 +index 0000000000000000..8450d1aefc55cddf +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +@@ -0,0 +1,1526 @@ ++%i::0:-1: ++%*i::0:-1: ++%i:-2147484882:1:11:2147482414: ++%*i:-2147484882:0:11: ++%i:-0X800004d2:1:11:2147482414: ++%*i:-0X800004d2:0:11: ++%i:-0x800004D2:1:11:2147482414: ++%*i:-0x800004D2:0:11: ++%i:-020000002322:1:13:2147482414: ++%*i:-020000002322:0:13: ++%i:-0B10000000000000000000010011010010:1:35:2147482414: ++%*i:-0B10000000000000000000010011010010:0:35: ++%i:-0b10000000000000000000010011010010:1:35:2147482414: ++%*i:-0b10000000000000000000010011010010:0:35: ++%i:-2147483649:1:11:2147483647: ++%*i:-2147483649:0:11: ++%i:-0X80000001:1:11:2147483647: ++%*i:-0X80000001:0:11: ++%i:-0x80000001:1:11:2147483647: ++%*i:-0x80000001:0:11: ++%i:-020000000001:1:13:2147483647: ++%*i:-020000000001:0:13: ++%i:-0B10000000000000000000000000000001:1:35:2147483647: ++%*i:-0B10000000000000000000000000000001:0:35: ++%i:-0b10000000000000000000000000000001:1:35:2147483647: ++%*i:-0b10000000000000000000000000000001:0:35: ++%i:-2147483648:1:11:-2147483648: ++%*i:-2147483648:0:11: ++%i:-0X80000000:1:11:-2147483648: ++%*i:-0X80000000:0:11: ++%i:-0x80000000:1:11:-2147483648: ++%*i:-0x80000000:0:11: ++%i:-020000000000:1:13:-2147483648: ++%*i:-020000000000:0:13: ++%i:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000000:0:35: ++%i:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000000:0:35: ++%i:-123:1:4:-123: ++%*i:-123:0:4: ++%i:-0X7b:1:5:-123: ++%*i:-0X7b:0:5: ++%i:-0x7B:1:5:-123: ++%*i:-0x7B:0:5: ++%i:-0173:1:5:-123: ++%*i:-0173:0:5: ++%i:-0B1111011:1:10:-123: ++%*i:-0B1111011:0:10: ++%i:-0b1111011:1:10:-123: ++%*i:-0b1111011:0:10: ++%i:-1:1:2:-1: ++%*i:-1:0:2: ++%i:-0X1:1:4:-1: ++%*i:-0X1:0:4: ++%i:-0x1:1:4:-1: ++%*i:-0x1:0:4: ++%i:-01:1:3:-1: ++%*i:-01:0:3: ++%i:-0B1:1:4:-1: ++%*i:-0B1:0:4: ++%i:-0b1:1:4:-1: ++%*i:-0b1:0:4: ++%i:-0:1:2:0: ++%*i:-0:0:2: ++%i:-0X0:1:4:0: ++%*i:-0X0:0:4: ++%i:-0x0:1:4:0: ++%*i:-0x0:0:4: ++%i:-00:1:3:0: ++%*i:-00:0:3: ++%i:-0B0:1:4:0: ++%*i:-0B0:0:4: ++%i:-0b0:1:4:0: ++%*i:-0b0:0:4: ++%i:0:1:1:0: ++%*i:0:0:1: ++%i:0X0:1:3:0: ++%*i:0X0:0:3: ++%i:0x0:1:3:0: ++%*i:0x0:0:3: ++%i:00:1:2:0: ++%*i:00:0:2: ++%i:0B0:1:3:0: ++%*i:0B0:0:3: ++%i:0b0:1:3:0: ++%*i:0b0:0:3: ++%i:1:1:1:1: ++%*i:1:0:1: ++%i:0X1:1:3:1: ++%*i:0X1:0:3: ++%i:0x1:1:3:1: ++%*i:0x1:0:3: ++%i:01:1:2:1: ++%*i:01:0:2: ++%i:0B1:1:3:1: ++%*i:0B1:0:3: ++%i:0b1:1:3:1: ++%*i:0b1:0:3: ++%i:42:1:2:42: ++%*i:42:0:2: ++%i:0X2a:1:4:42: ++%*i:0X2a:0:4: ++%i:0x2A:1:4:42: ++%*i:0x2A:0:4: ++%i:052:1:3:42: ++%*i:052:0:3: ++%i:0B101010:1:8:42: ++%*i:0B101010:0:8: ++%i:0b101010:1:8:42: ++%*i:0b101010:0:8: ++%i:2147483647:1:10:2147483647: ++%*i:2147483647:0:10: ++%i:0X7fffffff:1:10:2147483647: ++%*i:0X7fffffff:0:10: ++%i:0x7FFFFFFF:1:10:2147483647: ++%*i:0x7FFFFFFF:0:10: ++%i:017777777777:1:12:2147483647: ++%*i:017777777777:0:12: ++%i:0B1111111111111111111111111111111:1:33:2147483647: ++%*i:0B1111111111111111111111111111111:0:33: ++%i:0b1111111111111111111111111111111:1:33:2147483647: ++%*i:0b1111111111111111111111111111111:0:33: ++%i:2147483648:1:10:-2147483648: ++%*i:2147483648:0:10: ++%i:0X80000000:1:10:-2147483648: ++%*i:0X80000000:0:10: ++%i:0x80000000:1:10:-2147483648: ++%*i:0x80000000:0:10: ++%i:020000000000:1:12:-2147483648: ++%*i:020000000000:0:12: ++%i:0B10000000000000000000000000000000:1:34:-2147483648: ++%*i:0B10000000000000000000000000000000:0:34: ++%i:0b10000000000000000000000000000000:1:34:-2147483648: ++%*i:0b10000000000000000000000000000000:0:34: ++%i:2147487889:1:10:-2147479407: ++%*i:2147487889:0:10: ++%i:0X80001091:1:10:-2147479407: ++%*i:0X80001091:0:10: ++%i:0x80001091:1:10:-2147479407: ++%*i:0x80001091:0:10: ++%i:020000010221:1:12:-2147479407: ++%*i:020000010221:0:12: ++%i:0B10000000000000000001000010010001:1:34:-2147479407: ++%*i:0B10000000000000000001000010010001:0:34: ++%i:0b10000000000000000001000010010001:1:34:-2147479407: ++%*i:0b10000000000000000001000010010001:0:34: ++%i:+0:1:2:0: ++%*i:+0:0:2: ++%i:+0X0:1:4:0: ++%*i:+0X0:0:4: ++%i:+0x0:1:4:0: ++%*i:+0x0:0:4: ++%i:+00:1:3:0: ++%*i:+00:0:3: ++%i:+0B0:1:4:0: ++%*i:+0B0:0:4: ++%i:+0b0:1:4:0: ++%*i:+0b0:0:4: ++%i:+1:1:2:1: ++%*i:+1:0:2: ++%i:+0X1:1:4:1: ++%*i:+0X1:0:4: ++%i:+0x1:1:4:1: ++%*i:+0x1:0:4: ++%i:+01:1:3:1: ++%*i:+01:0:3: ++%i:+0B1:1:4:1: ++%*i:+0B1:0:4: ++%i:+0b1:1:4:1: ++%*i:+0b1:0:4: ++%i:+42:1:3:42: ++%*i:+42:0:3: ++%i:+0X2a:1:5:42: ++%*i:+0X2a:0:5: ++%i:+0x2A:1:5:42: ++%*i:+0x2A:0:5: ++%i:+052:1:4:42: ++%*i:+052:0:4: ++%i:+0B101010:1:9:42: ++%*i:+0B101010:0:9: ++%i:+0b101010:1:9:42: ++%*i:+0b101010:0:9: ++%i:+2147483647:1:11:2147483647: ++%*i:+2147483647:0:11: ++%i:+0X7fffffff:1:11:2147483647: ++%*i:+0X7fffffff:0:11: ++%i:+0x7FFFFFFF:1:11:2147483647: ++%*i:+0x7FFFFFFF:0:11: ++%i:+017777777777:1:13:2147483647: ++%*i:+017777777777:0:13: ++%i:+0B1111111111111111111111111111111:1:34:2147483647: ++%*i:+0B1111111111111111111111111111111:0:34: ++%i:+0b1111111111111111111111111111111:1:34:2147483647: ++%*i:+0b1111111111111111111111111111111:0:34: ++%i:+2147483648:1:11:-2147483648: ++%*i:+2147483648:0:11: ++%i:+0X80000000:1:11:-2147483648: ++%*i:+0X80000000:0:11: ++%i:+0x80000000:1:11:-2147483648: ++%*i:+0x80000000:0:11: ++%i:+020000000000:1:13:-2147483648: ++%*i:+020000000000:0:13: ++%i:+0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:+0B10000000000000000000000000000000:0:35: ++%i:+0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:+0b10000000000000000000000000000000:0:35: ++%i:+2147487889:1:11:-2147479407: ++%*i:+2147487889:0:11: ++%i:+0X80001091:1:11:-2147479407: ++%*i:+0X80001091:0:11: ++%i:+0x80001091:1:11:-2147479407: ++%*i:+0x80001091:0:11: ++%i:+020000010221:1:13:-2147479407: ++%*i:+020000010221:0:13: ++%i:+0B10000000000000000001000010010001:1:35:-2147479407: ++%*i:+0B10000000000000000001000010010001:0:35: ++%i:+0b10000000000000000001000010010001:1:35:-2147479407: ++%*i:+0b10000000000000000001000010010001:0:35: ++%1i::0:-1: ++%*1i::0:-1: ++%1i:-2147484882:0:-1: ++%*1i:-2147484882:0:-1: ++%1i:-0X800004d2:0:-1: ++%*1i:-0X800004d2:0:-1: ++%1i:-0x800004D2:0:-1: ++%*1i:-0x800004D2:0:-1: ++%1i:-020000002322:0:-1: ++%*1i:-020000002322:0:-1: ++%1i:-0B10000000000000000000010011010010:0:-1: ++%*1i:-0B10000000000000000000010011010010:0:-1: ++%1i:-0b10000000000000000000010011010010:0:-1: ++%*1i:-0b10000000000000000000010011010010:0:-1: ++%1i:-2147483649:0:-1: ++%*1i:-2147483649:0:-1: ++%1i:-0X80000001:0:-1: ++%*1i:-0X80000001:0:-1: ++%1i:-0x80000001:0:-1: ++%*1i:-0x80000001:0:-1: ++%1i:-020000000001:0:-1: ++%*1i:-020000000001:0:-1: ++%1i:-0B10000000000000000000000000000001:0:-1: ++%*1i:-0B10000000000000000000000000000001:0:-1: ++%1i:-0b10000000000000000000000000000001:0:-1: ++%*1i:-0b10000000000000000000000000000001:0:-1: ++%1i:-2147483648:0:-1: ++%*1i:-2147483648:0:-1: ++%1i:-0X80000000:0:-1: ++%*1i:-0X80000000:0:-1: ++%1i:-0x80000000:0:-1: ++%*1i:-0x80000000:0:-1: ++%1i:-020000000000:0:-1: ++%*1i:-020000000000:0:-1: ++%1i:-0B10000000000000000000000000000000:0:-1: ++%*1i:-0B10000000000000000000000000000000:0:-1: ++%1i:-0b10000000000000000000000000000000:0:-1: ++%*1i:-0b10000000000000000000000000000000:0:-1: ++%1i:-123:0:-1: ++%*1i:-123:0:-1: ++%1i:-0X7b:0:-1: ++%*1i:-0X7b:0:-1: ++%1i:-0x7B:0:-1: ++%*1i:-0x7B:0:-1: ++%1i:-0173:0:-1: ++%*1i:-0173:0:-1: ++%1i:-0B1111011:0:-1: ++%*1i:-0B1111011:0:-1: ++%1i:-0b1111011:0:-1: ++%*1i:-0b1111011:0:-1: ++%1i:-1:0:-1: ++%*1i:-1:0:-1: ++%1i:-0X1:0:-1: ++%*1i:-0X1:0:-1: ++%1i:-0x1:0:-1: ++%*1i:-0x1:0:-1: ++%1i:-01:0:-1: ++%*1i:-01:0:-1: ++%1i:-0B1:0:-1: ++%*1i:-0B1:0:-1: ++%1i:-0b1:0:-1: ++%*1i:-0b1:0:-1: ++%1i:-0:0:-1: ++%*1i:-0:0:-1: ++%1i:-0X0:0:-1: ++%*1i:-0X0:0:-1: ++%1i:-0x0:0:-1: ++%*1i:-0x0:0:-1: ++%1i:-00:0:-1: ++%*1i:-00:0:-1: ++%1i:-0B0:0:-1: ++%*1i:-0B0:0:-1: ++%1i:-0b0:0:-1: ++%*1i:-0b0:0:-1: ++%1i:0:1:1:0: ++%*1i:0:0:1: ++%1i:0X0:1:1:0: ++%*1i:0X0:0:1: ++%1i:0x0:1:1:0: ++%*1i:0x0:0:1: ++%1i:00:1:1:0: ++%*1i:00:0:1: ++%1i:0B0:1:1:0: ++%*1i:0B0:0:1: ++%1i:0b0:1:1:0: ++%*1i:0b0:0:1: ++%1i:1:1:1:1: ++%*1i:1:0:1: ++%1i:0X1:1:1:0: ++%*1i:0X1:0:1: ++%1i:0x1:1:1:0: ++%*1i:0x1:0:1: ++%1i:01:1:1:0: ++%*1i:01:0:1: ++%1i:0B1:1:1:0: ++%*1i:0B1:0:1: ++%1i:0b1:1:1:0: ++%*1i:0b1:0:1: ++%1i:42:1:1:4: ++%*1i:42:0:1: ++%1i:0X2a:1:1:0: ++%*1i:0X2a:0:1: ++%1i:0x2A:1:1:0: ++%*1i:0x2A:0:1: ++%1i:052:1:1:0: ++%*1i:052:0:1: ++%1i:0B101010:1:1:0: ++%*1i:0B101010:0:1: ++%1i:0b101010:1:1:0: ++%*1i:0b101010:0:1: ++%1i:2147483647:1:1:2: ++%*1i:2147483647:0:1: ++%1i:0X7fffffff:1:1:0: ++%*1i:0X7fffffff:0:1: ++%1i:0x7FFFFFFF:1:1:0: ++%*1i:0x7FFFFFFF:0:1: ++%1i:017777777777:1:1:0: ++%*1i:017777777777:0:1: ++%1i:0B1111111111111111111111111111111:1:1:0: ++%*1i:0B1111111111111111111111111111111:0:1: ++%1i:0b1111111111111111111111111111111:1:1:0: ++%*1i:0b1111111111111111111111111111111:0:1: ++%1i:2147483648:1:1:2: ++%*1i:2147483648:0:1: ++%1i:0X80000000:1:1:0: ++%*1i:0X80000000:0:1: ++%1i:0x80000000:1:1:0: ++%*1i:0x80000000:0:1: ++%1i:020000000000:1:1:0: ++%*1i:020000000000:0:1: ++%1i:0B10000000000000000000000000000000:1:1:0: ++%*1i:0B10000000000000000000000000000000:0:1: ++%1i:0b10000000000000000000000000000000:1:1:0: ++%*1i:0b10000000000000000000000000000000:0:1: ++%1i:2147487889:1:1:2: ++%*1i:2147487889:0:1: ++%1i:0X80001091:1:1:0: ++%*1i:0X80001091:0:1: ++%1i:0x80001091:1:1:0: ++%*1i:0x80001091:0:1: ++%1i:020000010221:1:1:0: ++%*1i:020000010221:0:1: ++%1i:0B10000000000000000001000010010001:1:1:0: ++%*1i:0B10000000000000000001000010010001:0:1: ++%1i:0b10000000000000000001000010010001:1:1:0: ++%*1i:0b10000000000000000001000010010001:0:1: ++%1i:+0:0:-1: ++%*1i:+0:0:-1: ++%1i:+0X0:0:-1: ++%*1i:+0X0:0:-1: ++%1i:+0x0:0:-1: ++%*1i:+0x0:0:-1: ++%1i:+00:0:-1: ++%*1i:+00:0:-1: ++%1i:+0B0:0:-1: ++%*1i:+0B0:0:-1: ++%1i:+0b0:0:-1: ++%*1i:+0b0:0:-1: ++%1i:+1:0:-1: ++%*1i:+1:0:-1: ++%1i:+0X1:0:-1: ++%*1i:+0X1:0:-1: ++%1i:+0x1:0:-1: ++%*1i:+0x1:0:-1: ++%1i:+01:0:-1: ++%*1i:+01:0:-1: ++%1i:+0B1:0:-1: ++%*1i:+0B1:0:-1: ++%1i:+0b1:0:-1: ++%*1i:+0b1:0:-1: ++%1i:+42:0:-1: ++%*1i:+42:0:-1: ++%1i:+0X2a:0:-1: ++%*1i:+0X2a:0:-1: ++%1i:+0x2A:0:-1: ++%*1i:+0x2A:0:-1: ++%1i:+052:0:-1: ++%*1i:+052:0:-1: ++%1i:+0B101010:0:-1: ++%*1i:+0B101010:0:-1: ++%1i:+0b101010:0:-1: ++%*1i:+0b101010:0:-1: ++%1i:+2147483647:0:-1: ++%*1i:+2147483647:0:-1: ++%1i:+0X7fffffff:0:-1: ++%*1i:+0X7fffffff:0:-1: ++%1i:+0x7FFFFFFF:0:-1: ++%*1i:+0x7FFFFFFF:0:-1: ++%1i:+017777777777:0:-1: ++%*1i:+017777777777:0:-1: ++%1i:+0B1111111111111111111111111111111:0:-1: ++%*1i:+0B1111111111111111111111111111111:0:-1: ++%1i:+0b1111111111111111111111111111111:0:-1: ++%*1i:+0b1111111111111111111111111111111:0:-1: ++%1i:+2147483648:0:-1: ++%*1i:+2147483648:0:-1: ++%1i:+0X80000000:0:-1: ++%*1i:+0X80000000:0:-1: ++%1i:+0x80000000:0:-1: ++%*1i:+0x80000000:0:-1: ++%1i:+020000000000:0:-1: ++%*1i:+020000000000:0:-1: ++%1i:+0B10000000000000000000000000000000:0:-1: ++%*1i:+0B10000000000000000000000000000000:0:-1: ++%1i:+0b10000000000000000000000000000000:0:-1: ++%*1i:+0b10000000000000000000000000000000:0:-1: ++%1i:+2147487889:0:-1: ++%*1i:+2147487889:0:-1: ++%1i:+0X80001091:0:-1: ++%*1i:+0X80001091:0:-1: ++%1i:+0x80001091:0:-1: ++%*1i:+0x80001091:0:-1: ++%1i:+020000010221:0:-1: ++%*1i:+020000010221:0:-1: ++%1i:+0B10000000000000000001000010010001:0:-1: ++%*1i:+0B10000000000000000001000010010001:0:-1: ++%1i:+0b10000000000000000001000010010001:0:-1: ++%*1i:+0b10000000000000000001000010010001:0:-1: ++%2i::0:-1: ++%*2i::0:-1: ++%2i:-2147484882:1:2:-2: ++%*2i:-2147484882:0:2: ++%2i:-0X800004d2:1:2:0: ++%*2i:-0X800004d2:0:2: ++%2i:-0x800004D2:1:2:0: ++%*2i:-0x800004D2:0:2: ++%2i:-020000002322:1:2:0: ++%*2i:-020000002322:0:2: ++%2i:-0B10000000000000000000010011010010:1:2:0: ++%*2i:-0B10000000000000000000010011010010:0:2: ++%2i:-0b10000000000000000000010011010010:1:2:0: ++%*2i:-0b10000000000000000000010011010010:0:2: ++%2i:-2147483649:1:2:-2: ++%*2i:-2147483649:0:2: ++%2i:-0X80000001:1:2:0: ++%*2i:-0X80000001:0:2: ++%2i:-0x80000001:1:2:0: ++%*2i:-0x80000001:0:2: ++%2i:-020000000001:1:2:0: ++%*2i:-020000000001:0:2: ++%2i:-0B10000000000000000000000000000001:1:2:0: ++%*2i:-0B10000000000000000000000000000001:0:2: ++%2i:-0b10000000000000000000000000000001:1:2:0: ++%*2i:-0b10000000000000000000000000000001:0:2: ++%2i:-2147483648:1:2:-2: ++%*2i:-2147483648:0:2: ++%2i:-0X80000000:1:2:0: ++%*2i:-0X80000000:0:2: ++%2i:-0x80000000:1:2:0: ++%*2i:-0x80000000:0:2: ++%2i:-020000000000:1:2:0: ++%*2i:-020000000000:0:2: ++%2i:-0B10000000000000000000000000000000:1:2:0: ++%*2i:-0B10000000000000000000000000000000:0:2: ++%2i:-0b10000000000000000000000000000000:1:2:0: ++%*2i:-0b10000000000000000000000000000000:0:2: ++%2i:-123:1:2:-1: ++%*2i:-123:0:2: ++%2i:-0X7b:1:2:0: ++%*2i:-0X7b:0:2: ++%2i:-0x7B:1:2:0: ++%*2i:-0x7B:0:2: ++%2i:-0173:1:2:0: ++%*2i:-0173:0:2: ++%2i:-0B1111011:1:2:0: ++%*2i:-0B1111011:0:2: ++%2i:-0b1111011:1:2:0: ++%*2i:-0b1111011:0:2: ++%2i:-1:1:2:-1: ++%*2i:-1:0:2: ++%2i:-0X1:1:2:0: ++%*2i:-0X1:0:2: ++%2i:-0x1:1:2:0: ++%*2i:-0x1:0:2: ++%2i:-01:1:2:0: ++%*2i:-01:0:2: ++%2i:-0B1:1:2:0: ++%*2i:-0B1:0:2: ++%2i:-0b1:1:2:0: ++%*2i:-0b1:0:2: ++%2i:-0:1:2:0: ++%*2i:-0:0:2: ++%2i:-0X0:1:2:0: ++%*2i:-0X0:0:2: ++%2i:-0x0:1:2:0: ++%*2i:-0x0:0:2: ++%2i:-00:1:2:0: ++%*2i:-00:0:2: ++%2i:-0B0:1:2:0: ++%*2i:-0B0:0:2: ++%2i:-0b0:1:2:0: ++%*2i:-0b0:0:2: ++%2i:0:1:1:0: ++%*2i:0:0:1: ++# BZ12701 %2i:0X0:0:-1: ++# BZ12701 %*2i:0X0:0:-1: ++# BZ12701 %2i:0x0:0:-1: ++# BZ12701 %*2i:0x0:0:-1: ++%2i:00:1:2:0: ++%*2i:00:0:2: ++# BZ12701 %2i:0B0:0:-1: ++# BZ12701 %*2i:0B0:0:-1: ++# BZ12701 %2i:0b0:0:-1: ++# BZ12701 %*2i:0b0:0:-1: ++%2i:1:1:1:1: ++%*2i:1:0:1: ++# BZ12701 %2i:0X1:0:-1: ++# BZ12701 %*2i:0X1:0:-1: ++# BZ12701 %2i:0x1:0:-1: ++# BZ12701 %*2i:0x1:0:-1: ++%2i:01:1:2:1: ++%*2i:01:0:2: ++# BZ12701 %2i:0B1:0:-1: ++# BZ12701 %*2i:0B1:0:-1: ++# BZ12701 %2i:0b1:0:-1: ++# BZ12701 %*2i:0b1:0:-1: ++%2i:42:1:2:42: ++%*2i:42:0:2: ++# BZ12701 %2i:0X2a:0:-1: ++# BZ12701 %*2i:0X2a:0:-1: ++# BZ12701 %2i:0x2A:0:-1: ++# BZ12701 %*2i:0x2A:0:-1: ++%2i:052:1:2:5: ++%*2i:052:0:2: ++# BZ12701 %2i:0B101010:0:-1: ++# BZ12701 %*2i:0B101010:0:-1: ++# BZ12701 %2i:0b101010:0:-1: ++# BZ12701 %*2i:0b101010:0:-1: ++%2i:2147483647:1:2:21: ++%*2i:2147483647:0:2: ++# BZ12701 %2i:0X7fffffff:0:-1: ++# BZ12701 %*2i:0X7fffffff:0:-1: ++# BZ12701 %2i:0x7FFFFFFF:0:-1: ++# BZ12701 %*2i:0x7FFFFFFF:0:-1: ++%2i:017777777777:1:2:1: ++%*2i:017777777777:0:2: ++# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: ++%2i:2147483648:1:2:21: ++%*2i:2147483648:0:2: ++# BZ12701 %2i:0X80000000:0:-1: ++# BZ12701 %*2i:0X80000000:0:-1: ++# BZ12701 %2i:0x80000000:0:-1: ++# BZ12701 %*2i:0x80000000:0:-1: ++%2i:020000000000:1:2:2: ++%*2i:020000000000:0:2: ++# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: ++%2i:2147487889:1:2:21: ++%*2i:2147487889:0:2: ++# BZ12701 %2i:0X80001091:0:-1: ++# BZ12701 %*2i:0X80001091:0:-1: ++# BZ12701 %2i:0x80001091:0:-1: ++# BZ12701 %*2i:0x80001091:0:-1: ++%2i:020000010221:1:2:2: ++%*2i:020000010221:0:2: ++# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: ++%2i:+0:1:2:0: ++%*2i:+0:0:2: ++%2i:+0X0:1:2:0: ++%*2i:+0X0:0:2: ++%2i:+0x0:1:2:0: ++%*2i:+0x0:0:2: ++%2i:+00:1:2:0: ++%*2i:+00:0:2: ++%2i:+0B0:1:2:0: ++%*2i:+0B0:0:2: ++%2i:+0b0:1:2:0: ++%*2i:+0b0:0:2: ++%2i:+1:1:2:1: ++%*2i:+1:0:2: ++%2i:+0X1:1:2:0: ++%*2i:+0X1:0:2: ++%2i:+0x1:1:2:0: ++%*2i:+0x1:0:2: ++%2i:+01:1:2:0: ++%*2i:+01:0:2: ++%2i:+0B1:1:2:0: ++%*2i:+0B1:0:2: ++%2i:+0b1:1:2:0: ++%*2i:+0b1:0:2: ++%2i:+42:1:2:4: ++%*2i:+42:0:2: ++%2i:+0X2a:1:2:0: ++%*2i:+0X2a:0:2: ++%2i:+0x2A:1:2:0: ++%*2i:+0x2A:0:2: ++%2i:+052:1:2:0: ++%*2i:+052:0:2: ++%2i:+0B101010:1:2:0: ++%*2i:+0B101010:0:2: ++%2i:+0b101010:1:2:0: ++%*2i:+0b101010:0:2: ++%2i:+2147483647:1:2:2: ++%*2i:+2147483647:0:2: ++%2i:+0X7fffffff:1:2:0: ++%*2i:+0X7fffffff:0:2: ++%2i:+0x7FFFFFFF:1:2:0: ++%*2i:+0x7FFFFFFF:0:2: ++%2i:+017777777777:1:2:0: ++%*2i:+017777777777:0:2: ++%2i:+0B1111111111111111111111111111111:1:2:0: ++%*2i:+0B1111111111111111111111111111111:0:2: ++%2i:+0b1111111111111111111111111111111:1:2:0: ++%*2i:+0b1111111111111111111111111111111:0:2: ++%2i:+2147483648:1:2:2: ++%*2i:+2147483648:0:2: ++%2i:+0X80000000:1:2:0: ++%*2i:+0X80000000:0:2: ++%2i:+0x80000000:1:2:0: ++%*2i:+0x80000000:0:2: ++%2i:+020000000000:1:2:0: ++%*2i:+020000000000:0:2: ++%2i:+0B10000000000000000000000000000000:1:2:0: ++%*2i:+0B10000000000000000000000000000000:0:2: ++%2i:+0b10000000000000000000000000000000:1:2:0: ++%*2i:+0b10000000000000000000000000000000:0:2: ++%2i:+2147487889:1:2:2: ++%*2i:+2147487889:0:2: ++%2i:+0X80001091:1:2:0: ++%*2i:+0X80001091:0:2: ++%2i:+0x80001091:1:2:0: ++%*2i:+0x80001091:0:2: ++%2i:+020000010221:1:2:0: ++%*2i:+020000010221:0:2: ++%2i:+0B10000000000000000001000010010001:1:2:0: ++%*2i:+0B10000000000000000001000010010001:0:2: ++%2i:+0b10000000000000000001000010010001:1:2:0: ++%*2i:+0b10000000000000000001000010010001:0:2: ++%8i::0:-1: ++%*8i::0:-1: ++%8i:-2147484882:1:8:-2147484: ++%*8i:-2147484882:0:8: ++%8i:-0X800004d2:1:8:-524288: ++%*8i:-0X800004d2:0:8: ++%8i:-0x800004D2:1:8:-524288: ++%*8i:-0x800004D2:0:8: ++%8i:-020000002322:1:8:-65536: ++%*8i:-020000002322:0:8: ++%8i:-0B10000000000000000000010011010010:1:8:-16: ++%*8i:-0B10000000000000000000010011010010:0:8: ++%8i:-0b10000000000000000000010011010010:1:8:-16: ++%*8i:-0b10000000000000000000010011010010:0:8: ++%8i:-2147483649:1:8:-2147483: ++%*8i:-2147483649:0:8: ++%8i:-0X80000001:1:8:-524288: ++%*8i:-0X80000001:0:8: ++%8i:-0x80000001:1:8:-524288: ++%*8i:-0x80000001:0:8: ++%8i:-020000000001:1:8:-65536: ++%*8i:-020000000001:0:8: ++%8i:-0B10000000000000000000000000000001:1:8:-16: ++%*8i:-0B10000000000000000000000000000001:0:8: ++%8i:-0b10000000000000000000000000000001:1:8:-16: ++%*8i:-0b10000000000000000000000000000001:0:8: ++%8i:-2147483648:1:8:-2147483: ++%*8i:-2147483648:0:8: ++%8i:-0X80000000:1:8:-524288: ++%*8i:-0X80000000:0:8: ++%8i:-0x80000000:1:8:-524288: ++%*8i:-0x80000000:0:8: ++%8i:-020000000000:1:8:-65536: ++%*8i:-020000000000:0:8: ++%8i:-0B10000000000000000000000000000000:1:8:-16: ++%*8i:-0B10000000000000000000000000000000:0:8: ++%8i:-0b10000000000000000000000000000000:1:8:-16: ++%*8i:-0b10000000000000000000000000000000:0:8: ++%8i:-123:1:4:-123: ++%*8i:-123:0:4: ++%8i:-0X7b:1:5:-123: ++%*8i:-0X7b:0:5: ++%8i:-0x7B:1:5:-123: ++%*8i:-0x7B:0:5: ++%8i:-0173:1:5:-123: ++%*8i:-0173:0:5: ++%8i:-0B1111011:1:8:-30: ++%*8i:-0B1111011:0:8: ++%8i:-0b1111011:1:8:-30: ++%*8i:-0b1111011:0:8: ++%8i:-1:1:2:-1: ++%*8i:-1:0:2: ++%8i:-0X1:1:4:-1: ++%*8i:-0X1:0:4: ++%8i:-0x1:1:4:-1: ++%*8i:-0x1:0:4: ++%8i:-01:1:3:-1: ++%*8i:-01:0:3: ++%8i:-0B1:1:4:-1: ++%*8i:-0B1:0:4: ++%8i:-0b1:1:4:-1: ++%*8i:-0b1:0:4: ++%8i:-0:1:2:0: ++%*8i:-0:0:2: ++%8i:-0X0:1:4:0: ++%*8i:-0X0:0:4: ++%8i:-0x0:1:4:0: ++%*8i:-0x0:0:4: ++%8i:-00:1:3:0: ++%*8i:-00:0:3: ++%8i:-0B0:1:4:0: ++%*8i:-0B0:0:4: ++%8i:-0b0:1:4:0: ++%*8i:-0b0:0:4: ++%8i:0:1:1:0: ++%*8i:0:0:1: ++%8i:0X0:1:3:0: ++%*8i:0X0:0:3: ++%8i:0x0:1:3:0: ++%*8i:0x0:0:3: ++%8i:00:1:2:0: ++%*8i:00:0:2: ++%8i:0B0:1:3:0: ++%*8i:0B0:0:3: ++%8i:0b0:1:3:0: ++%*8i:0b0:0:3: ++%8i:1:1:1:1: ++%*8i:1:0:1: ++%8i:0X1:1:3:1: ++%*8i:0X1:0:3: ++%8i:0x1:1:3:1: ++%*8i:0x1:0:3: ++%8i:01:1:2:1: ++%*8i:01:0:2: ++%8i:0B1:1:3:1: ++%*8i:0B1:0:3: ++%8i:0b1:1:3:1: ++%*8i:0b1:0:3: ++%8i:42:1:2:42: ++%*8i:42:0:2: ++%8i:0X2a:1:4:42: ++%*8i:0X2a:0:4: ++%8i:0x2A:1:4:42: ++%*8i:0x2A:0:4: ++%8i:052:1:3:42: ++%*8i:052:0:3: ++%8i:0B101010:1:8:42: ++%*8i:0B101010:0:8: ++%8i:0b101010:1:8:42: ++%*8i:0b101010:0:8: ++%8i:2147483647:1:8:21474836: ++%*8i:2147483647:0:8: ++%8i:0X7fffffff:1:8:8388607: ++%*8i:0X7fffffff:0:8: ++%8i:0x7FFFFFFF:1:8:8388607: ++%*8i:0x7FFFFFFF:0:8: ++%8i:017777777777:1:8:524287: ++%*8i:017777777777:0:8: ++%8i:0B1111111111111111111111111111111:1:8:63: ++%*8i:0B1111111111111111111111111111111:0:8: ++%8i:0b1111111111111111111111111111111:1:8:63: ++%*8i:0b1111111111111111111111111111111:0:8: ++%8i:2147483648:1:8:21474836: ++%*8i:2147483648:0:8: ++%8i:0X80000000:1:8:8388608: ++%*8i:0X80000000:0:8: ++%8i:0x80000000:1:8:8388608: ++%*8i:0x80000000:0:8: ++%8i:020000000000:1:8:524288: ++%*8i:020000000000:0:8: ++%8i:0B10000000000000000000000000000000:1:8:32: ++%*8i:0B10000000000000000000000000000000:0:8: ++%8i:0b10000000000000000000000000000000:1:8:32: ++%*8i:0b10000000000000000000000000000000:0:8: ++%8i:2147487889:1:8:21474878: ++%*8i:2147487889:0:8: ++%8i:0X80001091:1:8:8388624: ++%*8i:0X80001091:0:8: ++%8i:0x80001091:1:8:8388624: ++%*8i:0x80001091:0:8: ++%8i:020000010221:1:8:524289: ++%*8i:020000010221:0:8: ++%8i:0B10000000000000000001000010010001:1:8:32: ++%*8i:0B10000000000000000001000010010001:0:8: ++%8i:0b10000000000000000001000010010001:1:8:32: ++%*8i:0b10000000000000000001000010010001:0:8: ++%8i:+0:1:2:0: ++%*8i:+0:0:2: ++%8i:+0X0:1:4:0: ++%*8i:+0X0:0:4: ++%8i:+0x0:1:4:0: ++%*8i:+0x0:0:4: ++%8i:+00:1:3:0: ++%*8i:+00:0:3: ++%8i:+0B0:1:4:0: ++%*8i:+0B0:0:4: ++%8i:+0b0:1:4:0: ++%*8i:+0b0:0:4: ++%8i:+1:1:2:1: ++%*8i:+1:0:2: ++%8i:+0X1:1:4:1: ++%*8i:+0X1:0:4: ++%8i:+0x1:1:4:1: ++%*8i:+0x1:0:4: ++%8i:+01:1:3:1: ++%*8i:+01:0:3: ++%8i:+0B1:1:4:1: ++%*8i:+0B1:0:4: ++%8i:+0b1:1:4:1: ++%*8i:+0b1:0:4: ++%8i:+42:1:3:42: ++%*8i:+42:0:3: ++%8i:+0X2a:1:5:42: ++%*8i:+0X2a:0:5: ++%8i:+0x2A:1:5:42: ++%*8i:+0x2A:0:5: ++%8i:+052:1:4:42: ++%*8i:+052:0:4: ++%8i:+0B101010:1:8:21: ++%*8i:+0B101010:0:8: ++%8i:+0b101010:1:8:21: ++%*8i:+0b101010:0:8: ++%8i:+2147483647:1:8:2147483: ++%*8i:+2147483647:0:8: ++%8i:+0X7fffffff:1:8:524287: ++%*8i:+0X7fffffff:0:8: ++%8i:+0x7FFFFFFF:1:8:524287: ++%*8i:+0x7FFFFFFF:0:8: ++%8i:+017777777777:1:8:65535: ++%*8i:+017777777777:0:8: ++%8i:+0B1111111111111111111111111111111:1:8:31: ++%*8i:+0B1111111111111111111111111111111:0:8: ++%8i:+0b1111111111111111111111111111111:1:8:31: ++%*8i:+0b1111111111111111111111111111111:0:8: ++%8i:+2147483648:1:8:2147483: ++%*8i:+2147483648:0:8: ++%8i:+0X80000000:1:8:524288: ++%*8i:+0X80000000:0:8: ++%8i:+0x80000000:1:8:524288: ++%*8i:+0x80000000:0:8: ++%8i:+020000000000:1:8:65536: ++%*8i:+020000000000:0:8: ++%8i:+0B10000000000000000000000000000000:1:8:16: ++%*8i:+0B10000000000000000000000000000000:0:8: ++%8i:+0b10000000000000000000000000000000:1:8:16: ++%*8i:+0b10000000000000000000000000000000:0:8: ++%8i:+2147487889:1:8:2147487: ++%*8i:+2147487889:0:8: ++%8i:+0X80001091:1:8:524289: ++%*8i:+0X80001091:0:8: ++%8i:+0x80001091:1:8:524289: ++%*8i:+0x80001091:0:8: ++%8i:+020000010221:1:8:65536: ++%*8i:+020000010221:0:8: ++%8i:+0B10000000000000000001000010010001:1:8:16: ++%*8i:+0B10000000000000000001000010010001:0:8: ++%8i:+0b10000000000000000001000010010001:1:8:16: ++%*8i:+0b10000000000000000001000010010001:0:8: ++%15i::0:-1: ++%*15i::0:-1: ++%15i:-2147484882:1:11:2147482414: ++%*15i:-2147484882:0:11: ++%15i:-0X800004d2:1:11:2147482414: ++%*15i:-0X800004d2:0:11: ++%15i:-0x800004D2:1:11:2147482414: ++%*15i:-0x800004D2:0:11: ++%15i:-020000002322:1:13:2147482414: ++%*15i:-020000002322:0:13: ++%15i:-0B10000000000000000000010011010010:1:15:-2048: ++%*15i:-0B10000000000000000000010011010010:0:15: ++%15i:-0b10000000000000000000010011010010:1:15:-2048: ++%*15i:-0b10000000000000000000010011010010:0:15: ++%15i:-2147483649:1:11:2147483647: ++%*15i:-2147483649:0:11: ++%15i:-0X80000001:1:11:2147483647: ++%*15i:-0X80000001:0:11: ++%15i:-0x80000001:1:11:2147483647: ++%*15i:-0x80000001:0:11: ++%15i:-020000000001:1:13:2147483647: ++%*15i:-020000000001:0:13: ++%15i:-0B10000000000000000000000000000001:1:15:-2048: ++%*15i:-0B10000000000000000000000000000001:0:15: ++%15i:-0b10000000000000000000000000000001:1:15:-2048: ++%*15i:-0b10000000000000000000000000000001:0:15: ++%15i:-2147483648:1:11:-2147483648: ++%*15i:-2147483648:0:11: ++%15i:-0X80000000:1:11:-2147483648: ++%*15i:-0X80000000:0:11: ++%15i:-0x80000000:1:11:-2147483648: ++%*15i:-0x80000000:0:11: ++%15i:-020000000000:1:13:-2147483648: ++%*15i:-020000000000:0:13: ++%15i:-0B10000000000000000000000000000000:1:15:-2048: ++%*15i:-0B10000000000000000000000000000000:0:15: ++%15i:-0b10000000000000000000000000000000:1:15:-2048: ++%*15i:-0b10000000000000000000000000000000:0:15: ++%15i:-123:1:4:-123: ++%*15i:-123:0:4: ++%15i:-0X7b:1:5:-123: ++%*15i:-0X7b:0:5: ++%15i:-0x7B:1:5:-123: ++%*15i:-0x7B:0:5: ++%15i:-0173:1:5:-123: ++%*15i:-0173:0:5: ++%15i:-0B1111011:1:10:-123: ++%*15i:-0B1111011:0:10: ++%15i:-0b1111011:1:10:-123: ++%*15i:-0b1111011:0:10: ++%15i:-1:1:2:-1: ++%*15i:-1:0:2: ++%15i:-0X1:1:4:-1: ++%*15i:-0X1:0:4: ++%15i:-0x1:1:4:-1: ++%*15i:-0x1:0:4: ++%15i:-01:1:3:-1: ++%*15i:-01:0:3: ++%15i:-0B1:1:4:-1: ++%*15i:-0B1:0:4: ++%15i:-0b1:1:4:-1: ++%*15i:-0b1:0:4: ++%15i:-0:1:2:0: ++%*15i:-0:0:2: ++%15i:-0X0:1:4:0: ++%*15i:-0X0:0:4: ++%15i:-0x0:1:4:0: ++%*15i:-0x0:0:4: ++%15i:-00:1:3:0: ++%*15i:-00:0:3: ++%15i:-0B0:1:4:0: ++%*15i:-0B0:0:4: ++%15i:-0b0:1:4:0: ++%*15i:-0b0:0:4: ++%15i:0:1:1:0: ++%*15i:0:0:1: ++%15i:0X0:1:3:0: ++%*15i:0X0:0:3: ++%15i:0x0:1:3:0: ++%*15i:0x0:0:3: ++%15i:00:1:2:0: ++%*15i:00:0:2: ++%15i:0B0:1:3:0: ++%*15i:0B0:0:3: ++%15i:0b0:1:3:0: ++%*15i:0b0:0:3: ++%15i:1:1:1:1: ++%*15i:1:0:1: ++%15i:0X1:1:3:1: ++%*15i:0X1:0:3: ++%15i:0x1:1:3:1: ++%*15i:0x1:0:3: ++%15i:01:1:2:1: ++%*15i:01:0:2: ++%15i:0B1:1:3:1: ++%*15i:0B1:0:3: ++%15i:0b1:1:3:1: ++%*15i:0b1:0:3: ++%15i:42:1:2:42: ++%*15i:42:0:2: ++%15i:0X2a:1:4:42: ++%*15i:0X2a:0:4: ++%15i:0x2A:1:4:42: ++%*15i:0x2A:0:4: ++%15i:052:1:3:42: ++%*15i:052:0:3: ++%15i:0B101010:1:8:42: ++%*15i:0B101010:0:8: ++%15i:0b101010:1:8:42: ++%*15i:0b101010:0:8: ++%15i:2147483647:1:10:2147483647: ++%*15i:2147483647:0:10: ++%15i:0X7fffffff:1:10:2147483647: ++%*15i:0X7fffffff:0:10: ++%15i:0x7FFFFFFF:1:10:2147483647: ++%*15i:0x7FFFFFFF:0:10: ++%15i:017777777777:1:12:2147483647: ++%*15i:017777777777:0:12: ++%15i:0B1111111111111111111111111111111:1:15:8191: ++%*15i:0B1111111111111111111111111111111:0:15: ++%15i:0b1111111111111111111111111111111:1:15:8191: ++%*15i:0b1111111111111111111111111111111:0:15: ++%15i:2147483648:1:10:-2147483648: ++%*15i:2147483648:0:10: ++%15i:0X80000000:1:10:-2147483648: ++%*15i:0X80000000:0:10: ++%15i:0x80000000:1:10:-2147483648: ++%*15i:0x80000000:0:10: ++%15i:020000000000:1:12:-2147483648: ++%*15i:020000000000:0:12: ++%15i:0B10000000000000000000000000000000:1:15:4096: ++%*15i:0B10000000000000000000000000000000:0:15: ++%15i:0b10000000000000000000000000000000:1:15:4096: ++%*15i:0b10000000000000000000000000000000:0:15: ++%15i:2147487889:1:10:-2147479407: ++%*15i:2147487889:0:10: ++%15i:0X80001091:1:10:-2147479407: ++%*15i:0X80001091:0:10: ++%15i:0x80001091:1:10:-2147479407: ++%*15i:0x80001091:0:10: ++%15i:020000010221:1:12:-2147479407: ++%*15i:020000010221:0:12: ++%15i:0B10000000000000000001000010010001:1:15:4096: ++%*15i:0B10000000000000000001000010010001:0:15: ++%15i:0b10000000000000000001000010010001:1:15:4096: ++%*15i:0b10000000000000000001000010010001:0:15: ++%15i:+0:1:2:0: ++%*15i:+0:0:2: ++%15i:+0X0:1:4:0: ++%*15i:+0X0:0:4: ++%15i:+0x0:1:4:0: ++%*15i:+0x0:0:4: ++%15i:+00:1:3:0: ++%*15i:+00:0:3: ++%15i:+0B0:1:4:0: ++%*15i:+0B0:0:4: ++%15i:+0b0:1:4:0: ++%*15i:+0b0:0:4: ++%15i:+1:1:2:1: ++%*15i:+1:0:2: ++%15i:+0X1:1:4:1: ++%*15i:+0X1:0:4: ++%15i:+0x1:1:4:1: ++%*15i:+0x1:0:4: ++%15i:+01:1:3:1: ++%*15i:+01:0:3: ++%15i:+0B1:1:4:1: ++%*15i:+0B1:0:4: ++%15i:+0b1:1:4:1: ++%*15i:+0b1:0:4: ++%15i:+42:1:3:42: ++%*15i:+42:0:3: ++%15i:+0X2a:1:5:42: ++%*15i:+0X2a:0:5: ++%15i:+0x2A:1:5:42: ++%*15i:+0x2A:0:5: ++%15i:+052:1:4:42: ++%*15i:+052:0:4: ++%15i:+0B101010:1:9:42: ++%*15i:+0B101010:0:9: ++%15i:+0b101010:1:9:42: ++%*15i:+0b101010:0:9: ++%15i:+2147483647:1:11:2147483647: ++%*15i:+2147483647:0:11: ++%15i:+0X7fffffff:1:11:2147483647: ++%*15i:+0X7fffffff:0:11: ++%15i:+0x7FFFFFFF:1:11:2147483647: ++%*15i:+0x7FFFFFFF:0:11: ++%15i:+017777777777:1:13:2147483647: ++%*15i:+017777777777:0:13: ++%15i:+0B1111111111111111111111111111111:1:15:4095: ++%*15i:+0B1111111111111111111111111111111:0:15: ++%15i:+0b1111111111111111111111111111111:1:15:4095: ++%*15i:+0b1111111111111111111111111111111:0:15: ++%15i:+2147483648:1:11:-2147483648: ++%*15i:+2147483648:0:11: ++%15i:+0X80000000:1:11:-2147483648: ++%*15i:+0X80000000:0:11: ++%15i:+0x80000000:1:11:-2147483648: ++%*15i:+0x80000000:0:11: ++%15i:+020000000000:1:13:-2147483648: ++%*15i:+020000000000:0:13: ++%15i:+0B10000000000000000000000000000000:1:15:2048: ++%*15i:+0B10000000000000000000000000000000:0:15: ++%15i:+0b10000000000000000000000000000000:1:15:2048: ++%*15i:+0b10000000000000000000000000000000:0:15: ++%15i:+2147487889:1:11:-2147479407: ++%*15i:+2147487889:0:11: ++%15i:+0X80001091:1:11:-2147479407: ++%*15i:+0X80001091:0:11: ++%15i:+0x80001091:1:11:-2147479407: ++%*15i:+0x80001091:0:11: ++%15i:+020000010221:1:13:-2147479407: ++%*15i:+020000010221:0:13: ++%15i:+0B10000000000000000001000010010001:1:15:2048: ++%*15i:+0B10000000000000000001000010010001:0:15: ++%15i:+0b10000000000000000001000010010001:1:15:2048: ++%*15i:+0b10000000000000000001000010010001:0:15: ++%2i: :0:-1: ++%*2i: :0:-1: ++%2i: -2147484882:1:3:-2: ++%*2i: -2147484882:0:3: ++%2i: -0X800004d2:1:3:0: ++%*2i: -0X800004d2:0:3: ++%2i: -0x800004D2:1:3:0: ++%*2i: -0x800004D2:0:3: ++%2i: -020000002322:1:3:0: ++%*2i: -020000002322:0:3: ++%2i: -0B10000000000000000000010011010010:1:3:0: ++%*2i: -0B10000000000000000000010011010010:0:3: ++%2i: -0b10000000000000000000010011010010:1:3:0: ++%*2i: -0b10000000000000000000010011010010:0:3: ++%2i: -2147483649:1:3:-2: ++%*2i: -2147483649:0:3: ++%2i: -0X80000001:1:3:0: ++%*2i: -0X80000001:0:3: ++%2i: -0x80000001:1:3:0: ++%*2i: -0x80000001:0:3: ++%2i: -020000000001:1:3:0: ++%*2i: -020000000001:0:3: ++%2i: -0B10000000000000000000000000000001:1:3:0: ++%*2i: -0B10000000000000000000000000000001:0:3: ++%2i: -0b10000000000000000000000000000001:1:3:0: ++%*2i: -0b10000000000000000000000000000001:0:3: ++%2i: -2147483648:1:3:-2: ++%*2i: -2147483648:0:3: ++%2i: -0X80000000:1:3:0: ++%*2i: -0X80000000:0:3: ++%2i: -0x80000000:1:3:0: ++%*2i: -0x80000000:0:3: ++%2i: -020000000000:1:3:0: ++%*2i: -020000000000:0:3: ++%2i: -0B10000000000000000000000000000000:1:3:0: ++%*2i: -0B10000000000000000000000000000000:0:3: ++%2i: -0b10000000000000000000000000000000:1:3:0: ++%*2i: -0b10000000000000000000000000000000:0:3: ++%2i: -123:1:3:-1: ++%*2i: -123:0:3: ++%2i: -0X7b:1:3:0: ++%*2i: -0X7b:0:3: ++%2i: -0x7B:1:3:0: ++%*2i: -0x7B:0:3: ++%2i: -0173:1:3:0: ++%*2i: -0173:0:3: ++%2i: -0B1111011:1:3:0: ++%*2i: -0B1111011:0:3: ++%2i: -0b1111011:1:3:0: ++%*2i: -0b1111011:0:3: ++%2i: -1:1:3:-1: ++%*2i: -1:0:3: ++%2i: -0X1:1:3:0: ++%*2i: -0X1:0:3: ++%2i: -0x1:1:3:0: ++%*2i: -0x1:0:3: ++%2i: -01:1:3:0: ++%*2i: -01:0:3: ++%2i: -0B1:1:3:0: ++%*2i: -0B1:0:3: ++%2i: -0b1:1:3:0: ++%*2i: -0b1:0:3: ++%2i: -0:1:3:0: ++%*2i: -0:0:3: ++%2i: -0X0:1:3:0: ++%*2i: -0X0:0:3: ++%2i: -0x0:1:3:0: ++%*2i: -0x0:0:3: ++%2i: -00:1:3:0: ++%*2i: -00:0:3: ++%2i: -0B0:1:3:0: ++%*2i: -0B0:0:3: ++%2i: -0b0:1:3:0: ++%*2i: -0b0:0:3: ++%2i: 0:1:2:0: ++%*2i: 0:0:2: ++# BZ12701 %2i: 0X0:0:-1: ++# BZ12701 %*2i: 0X0:0:-1: ++# BZ12701 %2i: 0x0:0:-1: ++# BZ12701 %*2i: 0x0:0:-1: ++%2i: 00:1:3:0: ++%*2i: 00:0:3: ++# BZ12701 %2i: 0B0:0:-1: ++# BZ12701 %*2i: 0B0:0:-1: ++# BZ12701 %2i: 0b0:0:-1: ++# BZ12701 %*2i: 0b0:0:-1: ++%2i: 1:1:2:1: ++%*2i: 1:0:2: ++# BZ12701 %2i: 0X1:0:-1: ++# BZ12701 %*2i: 0X1:0:-1: ++# BZ12701 %2i: 0x1:0:-1: ++# BZ12701 %*2i: 0x1:0:-1: ++%2i: 01:1:3:1: ++%*2i: 01:0:3: ++# BZ12701 %2i: 0B1:0:-1: ++# BZ12701 %*2i: 0B1:0:-1: ++# BZ12701 %2i: 0b1:0:-1: ++# BZ12701 %*2i: 0b1:0:-1: ++%2i: 42:1:3:42: ++%*2i: 42:0:3: ++# BZ12701 %2i: 0X2a:0:-1: ++# BZ12701 %*2i: 0X2a:0:-1: ++# BZ12701 %2i: 0x2A:0:-1: ++# BZ12701 %*2i: 0x2A:0:-1: ++%2i: 052:1:3:5: ++%*2i: 052:0:3: ++# BZ12701 %2i: 0B101010:0:-1: ++# BZ12701 %*2i: 0B101010:0:-1: ++# BZ12701 %2i: 0b101010:0:-1: ++# BZ12701 %*2i: 0b101010:0:-1: ++%2i: 2147483647:1:3:21: ++%*2i: 2147483647:0:3: ++# BZ12701 %2i: 0X7fffffff:0:-1: ++# BZ12701 %*2i: 0X7fffffff:0:-1: ++# BZ12701 %2i: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2i: 0x7FFFFFFF:0:-1: ++%2i: 017777777777:1:3:1: ++%*2i: 017777777777:0:3: ++# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: ++%2i: 2147483648:1:3:21: ++%*2i: 2147483648:0:3: ++# BZ12701 %2i: 0X80000000:0:-1: ++# BZ12701 %*2i: 0X80000000:0:-1: ++# BZ12701 %2i: 0x80000000:0:-1: ++# BZ12701 %*2i: 0x80000000:0:-1: ++%2i: 020000000000:1:3:2: ++%*2i: 020000000000:0:3: ++# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: ++%2i: 2147487889:1:3:21: ++%*2i: 2147487889:0:3: ++# BZ12701 %2i: 0X80001091:0:-1: ++# BZ12701 %*2i: 0X80001091:0:-1: ++# BZ12701 %2i: 0x80001091:0:-1: ++# BZ12701 %*2i: 0x80001091:0:-1: ++%2i: 020000010221:1:3:2: ++%*2i: 020000010221:0:3: ++# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: ++%2i: +0:1:3:0: ++%*2i: +0:0:3: ++%2i: +0X0:1:3:0: ++%*2i: +0X0:0:3: ++%2i: +0x0:1:3:0: ++%*2i: +0x0:0:3: ++%2i: +00:1:3:0: ++%*2i: +00:0:3: ++%2i: +0B0:1:3:0: ++%*2i: +0B0:0:3: ++%2i: +0b0:1:3:0: ++%*2i: +0b0:0:3: ++%2i: +1:1:3:1: ++%*2i: +1:0:3: ++%2i: +0X1:1:3:0: ++%*2i: +0X1:0:3: ++%2i: +0x1:1:3:0: ++%*2i: +0x1:0:3: ++%2i: +01:1:3:0: ++%*2i: +01:0:3: ++%2i: +0B1:1:3:0: ++%*2i: +0B1:0:3: ++%2i: +0b1:1:3:0: ++%*2i: +0b1:0:3: ++%2i: +42:1:3:4: ++%*2i: +42:0:3: ++%2i: +0X2a:1:3:0: ++%*2i: +0X2a:0:3: ++%2i: +0x2A:1:3:0: ++%*2i: +0x2A:0:3: ++%2i: +052:1:3:0: ++%*2i: +052:0:3: ++%2i: +0B101010:1:3:0: ++%*2i: +0B101010:0:3: ++%2i: +0b101010:1:3:0: ++%*2i: +0b101010:0:3: ++%2i: +2147483647:1:3:2: ++%*2i: +2147483647:0:3: ++%2i: +0X7fffffff:1:3:0: ++%*2i: +0X7fffffff:0:3: ++%2i: +0x7FFFFFFF:1:3:0: ++%*2i: +0x7FFFFFFF:0:3: ++%2i: +017777777777:1:3:0: ++%*2i: +017777777777:0:3: ++%2i: +0B1111111111111111111111111111111:1:3:0: ++%*2i: +0B1111111111111111111111111111111:0:3: ++%2i: +0b1111111111111111111111111111111:1:3:0: ++%*2i: +0b1111111111111111111111111111111:0:3: ++%2i: +2147483648:1:3:2: ++%*2i: +2147483648:0:3: ++%2i: +0X80000000:1:3:0: ++%*2i: +0X80000000:0:3: ++%2i: +0x80000000:1:3:0: ++%*2i: +0x80000000:0:3: ++%2i: +020000000000:1:3:0: ++%*2i: +020000000000:0:3: ++%2i: +0B10000000000000000000000000000000:1:3:0: ++%*2i: +0B10000000000000000000000000000000:0:3: ++%2i: +0b10000000000000000000000000000000:1:3:0: ++%*2i: +0b10000000000000000000000000000000:0:3: ++%2i: +2147487889:1:3:2: ++%*2i: +2147487889:0:3: ++%2i: +0X80001091:1:3:0: ++%*2i: +0X80001091:0:3: ++%2i: +0x80001091:1:3:0: ++%*2i: +0x80001091:0:3: ++%2i: +020000010221:1:3:0: ++%*2i: +020000010221:0:3: ++%2i: +0B10000000000000000001000010010001:1:3:0: ++%*2i: +0B10000000000000000001000010010001:0:3: ++%2i: +0b10000000000000000001000010010001:1:3:0: ++%*2i: +0b10000000000000000001000010010001:0:3: ++%15i: :0:-1: ++%*15i: :0:-1: ++%15i: -2147484882:1:12:2147482414: ++%*15i: -2147484882:0:12: ++%15i: -0X800004d2:1:12:2147482414: ++%*15i: -0X800004d2:0:12: ++%15i: -0x800004D2:1:12:2147482414: ++%*15i: -0x800004D2:0:12: ++%15i: -020000002322:1:14:2147482414: ++%*15i: -020000002322:0:14: ++%15i: -0B10000000000000000000010011010010:1:16:-2048: ++%*15i: -0B10000000000000000000010011010010:0:16: ++%15i: -0b10000000000000000000010011010010:1:16:-2048: ++%*15i: -0b10000000000000000000010011010010:0:16: ++%15i: -2147483649:1:12:2147483647: ++%*15i: -2147483649:0:12: ++%15i: -0X80000001:1:12:2147483647: ++%*15i: -0X80000001:0:12: ++%15i: -0x80000001:1:12:2147483647: ++%*15i: -0x80000001:0:12: ++%15i: -020000000001:1:14:2147483647: ++%*15i: -020000000001:0:14: ++%15i: -0B10000000000000000000000000000001:1:16:-2048: ++%*15i: -0B10000000000000000000000000000001:0:16: ++%15i: -0b10000000000000000000000000000001:1:16:-2048: ++%*15i: -0b10000000000000000000000000000001:0:16: ++%15i: -2147483648:1:12:-2147483648: ++%*15i: -2147483648:0:12: ++%15i: -0X80000000:1:12:-2147483648: ++%*15i: -0X80000000:0:12: ++%15i: -0x80000000:1:12:-2147483648: ++%*15i: -0x80000000:0:12: ++%15i: -020000000000:1:14:-2147483648: ++%*15i: -020000000000:0:14: ++%15i: -0B10000000000000000000000000000000:1:16:-2048: ++%*15i: -0B10000000000000000000000000000000:0:16: ++%15i: -0b10000000000000000000000000000000:1:16:-2048: ++%*15i: -0b10000000000000000000000000000000:0:16: ++%15i: -123:1:5:-123: ++%*15i: -123:0:5: ++%15i: -0X7b:1:6:-123: ++%*15i: -0X7b:0:6: ++%15i: -0x7B:1:6:-123: ++%*15i: -0x7B:0:6: ++%15i: -0173:1:6:-123: ++%*15i: -0173:0:6: ++%15i: -0B1111011:1:11:-123: ++%*15i: -0B1111011:0:11: ++%15i: -0b1111011:1:11:-123: ++%*15i: -0b1111011:0:11: ++%15i: -1:1:3:-1: ++%*15i: -1:0:3: ++%15i: -0X1:1:5:-1: ++%*15i: -0X1:0:5: ++%15i: -0x1:1:5:-1: ++%*15i: -0x1:0:5: ++%15i: -01:1:4:-1: ++%*15i: -01:0:4: ++%15i: -0B1:1:5:-1: ++%*15i: -0B1:0:5: ++%15i: -0b1:1:5:-1: ++%*15i: -0b1:0:5: ++%15i: -0:1:3:0: ++%*15i: -0:0:3: ++%15i: -0X0:1:5:0: ++%*15i: -0X0:0:5: ++%15i: -0x0:1:5:0: ++%*15i: -0x0:0:5: ++%15i: -00:1:4:0: ++%*15i: -00:0:4: ++%15i: -0B0:1:5:0: ++%*15i: -0B0:0:5: ++%15i: -0b0:1:5:0: ++%*15i: -0b0:0:5: ++%15i: 0:1:2:0: ++%*15i: 0:0:2: ++%15i: 0X0:1:4:0: ++%*15i: 0X0:0:4: ++%15i: 0x0:1:4:0: ++%*15i: 0x0:0:4: ++%15i: 00:1:3:0: ++%*15i: 00:0:3: ++%15i: 0B0:1:4:0: ++%*15i: 0B0:0:4: ++%15i: 0b0:1:4:0: ++%*15i: 0b0:0:4: ++%15i: 1:1:2:1: ++%*15i: 1:0:2: ++%15i: 0X1:1:4:1: ++%*15i: 0X1:0:4: ++%15i: 0x1:1:4:1: ++%*15i: 0x1:0:4: ++%15i: 01:1:3:1: ++%*15i: 01:0:3: ++%15i: 0B1:1:4:1: ++%*15i: 0B1:0:4: ++%15i: 0b1:1:4:1: ++%*15i: 0b1:0:4: ++%15i: 42:1:3:42: ++%*15i: 42:0:3: ++%15i: 0X2a:1:5:42: ++%*15i: 0X2a:0:5: ++%15i: 0x2A:1:5:42: ++%*15i: 0x2A:0:5: ++%15i: 052:1:4:42: ++%*15i: 052:0:4: ++%15i: 0B101010:1:9:42: ++%*15i: 0B101010:0:9: ++%15i: 0b101010:1:9:42: ++%*15i: 0b101010:0:9: ++%15i: 2147483647:1:11:2147483647: ++%*15i: 2147483647:0:11: ++%15i: 0X7fffffff:1:11:2147483647: ++%*15i: 0X7fffffff:0:11: ++%15i: 0x7FFFFFFF:1:11:2147483647: ++%*15i: 0x7FFFFFFF:0:11: ++%15i: 017777777777:1:13:2147483647: ++%*15i: 017777777777:0:13: ++%15i: 0B1111111111111111111111111111111:1:16:8191: ++%*15i: 0B1111111111111111111111111111111:0:16: ++%15i: 0b1111111111111111111111111111111:1:16:8191: ++%*15i: 0b1111111111111111111111111111111:0:16: ++%15i: 2147483648:1:11:-2147483648: ++%*15i: 2147483648:0:11: ++%15i: 0X80000000:1:11:-2147483648: ++%*15i: 0X80000000:0:11: ++%15i: 0x80000000:1:11:-2147483648: ++%*15i: 0x80000000:0:11: ++%15i: 020000000000:1:13:-2147483648: ++%*15i: 020000000000:0:13: ++%15i: 0B10000000000000000000000000000000:1:16:4096: ++%*15i: 0B10000000000000000000000000000000:0:16: ++%15i: 0b10000000000000000000000000000000:1:16:4096: ++%*15i: 0b10000000000000000000000000000000:0:16: ++%15i: 2147487889:1:11:-2147479407: ++%*15i: 2147487889:0:11: ++%15i: 0X80001091:1:11:-2147479407: ++%*15i: 0X80001091:0:11: ++%15i: 0x80001091:1:11:-2147479407: ++%*15i: 0x80001091:0:11: ++%15i: 020000010221:1:13:-2147479407: ++%*15i: 020000010221:0:13: ++%15i: 0B10000000000000000001000010010001:1:16:4096: ++%*15i: 0B10000000000000000001000010010001:0:16: ++%15i: 0b10000000000000000001000010010001:1:16:4096: ++%*15i: 0b10000000000000000001000010010001:0:16: ++%15i: +0:1:3:0: ++%*15i: +0:0:3: ++%15i: +0X0:1:5:0: ++%*15i: +0X0:0:5: ++%15i: +0x0:1:5:0: ++%*15i: +0x0:0:5: ++%15i: +00:1:4:0: ++%*15i: +00:0:4: ++%15i: +0B0:1:5:0: ++%*15i: +0B0:0:5: ++%15i: +0b0:1:5:0: ++%*15i: +0b0:0:5: ++%15i: +1:1:3:1: ++%*15i: +1:0:3: ++%15i: +0X1:1:5:1: ++%*15i: +0X1:0:5: ++%15i: +0x1:1:5:1: ++%*15i: +0x1:0:5: ++%15i: +01:1:4:1: ++%*15i: +01:0:4: ++%15i: +0B1:1:5:1: ++%*15i: +0B1:0:5: ++%15i: +0b1:1:5:1: ++%*15i: +0b1:0:5: ++%15i: +42:1:4:42: ++%*15i: +42:0:4: ++%15i: +0X2a:1:6:42: ++%*15i: +0X2a:0:6: ++%15i: +0x2A:1:6:42: ++%*15i: +0x2A:0:6: ++%15i: +052:1:5:42: ++%*15i: +052:0:5: ++%15i: +0B101010:1:10:42: ++%*15i: +0B101010:0:10: ++%15i: +0b101010:1:10:42: ++%*15i: +0b101010:0:10: ++%15i: +2147483647:1:12:2147483647: ++%*15i: +2147483647:0:12: ++%15i: +0X7fffffff:1:12:2147483647: ++%*15i: +0X7fffffff:0:12: ++%15i: +0x7FFFFFFF:1:12:2147483647: ++%*15i: +0x7FFFFFFF:0:12: ++%15i: +017777777777:1:14:2147483647: ++%*15i: +017777777777:0:14: ++%15i: +0B1111111111111111111111111111111:1:16:4095: ++%*15i: +0B1111111111111111111111111111111:0:16: ++%15i: +0b1111111111111111111111111111111:1:16:4095: ++%*15i: +0b1111111111111111111111111111111:0:16: ++%15i: +2147483648:1:12:-2147483648: ++%*15i: +2147483648:0:12: ++%15i: +0X80000000:1:12:-2147483648: ++%*15i: +0X80000000:0:12: ++%15i: +0x80000000:1:12:-2147483648: ++%*15i: +0x80000000:0:12: ++%15i: +020000000000:1:14:-2147483648: ++%*15i: +020000000000:0:14: ++%15i: +0B10000000000000000000000000000000:1:16:2048: ++%*15i: +0B10000000000000000000000000000000:0:16: ++%15i: +0b10000000000000000000000000000000:1:16:2048: ++%*15i: +0b10000000000000000000000000000000:0:16: ++%15i: +2147487889:1:12:-2147479407: ++%*15i: +2147487889:0:12: ++%15i: +0X80001091:1:12:-2147479407: ++%*15i: +0X80001091:0:12: ++%15i: +0x80001091:1:12:-2147479407: ++%*15i: +0x80001091:0:12: ++%15i: +020000010221:1:14:-2147479407: ++%*15i: +020000010221:0:14: ++%15i: +0B10000000000000000001000010010001:1:16:2048: ++%*15i: +0B10000000000000000001000010010001:0:16: ++%15i: +0b10000000000000000001000010010001:1:16:2048: ++%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-d.input b/sysdeps/wordsize-64/tst-scanf-format-long-d.input +new file mode 100644 +index 0000000000000000..8da1fb462eb778c5 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-d.input +@@ -0,0 +1,266 @@ ++%ld::0:-1: ++%*ld::0:-1: ++%ld:-9223372036867121486:1:20:-9223372036854775808: ++%*ld:-9223372036867121486:0:20: ++%ld:-9223372036854775809:1:20:-9223372036854775808: ++%*ld:-9223372036854775809:0:20: ++%ld:-9223372036854775808:1:20:-9223372036854775808: ++%*ld:-9223372036854775808:0:20: ++%ld:-123:1:4:-123: ++%*ld:-123:0:4: ++%ld:-1:1:2:-1: ++%*ld:-1:0:2: ++%ld:-0:1:2:0: ++%*ld:-0:0:2: ++%ld:0:1:1:0: ++%*ld:0:0:1: ++%ld:1:1:1:1: ++%*ld:1:0:1: ++%ld:42:1:2:42: ++%*ld:42:0:2: ++%ld:9223372036854775807:1:19:9223372036854775807: ++%*ld:9223372036854775807:0:19: ++%ld:9223372036854775808:1:19:9223372036854775807: ++%*ld:9223372036854775808:0:19: ++%ld:9223372036897200049:1:19:9223372036854775807: ++%*ld:9223372036897200049:0:19: ++%ld:+0:1:2:0: ++%*ld:+0:0:2: ++%ld:+1:1:2:1: ++%*ld:+1:0:2: ++%ld:+42:1:3:42: ++%*ld:+42:0:3: ++%ld:+9223372036854775807:1:20:9223372036854775807: ++%*ld:+9223372036854775807:0:20: ++%ld:+9223372036854775808:1:20:9223372036854775807: ++%*ld:+9223372036854775808:0:20: ++%ld:+9223372036897200049:1:20:9223372036854775807: ++%*ld:+9223372036897200049:0:20: ++%1ld::0:-1: ++%*1ld::0:-1: ++%1ld:-9223372036867121486:0:-1: ++%*1ld:-9223372036867121486:0:-1: ++%1ld:-9223372036854775809:0:-1: ++%*1ld:-9223372036854775809:0:-1: ++%1ld:-9223372036854775808:0:-1: ++%*1ld:-9223372036854775808:0:-1: ++%1ld:-123:0:-1: ++%*1ld:-123:0:-1: ++%1ld:-1:0:-1: ++%*1ld:-1:0:-1: ++%1ld:-0:0:-1: ++%*1ld:-0:0:-1: ++%1ld:0:1:1:0: ++%*1ld:0:0:1: ++%1ld:1:1:1:1: ++%*1ld:1:0:1: ++%1ld:42:1:1:4: ++%*1ld:42:0:1: ++%1ld:9223372036854775807:1:1:9: ++%*1ld:9223372036854775807:0:1: ++%1ld:9223372036854775808:1:1:9: ++%*1ld:9223372036854775808:0:1: ++%1ld:9223372036897200049:1:1:9: ++%*1ld:9223372036897200049:0:1: ++%1ld:+0:0:-1: ++%*1ld:+0:0:-1: ++%1ld:+1:0:-1: ++%*1ld:+1:0:-1: ++%1ld:+42:0:-1: ++%*1ld:+42:0:-1: ++%1ld:+9223372036854775807:0:-1: ++%*1ld:+9223372036854775807:0:-1: ++%1ld:+9223372036854775808:0:-1: ++%*1ld:+9223372036854775808:0:-1: ++%1ld:+9223372036897200049:0:-1: ++%*1ld:+9223372036897200049:0:-1: ++%2ld::0:-1: ++%*2ld::0:-1: ++%2ld:-9223372036867121486:1:2:-9: ++%*2ld:-9223372036867121486:0:2: ++%2ld:-9223372036854775809:1:2:-9: ++%*2ld:-9223372036854775809:0:2: ++%2ld:-9223372036854775808:1:2:-9: ++%*2ld:-9223372036854775808:0:2: ++%2ld:-123:1:2:-1: ++%*2ld:-123:0:2: ++%2ld:-1:1:2:-1: ++%*2ld:-1:0:2: ++%2ld:-0:1:2:0: ++%*2ld:-0:0:2: ++%2ld:0:1:1:0: ++%*2ld:0:0:1: ++%2ld:1:1:1:1: ++%*2ld:1:0:1: ++%2ld:42:1:2:42: ++%*2ld:42:0:2: ++%2ld:9223372036854775807:1:2:92: ++%*2ld:9223372036854775807:0:2: ++%2ld:9223372036854775808:1:2:92: ++%*2ld:9223372036854775808:0:2: ++%2ld:9223372036897200049:1:2:92: ++%*2ld:9223372036897200049:0:2: ++%2ld:+0:1:2:0: ++%*2ld:+0:0:2: ++%2ld:+1:1:2:1: ++%*2ld:+1:0:2: ++%2ld:+42:1:2:4: ++%*2ld:+42:0:2: ++%2ld:+9223372036854775807:1:2:9: ++%*2ld:+9223372036854775807:0:2: ++%2ld:+9223372036854775808:1:2:9: ++%*2ld:+9223372036854775808:0:2: ++%2ld:+9223372036897200049:1:2:9: ++%*2ld:+9223372036897200049:0:2: ++%15ld::0:-1: ++%*15ld::0:-1: ++%15ld:-9223372036867121486:1:15:-92233720368671: ++%*15ld:-9223372036867121486:0:15: ++%15ld:-9223372036854775809:1:15:-92233720368547: ++%*15ld:-9223372036854775809:0:15: ++%15ld:-9223372036854775808:1:15:-92233720368547: ++%*15ld:-9223372036854775808:0:15: ++%15ld:-123:1:4:-123: ++%*15ld:-123:0:4: ++%15ld:-1:1:2:-1: ++%*15ld:-1:0:2: ++%15ld:-0:1:2:0: ++%*15ld:-0:0:2: ++%15ld:0:1:1:0: ++%*15ld:0:0:1: ++%15ld:1:1:1:1: ++%*15ld:1:0:1: ++%15ld:42:1:2:42: ++%*15ld:42:0:2: ++%15ld:9223372036854775807:1:15:922337203685477: ++%*15ld:9223372036854775807:0:15: ++%15ld:9223372036854775808:1:15:922337203685477: ++%*15ld:9223372036854775808:0:15: ++%15ld:9223372036897200049:1:15:922337203689720: ++%*15ld:9223372036897200049:0:15: ++%15ld:+0:1:2:0: ++%*15ld:+0:0:2: ++%15ld:+1:1:2:1: ++%*15ld:+1:0:2: ++%15ld:+42:1:3:42: ++%*15ld:+42:0:3: ++%15ld:+9223372036854775807:1:15:92233720368547: ++%*15ld:+9223372036854775807:0:15: ++%15ld:+9223372036854775808:1:15:92233720368547: ++%*15ld:+9223372036854775808:0:15: ++%15ld:+9223372036897200049:1:15:92233720368972: ++%*15ld:+9223372036897200049:0:15: ++%25ld::0:-1: ++%*25ld::0:-1: ++%25ld:-9223372036867121486:1:20:-9223372036854775808: ++%*25ld:-9223372036867121486:0:20: ++%25ld:-9223372036854775809:1:20:-9223372036854775808: ++%*25ld:-9223372036854775809:0:20: ++%25ld:-9223372036854775808:1:20:-9223372036854775808: ++%*25ld:-9223372036854775808:0:20: ++%25ld:-123:1:4:-123: ++%*25ld:-123:0:4: ++%25ld:-1:1:2:-1: ++%*25ld:-1:0:2: ++%25ld:-0:1:2:0: ++%*25ld:-0:0:2: ++%25ld:0:1:1:0: ++%*25ld:0:0:1: ++%25ld:1:1:1:1: ++%*25ld:1:0:1: ++%25ld:42:1:2:42: ++%*25ld:42:0:2: ++%25ld:9223372036854775807:1:19:9223372036854775807: ++%*25ld:9223372036854775807:0:19: ++%25ld:9223372036854775808:1:19:9223372036854775807: ++%*25ld:9223372036854775808:0:19: ++%25ld:9223372036897200049:1:19:9223372036854775807: ++%*25ld:9223372036897200049:0:19: ++%25ld:+0:1:2:0: ++%*25ld:+0:0:2: ++%25ld:+1:1:2:1: ++%*25ld:+1:0:2: ++%25ld:+42:1:3:42: ++%*25ld:+42:0:3: ++%25ld:+9223372036854775807:1:20:9223372036854775807: ++%*25ld:+9223372036854775807:0:20: ++%25ld:+9223372036854775808:1:20:9223372036854775807: ++%*25ld:+9223372036854775808:0:20: ++%25ld:+9223372036897200049:1:20:9223372036854775807: ++%*25ld:+9223372036897200049:0:20: ++%2ld: :0:-1: ++%*2ld: :0:-1: ++%2ld: -9223372036867121486:1:3:-9: ++%*2ld: -9223372036867121486:0:3: ++%2ld: -9223372036854775809:1:3:-9: ++%*2ld: -9223372036854775809:0:3: ++%2ld: -9223372036854775808:1:3:-9: ++%*2ld: -9223372036854775808:0:3: ++%2ld: -123:1:3:-1: ++%*2ld: -123:0:3: ++%2ld: -1:1:3:-1: ++%*2ld: -1:0:3: ++%2ld: -0:1:3:0: ++%*2ld: -0:0:3: ++%2ld: 0:1:2:0: ++%*2ld: 0:0:2: ++%2ld: 1:1:2:1: ++%*2ld: 1:0:2: ++%2ld: 42:1:3:42: ++%*2ld: 42:0:3: ++%2ld: 9223372036854775807:1:3:92: ++%*2ld: 9223372036854775807:0:3: ++%2ld: 9223372036854775808:1:3:92: ++%*2ld: 9223372036854775808:0:3: ++%2ld: 9223372036897200049:1:3:92: ++%*2ld: 9223372036897200049:0:3: ++%2ld: +0:1:3:0: ++%*2ld: +0:0:3: ++%2ld: +1:1:3:1: ++%*2ld: +1:0:3: ++%2ld: +42:1:3:4: ++%*2ld: +42:0:3: ++%2ld: +9223372036854775807:1:3:9: ++%*2ld: +9223372036854775807:0:3: ++%2ld: +9223372036854775808:1:3:9: ++%*2ld: +9223372036854775808:0:3: ++%2ld: +9223372036897200049:1:3:9: ++%*2ld: +9223372036897200049:0:3: ++%25ld: :0:-1: ++%*25ld: :0:-1: ++%25ld: -9223372036867121486:1:21:-9223372036854775808: ++%*25ld: -9223372036867121486:0:21: ++%25ld: -9223372036854775809:1:21:-9223372036854775808: ++%*25ld: -9223372036854775809:0:21: ++%25ld: -9223372036854775808:1:21:-9223372036854775808: ++%*25ld: -9223372036854775808:0:21: ++%25ld: -123:1:5:-123: ++%*25ld: -123:0:5: ++%25ld: -1:1:3:-1: ++%*25ld: -1:0:3: ++%25ld: -0:1:3:0: ++%*25ld: -0:0:3: ++%25ld: 0:1:2:0: ++%*25ld: 0:0:2: ++%25ld: 1:1:2:1: ++%*25ld: 1:0:2: ++%25ld: 42:1:3:42: ++%*25ld: 42:0:3: ++%25ld: 9223372036854775807:1:20:9223372036854775807: ++%*25ld: 9223372036854775807:0:20: ++%25ld: 9223372036854775808:1:20:9223372036854775807: ++%*25ld: 9223372036854775808:0:20: ++%25ld: 9223372036897200049:1:20:9223372036854775807: ++%*25ld: 9223372036897200049:0:20: ++%25ld: +0:1:3:0: ++%*25ld: +0:0:3: ++%25ld: +1:1:3:1: ++%*25ld: +1:0:3: ++%25ld: +42:1:4:42: ++%*25ld: +42:0:4: ++%25ld: +9223372036854775807:1:21:9223372036854775807: ++%*25ld: +9223372036854775807:0:21: ++%25ld: +9223372036854775808:1:21:9223372036854775807: ++%*25ld: +9223372036854775808:0:21: ++%25ld: +9223372036897200049:1:21:9223372036854775807: ++%*25ld: +9223372036897200049:0:21: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-i.input b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +new file mode 100644 +index 0000000000000000..3066dab6bf1530f8 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +@@ -0,0 +1,1526 @@ ++%li::0:-1: ++%*li::0:-1: ++%li:-9223372036867121486:1:20:-9223372036854775808: ++%*li:-9223372036867121486:0:20: ++%li:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*li:-0X8000000000bc614e:0:19: ++%li:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*li:-0x8000000000BC614E:0:19: ++%li:-01000000000000057060516:1:24:-9223372036854775808: ++%*li:-01000000000000057060516:0:24: ++%li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%li:-9223372036854775809:1:20:-9223372036854775808: ++%*li:-9223372036854775809:0:20: ++%li:-0X8000000000000001:1:19:-9223372036854775808: ++%*li:-0X8000000000000001:0:19: ++%li:-0x8000000000000001:1:19:-9223372036854775808: ++%*li:-0x8000000000000001:0:19: ++%li:-01000000000000000000001:1:24:-9223372036854775808: ++%*li:-01000000000000000000001:0:24: ++%li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%li:-9223372036854775808:1:20:-9223372036854775808: ++%*li:-9223372036854775808:0:20: ++%li:-0X8000000000000000:1:19:-9223372036854775808: ++%*li:-0X8000000000000000:0:19: ++%li:-0x8000000000000000:1:19:-9223372036854775808: ++%*li:-0x8000000000000000:0:19: ++%li:-01000000000000000000000:1:24:-9223372036854775808: ++%*li:-01000000000000000000000:0:24: ++%li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:-123:1:4:-123: ++%*li:-123:0:4: ++%li:-0X7b:1:5:-123: ++%*li:-0X7b:0:5: ++%li:-0x7B:1:5:-123: ++%*li:-0x7B:0:5: ++%li:-0173:1:5:-123: ++%*li:-0173:0:5: ++%li:-0B1111011:1:10:-123: ++%*li:-0B1111011:0:10: ++%li:-0b1111011:1:10:-123: ++%*li:-0b1111011:0:10: ++%li:-1:1:2:-1: ++%*li:-1:0:2: ++%li:-0X1:1:4:-1: ++%*li:-0X1:0:4: ++%li:-0x1:1:4:-1: ++%*li:-0x1:0:4: ++%li:-01:1:3:-1: ++%*li:-01:0:3: ++%li:-0B1:1:4:-1: ++%*li:-0B1:0:4: ++%li:-0b1:1:4:-1: ++%*li:-0b1:0:4: ++%li:-0:1:2:0: ++%*li:-0:0:2: ++%li:-0X0:1:4:0: ++%*li:-0X0:0:4: ++%li:-0x0:1:4:0: ++%*li:-0x0:0:4: ++%li:-00:1:3:0: ++%*li:-00:0:3: ++%li:-0B0:1:4:0: ++%*li:-0B0:0:4: ++%li:-0b0:1:4:0: ++%*li:-0b0:0:4: ++%li:0:1:1:0: ++%*li:0:0:1: ++%li:0X0:1:3:0: ++%*li:0X0:0:3: ++%li:0x0:1:3:0: ++%*li:0x0:0:3: ++%li:00:1:2:0: ++%*li:00:0:2: ++%li:0B0:1:3:0: ++%*li:0B0:0:3: ++%li:0b0:1:3:0: ++%*li:0b0:0:3: ++%li:1:1:1:1: ++%*li:1:0:1: ++%li:0X1:1:3:1: ++%*li:0X1:0:3: ++%li:0x1:1:3:1: ++%*li:0x1:0:3: ++%li:01:1:2:1: ++%*li:01:0:2: ++%li:0B1:1:3:1: ++%*li:0B1:0:3: ++%li:0b1:1:3:1: ++%*li:0b1:0:3: ++%li:42:1:2:42: ++%*li:42:0:2: ++%li:0X2a:1:4:42: ++%*li:0X2a:0:4: ++%li:0x2A:1:4:42: ++%*li:0x2A:0:4: ++%li:052:1:3:42: ++%*li:052:0:3: ++%li:0B101010:1:8:42: ++%*li:0B101010:0:8: ++%li:0b101010:1:8:42: ++%*li:0b101010:0:8: ++%li:9223372036854775807:1:19:9223372036854775807: ++%*li:9223372036854775807:0:19: ++%li:0X7fffffffffffffff:1:18:9223372036854775807: ++%*li:0X7fffffffffffffff:0:18: ++%li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*li:0x7FFFFFFFFFFFFFFF:0:18: ++%li:0777777777777777777777:1:22:9223372036854775807: ++%*li:0777777777777777777777:0:22: ++%li:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*li:0B111111111111111111111111111111111111111111111111111111111111111:0:65: ++%li:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*li:0b111111111111111111111111111111111111111111111111111111111111111:0:65: ++%li:9223372036854775808:1:19:9223372036854775807: ++%*li:9223372036854775808:0:19: ++%li:0X8000000000000000:1:18:9223372036854775807: ++%*li:0X8000000000000000:0:18: ++%li:0x8000000000000000:1:18:9223372036854775807: ++%*li:0x8000000000000000:0:18: ++%li:01000000000000000000000:1:23:9223372036854775807: ++%*li:01000000000000000000000:0:23: ++%li:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*li:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%li:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*li:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%li:9223372036897200049:1:19:9223372036854775807: ++%*li:9223372036897200049:0:19: ++%li:0X80000000028757b1:1:18:9223372036854775807: ++%*li:0X80000000028757b1:0:18: ++%li:0x80000000028757B1:1:18:9223372036854775807: ++%*li:0x80000000028757B1:0:18: ++%li:01000000000000241653661:1:23:9223372036854775807: ++%*li:01000000000000241653661:0:23: ++%li:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*li:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%li:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*li:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%li:+0:1:2:0: ++%*li:+0:0:2: ++%li:+0X0:1:4:0: ++%*li:+0X0:0:4: ++%li:+0x0:1:4:0: ++%*li:+0x0:0:4: ++%li:+00:1:3:0: ++%*li:+00:0:3: ++%li:+0B0:1:4:0: ++%*li:+0B0:0:4: ++%li:+0b0:1:4:0: ++%*li:+0b0:0:4: ++%li:+1:1:2:1: ++%*li:+1:0:2: ++%li:+0X1:1:4:1: ++%*li:+0X1:0:4: ++%li:+0x1:1:4:1: ++%*li:+0x1:0:4: ++%li:+01:1:3:1: ++%*li:+01:0:3: ++%li:+0B1:1:4:1: ++%*li:+0B1:0:4: ++%li:+0b1:1:4:1: ++%*li:+0b1:0:4: ++%li:+42:1:3:42: ++%*li:+42:0:3: ++%li:+0X2a:1:5:42: ++%*li:+0X2a:0:5: ++%li:+0x2A:1:5:42: ++%*li:+0x2A:0:5: ++%li:+052:1:4:42: ++%*li:+052:0:4: ++%li:+0B101010:1:9:42: ++%*li:+0B101010:0:9: ++%li:+0b101010:1:9:42: ++%*li:+0b101010:0:9: ++%li:+9223372036854775807:1:20:9223372036854775807: ++%*li:+9223372036854775807:0:20: ++%li:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*li:+0X7fffffffffffffff:0:19: ++%li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*li:+0x7FFFFFFFFFFFFFFF:0:19: ++%li:+0777777777777777777777:1:23:9223372036854775807: ++%*li:+0777777777777777777777:0:23: ++%li:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*li:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: ++%li:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*li:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: ++%li:+9223372036854775808:1:20:9223372036854775807: ++%*li:+9223372036854775808:0:20: ++%li:+0X8000000000000000:1:19:9223372036854775807: ++%*li:+0X8000000000000000:0:19: ++%li:+0x8000000000000000:1:19:9223372036854775807: ++%*li:+0x8000000000000000:0:19: ++%li:+01000000000000000000000:1:24:9223372036854775807: ++%*li:+01000000000000000000000:0:24: ++%li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:+9223372036897200049:1:20:9223372036854775807: ++%*li:+9223372036897200049:0:20: ++%li:+0X80000000028757b1:1:19:9223372036854775807: ++%*li:+0X80000000028757b1:0:19: ++%li:+0x80000000028757B1:1:19:9223372036854775807: ++%*li:+0x80000000028757B1:0:19: ++%li:+01000000000000241653661:1:24:9223372036854775807: ++%*li:+01000000000000241653661:0:24: ++%li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%1li::0:-1: ++%*1li::0:-1: ++%1li:-9223372036867121486:0:-1: ++%*1li:-9223372036867121486:0:-1: ++%1li:-0X8000000000bc614e:0:-1: ++%*1li:-0X8000000000bc614e:0:-1: ++%1li:-0x8000000000BC614E:0:-1: ++%*1li:-0x8000000000BC614E:0:-1: ++%1li:-01000000000000057060516:0:-1: ++%*1li:-01000000000000057060516:0:-1: ++%1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1li:-9223372036854775809:0:-1: ++%*1li:-9223372036854775809:0:-1: ++%1li:-0X8000000000000001:0:-1: ++%*1li:-0X8000000000000001:0:-1: ++%1li:-0x8000000000000001:0:-1: ++%*1li:-0x8000000000000001:0:-1: ++%1li:-01000000000000000000001:0:-1: ++%*1li:-01000000000000000000001:0:-1: ++%1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1li:-9223372036854775808:0:-1: ++%*1li:-9223372036854775808:0:-1: ++%1li:-0X8000000000000000:0:-1: ++%*1li:-0X8000000000000000:0:-1: ++%1li:-0x8000000000000000:0:-1: ++%*1li:-0x8000000000000000:0:-1: ++%1li:-01000000000000000000000:0:-1: ++%*1li:-01000000000000000000000:0:-1: ++%1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:-123:0:-1: ++%*1li:-123:0:-1: ++%1li:-0X7b:0:-1: ++%*1li:-0X7b:0:-1: ++%1li:-0x7B:0:-1: ++%*1li:-0x7B:0:-1: ++%1li:-0173:0:-1: ++%*1li:-0173:0:-1: ++%1li:-0B1111011:0:-1: ++%*1li:-0B1111011:0:-1: ++%1li:-0b1111011:0:-1: ++%*1li:-0b1111011:0:-1: ++%1li:-1:0:-1: ++%*1li:-1:0:-1: ++%1li:-0X1:0:-1: ++%*1li:-0X1:0:-1: ++%1li:-0x1:0:-1: ++%*1li:-0x1:0:-1: ++%1li:-01:0:-1: ++%*1li:-01:0:-1: ++%1li:-0B1:0:-1: ++%*1li:-0B1:0:-1: ++%1li:-0b1:0:-1: ++%*1li:-0b1:0:-1: ++%1li:-0:0:-1: ++%*1li:-0:0:-1: ++%1li:-0X0:0:-1: ++%*1li:-0X0:0:-1: ++%1li:-0x0:0:-1: ++%*1li:-0x0:0:-1: ++%1li:-00:0:-1: ++%*1li:-00:0:-1: ++%1li:-0B0:0:-1: ++%*1li:-0B0:0:-1: ++%1li:-0b0:0:-1: ++%*1li:-0b0:0:-1: ++%1li:0:1:1:0: ++%*1li:0:0:1: ++%1li:0X0:1:1:0: ++%*1li:0X0:0:1: ++%1li:0x0:1:1:0: ++%*1li:0x0:0:1: ++%1li:00:1:1:0: ++%*1li:00:0:1: ++%1li:0B0:1:1:0: ++%*1li:0B0:0:1: ++%1li:0b0:1:1:0: ++%*1li:0b0:0:1: ++%1li:1:1:1:1: ++%*1li:1:0:1: ++%1li:0X1:1:1:0: ++%*1li:0X1:0:1: ++%1li:0x1:1:1:0: ++%*1li:0x1:0:1: ++%1li:01:1:1:0: ++%*1li:01:0:1: ++%1li:0B1:1:1:0: ++%*1li:0B1:0:1: ++%1li:0b1:1:1:0: ++%*1li:0b1:0:1: ++%1li:42:1:1:4: ++%*1li:42:0:1: ++%1li:0X2a:1:1:0: ++%*1li:0X2a:0:1: ++%1li:0x2A:1:1:0: ++%*1li:0x2A:0:1: ++%1li:052:1:1:0: ++%*1li:052:0:1: ++%1li:0B101010:1:1:0: ++%*1li:0B101010:0:1: ++%1li:0b101010:1:1:0: ++%*1li:0b101010:0:1: ++%1li:9223372036854775807:1:1:9: ++%*1li:9223372036854775807:0:1: ++%1li:0X7fffffffffffffff:1:1:0: ++%*1li:0X7fffffffffffffff:0:1: ++%1li:0x7FFFFFFFFFFFFFFF:1:1:0: ++%*1li:0x7FFFFFFFFFFFFFFF:0:1: ++%1li:0777777777777777777777:1:1:0: ++%*1li:0777777777777777777777:0:1: ++%1li:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1li:0B111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1li:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1li:0b111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1li:9223372036854775808:1:1:9: ++%*1li:9223372036854775808:0:1: ++%1li:0X8000000000000000:1:1:0: ++%*1li:0X8000000000000000:0:1: ++%1li:0x8000000000000000:1:1:0: ++%*1li:0x8000000000000000:0:1: ++%1li:01000000000000000000000:1:1:0: ++%*1li:01000000000000000000000:0:1: ++%1li:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1li:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1li:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1li:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1li:9223372036897200049:1:1:9: ++%*1li:9223372036897200049:0:1: ++%1li:0X80000000028757b1:1:1:0: ++%*1li:0X80000000028757b1:0:1: ++%1li:0x80000000028757B1:1:1:0: ++%*1li:0x80000000028757B1:0:1: ++%1li:01000000000000241653661:1:1:0: ++%*1li:01000000000000241653661:0:1: ++%1li:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1li:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1li:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1li:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1li:+0:0:-1: ++%*1li:+0:0:-1: ++%1li:+0X0:0:-1: ++%*1li:+0X0:0:-1: ++%1li:+0x0:0:-1: ++%*1li:+0x0:0:-1: ++%1li:+00:0:-1: ++%*1li:+00:0:-1: ++%1li:+0B0:0:-1: ++%*1li:+0B0:0:-1: ++%1li:+0b0:0:-1: ++%*1li:+0b0:0:-1: ++%1li:+1:0:-1: ++%*1li:+1:0:-1: ++%1li:+0X1:0:-1: ++%*1li:+0X1:0:-1: ++%1li:+0x1:0:-1: ++%*1li:+0x1:0:-1: ++%1li:+01:0:-1: ++%*1li:+01:0:-1: ++%1li:+0B1:0:-1: ++%*1li:+0B1:0:-1: ++%1li:+0b1:0:-1: ++%*1li:+0b1:0:-1: ++%1li:+42:0:-1: ++%*1li:+42:0:-1: ++%1li:+0X2a:0:-1: ++%*1li:+0X2a:0:-1: ++%1li:+0x2A:0:-1: ++%*1li:+0x2A:0:-1: ++%1li:+052:0:-1: ++%*1li:+052:0:-1: ++%1li:+0B101010:0:-1: ++%*1li:+0B101010:0:-1: ++%1li:+0b101010:0:-1: ++%*1li:+0b101010:0:-1: ++%1li:+9223372036854775807:0:-1: ++%*1li:+9223372036854775807:0:-1: ++%1li:+0X7fffffffffffffff:0:-1: ++%*1li:+0X7fffffffffffffff:0:-1: ++%1li:+0x7FFFFFFFFFFFFFFF:0:-1: ++%*1li:+0x7FFFFFFFFFFFFFFF:0:-1: ++%1li:+0777777777777777777777:0:-1: ++%*1li:+0777777777777777777777:0:-1: ++%1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1li:+9223372036854775808:0:-1: ++%*1li:+9223372036854775808:0:-1: ++%1li:+0X8000000000000000:0:-1: ++%*1li:+0X8000000000000000:0:-1: ++%1li:+0x8000000000000000:0:-1: ++%*1li:+0x8000000000000000:0:-1: ++%1li:+01000000000000000000000:0:-1: ++%*1li:+01000000000000000000000:0:-1: ++%1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:+9223372036897200049:0:-1: ++%*1li:+9223372036897200049:0:-1: ++%1li:+0X80000000028757b1:0:-1: ++%*1li:+0X80000000028757b1:0:-1: ++%1li:+0x80000000028757B1:0:-1: ++%*1li:+0x80000000028757B1:0:-1: ++%1li:+01000000000000241653661:0:-1: ++%*1li:+01000000000000241653661:0:-1: ++%1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li::0:-1: ++%*2li::0:-1: ++%2li:-9223372036867121486:1:2:-9: ++%*2li:-9223372036867121486:0:2: ++%2li:-0X8000000000bc614e:1:2:0: ++%*2li:-0X8000000000bc614e:0:2: ++%2li:-0x8000000000BC614E:1:2:0: ++%*2li:-0x8000000000BC614E:0:2: ++%2li:-01000000000000057060516:1:2:0: ++%*2li:-01000000000000057060516:0:2: ++%2li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2li:-9223372036854775809:1:2:-9: ++%*2li:-9223372036854775809:0:2: ++%2li:-0X8000000000000001:1:2:0: ++%*2li:-0X8000000000000001:0:2: ++%2li:-0x8000000000000001:1:2:0: ++%*2li:-0x8000000000000001:0:2: ++%2li:-01000000000000000000001:1:2:0: ++%*2li:-01000000000000000000001:0:2: ++%2li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2li:-9223372036854775808:1:2:-9: ++%*2li:-9223372036854775808:0:2: ++%2li:-0X8000000000000000:1:2:0: ++%*2li:-0X8000000000000000:0:2: ++%2li:-0x8000000000000000:1:2:0: ++%*2li:-0x8000000000000000:0:2: ++%2li:-01000000000000000000000:1:2:0: ++%*2li:-01000000000000000000000:0:2: ++%2li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:-123:1:2:-1: ++%*2li:-123:0:2: ++%2li:-0X7b:1:2:0: ++%*2li:-0X7b:0:2: ++%2li:-0x7B:1:2:0: ++%*2li:-0x7B:0:2: ++%2li:-0173:1:2:0: ++%*2li:-0173:0:2: ++%2li:-0B1111011:1:2:0: ++%*2li:-0B1111011:0:2: ++%2li:-0b1111011:1:2:0: ++%*2li:-0b1111011:0:2: ++%2li:-1:1:2:-1: ++%*2li:-1:0:2: ++%2li:-0X1:1:2:0: ++%*2li:-0X1:0:2: ++%2li:-0x1:1:2:0: ++%*2li:-0x1:0:2: ++%2li:-01:1:2:0: ++%*2li:-01:0:2: ++%2li:-0B1:1:2:0: ++%*2li:-0B1:0:2: ++%2li:-0b1:1:2:0: ++%*2li:-0b1:0:2: ++%2li:-0:1:2:0: ++%*2li:-0:0:2: ++%2li:-0X0:1:2:0: ++%*2li:-0X0:0:2: ++%2li:-0x0:1:2:0: ++%*2li:-0x0:0:2: ++%2li:-00:1:2:0: ++%*2li:-00:0:2: ++%2li:-0B0:1:2:0: ++%*2li:-0B0:0:2: ++%2li:-0b0:1:2:0: ++%*2li:-0b0:0:2: ++%2li:0:1:1:0: ++%*2li:0:0:1: ++# BZ12701 %2li:0X0:0:-1: ++# BZ12701 %*2li:0X0:0:-1: ++# BZ12701 %2li:0x0:0:-1: ++# BZ12701 %*2li:0x0:0:-1: ++%2li:00:1:2:0: ++%*2li:00:0:2: ++# BZ12701 %2li:0B0:0:-1: ++# BZ12701 %*2li:0B0:0:-1: ++# BZ12701 %2li:0b0:0:-1: ++# BZ12701 %*2li:0b0:0:-1: ++%2li:1:1:1:1: ++%*2li:1:0:1: ++# BZ12701 %2li:0X1:0:-1: ++# BZ12701 %*2li:0X1:0:-1: ++# BZ12701 %2li:0x1:0:-1: ++# BZ12701 %*2li:0x1:0:-1: ++%2li:01:1:2:1: ++%*2li:01:0:2: ++# BZ12701 %2li:0B1:0:-1: ++# BZ12701 %*2li:0B1:0:-1: ++# BZ12701 %2li:0b1:0:-1: ++# BZ12701 %*2li:0b1:0:-1: ++%2li:42:1:2:42: ++%*2li:42:0:2: ++# BZ12701 %2li:0X2a:0:-1: ++# BZ12701 %*2li:0X2a:0:-1: ++# BZ12701 %2li:0x2A:0:-1: ++# BZ12701 %*2li:0x2A:0:-1: ++%2li:052:1:2:5: ++%*2li:052:0:2: ++# BZ12701 %2li:0B101010:0:-1: ++# BZ12701 %*2li:0B101010:0:-1: ++# BZ12701 %2li:0b101010:0:-1: ++# BZ12701 %*2li:0b101010:0:-1: ++%2li:9223372036854775807:1:2:92: ++%*2li:9223372036854775807:0:2: ++# BZ12701 %2li:0X7fffffffffffffff:0:-1: ++# BZ12701 %*2li:0X7fffffffffffffff:0:-1: ++# BZ12701 %2li:0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2li:0x7FFFFFFFFFFFFFFF:0:-1: ++%2li:0777777777777777777777:1:2:7: ++%*2li:0777777777777777777777:0:2: ++# BZ12701 %2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2li:9223372036854775808:1:2:92: ++%*2li:9223372036854775808:0:2: ++# BZ12701 %2li:0X8000000000000000:0:-1: ++# BZ12701 %*2li:0X8000000000000000:0:-1: ++# BZ12701 %2li:0x8000000000000000:0:-1: ++# BZ12701 %*2li:0x8000000000000000:0:-1: ++%2li:01000000000000000000000:1:2:1: ++%*2li:01000000000000000000000:0:2: ++# BZ12701 %2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2li:9223372036897200049:1:2:92: ++%*2li:9223372036897200049:0:2: ++# BZ12701 %2li:0X80000000028757b1:0:-1: ++# BZ12701 %*2li:0X80000000028757b1:0:-1: ++# BZ12701 %2li:0x80000000028757B1:0:-1: ++# BZ12701 %*2li:0x80000000028757B1:0:-1: ++%2li:01000000000000241653661:1:2:1: ++%*2li:01000000000000241653661:0:2: ++# BZ12701 %2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li:+0:1:2:0: ++%*2li:+0:0:2: ++%2li:+0X0:1:2:0: ++%*2li:+0X0:0:2: ++%2li:+0x0:1:2:0: ++%*2li:+0x0:0:2: ++%2li:+00:1:2:0: ++%*2li:+00:0:2: ++%2li:+0B0:1:2:0: ++%*2li:+0B0:0:2: ++%2li:+0b0:1:2:0: ++%*2li:+0b0:0:2: ++%2li:+1:1:2:1: ++%*2li:+1:0:2: ++%2li:+0X1:1:2:0: ++%*2li:+0X1:0:2: ++%2li:+0x1:1:2:0: ++%*2li:+0x1:0:2: ++%2li:+01:1:2:0: ++%*2li:+01:0:2: ++%2li:+0B1:1:2:0: ++%*2li:+0B1:0:2: ++%2li:+0b1:1:2:0: ++%*2li:+0b1:0:2: ++%2li:+42:1:2:4: ++%*2li:+42:0:2: ++%2li:+0X2a:1:2:0: ++%*2li:+0X2a:0:2: ++%2li:+0x2A:1:2:0: ++%*2li:+0x2A:0:2: ++%2li:+052:1:2:0: ++%*2li:+052:0:2: ++%2li:+0B101010:1:2:0: ++%*2li:+0B101010:0:2: ++%2li:+0b101010:1:2:0: ++%*2li:+0b101010:0:2: ++%2li:+9223372036854775807:1:2:9: ++%*2li:+9223372036854775807:0:2: ++%2li:+0X7fffffffffffffff:1:2:0: ++%*2li:+0X7fffffffffffffff:0:2: ++%2li:+0x7FFFFFFFFFFFFFFF:1:2:0: ++%*2li:+0x7FFFFFFFFFFFFFFF:0:2: ++%2li:+0777777777777777777777:1:2:0: ++%*2li:+0777777777777777777777:0:2: ++%2li:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2li:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2li:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2li:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2li:+9223372036854775808:1:2:9: ++%*2li:+9223372036854775808:0:2: ++%2li:+0X8000000000000000:1:2:0: ++%*2li:+0X8000000000000000:0:2: ++%2li:+0x8000000000000000:1:2:0: ++%*2li:+0x8000000000000000:0:2: ++%2li:+01000000000000000000000:1:2:0: ++%*2li:+01000000000000000000000:0:2: ++%2li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:+9223372036897200049:1:2:9: ++%*2li:+9223372036897200049:0:2: ++%2li:+0X80000000028757b1:1:2:0: ++%*2li:+0X80000000028757b1:0:2: ++%2li:+0x80000000028757B1:1:2:0: ++%*2li:+0x80000000028757B1:0:2: ++%2li:+01000000000000241653661:1:2:0: ++%*2li:+01000000000000241653661:0:2: ++%2li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15li::0:-1: ++%*15li::0:-1: ++%15li:-9223372036867121486:1:15:-92233720368671: ++%*15li:-9223372036867121486:0:15: ++%15li:-0X8000000000bc614e:1:15:-140737488355516: ++%*15li:-0X8000000000bc614e:0:15: ++%15li:-0x8000000000BC614E:1:15:-140737488355516: ++%*15li:-0x8000000000BC614E:0:15: ++%15li:-01000000000000057060516:1:15:-68719476736: ++%*15li:-01000000000000057060516:0:15: ++%15li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15li:-9223372036854775809:1:15:-92233720368547: ++%*15li:-9223372036854775809:0:15: ++%15li:-0X8000000000000001:1:15:-140737488355328: ++%*15li:-0X8000000000000001:0:15: ++%15li:-0x8000000000000001:1:15:-140737488355328: ++%*15li:-0x8000000000000001:0:15: ++%15li:-01000000000000000000001:1:15:-68719476736: ++%*15li:-01000000000000000000001:0:15: ++%15li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15li:-9223372036854775808:1:15:-92233720368547: ++%*15li:-9223372036854775808:0:15: ++%15li:-0X8000000000000000:1:15:-140737488355328: ++%*15li:-0X8000000000000000:0:15: ++%15li:-0x8000000000000000:1:15:-140737488355328: ++%*15li:-0x8000000000000000:0:15: ++%15li:-01000000000000000000000:1:15:-68719476736: ++%*15li:-01000000000000000000000:0:15: ++%15li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:-123:1:4:-123: ++%*15li:-123:0:4: ++%15li:-0X7b:1:5:-123: ++%*15li:-0X7b:0:5: ++%15li:-0x7B:1:5:-123: ++%*15li:-0x7B:0:5: ++%15li:-0173:1:5:-123: ++%*15li:-0173:0:5: ++%15li:-0B1111011:1:10:-123: ++%*15li:-0B1111011:0:10: ++%15li:-0b1111011:1:10:-123: ++%*15li:-0b1111011:0:10: ++%15li:-1:1:2:-1: ++%*15li:-1:0:2: ++%15li:-0X1:1:4:-1: ++%*15li:-0X1:0:4: ++%15li:-0x1:1:4:-1: ++%*15li:-0x1:0:4: ++%15li:-01:1:3:-1: ++%*15li:-01:0:3: ++%15li:-0B1:1:4:-1: ++%*15li:-0B1:0:4: ++%15li:-0b1:1:4:-1: ++%*15li:-0b1:0:4: ++%15li:-0:1:2:0: ++%*15li:-0:0:2: ++%15li:-0X0:1:4:0: ++%*15li:-0X0:0:4: ++%15li:-0x0:1:4:0: ++%*15li:-0x0:0:4: ++%15li:-00:1:3:0: ++%*15li:-00:0:3: ++%15li:-0B0:1:4:0: ++%*15li:-0B0:0:4: ++%15li:-0b0:1:4:0: ++%*15li:-0b0:0:4: ++%15li:0:1:1:0: ++%*15li:0:0:1: ++%15li:0X0:1:3:0: ++%*15li:0X0:0:3: ++%15li:0x0:1:3:0: ++%*15li:0x0:0:3: ++%15li:00:1:2:0: ++%*15li:00:0:2: ++%15li:0B0:1:3:0: ++%*15li:0B0:0:3: ++%15li:0b0:1:3:0: ++%*15li:0b0:0:3: ++%15li:1:1:1:1: ++%*15li:1:0:1: ++%15li:0X1:1:3:1: ++%*15li:0X1:0:3: ++%15li:0x1:1:3:1: ++%*15li:0x1:0:3: ++%15li:01:1:2:1: ++%*15li:01:0:2: ++%15li:0B1:1:3:1: ++%*15li:0B1:0:3: ++%15li:0b1:1:3:1: ++%*15li:0b1:0:3: ++%15li:42:1:2:42: ++%*15li:42:0:2: ++%15li:0X2a:1:4:42: ++%*15li:0X2a:0:4: ++%15li:0x2A:1:4:42: ++%*15li:0x2A:0:4: ++%15li:052:1:3:42: ++%*15li:052:0:3: ++%15li:0B101010:1:8:42: ++%*15li:0B101010:0:8: ++%15li:0b101010:1:8:42: ++%*15li:0b101010:0:8: ++%15li:9223372036854775807:1:15:922337203685477: ++%*15li:9223372036854775807:0:15: ++%15li:0X7fffffffffffffff:1:15:2251799813685247: ++%*15li:0X7fffffffffffffff:0:15: ++%15li:0x7FFFFFFFFFFFFFFF:1:15:2251799813685247: ++%*15li:0x7FFFFFFFFFFFFFFF:0:15: ++%15li:0777777777777777777777:1:15:4398046511103: ++%*15li:0777777777777777777777:0:15: ++%15li:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15li:0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15li:0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:9223372036854775808:1:15:922337203685477: ++%*15li:9223372036854775808:0:15: ++%15li:0X8000000000000000:1:15:2251799813685248: ++%*15li:0X8000000000000000:0:15: ++%15li:0x8000000000000000:1:15:2251799813685248: ++%*15li:0x8000000000000000:0:15: ++%15li:01000000000000000000000:1:15:549755813888: ++%*15li:01000000000000000000000:0:15: ++%15li:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15li:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15li:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:9223372036897200049:1:15:922337203689720: ++%*15li:9223372036897200049:0:15: ++%15li:0X80000000028757b1:1:15:2251799813695605: ++%*15li:0X80000000028757b1:0:15: ++%15li:0x80000000028757B1:1:15:2251799813695605: ++%*15li:0x80000000028757B1:0:15: ++%15li:01000000000000241653661:1:15:549755813890: ++%*15li:01000000000000241653661:0:15: ++%15li:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15li:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15li:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:+0:1:2:0: ++%*15li:+0:0:2: ++%15li:+0X0:1:4:0: ++%*15li:+0X0:0:4: ++%15li:+0x0:1:4:0: ++%*15li:+0x0:0:4: ++%15li:+00:1:3:0: ++%*15li:+00:0:3: ++%15li:+0B0:1:4:0: ++%*15li:+0B0:0:4: ++%15li:+0b0:1:4:0: ++%*15li:+0b0:0:4: ++%15li:+1:1:2:1: ++%*15li:+1:0:2: ++%15li:+0X1:1:4:1: ++%*15li:+0X1:0:4: ++%15li:+0x1:1:4:1: ++%*15li:+0x1:0:4: ++%15li:+01:1:3:1: ++%*15li:+01:0:3: ++%15li:+0B1:1:4:1: ++%*15li:+0B1:0:4: ++%15li:+0b1:1:4:1: ++%*15li:+0b1:0:4: ++%15li:+42:1:3:42: ++%*15li:+42:0:3: ++%15li:+0X2a:1:5:42: ++%*15li:+0X2a:0:5: ++%15li:+0x2A:1:5:42: ++%*15li:+0x2A:0:5: ++%15li:+052:1:4:42: ++%*15li:+052:0:4: ++%15li:+0B101010:1:9:42: ++%*15li:+0B101010:0:9: ++%15li:+0b101010:1:9:42: ++%*15li:+0b101010:0:9: ++%15li:+9223372036854775807:1:15:92233720368547: ++%*15li:+9223372036854775807:0:15: ++%15li:+0X7fffffffffffffff:1:15:140737488355327: ++%*15li:+0X7fffffffffffffff:0:15: ++%15li:+0x7FFFFFFFFFFFFFFF:1:15:140737488355327: ++%*15li:+0x7FFFFFFFFFFFFFFF:0:15: ++%15li:+0777777777777777777777:1:15:549755813887: ++%*15li:+0777777777777777777777:0:15: ++%15li:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15li:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15li:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:+9223372036854775808:1:15:92233720368547: ++%*15li:+9223372036854775808:0:15: ++%15li:+0X8000000000000000:1:15:140737488355328: ++%*15li:+0X8000000000000000:0:15: ++%15li:+0x8000000000000000:1:15:140737488355328: ++%*15li:+0x8000000000000000:0:15: ++%15li:+01000000000000000000000:1:15:68719476736: ++%*15li:+01000000000000000000000:0:15: ++%15li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:+9223372036897200049:1:15:92233720368972: ++%*15li:+9223372036897200049:0:15: ++%15li:+0X80000000028757b1:1:15:140737488355975: ++%*15li:+0X80000000028757b1:0:15: ++%15li:+0x80000000028757B1:1:15:140737488355975: ++%*15li:+0x80000000028757B1:0:15: ++%15li:+01000000000000241653661:1:15:68719476736: ++%*15li:+01000000000000241653661:0:15: ++%15li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25li::0:-1: ++%*25li::0:-1: ++%25li:-9223372036867121486:1:20:-9223372036854775808: ++%*25li:-9223372036867121486:0:20: ++%25li:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*25li:-0X8000000000bc614e:0:19: ++%25li:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*25li:-0x8000000000BC614E:0:19: ++%25li:-01000000000000057060516:1:24:-9223372036854775808: ++%*25li:-01000000000000057060516:0:24: ++%25li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25li:-9223372036854775809:1:20:-9223372036854775808: ++%*25li:-9223372036854775809:0:20: ++%25li:-0X8000000000000001:1:19:-9223372036854775808: ++%*25li:-0X8000000000000001:0:19: ++%25li:-0x8000000000000001:1:19:-9223372036854775808: ++%*25li:-0x8000000000000001:0:19: ++%25li:-01000000000000000000001:1:24:-9223372036854775808: ++%*25li:-01000000000000000000001:0:24: ++%25li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25li:-9223372036854775808:1:20:-9223372036854775808: ++%*25li:-9223372036854775808:0:20: ++%25li:-0X8000000000000000:1:19:-9223372036854775808: ++%*25li:-0X8000000000000000:0:19: ++%25li:-0x8000000000000000:1:19:-9223372036854775808: ++%*25li:-0x8000000000000000:0:19: ++%25li:-01000000000000000000000:1:24:-9223372036854775808: ++%*25li:-01000000000000000000000:0:24: ++%25li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:-123:1:4:-123: ++%*25li:-123:0:4: ++%25li:-0X7b:1:5:-123: ++%*25li:-0X7b:0:5: ++%25li:-0x7B:1:5:-123: ++%*25li:-0x7B:0:5: ++%25li:-0173:1:5:-123: ++%*25li:-0173:0:5: ++%25li:-0B1111011:1:10:-123: ++%*25li:-0B1111011:0:10: ++%25li:-0b1111011:1:10:-123: ++%*25li:-0b1111011:0:10: ++%25li:-1:1:2:-1: ++%*25li:-1:0:2: ++%25li:-0X1:1:4:-1: ++%*25li:-0X1:0:4: ++%25li:-0x1:1:4:-1: ++%*25li:-0x1:0:4: ++%25li:-01:1:3:-1: ++%*25li:-01:0:3: ++%25li:-0B1:1:4:-1: ++%*25li:-0B1:0:4: ++%25li:-0b1:1:4:-1: ++%*25li:-0b1:0:4: ++%25li:-0:1:2:0: ++%*25li:-0:0:2: ++%25li:-0X0:1:4:0: ++%*25li:-0X0:0:4: ++%25li:-0x0:1:4:0: ++%*25li:-0x0:0:4: ++%25li:-00:1:3:0: ++%*25li:-00:0:3: ++%25li:-0B0:1:4:0: ++%*25li:-0B0:0:4: ++%25li:-0b0:1:4:0: ++%*25li:-0b0:0:4: ++%25li:0:1:1:0: ++%*25li:0:0:1: ++%25li:0X0:1:3:0: ++%*25li:0X0:0:3: ++%25li:0x0:1:3:0: ++%*25li:0x0:0:3: ++%25li:00:1:2:0: ++%*25li:00:0:2: ++%25li:0B0:1:3:0: ++%*25li:0B0:0:3: ++%25li:0b0:1:3:0: ++%*25li:0b0:0:3: ++%25li:1:1:1:1: ++%*25li:1:0:1: ++%25li:0X1:1:3:1: ++%*25li:0X1:0:3: ++%25li:0x1:1:3:1: ++%*25li:0x1:0:3: ++%25li:01:1:2:1: ++%*25li:01:0:2: ++%25li:0B1:1:3:1: ++%*25li:0B1:0:3: ++%25li:0b1:1:3:1: ++%*25li:0b1:0:3: ++%25li:42:1:2:42: ++%*25li:42:0:2: ++%25li:0X2a:1:4:42: ++%*25li:0X2a:0:4: ++%25li:0x2A:1:4:42: ++%*25li:0x2A:0:4: ++%25li:052:1:3:42: ++%*25li:052:0:3: ++%25li:0B101010:1:8:42: ++%*25li:0B101010:0:8: ++%25li:0b101010:1:8:42: ++%*25li:0b101010:0:8: ++%25li:9223372036854775807:1:19:9223372036854775807: ++%*25li:9223372036854775807:0:19: ++%25li:0X7fffffffffffffff:1:18:9223372036854775807: ++%*25li:0X7fffffffffffffff:0:18: ++%25li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*25li:0x7FFFFFFFFFFFFFFF:0:18: ++%25li:0777777777777777777777:1:22:9223372036854775807: ++%*25li:0777777777777777777777:0:22: ++%25li:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25li:0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25li:0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:9223372036854775808:1:19:9223372036854775807: ++%*25li:9223372036854775808:0:19: ++%25li:0X8000000000000000:1:18:9223372036854775807: ++%*25li:0X8000000000000000:0:18: ++%25li:0x8000000000000000:1:18:9223372036854775807: ++%*25li:0x8000000000000000:0:18: ++%25li:01000000000000000000000:1:23:9223372036854775807: ++%*25li:01000000000000000000000:0:23: ++%25li:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25li:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25li:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:9223372036897200049:1:19:9223372036854775807: ++%*25li:9223372036897200049:0:19: ++%25li:0X80000000028757b1:1:18:9223372036854775807: ++%*25li:0X80000000028757b1:0:18: ++%25li:0x80000000028757B1:1:18:9223372036854775807: ++%*25li:0x80000000028757B1:0:18: ++%25li:01000000000000241653661:1:23:9223372036854775807: ++%*25li:01000000000000241653661:0:23: ++%25li:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25li:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25li:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:+0:1:2:0: ++%*25li:+0:0:2: ++%25li:+0X0:1:4:0: ++%*25li:+0X0:0:4: ++%25li:+0x0:1:4:0: ++%*25li:+0x0:0:4: ++%25li:+00:1:3:0: ++%*25li:+00:0:3: ++%25li:+0B0:1:4:0: ++%*25li:+0B0:0:4: ++%25li:+0b0:1:4:0: ++%*25li:+0b0:0:4: ++%25li:+1:1:2:1: ++%*25li:+1:0:2: ++%25li:+0X1:1:4:1: ++%*25li:+0X1:0:4: ++%25li:+0x1:1:4:1: ++%*25li:+0x1:0:4: ++%25li:+01:1:3:1: ++%*25li:+01:0:3: ++%25li:+0B1:1:4:1: ++%*25li:+0B1:0:4: ++%25li:+0b1:1:4:1: ++%*25li:+0b1:0:4: ++%25li:+42:1:3:42: ++%*25li:+42:0:3: ++%25li:+0X2a:1:5:42: ++%*25li:+0X2a:0:5: ++%25li:+0x2A:1:5:42: ++%*25li:+0x2A:0:5: ++%25li:+052:1:4:42: ++%*25li:+052:0:4: ++%25li:+0B101010:1:9:42: ++%*25li:+0B101010:0:9: ++%25li:+0b101010:1:9:42: ++%*25li:+0b101010:0:9: ++%25li:+9223372036854775807:1:20:9223372036854775807: ++%*25li:+9223372036854775807:0:20: ++%25li:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*25li:+0X7fffffffffffffff:0:19: ++%25li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25li:+0x7FFFFFFFFFFFFFFF:0:19: ++%25li:+0777777777777777777777:1:23:9223372036854775807: ++%*25li:+0777777777777777777777:0:23: ++%25li:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25li:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25li:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:+9223372036854775808:1:20:9223372036854775807: ++%*25li:+9223372036854775808:0:20: ++%25li:+0X8000000000000000:1:19:9223372036854775807: ++%*25li:+0X8000000000000000:0:19: ++%25li:+0x8000000000000000:1:19:9223372036854775807: ++%*25li:+0x8000000000000000:0:19: ++%25li:+01000000000000000000000:1:24:9223372036854775807: ++%*25li:+01000000000000000000000:0:24: ++%25li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:+9223372036897200049:1:20:9223372036854775807: ++%*25li:+9223372036897200049:0:20: ++%25li:+0X80000000028757b1:1:19:9223372036854775807: ++%*25li:+0X80000000028757b1:0:19: ++%25li:+0x80000000028757B1:1:19:9223372036854775807: ++%*25li:+0x80000000028757B1:0:19: ++%25li:+01000000000000241653661:1:24:9223372036854775807: ++%*25li:+01000000000000241653661:0:24: ++%25li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2li: :0:-1: ++%*2li: :0:-1: ++%2li: -9223372036867121486:1:3:-9: ++%*2li: -9223372036867121486:0:3: ++%2li: -0X8000000000bc614e:1:3:0: ++%*2li: -0X8000000000bc614e:0:3: ++%2li: -0x8000000000BC614E:1:3:0: ++%*2li: -0x8000000000BC614E:0:3: ++%2li: -01000000000000057060516:1:3:0: ++%*2li: -01000000000000057060516:0:3: ++%2li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2li: -9223372036854775809:1:3:-9: ++%*2li: -9223372036854775809:0:3: ++%2li: -0X8000000000000001:1:3:0: ++%*2li: -0X8000000000000001:0:3: ++%2li: -0x8000000000000001:1:3:0: ++%*2li: -0x8000000000000001:0:3: ++%2li: -01000000000000000000001:1:3:0: ++%*2li: -01000000000000000000001:0:3: ++%2li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2li: -9223372036854775808:1:3:-9: ++%*2li: -9223372036854775808:0:3: ++%2li: -0X8000000000000000:1:3:0: ++%*2li: -0X8000000000000000:0:3: ++%2li: -0x8000000000000000:1:3:0: ++%*2li: -0x8000000000000000:0:3: ++%2li: -01000000000000000000000:1:3:0: ++%*2li: -01000000000000000000000:0:3: ++%2li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: -123:1:3:-1: ++%*2li: -123:0:3: ++%2li: -0X7b:1:3:0: ++%*2li: -0X7b:0:3: ++%2li: -0x7B:1:3:0: ++%*2li: -0x7B:0:3: ++%2li: -0173:1:3:0: ++%*2li: -0173:0:3: ++%2li: -0B1111011:1:3:0: ++%*2li: -0B1111011:0:3: ++%2li: -0b1111011:1:3:0: ++%*2li: -0b1111011:0:3: ++%2li: -1:1:3:-1: ++%*2li: -1:0:3: ++%2li: -0X1:1:3:0: ++%*2li: -0X1:0:3: ++%2li: -0x1:1:3:0: ++%*2li: -0x1:0:3: ++%2li: -01:1:3:0: ++%*2li: -01:0:3: ++%2li: -0B1:1:3:0: ++%*2li: -0B1:0:3: ++%2li: -0b1:1:3:0: ++%*2li: -0b1:0:3: ++%2li: -0:1:3:0: ++%*2li: -0:0:3: ++%2li: -0X0:1:3:0: ++%*2li: -0X0:0:3: ++%2li: -0x0:1:3:0: ++%*2li: -0x0:0:3: ++%2li: -00:1:3:0: ++%*2li: -00:0:3: ++%2li: -0B0:1:3:0: ++%*2li: -0B0:0:3: ++%2li: -0b0:1:3:0: ++%*2li: -0b0:0:3: ++%2li: 0:1:2:0: ++%*2li: 0:0:2: ++# BZ12701 %2li: 0X0:0:-1: ++# BZ12701 %*2li: 0X0:0:-1: ++# BZ12701 %2li: 0x0:0:-1: ++# BZ12701 %*2li: 0x0:0:-1: ++%2li: 00:1:3:0: ++%*2li: 00:0:3: ++# BZ12701 %2li: 0B0:0:-1: ++# BZ12701 %*2li: 0B0:0:-1: ++# BZ12701 %2li: 0b0:0:-1: ++# BZ12701 %*2li: 0b0:0:-1: ++%2li: 1:1:2:1: ++%*2li: 1:0:2: ++# BZ12701 %2li: 0X1:0:-1: ++# BZ12701 %*2li: 0X1:0:-1: ++# BZ12701 %2li: 0x1:0:-1: ++# BZ12701 %*2li: 0x1:0:-1: ++%2li: 01:1:3:1: ++%*2li: 01:0:3: ++# BZ12701 %2li: 0B1:0:-1: ++# BZ12701 %*2li: 0B1:0:-1: ++# BZ12701 %2li: 0b1:0:-1: ++# BZ12701 %*2li: 0b1:0:-1: ++%2li: 42:1:3:42: ++%*2li: 42:0:3: ++# BZ12701 %2li: 0X2a:0:-1: ++# BZ12701 %*2li: 0X2a:0:-1: ++# BZ12701 %2li: 0x2A:0:-1: ++# BZ12701 %*2li: 0x2A:0:-1: ++%2li: 052:1:3:5: ++%*2li: 052:0:3: ++# BZ12701 %2li: 0B101010:0:-1: ++# BZ12701 %*2li: 0B101010:0:-1: ++# BZ12701 %2li: 0b101010:0:-1: ++# BZ12701 %*2li: 0b101010:0:-1: ++%2li: 9223372036854775807:1:3:92: ++%*2li: 9223372036854775807:0:3: ++# BZ12701 %2li: 0X7fffffffffffffff:0:-1: ++# BZ12701 %*2li: 0X7fffffffffffffff:0:-1: ++# BZ12701 %2li: 0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2li: 0x7FFFFFFFFFFFFFFF:0:-1: ++%2li: 0777777777777777777777:1:3:7: ++%*2li: 0777777777777777777777:0:3: ++# BZ12701 %2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2li: 9223372036854775808:1:3:92: ++%*2li: 9223372036854775808:0:3: ++# BZ12701 %2li: 0X8000000000000000:0:-1: ++# BZ12701 %*2li: 0X8000000000000000:0:-1: ++# BZ12701 %2li: 0x8000000000000000:0:-1: ++# BZ12701 %*2li: 0x8000000000000000:0:-1: ++%2li: 01000000000000000000000:1:3:1: ++%*2li: 01000000000000000000000:0:3: ++# BZ12701 %2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2li: 9223372036897200049:1:3:92: ++%*2li: 9223372036897200049:0:3: ++# BZ12701 %2li: 0X80000000028757b1:0:-1: ++# BZ12701 %*2li: 0X80000000028757b1:0:-1: ++# BZ12701 %2li: 0x80000000028757B1:0:-1: ++# BZ12701 %*2li: 0x80000000028757B1:0:-1: ++%2li: 01000000000000241653661:1:3:1: ++%*2li: 01000000000000241653661:0:3: ++# BZ12701 %2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li: +0:1:3:0: ++%*2li: +0:0:3: ++%2li: +0X0:1:3:0: ++%*2li: +0X0:0:3: ++%2li: +0x0:1:3:0: ++%*2li: +0x0:0:3: ++%2li: +00:1:3:0: ++%*2li: +00:0:3: ++%2li: +0B0:1:3:0: ++%*2li: +0B0:0:3: ++%2li: +0b0:1:3:0: ++%*2li: +0b0:0:3: ++%2li: +1:1:3:1: ++%*2li: +1:0:3: ++%2li: +0X1:1:3:0: ++%*2li: +0X1:0:3: ++%2li: +0x1:1:3:0: ++%*2li: +0x1:0:3: ++%2li: +01:1:3:0: ++%*2li: +01:0:3: ++%2li: +0B1:1:3:0: ++%*2li: +0B1:0:3: ++%2li: +0b1:1:3:0: ++%*2li: +0b1:0:3: ++%2li: +42:1:3:4: ++%*2li: +42:0:3: ++%2li: +0X2a:1:3:0: ++%*2li: +0X2a:0:3: ++%2li: +0x2A:1:3:0: ++%*2li: +0x2A:0:3: ++%2li: +052:1:3:0: ++%*2li: +052:0:3: ++%2li: +0B101010:1:3:0: ++%*2li: +0B101010:0:3: ++%2li: +0b101010:1:3:0: ++%*2li: +0b101010:0:3: ++%2li: +9223372036854775807:1:3:9: ++%*2li: +9223372036854775807:0:3: ++%2li: +0X7fffffffffffffff:1:3:0: ++%*2li: +0X7fffffffffffffff:0:3: ++%2li: +0x7FFFFFFFFFFFFFFF:1:3:0: ++%*2li: +0x7FFFFFFFFFFFFFFF:0:3: ++%2li: +0777777777777777777777:1:3:0: ++%*2li: +0777777777777777777777:0:3: ++%2li: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2li: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2li: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2li: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2li: +9223372036854775808:1:3:9: ++%*2li: +9223372036854775808:0:3: ++%2li: +0X8000000000000000:1:3:0: ++%*2li: +0X8000000000000000:0:3: ++%2li: +0x8000000000000000:1:3:0: ++%*2li: +0x8000000000000000:0:3: ++%2li: +01000000000000000000000:1:3:0: ++%*2li: +01000000000000000000000:0:3: ++%2li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: +9223372036897200049:1:3:9: ++%*2li: +9223372036897200049:0:3: ++%2li: +0X80000000028757b1:1:3:0: ++%*2li: +0X80000000028757b1:0:3: ++%2li: +0x80000000028757B1:1:3:0: ++%*2li: +0x80000000028757B1:0:3: ++%2li: +01000000000000241653661:1:3:0: ++%*2li: +01000000000000241653661:0:3: ++%2li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25li: :0:-1: ++%*25li: :0:-1: ++%25li: -9223372036867121486:1:21:-9223372036854775808: ++%*25li: -9223372036867121486:0:21: ++%25li: -0X8000000000bc614e:1:20:-9223372036854775808: ++%*25li: -0X8000000000bc614e:0:20: ++%25li: -0x8000000000BC614E:1:20:-9223372036854775808: ++%*25li: -0x8000000000BC614E:0:20: ++%25li: -01000000000000057060516:1:25:-9223372036854775808: ++%*25li: -01000000000000057060516:0:25: ++%25li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25li: -9223372036854775809:1:21:-9223372036854775808: ++%*25li: -9223372036854775809:0:21: ++%25li: -0X8000000000000001:1:20:-9223372036854775808: ++%*25li: -0X8000000000000001:0:20: ++%25li: -0x8000000000000001:1:20:-9223372036854775808: ++%*25li: -0x8000000000000001:0:20: ++%25li: -01000000000000000000001:1:25:-9223372036854775808: ++%*25li: -01000000000000000000001:0:25: ++%25li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25li: -9223372036854775808:1:21:-9223372036854775808: ++%*25li: -9223372036854775808:0:21: ++%25li: -0X8000000000000000:1:20:-9223372036854775808: ++%*25li: -0X8000000000000000:0:20: ++%25li: -0x8000000000000000:1:20:-9223372036854775808: ++%*25li: -0x8000000000000000:0:20: ++%25li: -01000000000000000000000:1:25:-9223372036854775808: ++%*25li: -01000000000000000000000:0:25: ++%25li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: -123:1:5:-123: ++%*25li: -123:0:5: ++%25li: -0X7b:1:6:-123: ++%*25li: -0X7b:0:6: ++%25li: -0x7B:1:6:-123: ++%*25li: -0x7B:0:6: ++%25li: -0173:1:6:-123: ++%*25li: -0173:0:6: ++%25li: -0B1111011:1:11:-123: ++%*25li: -0B1111011:0:11: ++%25li: -0b1111011:1:11:-123: ++%*25li: -0b1111011:0:11: ++%25li: -1:1:3:-1: ++%*25li: -1:0:3: ++%25li: -0X1:1:5:-1: ++%*25li: -0X1:0:5: ++%25li: -0x1:1:5:-1: ++%*25li: -0x1:0:5: ++%25li: -01:1:4:-1: ++%*25li: -01:0:4: ++%25li: -0B1:1:5:-1: ++%*25li: -0B1:0:5: ++%25li: -0b1:1:5:-1: ++%*25li: -0b1:0:5: ++%25li: -0:1:3:0: ++%*25li: -0:0:3: ++%25li: -0X0:1:5:0: ++%*25li: -0X0:0:5: ++%25li: -0x0:1:5:0: ++%*25li: -0x0:0:5: ++%25li: -00:1:4:0: ++%*25li: -00:0:4: ++%25li: -0B0:1:5:0: ++%*25li: -0B0:0:5: ++%25li: -0b0:1:5:0: ++%*25li: -0b0:0:5: ++%25li: 0:1:2:0: ++%*25li: 0:0:2: ++%25li: 0X0:1:4:0: ++%*25li: 0X0:0:4: ++%25li: 0x0:1:4:0: ++%*25li: 0x0:0:4: ++%25li: 00:1:3:0: ++%*25li: 00:0:3: ++%25li: 0B0:1:4:0: ++%*25li: 0B0:0:4: ++%25li: 0b0:1:4:0: ++%*25li: 0b0:0:4: ++%25li: 1:1:2:1: ++%*25li: 1:0:2: ++%25li: 0X1:1:4:1: ++%*25li: 0X1:0:4: ++%25li: 0x1:1:4:1: ++%*25li: 0x1:0:4: ++%25li: 01:1:3:1: ++%*25li: 01:0:3: ++%25li: 0B1:1:4:1: ++%*25li: 0B1:0:4: ++%25li: 0b1:1:4:1: ++%*25li: 0b1:0:4: ++%25li: 42:1:3:42: ++%*25li: 42:0:3: ++%25li: 0X2a:1:5:42: ++%*25li: 0X2a:0:5: ++%25li: 0x2A:1:5:42: ++%*25li: 0x2A:0:5: ++%25li: 052:1:4:42: ++%*25li: 052:0:4: ++%25li: 0B101010:1:9:42: ++%*25li: 0B101010:0:9: ++%25li: 0b101010:1:9:42: ++%*25li: 0b101010:0:9: ++%25li: 9223372036854775807:1:20:9223372036854775807: ++%*25li: 9223372036854775807:0:20: ++%25li: 0X7fffffffffffffff:1:19:9223372036854775807: ++%*25li: 0X7fffffffffffffff:0:19: ++%25li: 0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25li: 0x7FFFFFFFFFFFFFFF:0:19: ++%25li: 0777777777777777777777:1:23:9223372036854775807: ++%*25li: 0777777777777777777777:0:23: ++%25li: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25li: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25li: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: 9223372036854775808:1:20:9223372036854775807: ++%*25li: 9223372036854775808:0:20: ++%25li: 0X8000000000000000:1:19:9223372036854775807: ++%*25li: 0X8000000000000000:0:19: ++%25li: 0x8000000000000000:1:19:9223372036854775807: ++%*25li: 0x8000000000000000:0:19: ++%25li: 01000000000000000000000:1:24:9223372036854775807: ++%*25li: 01000000000000000000000:0:24: ++%25li: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: 9223372036897200049:1:20:9223372036854775807: ++%*25li: 9223372036897200049:0:20: ++%25li: 0X80000000028757b1:1:19:9223372036854775807: ++%*25li: 0X80000000028757b1:0:19: ++%25li: 0x80000000028757B1:1:19:9223372036854775807: ++%*25li: 0x80000000028757B1:0:19: ++%25li: 01000000000000241653661:1:24:9223372036854775807: ++%*25li: 01000000000000241653661:0:24: ++%25li: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: +0:1:3:0: ++%*25li: +0:0:3: ++%25li: +0X0:1:5:0: ++%*25li: +0X0:0:5: ++%25li: +0x0:1:5:0: ++%*25li: +0x0:0:5: ++%25li: +00:1:4:0: ++%*25li: +00:0:4: ++%25li: +0B0:1:5:0: ++%*25li: +0B0:0:5: ++%25li: +0b0:1:5:0: ++%*25li: +0b0:0:5: ++%25li: +1:1:3:1: ++%*25li: +1:0:3: ++%25li: +0X1:1:5:1: ++%*25li: +0X1:0:5: ++%25li: +0x1:1:5:1: ++%*25li: +0x1:0:5: ++%25li: +01:1:4:1: ++%*25li: +01:0:4: ++%25li: +0B1:1:5:1: ++%*25li: +0B1:0:5: ++%25li: +0b1:1:5:1: ++%*25li: +0b1:0:5: ++%25li: +42:1:4:42: ++%*25li: +42:0:4: ++%25li: +0X2a:1:6:42: ++%*25li: +0X2a:0:6: ++%25li: +0x2A:1:6:42: ++%*25li: +0x2A:0:6: ++%25li: +052:1:5:42: ++%*25li: +052:0:5: ++%25li: +0B101010:1:10:42: ++%*25li: +0B101010:0:10: ++%25li: +0b101010:1:10:42: ++%*25li: +0b101010:0:10: ++%25li: +9223372036854775807:1:21:9223372036854775807: ++%*25li: +9223372036854775807:0:21: ++%25li: +0X7fffffffffffffff:1:20:9223372036854775807: ++%*25li: +0X7fffffffffffffff:0:20: ++%25li: +0x7FFFFFFFFFFFFFFF:1:20:9223372036854775807: ++%*25li: +0x7FFFFFFFFFFFFFFF:0:20: ++%25li: +0777777777777777777777:1:24:9223372036854775807: ++%*25li: +0777777777777777777777:0:24: ++%25li: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25li: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25li: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: +9223372036854775808:1:21:9223372036854775807: ++%*25li: +9223372036854775808:0:21: ++%25li: +0X8000000000000000:1:20:9223372036854775807: ++%*25li: +0X8000000000000000:0:20: ++%25li: +0x8000000000000000:1:20:9223372036854775807: ++%*25li: +0x8000000000000000:0:20: ++%25li: +01000000000000000000000:1:25:9223372036854775807: ++%*25li: +01000000000000000000000:0:25: ++%25li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: +9223372036897200049:1:21:9223372036854775807: ++%*25li: +9223372036897200049:0:21: ++%25li: +0X80000000028757b1:1:20:9223372036854775807: ++%*25li: +0X80000000028757b1:0:20: ++%25li: +0x80000000028757B1:1:20:9223372036854775807: ++%*25li: +0x80000000028757B1:0:20: ++%25li: +01000000000000241653661:1:25:9223372036854775807: ++%*25li: +01000000000000241653661:0:25: ++%25li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +new file mode 100644 +index 0000000000000000..7915af7adcaa4d9f +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +@@ -0,0 +1,644 @@ ++%b::0:-1: ++%*b::0:-1: ++%b:-1111011:1:8:4294967173: ++%*b:-1111011:0:8: ++%b:-0B1111011:1:10:4294967173: ++%*b:-0B1111011:0:10: ++%b:-0b1111011:1:10:4294967173: ++%*b:-0b1111011:0:10: ++%b:-1:1:2:4294967295: ++%*b:-1:0:2: ++%b:-0B1:1:4:4294967295: ++%*b:-0B1:0:4: ++%b:-0b1:1:4:4294967295: ++%*b:-0b1:0:4: ++%b:-0:1:2:0: ++%*b:-0:0:2: ++%b:-0B0:1:4:0: ++%*b:-0B0:0:4: ++%b:-0b0:1:4:0: ++%*b:-0b0:0:4: ++%b:0:1:1:0: ++%*b:0:0:1: ++%b:0B0:1:3:0: ++%*b:0B0:0:3: ++%b:0b0:1:3:0: ++%*b:0b0:0:3: ++%b:1:1:1:1: ++%*b:1:0:1: ++%b:0B1:1:3:1: ++%*b:0B1:0:3: ++%b:0b1:1:3:1: ++%*b:0b1:0:3: ++%b:101010:1:6:42: ++%*b:101010:0:6: ++%b:0B101010:1:8:42: ++%*b:0B101010:0:8: ++%b:0b101010:1:8:42: ++%*b:0b101010:0:8: ++%b:11111111111111111111111111111111:1:32:4294967295: ++%*b:11111111111111111111111111111111:0:32: ++%b:0B11111111111111111111111111111111:1:34:4294967295: ++%*b:0B11111111111111111111111111111111:0:34: ++%b:0b11111111111111111111111111111111:1:34:4294967295: ++%*b:0b11111111111111111111111111111111:0:34: ++%b:100000000000000000000000000000000:1:33:0: ++%*b:100000000000000000000000000000000:0:33: ++%b:0B100000000000000000000000000000000:1:35:0: ++%*b:0B100000000000000000000000000000000:0:35: ++%b:0b100000000000000000000000000000000:1:35:0: ++%*b:0b100000000000000000000000000000000:0:35: ++%b:100000000000000000001000010010001:1:33:4241: ++%*b:100000000000000000001000010010001:0:33: ++%b:0B100000000000000000001000010010001:1:35:4241: ++%*b:0B100000000000000000001000010010001:0:35: ++%b:0b100000000000000000001000010010001:1:35:4241: ++%*b:0b100000000000000000001000010010001:0:35: ++%b:+0:1:2:0: ++%*b:+0:0:2: ++%b:+0B0:1:4:0: ++%*b:+0B0:0:4: ++%b:+0b0:1:4:0: ++%*b:+0b0:0:4: ++%b:+1:1:2:1: ++%*b:+1:0:2: ++%b:+0B1:1:4:1: ++%*b:+0B1:0:4: ++%b:+0b1:1:4:1: ++%*b:+0b1:0:4: ++%b:+101010:1:7:42: ++%*b:+101010:0:7: ++%b:+0B101010:1:9:42: ++%*b:+0B101010:0:9: ++%b:+0b101010:1:9:42: ++%*b:+0b101010:0:9: ++%b:+11111111111111111111111111111111:1:33:4294967295: ++%*b:+11111111111111111111111111111111:0:33: ++%b:+0B11111111111111111111111111111111:1:35:4294967295: ++%*b:+0B11111111111111111111111111111111:0:35: ++%b:+0b11111111111111111111111111111111:1:35:4294967295: ++%*b:+0b11111111111111111111111111111111:0:35: ++%b:+100000000000000000000000000000000:1:34:0: ++%*b:+100000000000000000000000000000000:0:34: ++%b:+0B100000000000000000000000000000000:1:36:0: ++%*b:+0B100000000000000000000000000000000:0:36: ++%b:+0b100000000000000000000000000000000:1:36:0: ++%*b:+0b100000000000000000000000000000000:0:36: ++%b:+100000000000000000001000010010001:1:34:4241: ++%*b:+100000000000000000001000010010001:0:34: ++%b:+0B100000000000000000001000010010001:1:36:4241: ++%*b:+0B100000000000000000001000010010001:0:36: ++%b:+0b100000000000000000001000010010001:1:36:4241: ++%*b:+0b100000000000000000001000010010001:0:36: ++%1b::0:-1: ++%*1b::0:-1: ++%1b:-1111011:0:-1: ++%*1b:-1111011:0:-1: ++%1b:-0B1111011:0:-1: ++%*1b:-0B1111011:0:-1: ++%1b:-0b1111011:0:-1: ++%*1b:-0b1111011:0:-1: ++%1b:-1:0:-1: ++%*1b:-1:0:-1: ++%1b:-0B1:0:-1: ++%*1b:-0B1:0:-1: ++%1b:-0b1:0:-1: ++%*1b:-0b1:0:-1: ++%1b:-0:0:-1: ++%*1b:-0:0:-1: ++%1b:-0B0:0:-1: ++%*1b:-0B0:0:-1: ++%1b:-0b0:0:-1: ++%*1b:-0b0:0:-1: ++%1b:0:1:1:0: ++%*1b:0:0:1: ++%1b:0B0:1:1:0: ++%*1b:0B0:0:1: ++%1b:0b0:1:1:0: ++%*1b:0b0:0:1: ++%1b:1:1:1:1: ++%*1b:1:0:1: ++%1b:0B1:1:1:0: ++%*1b:0B1:0:1: ++%1b:0b1:1:1:0: ++%*1b:0b1:0:1: ++%1b:101010:1:1:1: ++%*1b:101010:0:1: ++%1b:0B101010:1:1:0: ++%*1b:0B101010:0:1: ++%1b:0b101010:1:1:0: ++%*1b:0b101010:0:1: ++%1b:11111111111111111111111111111111:1:1:1: ++%*1b:11111111111111111111111111111111:0:1: ++%1b:0B11111111111111111111111111111111:1:1:0: ++%*1b:0B11111111111111111111111111111111:0:1: ++%1b:0b11111111111111111111111111111111:1:1:0: ++%*1b:0b11111111111111111111111111111111:0:1: ++%1b:100000000000000000000000000000000:1:1:1: ++%*1b:100000000000000000000000000000000:0:1: ++%1b:0B100000000000000000000000000000000:1:1:0: ++%*1b:0B100000000000000000000000000000000:0:1: ++%1b:0b100000000000000000000000000000000:1:1:0: ++%*1b:0b100000000000000000000000000000000:0:1: ++%1b:100000000000000000001000010010001:1:1:1: ++%*1b:100000000000000000001000010010001:0:1: ++%1b:0B100000000000000000001000010010001:1:1:0: ++%*1b:0B100000000000000000001000010010001:0:1: ++%1b:0b100000000000000000001000010010001:1:1:0: ++%*1b:0b100000000000000000001000010010001:0:1: ++%1b:+0:0:-1: ++%*1b:+0:0:-1: ++%1b:+0B0:0:-1: ++%*1b:+0B0:0:-1: ++%1b:+0b0:0:-1: ++%*1b:+0b0:0:-1: ++%1b:+1:0:-1: ++%*1b:+1:0:-1: ++%1b:+0B1:0:-1: ++%*1b:+0B1:0:-1: ++%1b:+0b1:0:-1: ++%*1b:+0b1:0:-1: ++%1b:+101010:0:-1: ++%*1b:+101010:0:-1: ++%1b:+0B101010:0:-1: ++%*1b:+0B101010:0:-1: ++%1b:+0b101010:0:-1: ++%*1b:+0b101010:0:-1: ++%1b:+11111111111111111111111111111111:0:-1: ++%*1b:+11111111111111111111111111111111:0:-1: ++%1b:+0B11111111111111111111111111111111:0:-1: ++%*1b:+0B11111111111111111111111111111111:0:-1: ++%1b:+0b11111111111111111111111111111111:0:-1: ++%*1b:+0b11111111111111111111111111111111:0:-1: ++%1b:+100000000000000000000000000000000:0:-1: ++%*1b:+100000000000000000000000000000000:0:-1: ++%1b:+0B100000000000000000000000000000000:0:-1: ++%*1b:+0B100000000000000000000000000000000:0:-1: ++%1b:+0b100000000000000000000000000000000:0:-1: ++%*1b:+0b100000000000000000000000000000000:0:-1: ++%1b:+100000000000000000001000010010001:0:-1: ++%*1b:+100000000000000000001000010010001:0:-1: ++%1b:+0B100000000000000000001000010010001:0:-1: ++%*1b:+0B100000000000000000001000010010001:0:-1: ++%1b:+0b100000000000000000001000010010001:0:-1: ++%*1b:+0b100000000000000000001000010010001:0:-1: ++%2b::0:-1: ++%*2b::0:-1: ++%2b:-1111011:1:2:4294967295: ++%*2b:-1111011:0:2: ++%2b:-0B1111011:1:2:0: ++%*2b:-0B1111011:0:2: ++%2b:-0b1111011:1:2:0: ++%*2b:-0b1111011:0:2: ++%2b:-1:1:2:4294967295: ++%*2b:-1:0:2: ++%2b:-0B1:1:2:0: ++%*2b:-0B1:0:2: ++%2b:-0b1:1:2:0: ++%*2b:-0b1:0:2: ++%2b:-0:1:2:0: ++%*2b:-0:0:2: ++%2b:-0B0:1:2:0: ++%*2b:-0B0:0:2: ++%2b:-0b0:1:2:0: ++%*2b:-0b0:0:2: ++%2b:0:1:1:0: ++%*2b:0:0:1: ++# BZ12701 %2b:0B0:0:-1: ++# BZ12701 %*2b:0B0:0:-1: ++# BZ12701 %2b:0b0:0:-1: ++# BZ12701 %*2b:0b0:0:-1: ++%2b:1:1:1:1: ++%*2b:1:0:1: ++# BZ12701 %2b:0B1:0:-1: ++# BZ12701 %*2b:0B1:0:-1: ++# BZ12701 %2b:0b1:0:-1: ++# BZ12701 %*2b:0b1:0:-1: ++%2b:101010:1:2:2: ++%*2b:101010:0:2: ++# BZ12701 %2b:0B101010:0:-1: ++# BZ12701 %*2b:0B101010:0:-1: ++# BZ12701 %2b:0b101010:0:-1: ++# BZ12701 %*2b:0b101010:0:-1: ++%2b:11111111111111111111111111111111:1:2:3: ++%*2b:11111111111111111111111111111111:0:2: ++# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: ++%2b:100000000000000000000000000000000:1:2:2: ++%*2b:100000000000000000000000000000000:0:2: ++# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: ++%2b:100000000000000000001000010010001:1:2:2: ++%*2b:100000000000000000001000010010001:0:2: ++# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: ++%2b:+0:1:2:0: ++%*2b:+0:0:2: ++%2b:+0B0:1:2:0: ++%*2b:+0B0:0:2: ++%2b:+0b0:1:2:0: ++%*2b:+0b0:0:2: ++%2b:+1:1:2:1: ++%*2b:+1:0:2: ++%2b:+0B1:1:2:0: ++%*2b:+0B1:0:2: ++%2b:+0b1:1:2:0: ++%*2b:+0b1:0:2: ++%2b:+101010:1:2:1: ++%*2b:+101010:0:2: ++%2b:+0B101010:1:2:0: ++%*2b:+0B101010:0:2: ++%2b:+0b101010:1:2:0: ++%*2b:+0b101010:0:2: ++%2b:+11111111111111111111111111111111:1:2:1: ++%*2b:+11111111111111111111111111111111:0:2: ++%2b:+0B11111111111111111111111111111111:1:2:0: ++%*2b:+0B11111111111111111111111111111111:0:2: ++%2b:+0b11111111111111111111111111111111:1:2:0: ++%*2b:+0b11111111111111111111111111111111:0:2: ++%2b:+100000000000000000000000000000000:1:2:1: ++%*2b:+100000000000000000000000000000000:0:2: ++%2b:+0B100000000000000000000000000000000:1:2:0: ++%*2b:+0B100000000000000000000000000000000:0:2: ++%2b:+0b100000000000000000000000000000000:1:2:0: ++%*2b:+0b100000000000000000000000000000000:0:2: ++%2b:+100000000000000000001000010010001:1:2:1: ++%*2b:+100000000000000000001000010010001:0:2: ++%2b:+0B100000000000000000001000010010001:1:2:0: ++%*2b:+0B100000000000000000001000010010001:0:2: ++%2b:+0b100000000000000000001000010010001:1:2:0: ++%*2b:+0b100000000000000000001000010010001:0:2: ++%8b::0:-1: ++%*8b::0:-1: ++%8b:-1111011:1:8:4294967173: ++%*8b:-1111011:0:8: ++%8b:-0B1111011:1:8:4294967266: ++%*8b:-0B1111011:0:8: ++%8b:-0b1111011:1:8:4294967266: ++%*8b:-0b1111011:0:8: ++%8b:-1:1:2:4294967295: ++%*8b:-1:0:2: ++%8b:-0B1:1:4:4294967295: ++%*8b:-0B1:0:4: ++%8b:-0b1:1:4:4294967295: ++%*8b:-0b1:0:4: ++%8b:-0:1:2:0: ++%*8b:-0:0:2: ++%8b:-0B0:1:4:0: ++%*8b:-0B0:0:4: ++%8b:-0b0:1:4:0: ++%*8b:-0b0:0:4: ++%8b:0:1:1:0: ++%*8b:0:0:1: ++%8b:0B0:1:3:0: ++%*8b:0B0:0:3: ++%8b:0b0:1:3:0: ++%*8b:0b0:0:3: ++%8b:1:1:1:1: ++%*8b:1:0:1: ++%8b:0B1:1:3:1: ++%*8b:0B1:0:3: ++%8b:0b1:1:3:1: ++%*8b:0b1:0:3: ++%8b:101010:1:6:42: ++%*8b:101010:0:6: ++%8b:0B101010:1:8:42: ++%*8b:0B101010:0:8: ++%8b:0b101010:1:8:42: ++%*8b:0b101010:0:8: ++%8b:11111111111111111111111111111111:1:8:255: ++%*8b:11111111111111111111111111111111:0:8: ++%8b:0B11111111111111111111111111111111:1:8:63: ++%*8b:0B11111111111111111111111111111111:0:8: ++%8b:0b11111111111111111111111111111111:1:8:63: ++%*8b:0b11111111111111111111111111111111:0:8: ++%8b:100000000000000000000000000000000:1:8:128: ++%*8b:100000000000000000000000000000000:0:8: ++%8b:0B100000000000000000000000000000000:1:8:32: ++%*8b:0B100000000000000000000000000000000:0:8: ++%8b:0b100000000000000000000000000000000:1:8:32: ++%*8b:0b100000000000000000000000000000000:0:8: ++%8b:100000000000000000001000010010001:1:8:128: ++%*8b:100000000000000000001000010010001:0:8: ++%8b:0B100000000000000000001000010010001:1:8:32: ++%*8b:0B100000000000000000001000010010001:0:8: ++%8b:0b100000000000000000001000010010001:1:8:32: ++%*8b:0b100000000000000000001000010010001:0:8: ++%8b:+0:1:2:0: ++%*8b:+0:0:2: ++%8b:+0B0:1:4:0: ++%*8b:+0B0:0:4: ++%8b:+0b0:1:4:0: ++%*8b:+0b0:0:4: ++%8b:+1:1:2:1: ++%*8b:+1:0:2: ++%8b:+0B1:1:4:1: ++%*8b:+0B1:0:4: ++%8b:+0b1:1:4:1: ++%*8b:+0b1:0:4: ++%8b:+101010:1:7:42: ++%*8b:+101010:0:7: ++%8b:+0B101010:1:8:21: ++%*8b:+0B101010:0:8: ++%8b:+0b101010:1:8:21: ++%*8b:+0b101010:0:8: ++%8b:+11111111111111111111111111111111:1:8:127: ++%*8b:+11111111111111111111111111111111:0:8: ++%8b:+0B11111111111111111111111111111111:1:8:31: ++%*8b:+0B11111111111111111111111111111111:0:8: ++%8b:+0b11111111111111111111111111111111:1:8:31: ++%*8b:+0b11111111111111111111111111111111:0:8: ++%8b:+100000000000000000000000000000000:1:8:64: ++%*8b:+100000000000000000000000000000000:0:8: ++%8b:+0B100000000000000000000000000000000:1:8:16: ++%*8b:+0B100000000000000000000000000000000:0:8: ++%8b:+0b100000000000000000000000000000000:1:8:16: ++%*8b:+0b100000000000000000000000000000000:0:8: ++%8b:+100000000000000000001000010010001:1:8:64: ++%*8b:+100000000000000000001000010010001:0:8: ++%8b:+0B100000000000000000001000010010001:1:8:16: ++%*8b:+0B100000000000000000001000010010001:0:8: ++%8b:+0b100000000000000000001000010010001:1:8:16: ++%*8b:+0b100000000000000000001000010010001:0:8: ++%15b::0:-1: ++%*15b::0:-1: ++%15b:-1111011:1:8:4294967173: ++%*15b:-1111011:0:8: ++%15b:-0B1111011:1:10:4294967173: ++%*15b:-0B1111011:0:10: ++%15b:-0b1111011:1:10:4294967173: ++%*15b:-0b1111011:0:10: ++%15b:-1:1:2:4294967295: ++%*15b:-1:0:2: ++%15b:-0B1:1:4:4294967295: ++%*15b:-0B1:0:4: ++%15b:-0b1:1:4:4294967295: ++%*15b:-0b1:0:4: ++%15b:-0:1:2:0: ++%*15b:-0:0:2: ++%15b:-0B0:1:4:0: ++%*15b:-0B0:0:4: ++%15b:-0b0:1:4:0: ++%*15b:-0b0:0:4: ++%15b:0:1:1:0: ++%*15b:0:0:1: ++%15b:0B0:1:3:0: ++%*15b:0B0:0:3: ++%15b:0b0:1:3:0: ++%*15b:0b0:0:3: ++%15b:1:1:1:1: ++%*15b:1:0:1: ++%15b:0B1:1:3:1: ++%*15b:0B1:0:3: ++%15b:0b1:1:3:1: ++%*15b:0b1:0:3: ++%15b:101010:1:6:42: ++%*15b:101010:0:6: ++%15b:0B101010:1:8:42: ++%*15b:0B101010:0:8: ++%15b:0b101010:1:8:42: ++%*15b:0b101010:0:8: ++%15b:11111111111111111111111111111111:1:15:32767: ++%*15b:11111111111111111111111111111111:0:15: ++%15b:0B11111111111111111111111111111111:1:15:8191: ++%*15b:0B11111111111111111111111111111111:0:15: ++%15b:0b11111111111111111111111111111111:1:15:8191: ++%*15b:0b11111111111111111111111111111111:0:15: ++%15b:100000000000000000000000000000000:1:15:16384: ++%*15b:100000000000000000000000000000000:0:15: ++%15b:0B100000000000000000000000000000000:1:15:4096: ++%*15b:0B100000000000000000000000000000000:0:15: ++%15b:0b100000000000000000000000000000000:1:15:4096: ++%*15b:0b100000000000000000000000000000000:0:15: ++%15b:100000000000000000001000010010001:1:15:16384: ++%*15b:100000000000000000001000010010001:0:15: ++%15b:0B100000000000000000001000010010001:1:15:4096: ++%*15b:0B100000000000000000001000010010001:0:15: ++%15b:0b100000000000000000001000010010001:1:15:4096: ++%*15b:0b100000000000000000001000010010001:0:15: ++%15b:+0:1:2:0: ++%*15b:+0:0:2: ++%15b:+0B0:1:4:0: ++%*15b:+0B0:0:4: ++%15b:+0b0:1:4:0: ++%*15b:+0b0:0:4: ++%15b:+1:1:2:1: ++%*15b:+1:0:2: ++%15b:+0B1:1:4:1: ++%*15b:+0B1:0:4: ++%15b:+0b1:1:4:1: ++%*15b:+0b1:0:4: ++%15b:+101010:1:7:42: ++%*15b:+101010:0:7: ++%15b:+0B101010:1:9:42: ++%*15b:+0B101010:0:9: ++%15b:+0b101010:1:9:42: ++%*15b:+0b101010:0:9: ++%15b:+11111111111111111111111111111111:1:15:16383: ++%*15b:+11111111111111111111111111111111:0:15: ++%15b:+0B11111111111111111111111111111111:1:15:4095: ++%*15b:+0B11111111111111111111111111111111:0:15: ++%15b:+0b11111111111111111111111111111111:1:15:4095: ++%*15b:+0b11111111111111111111111111111111:0:15: ++%15b:+100000000000000000000000000000000:1:15:8192: ++%*15b:+100000000000000000000000000000000:0:15: ++%15b:+0B100000000000000000000000000000000:1:15:2048: ++%*15b:+0B100000000000000000000000000000000:0:15: ++%15b:+0b100000000000000000000000000000000:1:15:2048: ++%*15b:+0b100000000000000000000000000000000:0:15: ++%15b:+100000000000000000001000010010001:1:15:8192: ++%*15b:+100000000000000000001000010010001:0:15: ++%15b:+0B100000000000000000001000010010001:1:15:2048: ++%*15b:+0B100000000000000000001000010010001:0:15: ++%15b:+0b100000000000000000001000010010001:1:15:2048: ++%*15b:+0b100000000000000000001000010010001:0:15: ++%2b: :0:-1: ++%*2b: :0:-1: ++%2b: -1111011:1:3:4294967295: ++%*2b: -1111011:0:3: ++%2b: -0B1111011:1:3:0: ++%*2b: -0B1111011:0:3: ++%2b: -0b1111011:1:3:0: ++%*2b: -0b1111011:0:3: ++%2b: -1:1:3:4294967295: ++%*2b: -1:0:3: ++%2b: -0B1:1:3:0: ++%*2b: -0B1:0:3: ++%2b: -0b1:1:3:0: ++%*2b: -0b1:0:3: ++%2b: -0:1:3:0: ++%*2b: -0:0:3: ++%2b: -0B0:1:3:0: ++%*2b: -0B0:0:3: ++%2b: -0b0:1:3:0: ++%*2b: -0b0:0:3: ++%2b: 0:1:2:0: ++%*2b: 0:0:2: ++# BZ12701 %2b: 0B0:0:-1: ++# BZ12701 %*2b: 0B0:0:-1: ++# BZ12701 %2b: 0b0:0:-1: ++# BZ12701 %*2b: 0b0:0:-1: ++%2b: 1:1:2:1: ++%*2b: 1:0:2: ++# BZ12701 %2b: 0B1:0:-1: ++# BZ12701 %*2b: 0B1:0:-1: ++# BZ12701 %2b: 0b1:0:-1: ++# BZ12701 %*2b: 0b1:0:-1: ++%2b: 101010:1:3:2: ++%*2b: 101010:0:3: ++# BZ12701 %2b: 0B101010:0:-1: ++# BZ12701 %*2b: 0B101010:0:-1: ++# BZ12701 %2b: 0b101010:0:-1: ++# BZ12701 %*2b: 0b101010:0:-1: ++%2b: 11111111111111111111111111111111:1:3:3: ++%*2b: 11111111111111111111111111111111:0:3: ++# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: ++%2b: 100000000000000000000000000000000:1:3:2: ++%*2b: 100000000000000000000000000000000:0:3: ++# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: ++%2b: 100000000000000000001000010010001:1:3:2: ++%*2b: 100000000000000000001000010010001:0:3: ++# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: ++%2b: +0:1:3:0: ++%*2b: +0:0:3: ++%2b: +0B0:1:3:0: ++%*2b: +0B0:0:3: ++%2b: +0b0:1:3:0: ++%*2b: +0b0:0:3: ++%2b: +1:1:3:1: ++%*2b: +1:0:3: ++%2b: +0B1:1:3:0: ++%*2b: +0B1:0:3: ++%2b: +0b1:1:3:0: ++%*2b: +0b1:0:3: ++%2b: +101010:1:3:1: ++%*2b: +101010:0:3: ++%2b: +0B101010:1:3:0: ++%*2b: +0B101010:0:3: ++%2b: +0b101010:1:3:0: ++%*2b: +0b101010:0:3: ++%2b: +11111111111111111111111111111111:1:3:1: ++%*2b: +11111111111111111111111111111111:0:3: ++%2b: +0B11111111111111111111111111111111:1:3:0: ++%*2b: +0B11111111111111111111111111111111:0:3: ++%2b: +0b11111111111111111111111111111111:1:3:0: ++%*2b: +0b11111111111111111111111111111111:0:3: ++%2b: +100000000000000000000000000000000:1:3:1: ++%*2b: +100000000000000000000000000000000:0:3: ++%2b: +0B100000000000000000000000000000000:1:3:0: ++%*2b: +0B100000000000000000000000000000000:0:3: ++%2b: +0b100000000000000000000000000000000:1:3:0: ++%*2b: +0b100000000000000000000000000000000:0:3: ++%2b: +100000000000000000001000010010001:1:3:1: ++%*2b: +100000000000000000001000010010001:0:3: ++%2b: +0B100000000000000000001000010010001:1:3:0: ++%*2b: +0B100000000000000000001000010010001:0:3: ++%2b: +0b100000000000000000001000010010001:1:3:0: ++%*2b: +0b100000000000000000001000010010001:0:3: ++%15b: :0:-1: ++%*15b: :0:-1: ++%15b: -1111011:1:9:4294967173: ++%*15b: -1111011:0:9: ++%15b: -0B1111011:1:11:4294967173: ++%*15b: -0B1111011:0:11: ++%15b: -0b1111011:1:11:4294967173: ++%*15b: -0b1111011:0:11: ++%15b: -1:1:3:4294967295: ++%*15b: -1:0:3: ++%15b: -0B1:1:5:4294967295: ++%*15b: -0B1:0:5: ++%15b: -0b1:1:5:4294967295: ++%*15b: -0b1:0:5: ++%15b: -0:1:3:0: ++%*15b: -0:0:3: ++%15b: -0B0:1:5:0: ++%*15b: -0B0:0:5: ++%15b: -0b0:1:5:0: ++%*15b: -0b0:0:5: ++%15b: 0:1:2:0: ++%*15b: 0:0:2: ++%15b: 0B0:1:4:0: ++%*15b: 0B0:0:4: ++%15b: 0b0:1:4:0: ++%*15b: 0b0:0:4: ++%15b: 1:1:2:1: ++%*15b: 1:0:2: ++%15b: 0B1:1:4:1: ++%*15b: 0B1:0:4: ++%15b: 0b1:1:4:1: ++%*15b: 0b1:0:4: ++%15b: 101010:1:7:42: ++%*15b: 101010:0:7: ++%15b: 0B101010:1:9:42: ++%*15b: 0B101010:0:9: ++%15b: 0b101010:1:9:42: ++%*15b: 0b101010:0:9: ++%15b: 11111111111111111111111111111111:1:16:32767: ++%*15b: 11111111111111111111111111111111:0:16: ++%15b: 0B11111111111111111111111111111111:1:16:8191: ++%*15b: 0B11111111111111111111111111111111:0:16: ++%15b: 0b11111111111111111111111111111111:1:16:8191: ++%*15b: 0b11111111111111111111111111111111:0:16: ++%15b: 100000000000000000000000000000000:1:16:16384: ++%*15b: 100000000000000000000000000000000:0:16: ++%15b: 0B100000000000000000000000000000000:1:16:4096: ++%*15b: 0B100000000000000000000000000000000:0:16: ++%15b: 0b100000000000000000000000000000000:1:16:4096: ++%*15b: 0b100000000000000000000000000000000:0:16: ++%15b: 100000000000000000001000010010001:1:16:16384: ++%*15b: 100000000000000000001000010010001:0:16: ++%15b: 0B100000000000000000001000010010001:1:16:4096: ++%*15b: 0B100000000000000000001000010010001:0:16: ++%15b: 0b100000000000000000001000010010001:1:16:4096: ++%*15b: 0b100000000000000000001000010010001:0:16: ++%15b: +0:1:3:0: ++%*15b: +0:0:3: ++%15b: +0B0:1:5:0: ++%*15b: +0B0:0:5: ++%15b: +0b0:1:5:0: ++%*15b: +0b0:0:5: ++%15b: +1:1:3:1: ++%*15b: +1:0:3: ++%15b: +0B1:1:5:1: ++%*15b: +0B1:0:5: ++%15b: +0b1:1:5:1: ++%*15b: +0b1:0:5: ++%15b: +101010:1:8:42: ++%*15b: +101010:0:8: ++%15b: +0B101010:1:10:42: ++%*15b: +0B101010:0:10: ++%15b: +0b101010:1:10:42: ++%*15b: +0b101010:0:10: ++%15b: +11111111111111111111111111111111:1:16:16383: ++%*15b: +11111111111111111111111111111111:0:16: ++%15b: +0B11111111111111111111111111111111:1:16:4095: ++%*15b: +0B11111111111111111111111111111111:0:16: ++%15b: +0b11111111111111111111111111111111:1:16:4095: ++%*15b: +0b11111111111111111111111111111111:0:16: ++%15b: +100000000000000000000000000000000:1:16:8192: ++%*15b: +100000000000000000000000000000000:0:16: ++%15b: +0B100000000000000000000000000000000:1:16:2048: ++%*15b: +0B100000000000000000000000000000000:0:16: ++%15b: +0b100000000000000000000000000000000:1:16:2048: ++%*15b: +0b100000000000000000000000000000000:0:16: ++%15b: +100000000000000000001000010010001:1:16:8192: ++%*15b: +100000000000000000001000010010001:0:16: ++%15b: +0B100000000000000000001000010010001:1:16:2048: ++%*15b: +0B100000000000000000001000010010001:0:16: ++%15b: +0b100000000000000000001000010010001:1:16:2048: ++%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-o.input b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input +new file mode 100644 +index 0000000000000000..75ae2837990098d2 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input +@@ -0,0 +1,434 @@ ++%o::0:-1: ++%*o::0:-1: ++%o:-173:1:4:4294967173: ++%*o:-173:0:4: ++%o:-0173:1:5:4294967173: ++%*o:-0173:0:5: ++%o:-1:1:2:4294967295: ++%*o:-1:0:2: ++%o:-01:1:3:4294967295: ++%*o:-01:0:3: ++%o:-0:1:2:0: ++%*o:-0:0:2: ++%o:-00:1:3:0: ++%*o:-00:0:3: ++%o:0:1:1:0: ++%*o:0:0:1: ++%o:00:1:2:0: ++%*o:00:0:2: ++%o:1:1:1:1: ++%*o:1:0:1: ++%o:01:1:2:1: ++%*o:01:0:2: ++%o:52:1:2:42: ++%*o:52:0:2: ++%o:052:1:3:42: ++%*o:052:0:3: ++%o:37777777777:1:11:4294967295: ++%*o:37777777777:0:11: ++%o:037777777777:1:12:4294967295: ++%*o:037777777777:0:12: ++%o:40000000000:1:11:0: ++%*o:40000000000:0:11: ++%o:040000000000:1:12:0: ++%*o:040000000000:0:12: ++%o:40000010221:1:11:4241: ++%*o:40000010221:0:11: ++%o:040000010221:1:12:4241: ++%*o:040000010221:0:12: ++%o:+0:1:2:0: ++%*o:+0:0:2: ++%o:+00:1:3:0: ++%*o:+00:0:3: ++%o:+1:1:2:1: ++%*o:+1:0:2: ++%o:+01:1:3:1: ++%*o:+01:0:3: ++%o:+52:1:3:42: ++%*o:+52:0:3: ++%o:+052:1:4:42: ++%*o:+052:0:4: ++%o:+37777777777:1:12:4294967295: ++%*o:+37777777777:0:12: ++%o:+037777777777:1:13:4294967295: ++%*o:+037777777777:0:13: ++%o:+40000000000:1:12:0: ++%*o:+40000000000:0:12: ++%o:+040000000000:1:13:0: ++%*o:+040000000000:0:13: ++%o:+40000010221:1:12:4241: ++%*o:+40000010221:0:12: ++%o:+040000010221:1:13:4241: ++%*o:+040000010221:0:13: ++%1o::0:-1: ++%*1o::0:-1: ++%1o:-173:0:-1: ++%*1o:-173:0:-1: ++%1o:-0173:0:-1: ++%*1o:-0173:0:-1: ++%1o:-1:0:-1: ++%*1o:-1:0:-1: ++%1o:-01:0:-1: ++%*1o:-01:0:-1: ++%1o:-0:0:-1: ++%*1o:-0:0:-1: ++%1o:-00:0:-1: ++%*1o:-00:0:-1: ++%1o:0:1:1:0: ++%*1o:0:0:1: ++%1o:00:1:1:0: ++%*1o:00:0:1: ++%1o:1:1:1:1: ++%*1o:1:0:1: ++%1o:01:1:1:0: ++%*1o:01:0:1: ++%1o:52:1:1:5: ++%*1o:52:0:1: ++%1o:052:1:1:0: ++%*1o:052:0:1: ++%1o:37777777777:1:1:3: ++%*1o:37777777777:0:1: ++%1o:037777777777:1:1:0: ++%*1o:037777777777:0:1: ++%1o:40000000000:1:1:4: ++%*1o:40000000000:0:1: ++%1o:040000000000:1:1:0: ++%*1o:040000000000:0:1: ++%1o:40000010221:1:1:4: ++%*1o:40000010221:0:1: ++%1o:040000010221:1:1:0: ++%*1o:040000010221:0:1: ++%1o:+0:0:-1: ++%*1o:+0:0:-1: ++%1o:+00:0:-1: ++%*1o:+00:0:-1: ++%1o:+1:0:-1: ++%*1o:+1:0:-1: ++%1o:+01:0:-1: ++%*1o:+01:0:-1: ++%1o:+52:0:-1: ++%*1o:+52:0:-1: ++%1o:+052:0:-1: ++%*1o:+052:0:-1: ++%1o:+37777777777:0:-1: ++%*1o:+37777777777:0:-1: ++%1o:+037777777777:0:-1: ++%*1o:+037777777777:0:-1: ++%1o:+40000000000:0:-1: ++%*1o:+40000000000:0:-1: ++%1o:+040000000000:0:-1: ++%*1o:+040000000000:0:-1: ++%1o:+40000010221:0:-1: ++%*1o:+40000010221:0:-1: ++%1o:+040000010221:0:-1: ++%*1o:+040000010221:0:-1: ++%2o::0:-1: ++%*2o::0:-1: ++%2o:-173:1:2:4294967295: ++%*2o:-173:0:2: ++%2o:-0173:1:2:0: ++%*2o:-0173:0:2: ++%2o:-1:1:2:4294967295: ++%*2o:-1:0:2: ++%2o:-01:1:2:0: ++%*2o:-01:0:2: ++%2o:-0:1:2:0: ++%*2o:-0:0:2: ++%2o:-00:1:2:0: ++%*2o:-00:0:2: ++%2o:0:1:1:0: ++%*2o:0:0:1: ++%2o:00:1:2:0: ++%*2o:00:0:2: ++%2o:1:1:1:1: ++%*2o:1:0:1: ++%2o:01:1:2:1: ++%*2o:01:0:2: ++%2o:52:1:2:42: ++%*2o:52:0:2: ++%2o:052:1:2:5: ++%*2o:052:0:2: ++%2o:37777777777:1:2:31: ++%*2o:37777777777:0:2: ++%2o:037777777777:1:2:3: ++%*2o:037777777777:0:2: ++%2o:40000000000:1:2:32: ++%*2o:40000000000:0:2: ++%2o:040000000000:1:2:4: ++%*2o:040000000000:0:2: ++%2o:40000010221:1:2:32: ++%*2o:40000010221:0:2: ++%2o:040000010221:1:2:4: ++%*2o:040000010221:0:2: ++%2o:+0:1:2:0: ++%*2o:+0:0:2: ++%2o:+00:1:2:0: ++%*2o:+00:0:2: ++%2o:+1:1:2:1: ++%*2o:+1:0:2: ++%2o:+01:1:2:0: ++%*2o:+01:0:2: ++%2o:+52:1:2:5: ++%*2o:+52:0:2: ++%2o:+052:1:2:0: ++%*2o:+052:0:2: ++%2o:+37777777777:1:2:3: ++%*2o:+37777777777:0:2: ++%2o:+037777777777:1:2:0: ++%*2o:+037777777777:0:2: ++%2o:+40000000000:1:2:4: ++%*2o:+40000000000:0:2: ++%2o:+040000000000:1:2:0: ++%*2o:+040000000000:0:2: ++%2o:+40000010221:1:2:4: ++%*2o:+40000010221:0:2: ++%2o:+040000010221:1:2:0: ++%*2o:+040000010221:0:2: ++%8o::0:-1: ++%*8o::0:-1: ++%8o:-173:1:4:4294967173: ++%*8o:-173:0:4: ++%8o:-0173:1:5:4294967173: ++%*8o:-0173:0:5: ++%8o:-1:1:2:4294967295: ++%*8o:-1:0:2: ++%8o:-01:1:3:4294967295: ++%*8o:-01:0:3: ++%8o:-0:1:2:0: ++%*8o:-0:0:2: ++%8o:-00:1:3:0: ++%*8o:-00:0:3: ++%8o:0:1:1:0: ++%*8o:0:0:1: ++%8o:00:1:2:0: ++%*8o:00:0:2: ++%8o:1:1:1:1: ++%*8o:1:0:1: ++%8o:01:1:2:1: ++%*8o:01:0:2: ++%8o:52:1:2:42: ++%*8o:52:0:2: ++%8o:052:1:3:42: ++%*8o:052:0:3: ++%8o:37777777777:1:8:8388607: ++%*8o:37777777777:0:8: ++%8o:037777777777:1:8:1048575: ++%*8o:037777777777:0:8: ++%8o:40000000000:1:8:8388608: ++%*8o:40000000000:0:8: ++%8o:040000000000:1:8:1048576: ++%*8o:040000000000:0:8: ++%8o:40000010221:1:8:8388616: ++%*8o:40000010221:0:8: ++%8o:040000010221:1:8:1048577: ++%*8o:040000010221:0:8: ++%8o:+0:1:2:0: ++%*8o:+0:0:2: ++%8o:+00:1:3:0: ++%*8o:+00:0:3: ++%8o:+1:1:2:1: ++%*8o:+1:0:2: ++%8o:+01:1:3:1: ++%*8o:+01:0:3: ++%8o:+52:1:3:42: ++%*8o:+52:0:3: ++%8o:+052:1:4:42: ++%*8o:+052:0:4: ++%8o:+37777777777:1:8:1048575: ++%*8o:+37777777777:0:8: ++%8o:+037777777777:1:8:131071: ++%*8o:+037777777777:0:8: ++%8o:+40000000000:1:8:1048576: ++%*8o:+40000000000:0:8: ++%8o:+040000000000:1:8:131072: ++%*8o:+040000000000:0:8: ++%8o:+40000010221:1:8:1048577: ++%*8o:+40000010221:0:8: ++%8o:+040000010221:1:8:131072: ++%*8o:+040000010221:0:8: ++%15o::0:-1: ++%*15o::0:-1: ++%15o:-173:1:4:4294967173: ++%*15o:-173:0:4: ++%15o:-0173:1:5:4294967173: ++%*15o:-0173:0:5: ++%15o:-1:1:2:4294967295: ++%*15o:-1:0:2: ++%15o:-01:1:3:4294967295: ++%*15o:-01:0:3: ++%15o:-0:1:2:0: ++%*15o:-0:0:2: ++%15o:-00:1:3:0: ++%*15o:-00:0:3: ++%15o:0:1:1:0: ++%*15o:0:0:1: ++%15o:00:1:2:0: ++%*15o:00:0:2: ++%15o:1:1:1:1: ++%*15o:1:0:1: ++%15o:01:1:2:1: ++%*15o:01:0:2: ++%15o:52:1:2:42: ++%*15o:52:0:2: ++%15o:052:1:3:42: ++%*15o:052:0:3: ++%15o:37777777777:1:11:4294967295: ++%*15o:37777777777:0:11: ++%15o:037777777777:1:12:4294967295: ++%*15o:037777777777:0:12: ++%15o:40000000000:1:11:0: ++%*15o:40000000000:0:11: ++%15o:040000000000:1:12:0: ++%*15o:040000000000:0:12: ++%15o:40000010221:1:11:4241: ++%*15o:40000010221:0:11: ++%15o:040000010221:1:12:4241: ++%*15o:040000010221:0:12: ++%15o:+0:1:2:0: ++%*15o:+0:0:2: ++%15o:+00:1:3:0: ++%*15o:+00:0:3: ++%15o:+1:1:2:1: ++%*15o:+1:0:2: ++%15o:+01:1:3:1: ++%*15o:+01:0:3: ++%15o:+52:1:3:42: ++%*15o:+52:0:3: ++%15o:+052:1:4:42: ++%*15o:+052:0:4: ++%15o:+37777777777:1:12:4294967295: ++%*15o:+37777777777:0:12: ++%15o:+037777777777:1:13:4294967295: ++%*15o:+037777777777:0:13: ++%15o:+40000000000:1:12:0: ++%*15o:+40000000000:0:12: ++%15o:+040000000000:1:13:0: ++%*15o:+040000000000:0:13: ++%15o:+40000010221:1:12:4241: ++%*15o:+40000010221:0:12: ++%15o:+040000010221:1:13:4241: ++%*15o:+040000010221:0:13: ++%2o: :0:-1: ++%*2o: :0:-1: ++%2o: -173:1:3:4294967295: ++%*2o: -173:0:3: ++%2o: -0173:1:3:0: ++%*2o: -0173:0:3: ++%2o: -1:1:3:4294967295: ++%*2o: -1:0:3: ++%2o: -01:1:3:0: ++%*2o: -01:0:3: ++%2o: -0:1:3:0: ++%*2o: -0:0:3: ++%2o: -00:1:3:0: ++%*2o: -00:0:3: ++%2o: 0:1:2:0: ++%*2o: 0:0:2: ++%2o: 00:1:3:0: ++%*2o: 00:0:3: ++%2o: 1:1:2:1: ++%*2o: 1:0:2: ++%2o: 01:1:3:1: ++%*2o: 01:0:3: ++%2o: 52:1:3:42: ++%*2o: 52:0:3: ++%2o: 052:1:3:5: ++%*2o: 052:0:3: ++%2o: 37777777777:1:3:31: ++%*2o: 37777777777:0:3: ++%2o: 037777777777:1:3:3: ++%*2o: 037777777777:0:3: ++%2o: 40000000000:1:3:32: ++%*2o: 40000000000:0:3: ++%2o: 040000000000:1:3:4: ++%*2o: 040000000000:0:3: ++%2o: 40000010221:1:3:32: ++%*2o: 40000010221:0:3: ++%2o: 040000010221:1:3:4: ++%*2o: 040000010221:0:3: ++%2o: +0:1:3:0: ++%*2o: +0:0:3: ++%2o: +00:1:3:0: ++%*2o: +00:0:3: ++%2o: +1:1:3:1: ++%*2o: +1:0:3: ++%2o: +01:1:3:0: ++%*2o: +01:0:3: ++%2o: +52:1:3:5: ++%*2o: +52:0:3: ++%2o: +052:1:3:0: ++%*2o: +052:0:3: ++%2o: +37777777777:1:3:3: ++%*2o: +37777777777:0:3: ++%2o: +037777777777:1:3:0: ++%*2o: +037777777777:0:3: ++%2o: +40000000000:1:3:4: ++%*2o: +40000000000:0:3: ++%2o: +040000000000:1:3:0: ++%*2o: +040000000000:0:3: ++%2o: +40000010221:1:3:4: ++%*2o: +40000010221:0:3: ++%2o: +040000010221:1:3:0: ++%*2o: +040000010221:0:3: ++%15o: :0:-1: ++%*15o: :0:-1: ++%15o: -173:1:5:4294967173: ++%*15o: -173:0:5: ++%15o: -0173:1:6:4294967173: ++%*15o: -0173:0:6: ++%15o: -1:1:3:4294967295: ++%*15o: -1:0:3: ++%15o: -01:1:4:4294967295: ++%*15o: -01:0:4: ++%15o: -0:1:3:0: ++%*15o: -0:0:3: ++%15o: -00:1:4:0: ++%*15o: -00:0:4: ++%15o: 0:1:2:0: ++%*15o: 0:0:2: ++%15o: 00:1:3:0: ++%*15o: 00:0:3: ++%15o: 1:1:2:1: ++%*15o: 1:0:2: ++%15o: 01:1:3:1: ++%*15o: 01:0:3: ++%15o: 52:1:3:42: ++%*15o: 52:0:3: ++%15o: 052:1:4:42: ++%*15o: 052:0:4: ++%15o: 37777777777:1:12:4294967295: ++%*15o: 37777777777:0:12: ++%15o: 037777777777:1:13:4294967295: ++%*15o: 037777777777:0:13: ++%15o: 40000000000:1:12:0: ++%*15o: 40000000000:0:12: ++%15o: 040000000000:1:13:0: ++%*15o: 040000000000:0:13: ++%15o: 40000010221:1:12:4241: ++%*15o: 40000010221:0:12: ++%15o: 040000010221:1:13:4241: ++%*15o: 040000010221:0:13: ++%15o: +0:1:3:0: ++%*15o: +0:0:3: ++%15o: +00:1:4:0: ++%*15o: +00:0:4: ++%15o: +1:1:3:1: ++%*15o: +1:0:3: ++%15o: +01:1:4:1: ++%*15o: +01:0:4: ++%15o: +52:1:4:42: ++%*15o: +52:0:4: ++%15o: +052:1:5:42: ++%*15o: +052:0:5: ++%15o: +37777777777:1:13:4294967295: ++%*15o: +37777777777:0:13: ++%15o: +037777777777:1:14:4294967295: ++%*15o: +037777777777:0:14: ++%15o: +40000000000:1:13:0: ++%*15o: +40000000000:0:13: ++%15o: +040000000000:1:14:0: ++%*15o: +040000000000:0:14: ++%15o: +40000010221:1:13:4241: ++%*15o: +40000010221:0:13: ++%15o: +040000010221:1:14:4241: ++%*15o: +040000010221:0:14: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-u.input b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input +new file mode 100644 +index 0000000000000000..944806fd81bf8da2 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input +@@ -0,0 +1,224 @@ ++%u::0:-1: ++%*u::0:-1: ++%u:-123:1:4:4294967173: ++%*u:-123:0:4: ++%u:-1:1:2:4294967295: ++%*u:-1:0:2: ++%u:-0:1:2:0: ++%*u:-0:0:2: ++%u:0:1:1:0: ++%*u:0:0:1: ++%u:1:1:1:1: ++%*u:1:0:1: ++%u:42:1:2:42: ++%*u:42:0:2: ++%u:4294967295:1:10:4294967295: ++%*u:4294967295:0:10: ++%u:4294967296:1:10:0: ++%*u:4294967296:0:10: ++%u:4294971537:1:10:4241: ++%*u:4294971537:0:10: ++%u:+0:1:2:0: ++%*u:+0:0:2: ++%u:+1:1:2:1: ++%*u:+1:0:2: ++%u:+42:1:3:42: ++%*u:+42:0:3: ++%u:+4294967295:1:11:4294967295: ++%*u:+4294967295:0:11: ++%u:+4294967296:1:11:0: ++%*u:+4294967296:0:11: ++%u:+4294971537:1:11:4241: ++%*u:+4294971537:0:11: ++%1u::0:-1: ++%*1u::0:-1: ++%1u:-123:0:-1: ++%*1u:-123:0:-1: ++%1u:-1:0:-1: ++%*1u:-1:0:-1: ++%1u:-0:0:-1: ++%*1u:-0:0:-1: ++%1u:0:1:1:0: ++%*1u:0:0:1: ++%1u:1:1:1:1: ++%*1u:1:0:1: ++%1u:42:1:1:4: ++%*1u:42:0:1: ++%1u:4294967295:1:1:4: ++%*1u:4294967295:0:1: ++%1u:4294967296:1:1:4: ++%*1u:4294967296:0:1: ++%1u:4294971537:1:1:4: ++%*1u:4294971537:0:1: ++%1u:+0:0:-1: ++%*1u:+0:0:-1: ++%1u:+1:0:-1: ++%*1u:+1:0:-1: ++%1u:+42:0:-1: ++%*1u:+42:0:-1: ++%1u:+4294967295:0:-1: ++%*1u:+4294967295:0:-1: ++%1u:+4294967296:0:-1: ++%*1u:+4294967296:0:-1: ++%1u:+4294971537:0:-1: ++%*1u:+4294971537:0:-1: ++%2u::0:-1: ++%*2u::0:-1: ++%2u:-123:1:2:4294967295: ++%*2u:-123:0:2: ++%2u:-1:1:2:4294967295: ++%*2u:-1:0:2: ++%2u:-0:1:2:0: ++%*2u:-0:0:2: ++%2u:0:1:1:0: ++%*2u:0:0:1: ++%2u:1:1:1:1: ++%*2u:1:0:1: ++%2u:42:1:2:42: ++%*2u:42:0:2: ++%2u:4294967295:1:2:42: ++%*2u:4294967295:0:2: ++%2u:4294967296:1:2:42: ++%*2u:4294967296:0:2: ++%2u:4294971537:1:2:42: ++%*2u:4294971537:0:2: ++%2u:+0:1:2:0: ++%*2u:+0:0:2: ++%2u:+1:1:2:1: ++%*2u:+1:0:2: ++%2u:+42:1:2:4: ++%*2u:+42:0:2: ++%2u:+4294967295:1:2:4: ++%*2u:+4294967295:0:2: ++%2u:+4294967296:1:2:4: ++%*2u:+4294967296:0:2: ++%2u:+4294971537:1:2:4: ++%*2u:+4294971537:0:2: ++%8u::0:-1: ++%*8u::0:-1: ++%8u:-123:1:4:4294967173: ++%*8u:-123:0:4: ++%8u:-1:1:2:4294967295: ++%*8u:-1:0:2: ++%8u:-0:1:2:0: ++%*8u:-0:0:2: ++%8u:0:1:1:0: ++%*8u:0:0:1: ++%8u:1:1:1:1: ++%*8u:1:0:1: ++%8u:42:1:2:42: ++%*8u:42:0:2: ++%8u:4294967295:1:8:42949672: ++%*8u:4294967295:0:8: ++%8u:4294967296:1:8:42949672: ++%*8u:4294967296:0:8: ++%8u:4294971537:1:8:42949715: ++%*8u:4294971537:0:8: ++%8u:+0:1:2:0: ++%*8u:+0:0:2: ++%8u:+1:1:2:1: ++%*8u:+1:0:2: ++%8u:+42:1:3:42: ++%*8u:+42:0:3: ++%8u:+4294967295:1:8:4294967: ++%*8u:+4294967295:0:8: ++%8u:+4294967296:1:8:4294967: ++%*8u:+4294967296:0:8: ++%8u:+4294971537:1:8:4294971: ++%*8u:+4294971537:0:8: ++%15u::0:-1: ++%*15u::0:-1: ++%15u:-123:1:4:4294967173: ++%*15u:-123:0:4: ++%15u:-1:1:2:4294967295: ++%*15u:-1:0:2: ++%15u:-0:1:2:0: ++%*15u:-0:0:2: ++%15u:0:1:1:0: ++%*15u:0:0:1: ++%15u:1:1:1:1: ++%*15u:1:0:1: ++%15u:42:1:2:42: ++%*15u:42:0:2: ++%15u:4294967295:1:10:4294967295: ++%*15u:4294967295:0:10: ++%15u:4294967296:1:10:0: ++%*15u:4294967296:0:10: ++%15u:4294971537:1:10:4241: ++%*15u:4294971537:0:10: ++%15u:+0:1:2:0: ++%*15u:+0:0:2: ++%15u:+1:1:2:1: ++%*15u:+1:0:2: ++%15u:+42:1:3:42: ++%*15u:+42:0:3: ++%15u:+4294967295:1:11:4294967295: ++%*15u:+4294967295:0:11: ++%15u:+4294967296:1:11:0: ++%*15u:+4294967296:0:11: ++%15u:+4294971537:1:11:4241: ++%*15u:+4294971537:0:11: ++%2u: :0:-1: ++%*2u: :0:-1: ++%2u: -123:1:3:4294967295: ++%*2u: -123:0:3: ++%2u: -1:1:3:4294967295: ++%*2u: -1:0:3: ++%2u: -0:1:3:0: ++%*2u: -0:0:3: ++%2u: 0:1:2:0: ++%*2u: 0:0:2: ++%2u: 1:1:2:1: ++%*2u: 1:0:2: ++%2u: 42:1:3:42: ++%*2u: 42:0:3: ++%2u: 4294967295:1:3:42: ++%*2u: 4294967295:0:3: ++%2u: 4294967296:1:3:42: ++%*2u: 4294967296:0:3: ++%2u: 4294971537:1:3:42: ++%*2u: 4294971537:0:3: ++%2u: +0:1:3:0: ++%*2u: +0:0:3: ++%2u: +1:1:3:1: ++%*2u: +1:0:3: ++%2u: +42:1:3:4: ++%*2u: +42:0:3: ++%2u: +4294967295:1:3:4: ++%*2u: +4294967295:0:3: ++%2u: +4294967296:1:3:4: ++%*2u: +4294967296:0:3: ++%2u: +4294971537:1:3:4: ++%*2u: +4294971537:0:3: ++%15u: :0:-1: ++%*15u: :0:-1: ++%15u: -123:1:5:4294967173: ++%*15u: -123:0:5: ++%15u: -1:1:3:4294967295: ++%*15u: -1:0:3: ++%15u: -0:1:3:0: ++%*15u: -0:0:3: ++%15u: 0:1:2:0: ++%*15u: 0:0:2: ++%15u: 1:1:2:1: ++%*15u: 1:0:2: ++%15u: 42:1:3:42: ++%*15u: 42:0:3: ++%15u: 4294967295:1:11:4294967295: ++%*15u: 4294967295:0:11: ++%15u: 4294967296:1:11:0: ++%*15u: 4294967296:0:11: ++%15u: 4294971537:1:11:4241: ++%*15u: 4294971537:0:11: ++%15u: +0:1:3:0: ++%*15u: +0:0:3: ++%15u: +1:1:3:1: ++%*15u: +1:0:3: ++%15u: +42:1:4:42: ++%*15u: +42:0:4: ++%15u: +4294967295:1:12:4294967295: ++%*15u: +4294967295:0:12: ++%15u: +4294967296:1:12:0: ++%*15u: +4294967296:0:12: ++%15u: +4294971537:1:12:4241: ++%*15u: +4294971537:0:12: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-x.input b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input +new file mode 100644 +index 0000000000000000..31fb4a8287eff2fb +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input +@@ -0,0 +1,714 @@ ++%x::0:-1: ++%*x::0:-1: ++%x:-7b:1:3:4294967173: ++%*x:-7b:0:3: ++%x:-7B:1:3:4294967173: ++%*x:-7B:0:3: ++%x:-0X7b:1:5:4294967173: ++%*x:-0X7b:0:5: ++%x:-0x7B:1:5:4294967173: ++%*x:-0x7B:0:5: ++%x:-1:1:2:4294967295: ++%*x:-1:0:2: ++%x:-0X1:1:4:4294967295: ++%*x:-0X1:0:4: ++%x:-0x1:1:4:4294967295: ++%*x:-0x1:0:4: ++%x:-0:1:2:0: ++%*x:-0:0:2: ++%x:-0X0:1:4:0: ++%*x:-0X0:0:4: ++%x:-0x0:1:4:0: ++%*x:-0x0:0:4: ++%x:0:1:1:0: ++%*x:0:0:1: ++%x:0X0:1:3:0: ++%*x:0X0:0:3: ++%x:0x0:1:3:0: ++%*x:0x0:0:3: ++%x:1:1:1:1: ++%*x:1:0:1: ++%x:0X1:1:3:1: ++%*x:0X1:0:3: ++%x:0x1:1:3:1: ++%*x:0x1:0:3: ++%x:2a:1:2:42: ++%*x:2a:0:2: ++%x:2A:1:2:42: ++%*x:2A:0:2: ++%x:0X2a:1:4:42: ++%*x:0X2a:0:4: ++%x:0x2A:1:4:42: ++%*x:0x2A:0:4: ++%x:ffffffff:1:8:4294967295: ++%*x:ffffffff:0:8: ++%x:FFFFFFFF:1:8:4294967295: ++%*x:FFFFFFFF:0:8: ++%x:0Xffffffff:1:10:4294967295: ++%*x:0Xffffffff:0:10: ++%x:0xFFFFFFFF:1:10:4294967295: ++%*x:0xFFFFFFFF:0:10: ++%x:100000000:1:9:0: ++%*x:100000000:0:9: ++%x:0X100000000:1:11:0: ++%*x:0X100000000:0:11: ++%x:0x100000000:1:11:0: ++%*x:0x100000000:0:11: ++%x:100001091:1:9:4241: ++%*x:100001091:0:9: ++%x:0X100001091:1:11:4241: ++%*x:0X100001091:0:11: ++%x:0x100001091:1:11:4241: ++%*x:0x100001091:0:11: ++%x:+0:1:2:0: ++%*x:+0:0:2: ++%x:+0X0:1:4:0: ++%*x:+0X0:0:4: ++%x:+0x0:1:4:0: ++%*x:+0x0:0:4: ++%x:+1:1:2:1: ++%*x:+1:0:2: ++%x:+0X1:1:4:1: ++%*x:+0X1:0:4: ++%x:+0x1:1:4:1: ++%*x:+0x1:0:4: ++%x:+2a:1:3:42: ++%*x:+2a:0:3: ++%x:+2A:1:3:42: ++%*x:+2A:0:3: ++%x:+0X2a:1:5:42: ++%*x:+0X2a:0:5: ++%x:+0x2A:1:5:42: ++%*x:+0x2A:0:5: ++%x:+ffffffff:1:9:4294967295: ++%*x:+ffffffff:0:9: ++%x:+FFFFFFFF:1:9:4294967295: ++%*x:+FFFFFFFF:0:9: ++%x:+0Xffffffff:1:11:4294967295: ++%*x:+0Xffffffff:0:11: ++%x:+0xFFFFFFFF:1:11:4294967295: ++%*x:+0xFFFFFFFF:0:11: ++%x:+100000000:1:10:0: ++%*x:+100000000:0:10: ++%x:+0X100000000:1:12:0: ++%*x:+0X100000000:0:12: ++%x:+0x100000000:1:12:0: ++%*x:+0x100000000:0:12: ++%x:+100001091:1:10:4241: ++%*x:+100001091:0:10: ++%x:+0X100001091:1:12:4241: ++%*x:+0X100001091:0:12: ++%x:+0x100001091:1:12:4241: ++%*x:+0x100001091:0:12: ++%1x::0:-1: ++%*1x::0:-1: ++%1x:-7b:0:-1: ++%*1x:-7b:0:-1: ++%1x:-7B:0:-1: ++%*1x:-7B:0:-1: ++%1x:-0X7b:0:-1: ++%*1x:-0X7b:0:-1: ++%1x:-0x7B:0:-1: ++%*1x:-0x7B:0:-1: ++%1x:-1:0:-1: ++%*1x:-1:0:-1: ++%1x:-0X1:0:-1: ++%*1x:-0X1:0:-1: ++%1x:-0x1:0:-1: ++%*1x:-0x1:0:-1: ++%1x:-0:0:-1: ++%*1x:-0:0:-1: ++%1x:-0X0:0:-1: ++%*1x:-0X0:0:-1: ++%1x:-0x0:0:-1: ++%*1x:-0x0:0:-1: ++%1x:0:1:1:0: ++%*1x:0:0:1: ++%1x:0X0:1:1:0: ++%*1x:0X0:0:1: ++%1x:0x0:1:1:0: ++%*1x:0x0:0:1: ++%1x:1:1:1:1: ++%*1x:1:0:1: ++%1x:0X1:1:1:0: ++%*1x:0X1:0:1: ++%1x:0x1:1:1:0: ++%*1x:0x1:0:1: ++%1x:2a:1:1:2: ++%*1x:2a:0:1: ++%1x:2A:1:1:2: ++%*1x:2A:0:1: ++%1x:0X2a:1:1:0: ++%*1x:0X2a:0:1: ++%1x:0x2A:1:1:0: ++%*1x:0x2A:0:1: ++%1x:ffffffff:1:1:15: ++%*1x:ffffffff:0:1: ++%1x:FFFFFFFF:1:1:15: ++%*1x:FFFFFFFF:0:1: ++%1x:0Xffffffff:1:1:0: ++%*1x:0Xffffffff:0:1: ++%1x:0xFFFFFFFF:1:1:0: ++%*1x:0xFFFFFFFF:0:1: ++%1x:100000000:1:1:1: ++%*1x:100000000:0:1: ++%1x:0X100000000:1:1:0: ++%*1x:0X100000000:0:1: ++%1x:0x100000000:1:1:0: ++%*1x:0x100000000:0:1: ++%1x:100001091:1:1:1: ++%*1x:100001091:0:1: ++%1x:0X100001091:1:1:0: ++%*1x:0X100001091:0:1: ++%1x:0x100001091:1:1:0: ++%*1x:0x100001091:0:1: ++%1x:+0:0:-1: ++%*1x:+0:0:-1: ++%1x:+0X0:0:-1: ++%*1x:+0X0:0:-1: ++%1x:+0x0:0:-1: ++%*1x:+0x0:0:-1: ++%1x:+1:0:-1: ++%*1x:+1:0:-1: ++%1x:+0X1:0:-1: ++%*1x:+0X1:0:-1: ++%1x:+0x1:0:-1: ++%*1x:+0x1:0:-1: ++%1x:+2a:0:-1: ++%*1x:+2a:0:-1: ++%1x:+2A:0:-1: ++%*1x:+2A:0:-1: ++%1x:+0X2a:0:-1: ++%*1x:+0X2a:0:-1: ++%1x:+0x2A:0:-1: ++%*1x:+0x2A:0:-1: ++%1x:+ffffffff:0:-1: ++%*1x:+ffffffff:0:-1: ++%1x:+FFFFFFFF:0:-1: ++%*1x:+FFFFFFFF:0:-1: ++%1x:+0Xffffffff:0:-1: ++%*1x:+0Xffffffff:0:-1: ++%1x:+0xFFFFFFFF:0:-1: ++%*1x:+0xFFFFFFFF:0:-1: ++%1x:+100000000:0:-1: ++%*1x:+100000000:0:-1: ++%1x:+0X100000000:0:-1: ++%*1x:+0X100000000:0:-1: ++%1x:+0x100000000:0:-1: ++%*1x:+0x100000000:0:-1: ++%1x:+100001091:0:-1: ++%*1x:+100001091:0:-1: ++%1x:+0X100001091:0:-1: ++%*1x:+0X100001091:0:-1: ++%1x:+0x100001091:0:-1: ++%*1x:+0x100001091:0:-1: ++%2x::0:-1: ++%*2x::0:-1: ++%2x:-7b:1:2:4294967289: ++%*2x:-7b:0:2: ++%2x:-7B:1:2:4294967289: ++%*2x:-7B:0:2: ++%2x:-0X7b:1:2:0: ++%*2x:-0X7b:0:2: ++%2x:-0x7B:1:2:0: ++%*2x:-0x7B:0:2: ++%2x:-1:1:2:4294967295: ++%*2x:-1:0:2: ++%2x:-0X1:1:2:0: ++%*2x:-0X1:0:2: ++%2x:-0x1:1:2:0: ++%*2x:-0x1:0:2: ++%2x:-0:1:2:0: ++%*2x:-0:0:2: ++%2x:-0X0:1:2:0: ++%*2x:-0X0:0:2: ++%2x:-0x0:1:2:0: ++%*2x:-0x0:0:2: ++%2x:0:1:1:0: ++%*2x:0:0:1: ++# BZ12701 %2x:0X0:0:-1: ++# BZ12701 %*2x:0X0:0:-1: ++# BZ12701 %2x:0x0:0:-1: ++# BZ12701 %*2x:0x0:0:-1: ++%2x:1:1:1:1: ++%*2x:1:0:1: ++# BZ12701 %2x:0X1:0:-1: ++# BZ12701 %*2x:0X1:0:-1: ++# BZ12701 %2x:0x1:0:-1: ++# BZ12701 %*2x:0x1:0:-1: ++%2x:2a:1:2:42: ++%*2x:2a:0:2: ++%2x:2A:1:2:42: ++%*2x:2A:0:2: ++# BZ12701 %2x:0X2a:0:-1: ++# BZ12701 %*2x:0X2a:0:-1: ++# BZ12701 %2x:0x2A:0:-1: ++# BZ12701 %*2x:0x2A:0:-1: ++%2x:ffffffff:1:2:255: ++%*2x:ffffffff:0:2: ++%2x:FFFFFFFF:1:2:255: ++%*2x:FFFFFFFF:0:2: ++# BZ12701 %2x:0Xffffffff:0:-1: ++# BZ12701 %*2x:0Xffffffff:0:-1: ++# BZ12701 %2x:0xFFFFFFFF:0:-1: ++# BZ12701 %*2x:0xFFFFFFFF:0:-1: ++%2x:100000000:1:2:16: ++%*2x:100000000:0:2: ++# BZ12701 %2x:0X100000000:0:-1: ++# BZ12701 %*2x:0X100000000:0:-1: ++# BZ12701 %2x:0x100000000:0:-1: ++# BZ12701 %*2x:0x100000000:0:-1: ++%2x:100001091:1:2:16: ++%*2x:100001091:0:2: ++# BZ12701 %2x:0X100001091:0:-1: ++# BZ12701 %*2x:0X100001091:0:-1: ++# BZ12701 %2x:0x100001091:0:-1: ++# BZ12701 %*2x:0x100001091:0:-1: ++%2x:+0:1:2:0: ++%*2x:+0:0:2: ++%2x:+0X0:1:2:0: ++%*2x:+0X0:0:2: ++%2x:+0x0:1:2:0: ++%*2x:+0x0:0:2: ++%2x:+1:1:2:1: ++%*2x:+1:0:2: ++%2x:+0X1:1:2:0: ++%*2x:+0X1:0:2: ++%2x:+0x1:1:2:0: ++%*2x:+0x1:0:2: ++%2x:+2a:1:2:2: ++%*2x:+2a:0:2: ++%2x:+2A:1:2:2: ++%*2x:+2A:0:2: ++%2x:+0X2a:1:2:0: ++%*2x:+0X2a:0:2: ++%2x:+0x2A:1:2:0: ++%*2x:+0x2A:0:2: ++%2x:+ffffffff:1:2:15: ++%*2x:+ffffffff:0:2: ++%2x:+FFFFFFFF:1:2:15: ++%*2x:+FFFFFFFF:0:2: ++%2x:+0Xffffffff:1:2:0: ++%*2x:+0Xffffffff:0:2: ++%2x:+0xFFFFFFFF:1:2:0: ++%*2x:+0xFFFFFFFF:0:2: ++%2x:+100000000:1:2:1: ++%*2x:+100000000:0:2: ++%2x:+0X100000000:1:2:0: ++%*2x:+0X100000000:0:2: ++%2x:+0x100000000:1:2:0: ++%*2x:+0x100000000:0:2: ++%2x:+100001091:1:2:1: ++%*2x:+100001091:0:2: ++%2x:+0X100001091:1:2:0: ++%*2x:+0X100001091:0:2: ++%2x:+0x100001091:1:2:0: ++%*2x:+0x100001091:0:2: ++%8x::0:-1: ++%*8x::0:-1: ++%8x:-7b:1:3:4294967173: ++%*8x:-7b:0:3: ++%8x:-7B:1:3:4294967173: ++%*8x:-7B:0:3: ++%8x:-0X7b:1:5:4294967173: ++%*8x:-0X7b:0:5: ++%8x:-0x7B:1:5:4294967173: ++%*8x:-0x7B:0:5: ++%8x:-1:1:2:4294967295: ++%*8x:-1:0:2: ++%8x:-0X1:1:4:4294967295: ++%*8x:-0X1:0:4: ++%8x:-0x1:1:4:4294967295: ++%*8x:-0x1:0:4: ++%8x:-0:1:2:0: ++%*8x:-0:0:2: ++%8x:-0X0:1:4:0: ++%*8x:-0X0:0:4: ++%8x:-0x0:1:4:0: ++%*8x:-0x0:0:4: ++%8x:0:1:1:0: ++%*8x:0:0:1: ++%8x:0X0:1:3:0: ++%*8x:0X0:0:3: ++%8x:0x0:1:3:0: ++%*8x:0x0:0:3: ++%8x:1:1:1:1: ++%*8x:1:0:1: ++%8x:0X1:1:3:1: ++%*8x:0X1:0:3: ++%8x:0x1:1:3:1: ++%*8x:0x1:0:3: ++%8x:2a:1:2:42: ++%*8x:2a:0:2: ++%8x:2A:1:2:42: ++%*8x:2A:0:2: ++%8x:0X2a:1:4:42: ++%*8x:0X2a:0:4: ++%8x:0x2A:1:4:42: ++%*8x:0x2A:0:4: ++%8x:ffffffff:1:8:4294967295: ++%*8x:ffffffff:0:8: ++%8x:FFFFFFFF:1:8:4294967295: ++%*8x:FFFFFFFF:0:8: ++%8x:0Xffffffff:1:8:16777215: ++%*8x:0Xffffffff:0:8: ++%8x:0xFFFFFFFF:1:8:16777215: ++%*8x:0xFFFFFFFF:0:8: ++%8x:100000000:1:8:268435456: ++%*8x:100000000:0:8: ++%8x:0X100000000:1:8:1048576: ++%*8x:0X100000000:0:8: ++%8x:0x100000000:1:8:1048576: ++%*8x:0x100000000:0:8: ++%8x:100001091:1:8:268435721: ++%*8x:100001091:0:8: ++%8x:0X100001091:1:8:1048577: ++%*8x:0X100001091:0:8: ++%8x:0x100001091:1:8:1048577: ++%*8x:0x100001091:0:8: ++%8x:+0:1:2:0: ++%*8x:+0:0:2: ++%8x:+0X0:1:4:0: ++%*8x:+0X0:0:4: ++%8x:+0x0:1:4:0: ++%*8x:+0x0:0:4: ++%8x:+1:1:2:1: ++%*8x:+1:0:2: ++%8x:+0X1:1:4:1: ++%*8x:+0X1:0:4: ++%8x:+0x1:1:4:1: ++%*8x:+0x1:0:4: ++%8x:+2a:1:3:42: ++%*8x:+2a:0:3: ++%8x:+2A:1:3:42: ++%*8x:+2A:0:3: ++%8x:+0X2a:1:5:42: ++%*8x:+0X2a:0:5: ++%8x:+0x2A:1:5:42: ++%*8x:+0x2A:0:5: ++%8x:+ffffffff:1:8:268435455: ++%*8x:+ffffffff:0:8: ++%8x:+FFFFFFFF:1:8:268435455: ++%*8x:+FFFFFFFF:0:8: ++%8x:+0Xffffffff:1:8:1048575: ++%*8x:+0Xffffffff:0:8: ++%8x:+0xFFFFFFFF:1:8:1048575: ++%*8x:+0xFFFFFFFF:0:8: ++%8x:+100000000:1:8:16777216: ++%*8x:+100000000:0:8: ++%8x:+0X100000000:1:8:65536: ++%*8x:+0X100000000:0:8: ++%8x:+0x100000000:1:8:65536: ++%*8x:+0x100000000:0:8: ++%8x:+100001091:1:8:16777232: ++%*8x:+100001091:0:8: ++%8x:+0X100001091:1:8:65536: ++%*8x:+0X100001091:0:8: ++%8x:+0x100001091:1:8:65536: ++%*8x:+0x100001091:0:8: ++%15x::0:-1: ++%*15x::0:-1: ++%15x:-7b:1:3:4294967173: ++%*15x:-7b:0:3: ++%15x:-7B:1:3:4294967173: ++%*15x:-7B:0:3: ++%15x:-0X7b:1:5:4294967173: ++%*15x:-0X7b:0:5: ++%15x:-0x7B:1:5:4294967173: ++%*15x:-0x7B:0:5: ++%15x:-1:1:2:4294967295: ++%*15x:-1:0:2: ++%15x:-0X1:1:4:4294967295: ++%*15x:-0X1:0:4: ++%15x:-0x1:1:4:4294967295: ++%*15x:-0x1:0:4: ++%15x:-0:1:2:0: ++%*15x:-0:0:2: ++%15x:-0X0:1:4:0: ++%*15x:-0X0:0:4: ++%15x:-0x0:1:4:0: ++%*15x:-0x0:0:4: ++%15x:0:1:1:0: ++%*15x:0:0:1: ++%15x:0X0:1:3:0: ++%*15x:0X0:0:3: ++%15x:0x0:1:3:0: ++%*15x:0x0:0:3: ++%15x:1:1:1:1: ++%*15x:1:0:1: ++%15x:0X1:1:3:1: ++%*15x:0X1:0:3: ++%15x:0x1:1:3:1: ++%*15x:0x1:0:3: ++%15x:2a:1:2:42: ++%*15x:2a:0:2: ++%15x:2A:1:2:42: ++%*15x:2A:0:2: ++%15x:0X2a:1:4:42: ++%*15x:0X2a:0:4: ++%15x:0x2A:1:4:42: ++%*15x:0x2A:0:4: ++%15x:ffffffff:1:8:4294967295: ++%*15x:ffffffff:0:8: ++%15x:FFFFFFFF:1:8:4294967295: ++%*15x:FFFFFFFF:0:8: ++%15x:0Xffffffff:1:10:4294967295: ++%*15x:0Xffffffff:0:10: ++%15x:0xFFFFFFFF:1:10:4294967295: ++%*15x:0xFFFFFFFF:0:10: ++%15x:100000000:1:9:0: ++%*15x:100000000:0:9: ++%15x:0X100000000:1:11:0: ++%*15x:0X100000000:0:11: ++%15x:0x100000000:1:11:0: ++%*15x:0x100000000:0:11: ++%15x:100001091:1:9:4241: ++%*15x:100001091:0:9: ++%15x:0X100001091:1:11:4241: ++%*15x:0X100001091:0:11: ++%15x:0x100001091:1:11:4241: ++%*15x:0x100001091:0:11: ++%15x:+0:1:2:0: ++%*15x:+0:0:2: ++%15x:+0X0:1:4:0: ++%*15x:+0X0:0:4: ++%15x:+0x0:1:4:0: ++%*15x:+0x0:0:4: ++%15x:+1:1:2:1: ++%*15x:+1:0:2: ++%15x:+0X1:1:4:1: ++%*15x:+0X1:0:4: ++%15x:+0x1:1:4:1: ++%*15x:+0x1:0:4: ++%15x:+2a:1:3:42: ++%*15x:+2a:0:3: ++%15x:+2A:1:3:42: ++%*15x:+2A:0:3: ++%15x:+0X2a:1:5:42: ++%*15x:+0X2a:0:5: ++%15x:+0x2A:1:5:42: ++%*15x:+0x2A:0:5: ++%15x:+ffffffff:1:9:4294967295: ++%*15x:+ffffffff:0:9: ++%15x:+FFFFFFFF:1:9:4294967295: ++%*15x:+FFFFFFFF:0:9: ++%15x:+0Xffffffff:1:11:4294967295: ++%*15x:+0Xffffffff:0:11: ++%15x:+0xFFFFFFFF:1:11:4294967295: ++%*15x:+0xFFFFFFFF:0:11: ++%15x:+100000000:1:10:0: ++%*15x:+100000000:0:10: ++%15x:+0X100000000:1:12:0: ++%*15x:+0X100000000:0:12: ++%15x:+0x100000000:1:12:0: ++%*15x:+0x100000000:0:12: ++%15x:+100001091:1:10:4241: ++%*15x:+100001091:0:10: ++%15x:+0X100001091:1:12:4241: ++%*15x:+0X100001091:0:12: ++%15x:+0x100001091:1:12:4241: ++%*15x:+0x100001091:0:12: ++%2x: :0:-1: ++%*2x: :0:-1: ++%2x: -7b:1:3:4294967289: ++%*2x: -7b:0:3: ++%2x: -7B:1:3:4294967289: ++%*2x: -7B:0:3: ++%2x: -0X7b:1:3:0: ++%*2x: -0X7b:0:3: ++%2x: -0x7B:1:3:0: ++%*2x: -0x7B:0:3: ++%2x: -1:1:3:4294967295: ++%*2x: -1:0:3: ++%2x: -0X1:1:3:0: ++%*2x: -0X1:0:3: ++%2x: -0x1:1:3:0: ++%*2x: -0x1:0:3: ++%2x: -0:1:3:0: ++%*2x: -0:0:3: ++%2x: -0X0:1:3:0: ++%*2x: -0X0:0:3: ++%2x: -0x0:1:3:0: ++%*2x: -0x0:0:3: ++%2x: 0:1:2:0: ++%*2x: 0:0:2: ++# BZ12701 %2x: 0X0:0:-1: ++# BZ12701 %*2x: 0X0:0:-1: ++# BZ12701 %2x: 0x0:0:-1: ++# BZ12701 %*2x: 0x0:0:-1: ++%2x: 1:1:2:1: ++%*2x: 1:0:2: ++# BZ12701 %2x: 0X1:0:-1: ++# BZ12701 %*2x: 0X1:0:-1: ++# BZ12701 %2x: 0x1:0:-1: ++# BZ12701 %*2x: 0x1:0:-1: ++%2x: 2a:1:3:42: ++%*2x: 2a:0:3: ++%2x: 2A:1:3:42: ++%*2x: 2A:0:3: ++# BZ12701 %2x: 0X2a:0:-1: ++# BZ12701 %*2x: 0X2a:0:-1: ++# BZ12701 %2x: 0x2A:0:-1: ++# BZ12701 %*2x: 0x2A:0:-1: ++%2x: ffffffff:1:3:255: ++%*2x: ffffffff:0:3: ++%2x: FFFFFFFF:1:3:255: ++%*2x: FFFFFFFF:0:3: ++# BZ12701 %2x: 0Xffffffff:0:-1: ++# BZ12701 %*2x: 0Xffffffff:0:-1: ++# BZ12701 %2x: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2x: 0xFFFFFFFF:0:-1: ++%2x: 100000000:1:3:16: ++%*2x: 100000000:0:3: ++# BZ12701 %2x: 0X100000000:0:-1: ++# BZ12701 %*2x: 0X100000000:0:-1: ++# BZ12701 %2x: 0x100000000:0:-1: ++# BZ12701 %*2x: 0x100000000:0:-1: ++%2x: 100001091:1:3:16: ++%*2x: 100001091:0:3: ++# BZ12701 %2x: 0X100001091:0:-1: ++# BZ12701 %*2x: 0X100001091:0:-1: ++# BZ12701 %2x: 0x100001091:0:-1: ++# BZ12701 %*2x: 0x100001091:0:-1: ++%2x: +0:1:3:0: ++%*2x: +0:0:3: ++%2x: +0X0:1:3:0: ++%*2x: +0X0:0:3: ++%2x: +0x0:1:3:0: ++%*2x: +0x0:0:3: ++%2x: +1:1:3:1: ++%*2x: +1:0:3: ++%2x: +0X1:1:3:0: ++%*2x: +0X1:0:3: ++%2x: +0x1:1:3:0: ++%*2x: +0x1:0:3: ++%2x: +2a:1:3:2: ++%*2x: +2a:0:3: ++%2x: +2A:1:3:2: ++%*2x: +2A:0:3: ++%2x: +0X2a:1:3:0: ++%*2x: +0X2a:0:3: ++%2x: +0x2A:1:3:0: ++%*2x: +0x2A:0:3: ++%2x: +ffffffff:1:3:15: ++%*2x: +ffffffff:0:3: ++%2x: +FFFFFFFF:1:3:15: ++%*2x: +FFFFFFFF:0:3: ++%2x: +0Xffffffff:1:3:0: ++%*2x: +0Xffffffff:0:3: ++%2x: +0xFFFFFFFF:1:3:0: ++%*2x: +0xFFFFFFFF:0:3: ++%2x: +100000000:1:3:1: ++%*2x: +100000000:0:3: ++%2x: +0X100000000:1:3:0: ++%*2x: +0X100000000:0:3: ++%2x: +0x100000000:1:3:0: ++%*2x: +0x100000000:0:3: ++%2x: +100001091:1:3:1: ++%*2x: +100001091:0:3: ++%2x: +0X100001091:1:3:0: ++%*2x: +0X100001091:0:3: ++%2x: +0x100001091:1:3:0: ++%*2x: +0x100001091:0:3: ++%15x: :0:-1: ++%*15x: :0:-1: ++%15x: -7b:1:4:4294967173: ++%*15x: -7b:0:4: ++%15x: -7B:1:4:4294967173: ++%*15x: -7B:0:4: ++%15x: -0X7b:1:6:4294967173: ++%*15x: -0X7b:0:6: ++%15x: -0x7B:1:6:4294967173: ++%*15x: -0x7B:0:6: ++%15x: -1:1:3:4294967295: ++%*15x: -1:0:3: ++%15x: -0X1:1:5:4294967295: ++%*15x: -0X1:0:5: ++%15x: -0x1:1:5:4294967295: ++%*15x: -0x1:0:5: ++%15x: -0:1:3:0: ++%*15x: -0:0:3: ++%15x: -0X0:1:5:0: ++%*15x: -0X0:0:5: ++%15x: -0x0:1:5:0: ++%*15x: -0x0:0:5: ++%15x: 0:1:2:0: ++%*15x: 0:0:2: ++%15x: 0X0:1:4:0: ++%*15x: 0X0:0:4: ++%15x: 0x0:1:4:0: ++%*15x: 0x0:0:4: ++%15x: 1:1:2:1: ++%*15x: 1:0:2: ++%15x: 0X1:1:4:1: ++%*15x: 0X1:0:4: ++%15x: 0x1:1:4:1: ++%*15x: 0x1:0:4: ++%15x: 2a:1:3:42: ++%*15x: 2a:0:3: ++%15x: 2A:1:3:42: ++%*15x: 2A:0:3: ++%15x: 0X2a:1:5:42: ++%*15x: 0X2a:0:5: ++%15x: 0x2A:1:5:42: ++%*15x: 0x2A:0:5: ++%15x: ffffffff:1:9:4294967295: ++%*15x: ffffffff:0:9: ++%15x: FFFFFFFF:1:9:4294967295: ++%*15x: FFFFFFFF:0:9: ++%15x: 0Xffffffff:1:11:4294967295: ++%*15x: 0Xffffffff:0:11: ++%15x: 0xFFFFFFFF:1:11:4294967295: ++%*15x: 0xFFFFFFFF:0:11: ++%15x: 100000000:1:10:0: ++%*15x: 100000000:0:10: ++%15x: 0X100000000:1:12:0: ++%*15x: 0X100000000:0:12: ++%15x: 0x100000000:1:12:0: ++%*15x: 0x100000000:0:12: ++%15x: 100001091:1:10:4241: ++%*15x: 100001091:0:10: ++%15x: 0X100001091:1:12:4241: ++%*15x: 0X100001091:0:12: ++%15x: 0x100001091:1:12:4241: ++%*15x: 0x100001091:0:12: ++%15x: +0:1:3:0: ++%*15x: +0:0:3: ++%15x: +0X0:1:5:0: ++%*15x: +0X0:0:5: ++%15x: +0x0:1:5:0: ++%*15x: +0x0:0:5: ++%15x: +1:1:3:1: ++%*15x: +1:0:3: ++%15x: +0X1:1:5:1: ++%*15x: +0X1:0:5: ++%15x: +0x1:1:5:1: ++%*15x: +0x1:0:5: ++%15x: +2a:1:4:42: ++%*15x: +2a:0:4: ++%15x: +2A:1:4:42: ++%*15x: +2A:0:4: ++%15x: +0X2a:1:6:42: ++%*15x: +0X2a:0:6: ++%15x: +0x2A:1:6:42: ++%*15x: +0x2A:0:6: ++%15x: +ffffffff:1:10:4294967295: ++%*15x: +ffffffff:0:10: ++%15x: +FFFFFFFF:1:10:4294967295: ++%*15x: +FFFFFFFF:0:10: ++%15x: +0Xffffffff:1:12:4294967295: ++%*15x: +0Xffffffff:0:12: ++%15x: +0xFFFFFFFF:1:12:4294967295: ++%*15x: +0xFFFFFFFF:0:12: ++%15x: +100000000:1:11:0: ++%*15x: +100000000:0:11: ++%15x: +0X100000000:1:13:0: ++%*15x: +0X100000000:0:13: ++%15x: +0x100000000:1:13:0: ++%*15x: +0x100000000:0:13: ++%15x: +100001091:1:11:4241: ++%*15x: +100001091:0:11: ++%15x: +0X100001091:1:13:4241: ++%*15x: +0X100001091:0:13: ++%15x: +0x100001091:1:13:4241: ++%*15x: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input +new file mode 100644 +index 0000000000000000..d4aa7b0c7ac5ca36 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input +@@ -0,0 +1,714 @@ ++%X::0:-1: ++%*X::0:-1: ++%X:-7b:1:3:4294967173: ++%*X:-7b:0:3: ++%X:-7B:1:3:4294967173: ++%*X:-7B:0:3: ++%X:-0X7b:1:5:4294967173: ++%*X:-0X7b:0:5: ++%X:-0x7B:1:5:4294967173: ++%*X:-0x7B:0:5: ++%X:-1:1:2:4294967295: ++%*X:-1:0:2: ++%X:-0X1:1:4:4294967295: ++%*X:-0X1:0:4: ++%X:-0x1:1:4:4294967295: ++%*X:-0x1:0:4: ++%X:-0:1:2:0: ++%*X:-0:0:2: ++%X:-0X0:1:4:0: ++%*X:-0X0:0:4: ++%X:-0x0:1:4:0: ++%*X:-0x0:0:4: ++%X:0:1:1:0: ++%*X:0:0:1: ++%X:0X0:1:3:0: ++%*X:0X0:0:3: ++%X:0x0:1:3:0: ++%*X:0x0:0:3: ++%X:1:1:1:1: ++%*X:1:0:1: ++%X:0X1:1:3:1: ++%*X:0X1:0:3: ++%X:0x1:1:3:1: ++%*X:0x1:0:3: ++%X:2a:1:2:42: ++%*X:2a:0:2: ++%X:2A:1:2:42: ++%*X:2A:0:2: ++%X:0X2a:1:4:42: ++%*X:0X2a:0:4: ++%X:0x2A:1:4:42: ++%*X:0x2A:0:4: ++%X:ffffffff:1:8:4294967295: ++%*X:ffffffff:0:8: ++%X:FFFFFFFF:1:8:4294967295: ++%*X:FFFFFFFF:0:8: ++%X:0Xffffffff:1:10:4294967295: ++%*X:0Xffffffff:0:10: ++%X:0xFFFFFFFF:1:10:4294967295: ++%*X:0xFFFFFFFF:0:10: ++%X:100000000:1:9:0: ++%*X:100000000:0:9: ++%X:0X100000000:1:11:0: ++%*X:0X100000000:0:11: ++%X:0x100000000:1:11:0: ++%*X:0x100000000:0:11: ++%X:100001091:1:9:4241: ++%*X:100001091:0:9: ++%X:0X100001091:1:11:4241: ++%*X:0X100001091:0:11: ++%X:0x100001091:1:11:4241: ++%*X:0x100001091:0:11: ++%X:+0:1:2:0: ++%*X:+0:0:2: ++%X:+0X0:1:4:0: ++%*X:+0X0:0:4: ++%X:+0x0:1:4:0: ++%*X:+0x0:0:4: ++%X:+1:1:2:1: ++%*X:+1:0:2: ++%X:+0X1:1:4:1: ++%*X:+0X1:0:4: ++%X:+0x1:1:4:1: ++%*X:+0x1:0:4: ++%X:+2a:1:3:42: ++%*X:+2a:0:3: ++%X:+2A:1:3:42: ++%*X:+2A:0:3: ++%X:+0X2a:1:5:42: ++%*X:+0X2a:0:5: ++%X:+0x2A:1:5:42: ++%*X:+0x2A:0:5: ++%X:+ffffffff:1:9:4294967295: ++%*X:+ffffffff:0:9: ++%X:+FFFFFFFF:1:9:4294967295: ++%*X:+FFFFFFFF:0:9: ++%X:+0Xffffffff:1:11:4294967295: ++%*X:+0Xffffffff:0:11: ++%X:+0xFFFFFFFF:1:11:4294967295: ++%*X:+0xFFFFFFFF:0:11: ++%X:+100000000:1:10:0: ++%*X:+100000000:0:10: ++%X:+0X100000000:1:12:0: ++%*X:+0X100000000:0:12: ++%X:+0x100000000:1:12:0: ++%*X:+0x100000000:0:12: ++%X:+100001091:1:10:4241: ++%*X:+100001091:0:10: ++%X:+0X100001091:1:12:4241: ++%*X:+0X100001091:0:12: ++%X:+0x100001091:1:12:4241: ++%*X:+0x100001091:0:12: ++%1X::0:-1: ++%*1X::0:-1: ++%1X:-7b:0:-1: ++%*1X:-7b:0:-1: ++%1X:-7B:0:-1: ++%*1X:-7B:0:-1: ++%1X:-0X7b:0:-1: ++%*1X:-0X7b:0:-1: ++%1X:-0x7B:0:-1: ++%*1X:-0x7B:0:-1: ++%1X:-1:0:-1: ++%*1X:-1:0:-1: ++%1X:-0X1:0:-1: ++%*1X:-0X1:0:-1: ++%1X:-0x1:0:-1: ++%*1X:-0x1:0:-1: ++%1X:-0:0:-1: ++%*1X:-0:0:-1: ++%1X:-0X0:0:-1: ++%*1X:-0X0:0:-1: ++%1X:-0x0:0:-1: ++%*1X:-0x0:0:-1: ++%1X:0:1:1:0: ++%*1X:0:0:1: ++%1X:0X0:1:1:0: ++%*1X:0X0:0:1: ++%1X:0x0:1:1:0: ++%*1X:0x0:0:1: ++%1X:1:1:1:1: ++%*1X:1:0:1: ++%1X:0X1:1:1:0: ++%*1X:0X1:0:1: ++%1X:0x1:1:1:0: ++%*1X:0x1:0:1: ++%1X:2a:1:1:2: ++%*1X:2a:0:1: ++%1X:2A:1:1:2: ++%*1X:2A:0:1: ++%1X:0X2a:1:1:0: ++%*1X:0X2a:0:1: ++%1X:0x2A:1:1:0: ++%*1X:0x2A:0:1: ++%1X:ffffffff:1:1:15: ++%*1X:ffffffff:0:1: ++%1X:FFFFFFFF:1:1:15: ++%*1X:FFFFFFFF:0:1: ++%1X:0Xffffffff:1:1:0: ++%*1X:0Xffffffff:0:1: ++%1X:0xFFFFFFFF:1:1:0: ++%*1X:0xFFFFFFFF:0:1: ++%1X:100000000:1:1:1: ++%*1X:100000000:0:1: ++%1X:0X100000000:1:1:0: ++%*1X:0X100000000:0:1: ++%1X:0x100000000:1:1:0: ++%*1X:0x100000000:0:1: ++%1X:100001091:1:1:1: ++%*1X:100001091:0:1: ++%1X:0X100001091:1:1:0: ++%*1X:0X100001091:0:1: ++%1X:0x100001091:1:1:0: ++%*1X:0x100001091:0:1: ++%1X:+0:0:-1: ++%*1X:+0:0:-1: ++%1X:+0X0:0:-1: ++%*1X:+0X0:0:-1: ++%1X:+0x0:0:-1: ++%*1X:+0x0:0:-1: ++%1X:+1:0:-1: ++%*1X:+1:0:-1: ++%1X:+0X1:0:-1: ++%*1X:+0X1:0:-1: ++%1X:+0x1:0:-1: ++%*1X:+0x1:0:-1: ++%1X:+2a:0:-1: ++%*1X:+2a:0:-1: ++%1X:+2A:0:-1: ++%*1X:+2A:0:-1: ++%1X:+0X2a:0:-1: ++%*1X:+0X2a:0:-1: ++%1X:+0x2A:0:-1: ++%*1X:+0x2A:0:-1: ++%1X:+ffffffff:0:-1: ++%*1X:+ffffffff:0:-1: ++%1X:+FFFFFFFF:0:-1: ++%*1X:+FFFFFFFF:0:-1: ++%1X:+0Xffffffff:0:-1: ++%*1X:+0Xffffffff:0:-1: ++%1X:+0xFFFFFFFF:0:-1: ++%*1X:+0xFFFFFFFF:0:-1: ++%1X:+100000000:0:-1: ++%*1X:+100000000:0:-1: ++%1X:+0X100000000:0:-1: ++%*1X:+0X100000000:0:-1: ++%1X:+0x100000000:0:-1: ++%*1X:+0x100000000:0:-1: ++%1X:+100001091:0:-1: ++%*1X:+100001091:0:-1: ++%1X:+0X100001091:0:-1: ++%*1X:+0X100001091:0:-1: ++%1X:+0x100001091:0:-1: ++%*1X:+0x100001091:0:-1: ++%2X::0:-1: ++%*2X::0:-1: ++%2X:-7b:1:2:4294967289: ++%*2X:-7b:0:2: ++%2X:-7B:1:2:4294967289: ++%*2X:-7B:0:2: ++%2X:-0X7b:1:2:0: ++%*2X:-0X7b:0:2: ++%2X:-0x7B:1:2:0: ++%*2X:-0x7B:0:2: ++%2X:-1:1:2:4294967295: ++%*2X:-1:0:2: ++%2X:-0X1:1:2:0: ++%*2X:-0X1:0:2: ++%2X:-0x1:1:2:0: ++%*2X:-0x1:0:2: ++%2X:-0:1:2:0: ++%*2X:-0:0:2: ++%2X:-0X0:1:2:0: ++%*2X:-0X0:0:2: ++%2X:-0x0:1:2:0: ++%*2X:-0x0:0:2: ++%2X:0:1:1:0: ++%*2X:0:0:1: ++# BZ12701 %2X:0X0:0:-1: ++# BZ12701 %*2X:0X0:0:-1: ++# BZ12701 %2X:0x0:0:-1: ++# BZ12701 %*2X:0x0:0:-1: ++%2X:1:1:1:1: ++%*2X:1:0:1: ++# BZ12701 %2X:0X1:0:-1: ++# BZ12701 %*2X:0X1:0:-1: ++# BZ12701 %2X:0x1:0:-1: ++# BZ12701 %*2X:0x1:0:-1: ++%2X:2a:1:2:42: ++%*2X:2a:0:2: ++%2X:2A:1:2:42: ++%*2X:2A:0:2: ++# BZ12701 %2X:0X2a:0:-1: ++# BZ12701 %*2X:0X2a:0:-1: ++# BZ12701 %2X:0x2A:0:-1: ++# BZ12701 %*2X:0x2A:0:-1: ++%2X:ffffffff:1:2:255: ++%*2X:ffffffff:0:2: ++%2X:FFFFFFFF:1:2:255: ++%*2X:FFFFFFFF:0:2: ++# BZ12701 %2X:0Xffffffff:0:-1: ++# BZ12701 %*2X:0Xffffffff:0:-1: ++# BZ12701 %2X:0xFFFFFFFF:0:-1: ++# BZ12701 %*2X:0xFFFFFFFF:0:-1: ++%2X:100000000:1:2:16: ++%*2X:100000000:0:2: ++# BZ12701 %2X:0X100000000:0:-1: ++# BZ12701 %*2X:0X100000000:0:-1: ++# BZ12701 %2X:0x100000000:0:-1: ++# BZ12701 %*2X:0x100000000:0:-1: ++%2X:100001091:1:2:16: ++%*2X:100001091:0:2: ++# BZ12701 %2X:0X100001091:0:-1: ++# BZ12701 %*2X:0X100001091:0:-1: ++# BZ12701 %2X:0x100001091:0:-1: ++# BZ12701 %*2X:0x100001091:0:-1: ++%2X:+0:1:2:0: ++%*2X:+0:0:2: ++%2X:+0X0:1:2:0: ++%*2X:+0X0:0:2: ++%2X:+0x0:1:2:0: ++%*2X:+0x0:0:2: ++%2X:+1:1:2:1: ++%*2X:+1:0:2: ++%2X:+0X1:1:2:0: ++%*2X:+0X1:0:2: ++%2X:+0x1:1:2:0: ++%*2X:+0x1:0:2: ++%2X:+2a:1:2:2: ++%*2X:+2a:0:2: ++%2X:+2A:1:2:2: ++%*2X:+2A:0:2: ++%2X:+0X2a:1:2:0: ++%*2X:+0X2a:0:2: ++%2X:+0x2A:1:2:0: ++%*2X:+0x2A:0:2: ++%2X:+ffffffff:1:2:15: ++%*2X:+ffffffff:0:2: ++%2X:+FFFFFFFF:1:2:15: ++%*2X:+FFFFFFFF:0:2: ++%2X:+0Xffffffff:1:2:0: ++%*2X:+0Xffffffff:0:2: ++%2X:+0xFFFFFFFF:1:2:0: ++%*2X:+0xFFFFFFFF:0:2: ++%2X:+100000000:1:2:1: ++%*2X:+100000000:0:2: ++%2X:+0X100000000:1:2:0: ++%*2X:+0X100000000:0:2: ++%2X:+0x100000000:1:2:0: ++%*2X:+0x100000000:0:2: ++%2X:+100001091:1:2:1: ++%*2X:+100001091:0:2: ++%2X:+0X100001091:1:2:0: ++%*2X:+0X100001091:0:2: ++%2X:+0x100001091:1:2:0: ++%*2X:+0x100001091:0:2: ++%8X::0:-1: ++%*8X::0:-1: ++%8X:-7b:1:3:4294967173: ++%*8X:-7b:0:3: ++%8X:-7B:1:3:4294967173: ++%*8X:-7B:0:3: ++%8X:-0X7b:1:5:4294967173: ++%*8X:-0X7b:0:5: ++%8X:-0x7B:1:5:4294967173: ++%*8X:-0x7B:0:5: ++%8X:-1:1:2:4294967295: ++%*8X:-1:0:2: ++%8X:-0X1:1:4:4294967295: ++%*8X:-0X1:0:4: ++%8X:-0x1:1:4:4294967295: ++%*8X:-0x1:0:4: ++%8X:-0:1:2:0: ++%*8X:-0:0:2: ++%8X:-0X0:1:4:0: ++%*8X:-0X0:0:4: ++%8X:-0x0:1:4:0: ++%*8X:-0x0:0:4: ++%8X:0:1:1:0: ++%*8X:0:0:1: ++%8X:0X0:1:3:0: ++%*8X:0X0:0:3: ++%8X:0x0:1:3:0: ++%*8X:0x0:0:3: ++%8X:1:1:1:1: ++%*8X:1:0:1: ++%8X:0X1:1:3:1: ++%*8X:0X1:0:3: ++%8X:0x1:1:3:1: ++%*8X:0x1:0:3: ++%8X:2a:1:2:42: ++%*8X:2a:0:2: ++%8X:2A:1:2:42: ++%*8X:2A:0:2: ++%8X:0X2a:1:4:42: ++%*8X:0X2a:0:4: ++%8X:0x2A:1:4:42: ++%*8X:0x2A:0:4: ++%8X:ffffffff:1:8:4294967295: ++%*8X:ffffffff:0:8: ++%8X:FFFFFFFF:1:8:4294967295: ++%*8X:FFFFFFFF:0:8: ++%8X:0Xffffffff:1:8:16777215: ++%*8X:0Xffffffff:0:8: ++%8X:0xFFFFFFFF:1:8:16777215: ++%*8X:0xFFFFFFFF:0:8: ++%8X:100000000:1:8:268435456: ++%*8X:100000000:0:8: ++%8X:0X100000000:1:8:1048576: ++%*8X:0X100000000:0:8: ++%8X:0x100000000:1:8:1048576: ++%*8X:0x100000000:0:8: ++%8X:100001091:1:8:268435721: ++%*8X:100001091:0:8: ++%8X:0X100001091:1:8:1048577: ++%*8X:0X100001091:0:8: ++%8X:0x100001091:1:8:1048577: ++%*8X:0x100001091:0:8: ++%8X:+0:1:2:0: ++%*8X:+0:0:2: ++%8X:+0X0:1:4:0: ++%*8X:+0X0:0:4: ++%8X:+0x0:1:4:0: ++%*8X:+0x0:0:4: ++%8X:+1:1:2:1: ++%*8X:+1:0:2: ++%8X:+0X1:1:4:1: ++%*8X:+0X1:0:4: ++%8X:+0x1:1:4:1: ++%*8X:+0x1:0:4: ++%8X:+2a:1:3:42: ++%*8X:+2a:0:3: ++%8X:+2A:1:3:42: ++%*8X:+2A:0:3: ++%8X:+0X2a:1:5:42: ++%*8X:+0X2a:0:5: ++%8X:+0x2A:1:5:42: ++%*8X:+0x2A:0:5: ++%8X:+ffffffff:1:8:268435455: ++%*8X:+ffffffff:0:8: ++%8X:+FFFFFFFF:1:8:268435455: ++%*8X:+FFFFFFFF:0:8: ++%8X:+0Xffffffff:1:8:1048575: ++%*8X:+0Xffffffff:0:8: ++%8X:+0xFFFFFFFF:1:8:1048575: ++%*8X:+0xFFFFFFFF:0:8: ++%8X:+100000000:1:8:16777216: ++%*8X:+100000000:0:8: ++%8X:+0X100000000:1:8:65536: ++%*8X:+0X100000000:0:8: ++%8X:+0x100000000:1:8:65536: ++%*8X:+0x100000000:0:8: ++%8X:+100001091:1:8:16777232: ++%*8X:+100001091:0:8: ++%8X:+0X100001091:1:8:65536: ++%*8X:+0X100001091:0:8: ++%8X:+0x100001091:1:8:65536: ++%*8X:+0x100001091:0:8: ++%15X::0:-1: ++%*15X::0:-1: ++%15X:-7b:1:3:4294967173: ++%*15X:-7b:0:3: ++%15X:-7B:1:3:4294967173: ++%*15X:-7B:0:3: ++%15X:-0X7b:1:5:4294967173: ++%*15X:-0X7b:0:5: ++%15X:-0x7B:1:5:4294967173: ++%*15X:-0x7B:0:5: ++%15X:-1:1:2:4294967295: ++%*15X:-1:0:2: ++%15X:-0X1:1:4:4294967295: ++%*15X:-0X1:0:4: ++%15X:-0x1:1:4:4294967295: ++%*15X:-0x1:0:4: ++%15X:-0:1:2:0: ++%*15X:-0:0:2: ++%15X:-0X0:1:4:0: ++%*15X:-0X0:0:4: ++%15X:-0x0:1:4:0: ++%*15X:-0x0:0:4: ++%15X:0:1:1:0: ++%*15X:0:0:1: ++%15X:0X0:1:3:0: ++%*15X:0X0:0:3: ++%15X:0x0:1:3:0: ++%*15X:0x0:0:3: ++%15X:1:1:1:1: ++%*15X:1:0:1: ++%15X:0X1:1:3:1: ++%*15X:0X1:0:3: ++%15X:0x1:1:3:1: ++%*15X:0x1:0:3: ++%15X:2a:1:2:42: ++%*15X:2a:0:2: ++%15X:2A:1:2:42: ++%*15X:2A:0:2: ++%15X:0X2a:1:4:42: ++%*15X:0X2a:0:4: ++%15X:0x2A:1:4:42: ++%*15X:0x2A:0:4: ++%15X:ffffffff:1:8:4294967295: ++%*15X:ffffffff:0:8: ++%15X:FFFFFFFF:1:8:4294967295: ++%*15X:FFFFFFFF:0:8: ++%15X:0Xffffffff:1:10:4294967295: ++%*15X:0Xffffffff:0:10: ++%15X:0xFFFFFFFF:1:10:4294967295: ++%*15X:0xFFFFFFFF:0:10: ++%15X:100000000:1:9:0: ++%*15X:100000000:0:9: ++%15X:0X100000000:1:11:0: ++%*15X:0X100000000:0:11: ++%15X:0x100000000:1:11:0: ++%*15X:0x100000000:0:11: ++%15X:100001091:1:9:4241: ++%*15X:100001091:0:9: ++%15X:0X100001091:1:11:4241: ++%*15X:0X100001091:0:11: ++%15X:0x100001091:1:11:4241: ++%*15X:0x100001091:0:11: ++%15X:+0:1:2:0: ++%*15X:+0:0:2: ++%15X:+0X0:1:4:0: ++%*15X:+0X0:0:4: ++%15X:+0x0:1:4:0: ++%*15X:+0x0:0:4: ++%15X:+1:1:2:1: ++%*15X:+1:0:2: ++%15X:+0X1:1:4:1: ++%*15X:+0X1:0:4: ++%15X:+0x1:1:4:1: ++%*15X:+0x1:0:4: ++%15X:+2a:1:3:42: ++%*15X:+2a:0:3: ++%15X:+2A:1:3:42: ++%*15X:+2A:0:3: ++%15X:+0X2a:1:5:42: ++%*15X:+0X2a:0:5: ++%15X:+0x2A:1:5:42: ++%*15X:+0x2A:0:5: ++%15X:+ffffffff:1:9:4294967295: ++%*15X:+ffffffff:0:9: ++%15X:+FFFFFFFF:1:9:4294967295: ++%*15X:+FFFFFFFF:0:9: ++%15X:+0Xffffffff:1:11:4294967295: ++%*15X:+0Xffffffff:0:11: ++%15X:+0xFFFFFFFF:1:11:4294967295: ++%*15X:+0xFFFFFFFF:0:11: ++%15X:+100000000:1:10:0: ++%*15X:+100000000:0:10: ++%15X:+0X100000000:1:12:0: ++%*15X:+0X100000000:0:12: ++%15X:+0x100000000:1:12:0: ++%*15X:+0x100000000:0:12: ++%15X:+100001091:1:10:4241: ++%*15X:+100001091:0:10: ++%15X:+0X100001091:1:12:4241: ++%*15X:+0X100001091:0:12: ++%15X:+0x100001091:1:12:4241: ++%*15X:+0x100001091:0:12: ++%2X: :0:-1: ++%*2X: :0:-1: ++%2X: -7b:1:3:4294967289: ++%*2X: -7b:0:3: ++%2X: -7B:1:3:4294967289: ++%*2X: -7B:0:3: ++%2X: -0X7b:1:3:0: ++%*2X: -0X7b:0:3: ++%2X: -0x7B:1:3:0: ++%*2X: -0x7B:0:3: ++%2X: -1:1:3:4294967295: ++%*2X: -1:0:3: ++%2X: -0X1:1:3:0: ++%*2X: -0X1:0:3: ++%2X: -0x1:1:3:0: ++%*2X: -0x1:0:3: ++%2X: -0:1:3:0: ++%*2X: -0:0:3: ++%2X: -0X0:1:3:0: ++%*2X: -0X0:0:3: ++%2X: -0x0:1:3:0: ++%*2X: -0x0:0:3: ++%2X: 0:1:2:0: ++%*2X: 0:0:2: ++# BZ12701 %2X: 0X0:0:-1: ++# BZ12701 %*2X: 0X0:0:-1: ++# BZ12701 %2X: 0x0:0:-1: ++# BZ12701 %*2X: 0x0:0:-1: ++%2X: 1:1:2:1: ++%*2X: 1:0:2: ++# BZ12701 %2X: 0X1:0:-1: ++# BZ12701 %*2X: 0X1:0:-1: ++# BZ12701 %2X: 0x1:0:-1: ++# BZ12701 %*2X: 0x1:0:-1: ++%2X: 2a:1:3:42: ++%*2X: 2a:0:3: ++%2X: 2A:1:3:42: ++%*2X: 2A:0:3: ++# BZ12701 %2X: 0X2a:0:-1: ++# BZ12701 %*2X: 0X2a:0:-1: ++# BZ12701 %2X: 0x2A:0:-1: ++# BZ12701 %*2X: 0x2A:0:-1: ++%2X: ffffffff:1:3:255: ++%*2X: ffffffff:0:3: ++%2X: FFFFFFFF:1:3:255: ++%*2X: FFFFFFFF:0:3: ++# BZ12701 %2X: 0Xffffffff:0:-1: ++# BZ12701 %*2X: 0Xffffffff:0:-1: ++# BZ12701 %2X: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2X: 0xFFFFFFFF:0:-1: ++%2X: 100000000:1:3:16: ++%*2X: 100000000:0:3: ++# BZ12701 %2X: 0X100000000:0:-1: ++# BZ12701 %*2X: 0X100000000:0:-1: ++# BZ12701 %2X: 0x100000000:0:-1: ++# BZ12701 %*2X: 0x100000000:0:-1: ++%2X: 100001091:1:3:16: ++%*2X: 100001091:0:3: ++# BZ12701 %2X: 0X100001091:0:-1: ++# BZ12701 %*2X: 0X100001091:0:-1: ++# BZ12701 %2X: 0x100001091:0:-1: ++# BZ12701 %*2X: 0x100001091:0:-1: ++%2X: +0:1:3:0: ++%*2X: +0:0:3: ++%2X: +0X0:1:3:0: ++%*2X: +0X0:0:3: ++%2X: +0x0:1:3:0: ++%*2X: +0x0:0:3: ++%2X: +1:1:3:1: ++%*2X: +1:0:3: ++%2X: +0X1:1:3:0: ++%*2X: +0X1:0:3: ++%2X: +0x1:1:3:0: ++%*2X: +0x1:0:3: ++%2X: +2a:1:3:2: ++%*2X: +2a:0:3: ++%2X: +2A:1:3:2: ++%*2X: +2A:0:3: ++%2X: +0X2a:1:3:0: ++%*2X: +0X2a:0:3: ++%2X: +0x2A:1:3:0: ++%*2X: +0x2A:0:3: ++%2X: +ffffffff:1:3:15: ++%*2X: +ffffffff:0:3: ++%2X: +FFFFFFFF:1:3:15: ++%*2X: +FFFFFFFF:0:3: ++%2X: +0Xffffffff:1:3:0: ++%*2X: +0Xffffffff:0:3: ++%2X: +0xFFFFFFFF:1:3:0: ++%*2X: +0xFFFFFFFF:0:3: ++%2X: +100000000:1:3:1: ++%*2X: +100000000:0:3: ++%2X: +0X100000000:1:3:0: ++%*2X: +0X100000000:0:3: ++%2X: +0x100000000:1:3:0: ++%*2X: +0x100000000:0:3: ++%2X: +100001091:1:3:1: ++%*2X: +100001091:0:3: ++%2X: +0X100001091:1:3:0: ++%*2X: +0X100001091:0:3: ++%2X: +0x100001091:1:3:0: ++%*2X: +0x100001091:0:3: ++%15X: :0:-1: ++%*15X: :0:-1: ++%15X: -7b:1:4:4294967173: ++%*15X: -7b:0:4: ++%15X: -7B:1:4:4294967173: ++%*15X: -7B:0:4: ++%15X: -0X7b:1:6:4294967173: ++%*15X: -0X7b:0:6: ++%15X: -0x7B:1:6:4294967173: ++%*15X: -0x7B:0:6: ++%15X: -1:1:3:4294967295: ++%*15X: -1:0:3: ++%15X: -0X1:1:5:4294967295: ++%*15X: -0X1:0:5: ++%15X: -0x1:1:5:4294967295: ++%*15X: -0x1:0:5: ++%15X: -0:1:3:0: ++%*15X: -0:0:3: ++%15X: -0X0:1:5:0: ++%*15X: -0X0:0:5: ++%15X: -0x0:1:5:0: ++%*15X: -0x0:0:5: ++%15X: 0:1:2:0: ++%*15X: 0:0:2: ++%15X: 0X0:1:4:0: ++%*15X: 0X0:0:4: ++%15X: 0x0:1:4:0: ++%*15X: 0x0:0:4: ++%15X: 1:1:2:1: ++%*15X: 1:0:2: ++%15X: 0X1:1:4:1: ++%*15X: 0X1:0:4: ++%15X: 0x1:1:4:1: ++%*15X: 0x1:0:4: ++%15X: 2a:1:3:42: ++%*15X: 2a:0:3: ++%15X: 2A:1:3:42: ++%*15X: 2A:0:3: ++%15X: 0X2a:1:5:42: ++%*15X: 0X2a:0:5: ++%15X: 0x2A:1:5:42: ++%*15X: 0x2A:0:5: ++%15X: ffffffff:1:9:4294967295: ++%*15X: ffffffff:0:9: ++%15X: FFFFFFFF:1:9:4294967295: ++%*15X: FFFFFFFF:0:9: ++%15X: 0Xffffffff:1:11:4294967295: ++%*15X: 0Xffffffff:0:11: ++%15X: 0xFFFFFFFF:1:11:4294967295: ++%*15X: 0xFFFFFFFF:0:11: ++%15X: 100000000:1:10:0: ++%*15X: 100000000:0:10: ++%15X: 0X100000000:1:12:0: ++%*15X: 0X100000000:0:12: ++%15X: 0x100000000:1:12:0: ++%*15X: 0x100000000:0:12: ++%15X: 100001091:1:10:4241: ++%*15X: 100001091:0:10: ++%15X: 0X100001091:1:12:4241: ++%*15X: 0X100001091:0:12: ++%15X: 0x100001091:1:12:4241: ++%*15X: 0x100001091:0:12: ++%15X: +0:1:3:0: ++%*15X: +0:0:3: ++%15X: +0X0:1:5:0: ++%*15X: +0X0:0:5: ++%15X: +0x0:1:5:0: ++%*15X: +0x0:0:5: ++%15X: +1:1:3:1: ++%*15X: +1:0:3: ++%15X: +0X1:1:5:1: ++%*15X: +0X1:0:5: ++%15X: +0x1:1:5:1: ++%*15X: +0x1:0:5: ++%15X: +2a:1:4:42: ++%*15X: +2a:0:4: ++%15X: +2A:1:4:42: ++%*15X: +2A:0:4: ++%15X: +0X2a:1:6:42: ++%*15X: +0X2a:0:6: ++%15X: +0x2A:1:6:42: ++%*15X: +0x2A:0:6: ++%15X: +ffffffff:1:10:4294967295: ++%*15X: +ffffffff:0:10: ++%15X: +FFFFFFFF:1:10:4294967295: ++%*15X: +FFFFFFFF:0:10: ++%15X: +0Xffffffff:1:12:4294967295: ++%*15X: +0Xffffffff:0:12: ++%15X: +0xFFFFFFFF:1:12:4294967295: ++%*15X: +0xFFFFFFFF:0:12: ++%15X: +100000000:1:11:0: ++%*15X: +100000000:0:11: ++%15X: +0X100000000:1:13:0: ++%*15X: +0X100000000:0:13: ++%15X: +0x100000000:1:13:0: ++%*15X: +0x100000000:0:13: ++%15X: +100001091:1:11:4241: ++%*15X: +100001091:0:11: ++%15X: +0X100001091:1:13:4241: ++%*15X: +0X100001091:0:13: ++%15X: +0x100001091:1:13:4241: ++%*15X: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +new file mode 100644 +index 0000000000000000..ceb176e387185ae3 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +@@ -0,0 +1,644 @@ ++%lb::0:-1: ++%*lb::0:-1: ++%lb:-1111011:1:8:-123: ++%*lb:-1111011:0:8: ++%lb:-0B1111011:1:10:-123: ++%*lb:-0B1111011:0:10: ++%lb:-0b1111011:1:10:-123: ++%*lb:-0b1111011:0:10: ++%lb:-1:1:2:-1: ++%*lb:-1:0:2: ++%lb:-0B1:1:4:-1: ++%*lb:-0B1:0:4: ++%lb:-0b1:1:4:-1: ++%*lb:-0b1:0:4: ++%lb:-0:1:2:0: ++%*lb:-0:0:2: ++%lb:-0B0:1:4:0: ++%*lb:-0B0:0:4: ++%lb:-0b0:1:4:0: ++%*lb:-0b0:0:4: ++%lb:0:1:1:0: ++%*lb:0:0:1: ++%lb:0B0:1:3:0: ++%*lb:0B0:0:3: ++%lb:0b0:1:3:0: ++%*lb:0b0:0:3: ++%lb:1:1:1:1: ++%*lb:1:0:1: ++%lb:0B1:1:3:1: ++%*lb:0B1:0:3: ++%lb:0b1:1:3:1: ++%*lb:0b1:0:3: ++%lb:101010:1:6:42: ++%*lb:101010:0:6: ++%lb:0B101010:1:8:42: ++%*lb:0B101010:0:8: ++%lb:0b101010:1:8:42: ++%*lb:0b101010:0:8: ++%lb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: ++%*lb:1111111111111111111111111111111111111111111111111111111111111111:0:64: ++%lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: ++%*lb:10000000000000000000000000000000000000000000000000000000000000000:0:65: ++%lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: ++%*lb:10000000000000000000000000000000000000010100001110101011110110001:0:65: ++%lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lb:+0:1:2:0: ++%*lb:+0:0:2: ++%lb:+0B0:1:4:0: ++%*lb:+0B0:0:4: ++%lb:+0b0:1:4:0: ++%*lb:+0b0:0:4: ++%lb:+1:1:2:1: ++%*lb:+1:0:2: ++%lb:+0B1:1:4:1: ++%*lb:+0B1:0:4: ++%lb:+0b1:1:4:1: ++%*lb:+0b1:0:4: ++%lb:+101010:1:7:42: ++%*lb:+101010:0:7: ++%lb:+0B101010:1:9:42: ++%*lb:+0B101010:0:9: ++%lb:+0b101010:1:9:42: ++%*lb:+0b101010:0:9: ++%lb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: ++%*lb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%lb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: ++%*lb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%lb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: ++%*lb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%1lb::0:-1: ++%*1lb::0:-1: ++%1lb:-1111011:0:-1: ++%*1lb:-1111011:0:-1: ++%1lb:-0B1111011:0:-1: ++%*1lb:-0B1111011:0:-1: ++%1lb:-0b1111011:0:-1: ++%*1lb:-0b1111011:0:-1: ++%1lb:-1:0:-1: ++%*1lb:-1:0:-1: ++%1lb:-0B1:0:-1: ++%*1lb:-0B1:0:-1: ++%1lb:-0b1:0:-1: ++%*1lb:-0b1:0:-1: ++%1lb:-0:0:-1: ++%*1lb:-0:0:-1: ++%1lb:-0B0:0:-1: ++%*1lb:-0B0:0:-1: ++%1lb:-0b0:0:-1: ++%*1lb:-0b0:0:-1: ++%1lb:0:1:1:0: ++%*1lb:0:0:1: ++%1lb:0B0:1:1:0: ++%*1lb:0B0:0:1: ++%1lb:0b0:1:1:0: ++%*1lb:0b0:0:1: ++%1lb:1:1:1:1: ++%*1lb:1:0:1: ++%1lb:0B1:1:1:0: ++%*1lb:0B1:0:1: ++%1lb:0b1:1:1:0: ++%*1lb:0b1:0:1: ++%1lb:101010:1:1:1: ++%*1lb:101010:0:1: ++%1lb:0B101010:1:1:0: ++%*1lb:0B101010:0:1: ++%1lb:0b101010:1:1:0: ++%*1lb:0b101010:0:1: ++%1lb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: ++%*1lb:1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: ++%*1lb:10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: ++%*1lb:10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:+0:0:-1: ++%*1lb:+0:0:-1: ++%1lb:+0B0:0:-1: ++%*1lb:+0B0:0:-1: ++%1lb:+0b0:0:-1: ++%*1lb:+0b0:0:-1: ++%1lb:+1:0:-1: ++%*1lb:+1:0:-1: ++%1lb:+0B1:0:-1: ++%*1lb:+0B1:0:-1: ++%1lb:+0b1:0:-1: ++%*1lb:+0b1:0:-1: ++%1lb:+101010:0:-1: ++%*1lb:+101010:0:-1: ++%1lb:+0B101010:0:-1: ++%*1lb:+0B101010:0:-1: ++%1lb:+0b101010:0:-1: ++%*1lb:+0b101010:0:-1: ++%1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb::0:-1: ++%*2lb::0:-1: ++%2lb:-1111011:1:2:-1: ++%*2lb:-1111011:0:2: ++%2lb:-0B1111011:1:2:0: ++%*2lb:-0B1111011:0:2: ++%2lb:-0b1111011:1:2:0: ++%*2lb:-0b1111011:0:2: ++%2lb:-1:1:2:-1: ++%*2lb:-1:0:2: ++%2lb:-0B1:1:2:0: ++%*2lb:-0B1:0:2: ++%2lb:-0b1:1:2:0: ++%*2lb:-0b1:0:2: ++%2lb:-0:1:2:0: ++%*2lb:-0:0:2: ++%2lb:-0B0:1:2:0: ++%*2lb:-0B0:0:2: ++%2lb:-0b0:1:2:0: ++%*2lb:-0b0:0:2: ++%2lb:0:1:1:0: ++%*2lb:0:0:1: ++# BZ12701 %2lb:0B0:0:-1: ++# BZ12701 %*2lb:0B0:0:-1: ++# BZ12701 %2lb:0b0:0:-1: ++# BZ12701 %*2lb:0b0:0:-1: ++%2lb:1:1:1:1: ++%*2lb:1:0:1: ++# BZ12701 %2lb:0B1:0:-1: ++# BZ12701 %*2lb:0B1:0:-1: ++# BZ12701 %2lb:0b1:0:-1: ++# BZ12701 %*2lb:0b1:0:-1: ++%2lb:101010:1:2:2: ++%*2lb:101010:0:2: ++# BZ12701 %2lb:0B101010:0:-1: ++# BZ12701 %*2lb:0B101010:0:-1: ++# BZ12701 %2lb:0b101010:0:-1: ++# BZ12701 %*2lb:0b101010:0:-1: ++%2lb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: ++%*2lb:1111111111111111111111111111111111111111111111111111111111111111:0:2: ++# BZ12701 %2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: ++%*2lb:10000000000000000000000000000000000000000000000000000000000000000:0:2: ++# BZ12701 %2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: ++%*2lb:10000000000000000000000000000000000000010100001110101011110110001:0:2: ++# BZ12701 %2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb:+0:1:2:0: ++%*2lb:+0:0:2: ++%2lb:+0B0:1:2:0: ++%*2lb:+0B0:0:2: ++%2lb:+0b0:1:2:0: ++%*2lb:+0b0:0:2: ++%2lb:+1:1:2:1: ++%*2lb:+1:0:2: ++%2lb:+0B1:1:2:0: ++%*2lb:+0B1:0:2: ++%2lb:+0b1:1:2:0: ++%*2lb:+0b1:0:2: ++%2lb:+101010:1:2:1: ++%*2lb:+101010:0:2: ++%2lb:+0B101010:1:2:0: ++%*2lb:+0B101010:0:2: ++%2lb:+0b101010:1:2:0: ++%*2lb:+0b101010:0:2: ++%2lb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: ++%*2lb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: ++%*2lb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: ++%*2lb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15lb::0:-1: ++%*15lb::0:-1: ++%15lb:-1111011:1:8:-123: ++%*15lb:-1111011:0:8: ++%15lb:-0B1111011:1:10:-123: ++%*15lb:-0B1111011:0:10: ++%15lb:-0b1111011:1:10:-123: ++%*15lb:-0b1111011:0:10: ++%15lb:-1:1:2:-1: ++%*15lb:-1:0:2: ++%15lb:-0B1:1:4:-1: ++%*15lb:-0B1:0:4: ++%15lb:-0b1:1:4:-1: ++%*15lb:-0b1:0:4: ++%15lb:-0:1:2:0: ++%*15lb:-0:0:2: ++%15lb:-0B0:1:4:0: ++%*15lb:-0B0:0:4: ++%15lb:-0b0:1:4:0: ++%*15lb:-0b0:0:4: ++%15lb:0:1:1:0: ++%*15lb:0:0:1: ++%15lb:0B0:1:3:0: ++%*15lb:0B0:0:3: ++%15lb:0b0:1:3:0: ++%*15lb:0b0:0:3: ++%15lb:1:1:1:1: ++%*15lb:1:0:1: ++%15lb:0B1:1:3:1: ++%*15lb:0B1:0:3: ++%15lb:0b1:1:3:1: ++%*15lb:0b1:0:3: ++%15lb:101010:1:6:42: ++%*15lb:101010:0:6: ++%15lb:0B101010:1:8:42: ++%*15lb:0B101010:0:8: ++%15lb:0b101010:1:8:42: ++%*15lb:0b101010:0:8: ++%15lb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: ++%*15lb:1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: ++%*15lb:10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: ++%*15lb:10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0:1:2:0: ++%*15lb:+0:0:2: ++%15lb:+0B0:1:4:0: ++%*15lb:+0B0:0:4: ++%15lb:+0b0:1:4:0: ++%*15lb:+0b0:0:4: ++%15lb:+1:1:2:1: ++%*15lb:+1:0:2: ++%15lb:+0B1:1:4:1: ++%*15lb:+0B1:0:4: ++%15lb:+0b1:1:4:1: ++%*15lb:+0b1:0:4: ++%15lb:+101010:1:7:42: ++%*15lb:+101010:0:7: ++%15lb:+0B101010:1:9:42: ++%*15lb:+0B101010:0:9: ++%15lb:+0b101010:1:9:42: ++%*15lb:+0b101010:0:9: ++%15lb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: ++%*15lb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: ++%*15lb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: ++%*15lb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25lb::0:-1: ++%*25lb::0:-1: ++%25lb:-1111011:1:8:-123: ++%*25lb:-1111011:0:8: ++%25lb:-0B1111011:1:10:-123: ++%*25lb:-0B1111011:0:10: ++%25lb:-0b1111011:1:10:-123: ++%*25lb:-0b1111011:0:10: ++%25lb:-1:1:2:-1: ++%*25lb:-1:0:2: ++%25lb:-0B1:1:4:-1: ++%*25lb:-0B1:0:4: ++%25lb:-0b1:1:4:-1: ++%*25lb:-0b1:0:4: ++%25lb:-0:1:2:0: ++%*25lb:-0:0:2: ++%25lb:-0B0:1:4:0: ++%*25lb:-0B0:0:4: ++%25lb:-0b0:1:4:0: ++%*25lb:-0b0:0:4: ++%25lb:0:1:1:0: ++%*25lb:0:0:1: ++%25lb:0B0:1:3:0: ++%*25lb:0B0:0:3: ++%25lb:0b0:1:3:0: ++%*25lb:0b0:0:3: ++%25lb:1:1:1:1: ++%*25lb:1:0:1: ++%25lb:0B1:1:3:1: ++%*25lb:0B1:0:3: ++%25lb:0b1:1:3:1: ++%*25lb:0b1:0:3: ++%25lb:101010:1:6:42: ++%*25lb:101010:0:6: ++%25lb:0B101010:1:8:42: ++%*25lb:0B101010:0:8: ++%25lb:0b101010:1:8:42: ++%*25lb:0b101010:0:8: ++%25lb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: ++%*25lb:1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: ++%*25lb:10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: ++%*25lb:10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0:1:2:0: ++%*25lb:+0:0:2: ++%25lb:+0B0:1:4:0: ++%*25lb:+0B0:0:4: ++%25lb:+0b0:1:4:0: ++%*25lb:+0b0:0:4: ++%25lb:+1:1:2:1: ++%*25lb:+1:0:2: ++%25lb:+0B1:1:4:1: ++%*25lb:+0B1:0:4: ++%25lb:+0b1:1:4:1: ++%*25lb:+0b1:0:4: ++%25lb:+101010:1:7:42: ++%*25lb:+101010:0:7: ++%25lb:+0B101010:1:9:42: ++%*25lb:+0B101010:0:9: ++%25lb:+0b101010:1:9:42: ++%*25lb:+0b101010:0:9: ++%25lb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: ++%*25lb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: ++%*25lb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: ++%*25lb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2lb: :0:-1: ++%*2lb: :0:-1: ++%2lb: -1111011:1:3:-1: ++%*2lb: -1111011:0:3: ++%2lb: -0B1111011:1:3:0: ++%*2lb: -0B1111011:0:3: ++%2lb: -0b1111011:1:3:0: ++%*2lb: -0b1111011:0:3: ++%2lb: -1:1:3:-1: ++%*2lb: -1:0:3: ++%2lb: -0B1:1:3:0: ++%*2lb: -0B1:0:3: ++%2lb: -0b1:1:3:0: ++%*2lb: -0b1:0:3: ++%2lb: -0:1:3:0: ++%*2lb: -0:0:3: ++%2lb: -0B0:1:3:0: ++%*2lb: -0B0:0:3: ++%2lb: -0b0:1:3:0: ++%*2lb: -0b0:0:3: ++%2lb: 0:1:2:0: ++%*2lb: 0:0:2: ++# BZ12701 %2lb: 0B0:0:-1: ++# BZ12701 %*2lb: 0B0:0:-1: ++# BZ12701 %2lb: 0b0:0:-1: ++# BZ12701 %*2lb: 0b0:0:-1: ++%2lb: 1:1:2:1: ++%*2lb: 1:0:2: ++# BZ12701 %2lb: 0B1:0:-1: ++# BZ12701 %*2lb: 0B1:0:-1: ++# BZ12701 %2lb: 0b1:0:-1: ++# BZ12701 %*2lb: 0b1:0:-1: ++%2lb: 101010:1:3:2: ++%*2lb: 101010:0:3: ++# BZ12701 %2lb: 0B101010:0:-1: ++# BZ12701 %*2lb: 0B101010:0:-1: ++# BZ12701 %2lb: 0b101010:0:-1: ++# BZ12701 %*2lb: 0b101010:0:-1: ++%2lb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: ++%*2lb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: ++# BZ12701 %2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: ++%*2lb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: ++# BZ12701 %2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: ++%*2lb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: ++# BZ12701 %2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb: +0:1:3:0: ++%*2lb: +0:0:3: ++%2lb: +0B0:1:3:0: ++%*2lb: +0B0:0:3: ++%2lb: +0b0:1:3:0: ++%*2lb: +0b0:0:3: ++%2lb: +1:1:3:1: ++%*2lb: +1:0:3: ++%2lb: +0B1:1:3:0: ++%*2lb: +0B1:0:3: ++%2lb: +0b1:1:3:0: ++%*2lb: +0b1:0:3: ++%2lb: +101010:1:3:1: ++%*2lb: +101010:0:3: ++%2lb: +0B101010:1:3:0: ++%*2lb: +0B101010:0:3: ++%2lb: +0b101010:1:3:0: ++%*2lb: +0b101010:0:3: ++%2lb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: ++%*2lb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: ++%*2lb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: ++%*2lb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25lb: :0:-1: ++%*25lb: :0:-1: ++%25lb: -1111011:1:9:-123: ++%*25lb: -1111011:0:9: ++%25lb: -0B1111011:1:11:-123: ++%*25lb: -0B1111011:0:11: ++%25lb: -0b1111011:1:11:-123: ++%*25lb: -0b1111011:0:11: ++%25lb: -1:1:3:-1: ++%*25lb: -1:0:3: ++%25lb: -0B1:1:5:-1: ++%*25lb: -0B1:0:5: ++%25lb: -0b1:1:5:-1: ++%*25lb: -0b1:0:5: ++%25lb: -0:1:3:0: ++%*25lb: -0:0:3: ++%25lb: -0B0:1:5:0: ++%*25lb: -0B0:0:5: ++%25lb: -0b0:1:5:0: ++%*25lb: -0b0:0:5: ++%25lb: 0:1:2:0: ++%*25lb: 0:0:2: ++%25lb: 0B0:1:4:0: ++%*25lb: 0B0:0:4: ++%25lb: 0b0:1:4:0: ++%*25lb: 0b0:0:4: ++%25lb: 1:1:2:1: ++%*25lb: 1:0:2: ++%25lb: 0B1:1:4:1: ++%*25lb: 0B1:0:4: ++%25lb: 0b1:1:4:1: ++%*25lb: 0b1:0:4: ++%25lb: 101010:1:7:42: ++%*25lb: 101010:0:7: ++%25lb: 0B101010:1:9:42: ++%*25lb: 0B101010:0:9: ++%25lb: 0b101010:1:9:42: ++%*25lb: 0b101010:0:9: ++%25lb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: ++%*25lb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: ++%*25lb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: ++%*25lb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0:1:3:0: ++%*25lb: +0:0:3: ++%25lb: +0B0:1:5:0: ++%*25lb: +0B0:0:5: ++%25lb: +0b0:1:5:0: ++%*25lb: +0b0:0:5: ++%25lb: +1:1:3:1: ++%*25lb: +1:0:3: ++%25lb: +0B1:1:5:1: ++%*25lb: +0B1:0:5: ++%25lb: +0b1:1:5:1: ++%*25lb: +0b1:0:5: ++%25lb: +101010:1:8:42: ++%*25lb: +101010:0:8: ++%25lb: +0B101010:1:10:42: ++%*25lb: +0B101010:0:10: ++%25lb: +0b101010:1:10:42: ++%*25lb: +0b101010:0:10: ++%25lb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: ++%*25lb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: ++%*25lb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: ++%*25lb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input +new file mode 100644 +index 0000000000000000..dba0c62d15d5c9ca +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input +@@ -0,0 +1,434 @@ ++%lo::0:-1: ++%*lo::0:-1: ++%lo:-173:1:4:-123: ++%*lo:-173:0:4: ++%lo:-0173:1:5:-123: ++%*lo:-0173:0:5: ++%lo:-1:1:2:-1: ++%*lo:-1:0:2: ++%lo:-01:1:3:-1: ++%*lo:-01:0:3: ++%lo:-0:1:2:0: ++%*lo:-0:0:2: ++%lo:-00:1:3:0: ++%*lo:-00:0:3: ++%lo:0:1:1:0: ++%*lo:0:0:1: ++%lo:00:1:2:0: ++%*lo:00:0:2: ++%lo:1:1:1:1: ++%*lo:1:0:1: ++%lo:01:1:2:1: ++%*lo:01:0:2: ++%lo:52:1:2:42: ++%*lo:52:0:2: ++%lo:052:1:3:42: ++%*lo:052:0:3: ++%lo:1777777777777777777777:1:22:18446744073709551615: ++%*lo:1777777777777777777777:0:22: ++%lo:01777777777777777777777:1:23:18446744073709551615: ++%*lo:01777777777777777777777:0:23: ++%lo:2000000000000000000000:1:22:18446744073709551615: ++%*lo:2000000000000000000000:0:22: ++%lo:02000000000000000000000:1:23:18446744073709551615: ++%*lo:02000000000000000000000:0:23: ++%lo:2000000000000241653661:1:22:18446744073709551615: ++%*lo:2000000000000241653661:0:22: ++%lo:02000000000000241653661:1:23:18446744073709551615: ++%*lo:02000000000000241653661:0:23: ++%lo:+0:1:2:0: ++%*lo:+0:0:2: ++%lo:+00:1:3:0: ++%*lo:+00:0:3: ++%lo:+1:1:2:1: ++%*lo:+1:0:2: ++%lo:+01:1:3:1: ++%*lo:+01:0:3: ++%lo:+52:1:3:42: ++%*lo:+52:0:3: ++%lo:+052:1:4:42: ++%*lo:+052:0:4: ++%lo:+1777777777777777777777:1:23:18446744073709551615: ++%*lo:+1777777777777777777777:0:23: ++%lo:+01777777777777777777777:1:24:18446744073709551615: ++%*lo:+01777777777777777777777:0:24: ++%lo:+2000000000000000000000:1:23:18446744073709551615: ++%*lo:+2000000000000000000000:0:23: ++%lo:+02000000000000000000000:1:24:18446744073709551615: ++%*lo:+02000000000000000000000:0:24: ++%lo:+2000000000000241653661:1:23:18446744073709551615: ++%*lo:+2000000000000241653661:0:23: ++%lo:+02000000000000241653661:1:24:18446744073709551615: ++%*lo:+02000000000000241653661:0:24: ++%1lo::0:-1: ++%*1lo::0:-1: ++%1lo:-173:0:-1: ++%*1lo:-173:0:-1: ++%1lo:-0173:0:-1: ++%*1lo:-0173:0:-1: ++%1lo:-1:0:-1: ++%*1lo:-1:0:-1: ++%1lo:-01:0:-1: ++%*1lo:-01:0:-1: ++%1lo:-0:0:-1: ++%*1lo:-0:0:-1: ++%1lo:-00:0:-1: ++%*1lo:-00:0:-1: ++%1lo:0:1:1:0: ++%*1lo:0:0:1: ++%1lo:00:1:1:0: ++%*1lo:00:0:1: ++%1lo:1:1:1:1: ++%*1lo:1:0:1: ++%1lo:01:1:1:0: ++%*1lo:01:0:1: ++%1lo:52:1:1:5: ++%*1lo:52:0:1: ++%1lo:052:1:1:0: ++%*1lo:052:0:1: ++%1lo:1777777777777777777777:1:1:1: ++%*1lo:1777777777777777777777:0:1: ++%1lo:01777777777777777777777:1:1:0: ++%*1lo:01777777777777777777777:0:1: ++%1lo:2000000000000000000000:1:1:2: ++%*1lo:2000000000000000000000:0:1: ++%1lo:02000000000000000000000:1:1:0: ++%*1lo:02000000000000000000000:0:1: ++%1lo:2000000000000241653661:1:1:2: ++%*1lo:2000000000000241653661:0:1: ++%1lo:02000000000000241653661:1:1:0: ++%*1lo:02000000000000241653661:0:1: ++%1lo:+0:0:-1: ++%*1lo:+0:0:-1: ++%1lo:+00:0:-1: ++%*1lo:+00:0:-1: ++%1lo:+1:0:-1: ++%*1lo:+1:0:-1: ++%1lo:+01:0:-1: ++%*1lo:+01:0:-1: ++%1lo:+52:0:-1: ++%*1lo:+52:0:-1: ++%1lo:+052:0:-1: ++%*1lo:+052:0:-1: ++%1lo:+1777777777777777777777:0:-1: ++%*1lo:+1777777777777777777777:0:-1: ++%1lo:+01777777777777777777777:0:-1: ++%*1lo:+01777777777777777777777:0:-1: ++%1lo:+2000000000000000000000:0:-1: ++%*1lo:+2000000000000000000000:0:-1: ++%1lo:+02000000000000000000000:0:-1: ++%*1lo:+02000000000000000000000:0:-1: ++%1lo:+2000000000000241653661:0:-1: ++%*1lo:+2000000000000241653661:0:-1: ++%1lo:+02000000000000241653661:0:-1: ++%*1lo:+02000000000000241653661:0:-1: ++%2lo::0:-1: ++%*2lo::0:-1: ++%2lo:-173:1:2:-1: ++%*2lo:-173:0:2: ++%2lo:-0173:1:2:0: ++%*2lo:-0173:0:2: ++%2lo:-1:1:2:-1: ++%*2lo:-1:0:2: ++%2lo:-01:1:2:0: ++%*2lo:-01:0:2: ++%2lo:-0:1:2:0: ++%*2lo:-0:0:2: ++%2lo:-00:1:2:0: ++%*2lo:-00:0:2: ++%2lo:0:1:1:0: ++%*2lo:0:0:1: ++%2lo:00:1:2:0: ++%*2lo:00:0:2: ++%2lo:1:1:1:1: ++%*2lo:1:0:1: ++%2lo:01:1:2:1: ++%*2lo:01:0:2: ++%2lo:52:1:2:42: ++%*2lo:52:0:2: ++%2lo:052:1:2:5: ++%*2lo:052:0:2: ++%2lo:1777777777777777777777:1:2:15: ++%*2lo:1777777777777777777777:0:2: ++%2lo:01777777777777777777777:1:2:1: ++%*2lo:01777777777777777777777:0:2: ++%2lo:2000000000000000000000:1:2:16: ++%*2lo:2000000000000000000000:0:2: ++%2lo:02000000000000000000000:1:2:2: ++%*2lo:02000000000000000000000:0:2: ++%2lo:2000000000000241653661:1:2:16: ++%*2lo:2000000000000241653661:0:2: ++%2lo:02000000000000241653661:1:2:2: ++%*2lo:02000000000000241653661:0:2: ++%2lo:+0:1:2:0: ++%*2lo:+0:0:2: ++%2lo:+00:1:2:0: ++%*2lo:+00:0:2: ++%2lo:+1:1:2:1: ++%*2lo:+1:0:2: ++%2lo:+01:1:2:0: ++%*2lo:+01:0:2: ++%2lo:+52:1:2:5: ++%*2lo:+52:0:2: ++%2lo:+052:1:2:0: ++%*2lo:+052:0:2: ++%2lo:+1777777777777777777777:1:2:1: ++%*2lo:+1777777777777777777777:0:2: ++%2lo:+01777777777777777777777:1:2:0: ++%*2lo:+01777777777777777777777:0:2: ++%2lo:+2000000000000000000000:1:2:2: ++%*2lo:+2000000000000000000000:0:2: ++%2lo:+02000000000000000000000:1:2:0: ++%*2lo:+02000000000000000000000:0:2: ++%2lo:+2000000000000241653661:1:2:2: ++%*2lo:+2000000000000241653661:0:2: ++%2lo:+02000000000000241653661:1:2:0: ++%*2lo:+02000000000000241653661:0:2: ++%15lo::0:-1: ++%*15lo::0:-1: ++%15lo:-173:1:4:-123: ++%*15lo:-173:0:4: ++%15lo:-0173:1:5:-123: ++%*15lo:-0173:0:5: ++%15lo:-1:1:2:-1: ++%*15lo:-1:0:2: ++%15lo:-01:1:3:-1: ++%*15lo:-01:0:3: ++%15lo:-0:1:2:0: ++%*15lo:-0:0:2: ++%15lo:-00:1:3:0: ++%*15lo:-00:0:3: ++%15lo:0:1:1:0: ++%*15lo:0:0:1: ++%15lo:00:1:2:0: ++%*15lo:00:0:2: ++%15lo:1:1:1:1: ++%*15lo:1:0:1: ++%15lo:01:1:2:1: ++%*15lo:01:0:2: ++%15lo:52:1:2:42: ++%*15lo:52:0:2: ++%15lo:052:1:3:42: ++%*15lo:052:0:3: ++%15lo:1777777777777777777777:1:15:8796093022207: ++%*15lo:1777777777777777777777:0:15: ++%15lo:01777777777777777777777:1:15:1099511627775: ++%*15lo:01777777777777777777777:0:15: ++%15lo:2000000000000000000000:1:15:8796093022208: ++%*15lo:2000000000000000000000:0:15: ++%15lo:02000000000000000000000:1:15:1099511627776: ++%*15lo:02000000000000000000000:0:15: ++%15lo:2000000000000241653661:1:15:8796093022228: ++%*15lo:2000000000000241653661:0:15: ++%15lo:02000000000000241653661:1:15:1099511627778: ++%*15lo:02000000000000241653661:0:15: ++%15lo:+0:1:2:0: ++%*15lo:+0:0:2: ++%15lo:+00:1:3:0: ++%*15lo:+00:0:3: ++%15lo:+1:1:2:1: ++%*15lo:+1:0:2: ++%15lo:+01:1:3:1: ++%*15lo:+01:0:3: ++%15lo:+52:1:3:42: ++%*15lo:+52:0:3: ++%15lo:+052:1:4:42: ++%*15lo:+052:0:4: ++%15lo:+1777777777777777777777:1:15:1099511627775: ++%*15lo:+1777777777777777777777:0:15: ++%15lo:+01777777777777777777777:1:15:137438953471: ++%*15lo:+01777777777777777777777:0:15: ++%15lo:+2000000000000000000000:1:15:1099511627776: ++%*15lo:+2000000000000000000000:0:15: ++%15lo:+02000000000000000000000:1:15:137438953472: ++%*15lo:+02000000000000000000000:0:15: ++%15lo:+2000000000000241653661:1:15:1099511627778: ++%*15lo:+2000000000000241653661:0:15: ++%15lo:+02000000000000241653661:1:15:137438953472: ++%*15lo:+02000000000000241653661:0:15: ++%25lo::0:-1: ++%*25lo::0:-1: ++%25lo:-173:1:4:-123: ++%*25lo:-173:0:4: ++%25lo:-0173:1:5:-123: ++%*25lo:-0173:0:5: ++%25lo:-1:1:2:-1: ++%*25lo:-1:0:2: ++%25lo:-01:1:3:-1: ++%*25lo:-01:0:3: ++%25lo:-0:1:2:0: ++%*25lo:-0:0:2: ++%25lo:-00:1:3:0: ++%*25lo:-00:0:3: ++%25lo:0:1:1:0: ++%*25lo:0:0:1: ++%25lo:00:1:2:0: ++%*25lo:00:0:2: ++%25lo:1:1:1:1: ++%*25lo:1:0:1: ++%25lo:01:1:2:1: ++%*25lo:01:0:2: ++%25lo:52:1:2:42: ++%*25lo:52:0:2: ++%25lo:052:1:3:42: ++%*25lo:052:0:3: ++%25lo:1777777777777777777777:1:22:18446744073709551615: ++%*25lo:1777777777777777777777:0:22: ++%25lo:01777777777777777777777:1:23:18446744073709551615: ++%*25lo:01777777777777777777777:0:23: ++%25lo:2000000000000000000000:1:22:18446744073709551615: ++%*25lo:2000000000000000000000:0:22: ++%25lo:02000000000000000000000:1:23:18446744073709551615: ++%*25lo:02000000000000000000000:0:23: ++%25lo:2000000000000241653661:1:22:18446744073709551615: ++%*25lo:2000000000000241653661:0:22: ++%25lo:02000000000000241653661:1:23:18446744073709551615: ++%*25lo:02000000000000241653661:0:23: ++%25lo:+0:1:2:0: ++%*25lo:+0:0:2: ++%25lo:+00:1:3:0: ++%*25lo:+00:0:3: ++%25lo:+1:1:2:1: ++%*25lo:+1:0:2: ++%25lo:+01:1:3:1: ++%*25lo:+01:0:3: ++%25lo:+52:1:3:42: ++%*25lo:+52:0:3: ++%25lo:+052:1:4:42: ++%*25lo:+052:0:4: ++%25lo:+1777777777777777777777:1:23:18446744073709551615: ++%*25lo:+1777777777777777777777:0:23: ++%25lo:+01777777777777777777777:1:24:18446744073709551615: ++%*25lo:+01777777777777777777777:0:24: ++%25lo:+2000000000000000000000:1:23:18446744073709551615: ++%*25lo:+2000000000000000000000:0:23: ++%25lo:+02000000000000000000000:1:24:18446744073709551615: ++%*25lo:+02000000000000000000000:0:24: ++%25lo:+2000000000000241653661:1:23:18446744073709551615: ++%*25lo:+2000000000000241653661:0:23: ++%25lo:+02000000000000241653661:1:24:18446744073709551615: ++%*25lo:+02000000000000241653661:0:24: ++%2lo: :0:-1: ++%*2lo: :0:-1: ++%2lo: -173:1:3:-1: ++%*2lo: -173:0:3: ++%2lo: -0173:1:3:0: ++%*2lo: -0173:0:3: ++%2lo: -1:1:3:-1: ++%*2lo: -1:0:3: ++%2lo: -01:1:3:0: ++%*2lo: -01:0:3: ++%2lo: -0:1:3:0: ++%*2lo: -0:0:3: ++%2lo: -00:1:3:0: ++%*2lo: -00:0:3: ++%2lo: 0:1:2:0: ++%*2lo: 0:0:2: ++%2lo: 00:1:3:0: ++%*2lo: 00:0:3: ++%2lo: 1:1:2:1: ++%*2lo: 1:0:2: ++%2lo: 01:1:3:1: ++%*2lo: 01:0:3: ++%2lo: 52:1:3:42: ++%*2lo: 52:0:3: ++%2lo: 052:1:3:5: ++%*2lo: 052:0:3: ++%2lo: 1777777777777777777777:1:3:15: ++%*2lo: 1777777777777777777777:0:3: ++%2lo: 01777777777777777777777:1:3:1: ++%*2lo: 01777777777777777777777:0:3: ++%2lo: 2000000000000000000000:1:3:16: ++%*2lo: 2000000000000000000000:0:3: ++%2lo: 02000000000000000000000:1:3:2: ++%*2lo: 02000000000000000000000:0:3: ++%2lo: 2000000000000241653661:1:3:16: ++%*2lo: 2000000000000241653661:0:3: ++%2lo: 02000000000000241653661:1:3:2: ++%*2lo: 02000000000000241653661:0:3: ++%2lo: +0:1:3:0: ++%*2lo: +0:0:3: ++%2lo: +00:1:3:0: ++%*2lo: +00:0:3: ++%2lo: +1:1:3:1: ++%*2lo: +1:0:3: ++%2lo: +01:1:3:0: ++%*2lo: +01:0:3: ++%2lo: +52:1:3:5: ++%*2lo: +52:0:3: ++%2lo: +052:1:3:0: ++%*2lo: +052:0:3: ++%2lo: +1777777777777777777777:1:3:1: ++%*2lo: +1777777777777777777777:0:3: ++%2lo: +01777777777777777777777:1:3:0: ++%*2lo: +01777777777777777777777:0:3: ++%2lo: +2000000000000000000000:1:3:2: ++%*2lo: +2000000000000000000000:0:3: ++%2lo: +02000000000000000000000:1:3:0: ++%*2lo: +02000000000000000000000:0:3: ++%2lo: +2000000000000241653661:1:3:2: ++%*2lo: +2000000000000241653661:0:3: ++%2lo: +02000000000000241653661:1:3:0: ++%*2lo: +02000000000000241653661:0:3: ++%25lo: :0:-1: ++%*25lo: :0:-1: ++%25lo: -173:1:5:-123: ++%*25lo: -173:0:5: ++%25lo: -0173:1:6:-123: ++%*25lo: -0173:0:6: ++%25lo: -1:1:3:-1: ++%*25lo: -1:0:3: ++%25lo: -01:1:4:-1: ++%*25lo: -01:0:4: ++%25lo: -0:1:3:0: ++%*25lo: -0:0:3: ++%25lo: -00:1:4:0: ++%*25lo: -00:0:4: ++%25lo: 0:1:2:0: ++%*25lo: 0:0:2: ++%25lo: 00:1:3:0: ++%*25lo: 00:0:3: ++%25lo: 1:1:2:1: ++%*25lo: 1:0:2: ++%25lo: 01:1:3:1: ++%*25lo: 01:0:3: ++%25lo: 52:1:3:42: ++%*25lo: 52:0:3: ++%25lo: 052:1:4:42: ++%*25lo: 052:0:4: ++%25lo: 1777777777777777777777:1:23:18446744073709551615: ++%*25lo: 1777777777777777777777:0:23: ++%25lo: 01777777777777777777777:1:24:18446744073709551615: ++%*25lo: 01777777777777777777777:0:24: ++%25lo: 2000000000000000000000:1:23:18446744073709551615: ++%*25lo: 2000000000000000000000:0:23: ++%25lo: 02000000000000000000000:1:24:18446744073709551615: ++%*25lo: 02000000000000000000000:0:24: ++%25lo: 2000000000000241653661:1:23:18446744073709551615: ++%*25lo: 2000000000000241653661:0:23: ++%25lo: 02000000000000241653661:1:24:18446744073709551615: ++%*25lo: 02000000000000241653661:0:24: ++%25lo: +0:1:3:0: ++%*25lo: +0:0:3: ++%25lo: +00:1:4:0: ++%*25lo: +00:0:4: ++%25lo: +1:1:3:1: ++%*25lo: +1:0:3: ++%25lo: +01:1:4:1: ++%*25lo: +01:0:4: ++%25lo: +52:1:4:42: ++%*25lo: +52:0:4: ++%25lo: +052:1:5:42: ++%*25lo: +052:0:5: ++%25lo: +1777777777777777777777:1:24:18446744073709551615: ++%*25lo: +1777777777777777777777:0:24: ++%25lo: +01777777777777777777777:1:25:18446744073709551615: ++%*25lo: +01777777777777777777777:0:25: ++%25lo: +2000000000000000000000:1:24:18446744073709551615: ++%*25lo: +2000000000000000000000:0:24: ++%25lo: +02000000000000000000000:1:25:18446744073709551615: ++%*25lo: +02000000000000000000000:0:25: ++%25lo: +2000000000000241653661:1:24:18446744073709551615: ++%*25lo: +2000000000000241653661:0:24: ++%25lo: +02000000000000241653661:1:25:18446744073709551615: ++%*25lo: +02000000000000241653661:0:25: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input +new file mode 100644 +index 0000000000000000..6f42e2044436da0f +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input +@@ -0,0 +1,224 @@ ++%lu::0:-1: ++%*lu::0:-1: ++%lu:-123:1:4:18446744073709551493: ++%*lu:-123:0:4: ++%lu:-1:1:2:18446744073709551615: ++%*lu:-1:0:2: ++%lu:-0:1:2:0: ++%*lu:-0:0:2: ++%lu:0:1:1:0: ++%*lu:0:0:1: ++%lu:1:1:1:1: ++%*lu:1:0:1: ++%lu:42:1:2:42: ++%*lu:42:0:2: ++%lu:18446744073709551615:1:20:18446744073709551615: ++%*lu:18446744073709551615:0:20: ++%lu:18446744073709551616:1:20:18446744073709551615: ++%*lu:18446744073709551616:0:20: ++%lu:18446744073751975857:1:20:18446744073709551615: ++%*lu:18446744073751975857:0:20: ++%lu:+0:1:2:0: ++%*lu:+0:0:2: ++%lu:+1:1:2:1: ++%*lu:+1:0:2: ++%lu:+42:1:3:42: ++%*lu:+42:0:3: ++%lu:+18446744073709551615:1:21:18446744073709551615: ++%*lu:+18446744073709551615:0:21: ++%lu:+18446744073709551616:1:21:18446744073709551615: ++%*lu:+18446744073709551616:0:21: ++%lu:+18446744073751975857:1:21:18446744073709551615: ++%*lu:+18446744073751975857:0:21: ++%1lu::0:-1: ++%*1lu::0:-1: ++%1lu:-123:0:-1: ++%*1lu:-123:0:-1: ++%1lu:-1:0:-1: ++%*1lu:-1:0:-1: ++%1lu:-0:0:-1: ++%*1lu:-0:0:-1: ++%1lu:0:1:1:0: ++%*1lu:0:0:1: ++%1lu:1:1:1:1: ++%*1lu:1:0:1: ++%1lu:42:1:1:4: ++%*1lu:42:0:1: ++%1lu:18446744073709551615:1:1:1: ++%*1lu:18446744073709551615:0:1: ++%1lu:18446744073709551616:1:1:1: ++%*1lu:18446744073709551616:0:1: ++%1lu:18446744073751975857:1:1:1: ++%*1lu:18446744073751975857:0:1: ++%1lu:+0:0:-1: ++%*1lu:+0:0:-1: ++%1lu:+1:0:-1: ++%*1lu:+1:0:-1: ++%1lu:+42:0:-1: ++%*1lu:+42:0:-1: ++%1lu:+18446744073709551615:0:-1: ++%*1lu:+18446744073709551615:0:-1: ++%1lu:+18446744073709551616:0:-1: ++%*1lu:+18446744073709551616:0:-1: ++%1lu:+18446744073751975857:0:-1: ++%*1lu:+18446744073751975857:0:-1: ++%2lu::0:-1: ++%*2lu::0:-1: ++%2lu:-123:1:2:18446744073709551615: ++%*2lu:-123:0:2: ++%2lu:-1:1:2:18446744073709551615: ++%*2lu:-1:0:2: ++%2lu:-0:1:2:0: ++%*2lu:-0:0:2: ++%2lu:0:1:1:0: ++%*2lu:0:0:1: ++%2lu:1:1:1:1: ++%*2lu:1:0:1: ++%2lu:42:1:2:42: ++%*2lu:42:0:2: ++%2lu:18446744073709551615:1:2:18: ++%*2lu:18446744073709551615:0:2: ++%2lu:18446744073709551616:1:2:18: ++%*2lu:18446744073709551616:0:2: ++%2lu:18446744073751975857:1:2:18: ++%*2lu:18446744073751975857:0:2: ++%2lu:+0:1:2:0: ++%*2lu:+0:0:2: ++%2lu:+1:1:2:1: ++%*2lu:+1:0:2: ++%2lu:+42:1:2:4: ++%*2lu:+42:0:2: ++%2lu:+18446744073709551615:1:2:1: ++%*2lu:+18446744073709551615:0:2: ++%2lu:+18446744073709551616:1:2:1: ++%*2lu:+18446744073709551616:0:2: ++%2lu:+18446744073751975857:1:2:1: ++%*2lu:+18446744073751975857:0:2: ++%15lu::0:-1: ++%*15lu::0:-1: ++%15lu:-123:1:4:18446744073709551493: ++%*15lu:-123:0:4: ++%15lu:-1:1:2:18446744073709551615: ++%*15lu:-1:0:2: ++%15lu:-0:1:2:0: ++%*15lu:-0:0:2: ++%15lu:0:1:1:0: ++%*15lu:0:0:1: ++%15lu:1:1:1:1: ++%*15lu:1:0:1: ++%15lu:42:1:2:42: ++%*15lu:42:0:2: ++%15lu:18446744073709551615:1:15:184467440737095: ++%*15lu:18446744073709551615:0:15: ++%15lu:18446744073709551616:1:15:184467440737095: ++%*15lu:18446744073709551616:0:15: ++%15lu:18446744073751975857:1:15:184467440737519: ++%*15lu:18446744073751975857:0:15: ++%15lu:+0:1:2:0: ++%*15lu:+0:0:2: ++%15lu:+1:1:2:1: ++%*15lu:+1:0:2: ++%15lu:+42:1:3:42: ++%*15lu:+42:0:3: ++%15lu:+18446744073709551615:1:15:18446744073709: ++%*15lu:+18446744073709551615:0:15: ++%15lu:+18446744073709551616:1:15:18446744073709: ++%*15lu:+18446744073709551616:0:15: ++%15lu:+18446744073751975857:1:15:18446744073751: ++%*15lu:+18446744073751975857:0:15: ++%25lu::0:-1: ++%*25lu::0:-1: ++%25lu:-123:1:4:18446744073709551493: ++%*25lu:-123:0:4: ++%25lu:-1:1:2:18446744073709551615: ++%*25lu:-1:0:2: ++%25lu:-0:1:2:0: ++%*25lu:-0:0:2: ++%25lu:0:1:1:0: ++%*25lu:0:0:1: ++%25lu:1:1:1:1: ++%*25lu:1:0:1: ++%25lu:42:1:2:42: ++%*25lu:42:0:2: ++%25lu:18446744073709551615:1:20:18446744073709551615: ++%*25lu:18446744073709551615:0:20: ++%25lu:18446744073709551616:1:20:18446744073709551615: ++%*25lu:18446744073709551616:0:20: ++%25lu:18446744073751975857:1:20:18446744073709551615: ++%*25lu:18446744073751975857:0:20: ++%25lu:+0:1:2:0: ++%*25lu:+0:0:2: ++%25lu:+1:1:2:1: ++%*25lu:+1:0:2: ++%25lu:+42:1:3:42: ++%*25lu:+42:0:3: ++%25lu:+18446744073709551615:1:21:18446744073709551615: ++%*25lu:+18446744073709551615:0:21: ++%25lu:+18446744073709551616:1:21:18446744073709551615: ++%*25lu:+18446744073709551616:0:21: ++%25lu:+18446744073751975857:1:21:18446744073709551615: ++%*25lu:+18446744073751975857:0:21: ++%2lu: :0:-1: ++%*2lu: :0:-1: ++%2lu: -123:1:3:18446744073709551615: ++%*2lu: -123:0:3: ++%2lu: -1:1:3:18446744073709551615: ++%*2lu: -1:0:3: ++%2lu: -0:1:3:0: ++%*2lu: -0:0:3: ++%2lu: 0:1:2:0: ++%*2lu: 0:0:2: ++%2lu: 1:1:2:1: ++%*2lu: 1:0:2: ++%2lu: 42:1:3:42: ++%*2lu: 42:0:3: ++%2lu: 18446744073709551615:1:3:18: ++%*2lu: 18446744073709551615:0:3: ++%2lu: 18446744073709551616:1:3:18: ++%*2lu: 18446744073709551616:0:3: ++%2lu: 18446744073751975857:1:3:18: ++%*2lu: 18446744073751975857:0:3: ++%2lu: +0:1:3:0: ++%*2lu: +0:0:3: ++%2lu: +1:1:3:1: ++%*2lu: +1:0:3: ++%2lu: +42:1:3:4: ++%*2lu: +42:0:3: ++%2lu: +18446744073709551615:1:3:1: ++%*2lu: +18446744073709551615:0:3: ++%2lu: +18446744073709551616:1:3:1: ++%*2lu: +18446744073709551616:0:3: ++%2lu: +18446744073751975857:1:3:1: ++%*2lu: +18446744073751975857:0:3: ++%25lu: :0:-1: ++%*25lu: :0:-1: ++%25lu: -123:1:5:18446744073709551493: ++%*25lu: -123:0:5: ++%25lu: -1:1:3:18446744073709551615: ++%*25lu: -1:0:3: ++%25lu: -0:1:3:0: ++%*25lu: -0:0:3: ++%25lu: 0:1:2:0: ++%*25lu: 0:0:2: ++%25lu: 1:1:2:1: ++%*25lu: 1:0:2: ++%25lu: 42:1:3:42: ++%*25lu: 42:0:3: ++%25lu: 18446744073709551615:1:21:18446744073709551615: ++%*25lu: 18446744073709551615:0:21: ++%25lu: 18446744073709551616:1:21:18446744073709551615: ++%*25lu: 18446744073709551616:0:21: ++%25lu: 18446744073751975857:1:21:18446744073709551615: ++%*25lu: 18446744073751975857:0:21: ++%25lu: +0:1:3:0: ++%*25lu: +0:0:3: ++%25lu: +1:1:3:1: ++%*25lu: +1:0:3: ++%25lu: +42:1:4:42: ++%*25lu: +42:0:4: ++%25lu: +18446744073709551615:1:22:18446744073709551615: ++%*25lu: +18446744073709551615:0:22: ++%25lu: +18446744073709551616:1:22:18446744073709551615: ++%*25lu: +18446744073709551616:0:22: ++%25lu: +18446744073751975857:1:22:18446744073709551615: ++%*25lu: +18446744073751975857:0:22: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input +new file mode 100644 +index 0000000000000000..abe68729dd49d779 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input +@@ -0,0 +1,742 @@ ++%lx::0:-1: ++%*lx::0:-1: ++%lx:-7b:1:3:18446744073709551493: ++%*lx:-7b:0:3: ++%lx:-7B:1:3:18446744073709551493: ++%*lx:-7B:0:3: ++%lx:-0X7b:1:5:18446744073709551493: ++%*lx:-0X7b:0:5: ++%lx:-0x7B:1:5:18446744073709551493: ++%*lx:-0x7B:0:5: ++%lx:-1:1:2:18446744073709551615: ++%*lx:-1:0:2: ++%lx:-0X1:1:4:18446744073709551615: ++%*lx:-0X1:0:4: ++%lx:-0x1:1:4:18446744073709551615: ++%*lx:-0x1:0:4: ++%lx:-0:1:2:0: ++%*lx:-0:0:2: ++%lx:-0X0:1:4:0: ++%*lx:-0X0:0:4: ++%lx:-0x0:1:4:0: ++%*lx:-0x0:0:4: ++%lx:0:1:1:0: ++%*lx:0:0:1: ++%lx:0X0:1:3:0: ++%*lx:0X0:0:3: ++%lx:0x0:1:3:0: ++%*lx:0x0:0:3: ++%lx:1:1:1:1: ++%*lx:1:0:1: ++%lx:0X1:1:3:1: ++%*lx:0X1:0:3: ++%lx:0x1:1:3:1: ++%*lx:0x1:0:3: ++%lx:2a:1:2:42: ++%*lx:2a:0:2: ++%lx:2A:1:2:42: ++%*lx:2A:0:2: ++%lx:0X2a:1:4:42: ++%*lx:0X2a:0:4: ++%lx:0x2A:1:4:42: ++%*lx:0x2A:0:4: ++%lx:ffffffffffffffff:1:16:18446744073709551615: ++%*lx:ffffffffffffffff:0:16: ++%lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*lx:FFFFFFFFFFFFFFFF:0:16: ++%lx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*lx:0Xffffffffffffffff:0:18: ++%lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*lx:0xFFFFFFFFFFFFFFFF:0:18: ++%lx:10000000000000000:1:17:18446744073709551615: ++%*lx:10000000000000000:0:17: ++%lx:0X10000000000000000:1:19:18446744073709551615: ++%*lx:0X10000000000000000:0:19: ++%lx:0x10000000000000000:1:19:18446744073709551615: ++%*lx:0x10000000000000000:0:19: ++%lx:100000000028757b1:1:17:18446744073709551615: ++%*lx:100000000028757b1:0:17: ++%lx:100000000028757B1:1:17:18446744073709551615: ++%*lx:100000000028757B1:0:17: ++%lx:0X100000000028757b1:1:19:18446744073709551615: ++%*lx:0X100000000028757b1:0:19: ++%lx:0x100000000028757B1:1:19:18446744073709551615: ++%*lx:0x100000000028757B1:0:19: ++%lx:+0:1:2:0: ++%*lx:+0:0:2: ++%lx:+0X0:1:4:0: ++%*lx:+0X0:0:4: ++%lx:+0x0:1:4:0: ++%*lx:+0x0:0:4: ++%lx:+1:1:2:1: ++%*lx:+1:0:2: ++%lx:+0X1:1:4:1: ++%*lx:+0X1:0:4: ++%lx:+0x1:1:4:1: ++%*lx:+0x1:0:4: ++%lx:+2a:1:3:42: ++%*lx:+2a:0:3: ++%lx:+2A:1:3:42: ++%*lx:+2A:0:3: ++%lx:+0X2a:1:5:42: ++%*lx:+0X2a:0:5: ++%lx:+0x2A:1:5:42: ++%*lx:+0x2A:0:5: ++%lx:+ffffffffffffffff:1:17:18446744073709551615: ++%*lx:+ffffffffffffffff:0:17: ++%lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*lx:+FFFFFFFFFFFFFFFF:0:17: ++%lx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*lx:+0Xffffffffffffffff:0:19: ++%lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*lx:+0xFFFFFFFFFFFFFFFF:0:19: ++%lx:+10000000000000000:1:18:18446744073709551615: ++%*lx:+10000000000000000:0:18: ++%lx:+0X10000000000000000:1:20:18446744073709551615: ++%*lx:+0X10000000000000000:0:20: ++%lx:+0x10000000000000000:1:20:18446744073709551615: ++%*lx:+0x10000000000000000:0:20: ++%lx:+100000000028757b1:1:18:18446744073709551615: ++%*lx:+100000000028757b1:0:18: ++%lx:+100000000028757B1:1:18:18446744073709551615: ++%*lx:+100000000028757B1:0:18: ++%lx:+0X100000000028757b1:1:20:18446744073709551615: ++%*lx:+0X100000000028757b1:0:20: ++%lx:+0x100000000028757B1:1:20:18446744073709551615: ++%*lx:+0x100000000028757B1:0:20: ++%1lx::0:-1: ++%*1lx::0:-1: ++%1lx:-7b:0:-1: ++%*1lx:-7b:0:-1: ++%1lx:-7B:0:-1: ++%*1lx:-7B:0:-1: ++%1lx:-0X7b:0:-1: ++%*1lx:-0X7b:0:-1: ++%1lx:-0x7B:0:-1: ++%*1lx:-0x7B:0:-1: ++%1lx:-1:0:-1: ++%*1lx:-1:0:-1: ++%1lx:-0X1:0:-1: ++%*1lx:-0X1:0:-1: ++%1lx:-0x1:0:-1: ++%*1lx:-0x1:0:-1: ++%1lx:-0:0:-1: ++%*1lx:-0:0:-1: ++%1lx:-0X0:0:-1: ++%*1lx:-0X0:0:-1: ++%1lx:-0x0:0:-1: ++%*1lx:-0x0:0:-1: ++%1lx:0:1:1:0: ++%*1lx:0:0:1: ++%1lx:0X0:1:1:0: ++%*1lx:0X0:0:1: ++%1lx:0x0:1:1:0: ++%*1lx:0x0:0:1: ++%1lx:1:1:1:1: ++%*1lx:1:0:1: ++%1lx:0X1:1:1:0: ++%*1lx:0X1:0:1: ++%1lx:0x1:1:1:0: ++%*1lx:0x1:0:1: ++%1lx:2a:1:1:2: ++%*1lx:2a:0:1: ++%1lx:2A:1:1:2: ++%*1lx:2A:0:1: ++%1lx:0X2a:1:1:0: ++%*1lx:0X2a:0:1: ++%1lx:0x2A:1:1:0: ++%*1lx:0x2A:0:1: ++%1lx:ffffffffffffffff:1:1:15: ++%*1lx:ffffffffffffffff:0:1: ++%1lx:FFFFFFFFFFFFFFFF:1:1:15: ++%*1lx:FFFFFFFFFFFFFFFF:0:1: ++%1lx:0Xffffffffffffffff:1:1:0: ++%*1lx:0Xffffffffffffffff:0:1: ++%1lx:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1lx:0xFFFFFFFFFFFFFFFF:0:1: ++%1lx:10000000000000000:1:1:1: ++%*1lx:10000000000000000:0:1: ++%1lx:0X10000000000000000:1:1:0: ++%*1lx:0X10000000000000000:0:1: ++%1lx:0x10000000000000000:1:1:0: ++%*1lx:0x10000000000000000:0:1: ++%1lx:100000000028757b1:1:1:1: ++%*1lx:100000000028757b1:0:1: ++%1lx:100000000028757B1:1:1:1: ++%*1lx:100000000028757B1:0:1: ++%1lx:0X100000000028757b1:1:1:0: ++%*1lx:0X100000000028757b1:0:1: ++%1lx:0x100000000028757B1:1:1:0: ++%*1lx:0x100000000028757B1:0:1: ++%1lx:+0:0:-1: ++%*1lx:+0:0:-1: ++%1lx:+0X0:0:-1: ++%*1lx:+0X0:0:-1: ++%1lx:+0x0:0:-1: ++%*1lx:+0x0:0:-1: ++%1lx:+1:0:-1: ++%*1lx:+1:0:-1: ++%1lx:+0X1:0:-1: ++%*1lx:+0X1:0:-1: ++%1lx:+0x1:0:-1: ++%*1lx:+0x1:0:-1: ++%1lx:+2a:0:-1: ++%*1lx:+2a:0:-1: ++%1lx:+2A:0:-1: ++%*1lx:+2A:0:-1: ++%1lx:+0X2a:0:-1: ++%*1lx:+0X2a:0:-1: ++%1lx:+0x2A:0:-1: ++%*1lx:+0x2A:0:-1: ++%1lx:+ffffffffffffffff:0:-1: ++%*1lx:+ffffffffffffffff:0:-1: ++%1lx:+FFFFFFFFFFFFFFFF:0:-1: ++%*1lx:+FFFFFFFFFFFFFFFF:0:-1: ++%1lx:+0Xffffffffffffffff:0:-1: ++%*1lx:+0Xffffffffffffffff:0:-1: ++%1lx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1lx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1lx:+10000000000000000:0:-1: ++%*1lx:+10000000000000000:0:-1: ++%1lx:+0X10000000000000000:0:-1: ++%*1lx:+0X10000000000000000:0:-1: ++%1lx:+0x10000000000000000:0:-1: ++%*1lx:+0x10000000000000000:0:-1: ++%1lx:+100000000028757b1:0:-1: ++%*1lx:+100000000028757b1:0:-1: ++%1lx:+100000000028757B1:0:-1: ++%*1lx:+100000000028757B1:0:-1: ++%1lx:+0X100000000028757b1:0:-1: ++%*1lx:+0X100000000028757b1:0:-1: ++%1lx:+0x100000000028757B1:0:-1: ++%*1lx:+0x100000000028757B1:0:-1: ++%2lx::0:-1: ++%*2lx::0:-1: ++%2lx:-7b:1:2:18446744073709551609: ++%*2lx:-7b:0:2: ++%2lx:-7B:1:2:18446744073709551609: ++%*2lx:-7B:0:2: ++%2lx:-0X7b:1:2:0: ++%*2lx:-0X7b:0:2: ++%2lx:-0x7B:1:2:0: ++%*2lx:-0x7B:0:2: ++%2lx:-1:1:2:18446744073709551615: ++%*2lx:-1:0:2: ++%2lx:-0X1:1:2:0: ++%*2lx:-0X1:0:2: ++%2lx:-0x1:1:2:0: ++%*2lx:-0x1:0:2: ++%2lx:-0:1:2:0: ++%*2lx:-0:0:2: ++%2lx:-0X0:1:2:0: ++%*2lx:-0X0:0:2: ++%2lx:-0x0:1:2:0: ++%*2lx:-0x0:0:2: ++%2lx:0:1:1:0: ++%*2lx:0:0:1: ++# BZ12701 %2lx:0X0:0:-1: ++# BZ12701 %*2lx:0X0:0:-1: ++# BZ12701 %2lx:0x0:0:-1: ++# BZ12701 %*2lx:0x0:0:-1: ++%2lx:1:1:1:1: ++%*2lx:1:0:1: ++# BZ12701 %2lx:0X1:0:-1: ++# BZ12701 %*2lx:0X1:0:-1: ++# BZ12701 %2lx:0x1:0:-1: ++# BZ12701 %*2lx:0x1:0:-1: ++%2lx:2a:1:2:42: ++%*2lx:2a:0:2: ++%2lx:2A:1:2:42: ++%*2lx:2A:0:2: ++# BZ12701 %2lx:0X2a:0:-1: ++# BZ12701 %*2lx:0X2a:0:-1: ++# BZ12701 %2lx:0x2A:0:-1: ++# BZ12701 %*2lx:0x2A:0:-1: ++%2lx:ffffffffffffffff:1:2:255: ++%*2lx:ffffffffffffffff:0:2: ++%2lx:FFFFFFFFFFFFFFFF:1:2:255: ++%*2lx:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2lx:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lx:0Xffffffffffffffff:0:-1: ++# BZ12701 %2lx:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lx:0xFFFFFFFFFFFFFFFF:0:-1: ++%2lx:10000000000000000:1:2:16: ++%*2lx:10000000000000000:0:2: ++# BZ12701 %2lx:0X10000000000000000:0:-1: ++# BZ12701 %*2lx:0X10000000000000000:0:-1: ++# BZ12701 %2lx:0x10000000000000000:0:-1: ++# BZ12701 %*2lx:0x10000000000000000:0:-1: ++%2lx:100000000028757b1:1:2:16: ++%*2lx:100000000028757b1:0:2: ++%2lx:100000000028757B1:1:2:16: ++%*2lx:100000000028757B1:0:2: ++# BZ12701 %2lx:0X100000000028757b1:0:-1: ++# BZ12701 %*2lx:0X100000000028757b1:0:-1: ++# BZ12701 %2lx:0x100000000028757B1:0:-1: ++# BZ12701 %*2lx:0x100000000028757B1:0:-1: ++%2lx:+0:1:2:0: ++%*2lx:+0:0:2: ++%2lx:+0X0:1:2:0: ++%*2lx:+0X0:0:2: ++%2lx:+0x0:1:2:0: ++%*2lx:+0x0:0:2: ++%2lx:+1:1:2:1: ++%*2lx:+1:0:2: ++%2lx:+0X1:1:2:0: ++%*2lx:+0X1:0:2: ++%2lx:+0x1:1:2:0: ++%*2lx:+0x1:0:2: ++%2lx:+2a:1:2:2: ++%*2lx:+2a:0:2: ++%2lx:+2A:1:2:2: ++%*2lx:+2A:0:2: ++%2lx:+0X2a:1:2:0: ++%*2lx:+0X2a:0:2: ++%2lx:+0x2A:1:2:0: ++%*2lx:+0x2A:0:2: ++%2lx:+ffffffffffffffff:1:2:15: ++%*2lx:+ffffffffffffffff:0:2: ++%2lx:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2lx:+FFFFFFFFFFFFFFFF:0:2: ++%2lx:+0Xffffffffffffffff:1:2:0: ++%*2lx:+0Xffffffffffffffff:0:2: ++%2lx:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2lx:+0xFFFFFFFFFFFFFFFF:0:2: ++%2lx:+10000000000000000:1:2:1: ++%*2lx:+10000000000000000:0:2: ++%2lx:+0X10000000000000000:1:2:0: ++%*2lx:+0X10000000000000000:0:2: ++%2lx:+0x10000000000000000:1:2:0: ++%*2lx:+0x10000000000000000:0:2: ++%2lx:+100000000028757b1:1:2:1: ++%*2lx:+100000000028757b1:0:2: ++%2lx:+100000000028757B1:1:2:1: ++%*2lx:+100000000028757B1:0:2: ++%2lx:+0X100000000028757b1:1:2:0: ++%*2lx:+0X100000000028757b1:0:2: ++%2lx:+0x100000000028757B1:1:2:0: ++%*2lx:+0x100000000028757B1:0:2: ++%15lx::0:-1: ++%*15lx::0:-1: ++%15lx:-7b:1:3:18446744073709551493: ++%*15lx:-7b:0:3: ++%15lx:-7B:1:3:18446744073709551493: ++%*15lx:-7B:0:3: ++%15lx:-0X7b:1:5:18446744073709551493: ++%*15lx:-0X7b:0:5: ++%15lx:-0x7B:1:5:18446744073709551493: ++%*15lx:-0x7B:0:5: ++%15lx:-1:1:2:18446744073709551615: ++%*15lx:-1:0:2: ++%15lx:-0X1:1:4:18446744073709551615: ++%*15lx:-0X1:0:4: ++%15lx:-0x1:1:4:18446744073709551615: ++%*15lx:-0x1:0:4: ++%15lx:-0:1:2:0: ++%*15lx:-0:0:2: ++%15lx:-0X0:1:4:0: ++%*15lx:-0X0:0:4: ++%15lx:-0x0:1:4:0: ++%*15lx:-0x0:0:4: ++%15lx:0:1:1:0: ++%*15lx:0:0:1: ++%15lx:0X0:1:3:0: ++%*15lx:0X0:0:3: ++%15lx:0x0:1:3:0: ++%*15lx:0x0:0:3: ++%15lx:1:1:1:1: ++%*15lx:1:0:1: ++%15lx:0X1:1:3:1: ++%*15lx:0X1:0:3: ++%15lx:0x1:1:3:1: ++%*15lx:0x1:0:3: ++%15lx:2a:1:2:42: ++%*15lx:2a:0:2: ++%15lx:2A:1:2:42: ++%*15lx:2A:0:2: ++%15lx:0X2a:1:4:42: ++%*15lx:0X2a:0:4: ++%15lx:0x2A:1:4:42: ++%*15lx:0x2A:0:4: ++%15lx:ffffffffffffffff:1:15:1152921504606846975: ++%*15lx:ffffffffffffffff:0:15: ++%15lx:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15lx:FFFFFFFFFFFFFFFF:0:15: ++%15lx:0Xffffffffffffffff:1:15:4503599627370495: ++%*15lx:0Xffffffffffffffff:0:15: ++%15lx:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15lx:0xFFFFFFFFFFFFFFFF:0:15: ++%15lx:10000000000000000:1:15:72057594037927936: ++%*15lx:10000000000000000:0:15: ++%15lx:0X10000000000000000:1:15:281474976710656: ++%*15lx:0X10000000000000000:0:15: ++%15lx:0x10000000000000000:1:15:281474976710656: ++%*15lx:0x10000000000000000:0:15: ++%15lx:100000000028757b1:1:15:72057594038093655: ++%*15lx:100000000028757b1:0:15: ++%15lx:100000000028757B1:1:15:72057594038093655: ++%*15lx:100000000028757B1:0:15: ++%15lx:0X100000000028757b1:1:15:281474976711303: ++%*15lx:0X100000000028757b1:0:15: ++%15lx:0x100000000028757B1:1:15:281474976711303: ++%*15lx:0x100000000028757B1:0:15: ++%15lx:+0:1:2:0: ++%*15lx:+0:0:2: ++%15lx:+0X0:1:4:0: ++%*15lx:+0X0:0:4: ++%15lx:+0x0:1:4:0: ++%*15lx:+0x0:0:4: ++%15lx:+1:1:2:1: ++%*15lx:+1:0:2: ++%15lx:+0X1:1:4:1: ++%*15lx:+0X1:0:4: ++%15lx:+0x1:1:4:1: ++%*15lx:+0x1:0:4: ++%15lx:+2a:1:3:42: ++%*15lx:+2a:0:3: ++%15lx:+2A:1:3:42: ++%*15lx:+2A:0:3: ++%15lx:+0X2a:1:5:42: ++%*15lx:+0X2a:0:5: ++%15lx:+0x2A:1:5:42: ++%*15lx:+0x2A:0:5: ++%15lx:+ffffffffffffffff:1:15:72057594037927935: ++%*15lx:+ffffffffffffffff:0:15: ++%15lx:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15lx:+FFFFFFFFFFFFFFFF:0:15: ++%15lx:+0Xffffffffffffffff:1:15:281474976710655: ++%*15lx:+0Xffffffffffffffff:0:15: ++%15lx:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15lx:+0xFFFFFFFFFFFFFFFF:0:15: ++%15lx:+10000000000000000:1:15:4503599627370496: ++%*15lx:+10000000000000000:0:15: ++%15lx:+0X10000000000000000:1:15:17592186044416: ++%*15lx:+0X10000000000000000:0:15: ++%15lx:+0x10000000000000000:1:15:17592186044416: ++%*15lx:+0x10000000000000000:0:15: ++%15lx:+100000000028757b1:1:15:4503599627380853: ++%*15lx:+100000000028757b1:0:15: ++%15lx:+100000000028757B1:1:15:4503599627380853: ++%*15lx:+100000000028757B1:0:15: ++%15lx:+0X100000000028757b1:1:15:17592186044456: ++%*15lx:+0X100000000028757b1:0:15: ++%15lx:+0x100000000028757B1:1:15:17592186044456: ++%*15lx:+0x100000000028757B1:0:15: ++%25lx::0:-1: ++%*25lx::0:-1: ++%25lx:-7b:1:3:18446744073709551493: ++%*25lx:-7b:0:3: ++%25lx:-7B:1:3:18446744073709551493: ++%*25lx:-7B:0:3: ++%25lx:-0X7b:1:5:18446744073709551493: ++%*25lx:-0X7b:0:5: ++%25lx:-0x7B:1:5:18446744073709551493: ++%*25lx:-0x7B:0:5: ++%25lx:-1:1:2:18446744073709551615: ++%*25lx:-1:0:2: ++%25lx:-0X1:1:4:18446744073709551615: ++%*25lx:-0X1:0:4: ++%25lx:-0x1:1:4:18446744073709551615: ++%*25lx:-0x1:0:4: ++%25lx:-0:1:2:0: ++%*25lx:-0:0:2: ++%25lx:-0X0:1:4:0: ++%*25lx:-0X0:0:4: ++%25lx:-0x0:1:4:0: ++%*25lx:-0x0:0:4: ++%25lx:0:1:1:0: ++%*25lx:0:0:1: ++%25lx:0X0:1:3:0: ++%*25lx:0X0:0:3: ++%25lx:0x0:1:3:0: ++%*25lx:0x0:0:3: ++%25lx:1:1:1:1: ++%*25lx:1:0:1: ++%25lx:0X1:1:3:1: ++%*25lx:0X1:0:3: ++%25lx:0x1:1:3:1: ++%*25lx:0x1:0:3: ++%25lx:2a:1:2:42: ++%*25lx:2a:0:2: ++%25lx:2A:1:2:42: ++%*25lx:2A:0:2: ++%25lx:0X2a:1:4:42: ++%*25lx:0X2a:0:4: ++%25lx:0x2A:1:4:42: ++%*25lx:0x2A:0:4: ++%25lx:ffffffffffffffff:1:16:18446744073709551615: ++%*25lx:ffffffffffffffff:0:16: ++%25lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25lx:FFFFFFFFFFFFFFFF:0:16: ++%25lx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25lx:0Xffffffffffffffff:0:18: ++%25lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lx:0xFFFFFFFFFFFFFFFF:0:18: ++%25lx:10000000000000000:1:17:18446744073709551615: ++%*25lx:10000000000000000:0:17: ++%25lx:0X10000000000000000:1:19:18446744073709551615: ++%*25lx:0X10000000000000000:0:19: ++%25lx:0x10000000000000000:1:19:18446744073709551615: ++%*25lx:0x10000000000000000:0:19: ++%25lx:100000000028757b1:1:17:18446744073709551615: ++%*25lx:100000000028757b1:0:17: ++%25lx:100000000028757B1:1:17:18446744073709551615: ++%*25lx:100000000028757B1:0:17: ++%25lx:0X100000000028757b1:1:19:18446744073709551615: ++%*25lx:0X100000000028757b1:0:19: ++%25lx:0x100000000028757B1:1:19:18446744073709551615: ++%*25lx:0x100000000028757B1:0:19: ++%25lx:+0:1:2:0: ++%*25lx:+0:0:2: ++%25lx:+0X0:1:4:0: ++%*25lx:+0X0:0:4: ++%25lx:+0x0:1:4:0: ++%*25lx:+0x0:0:4: ++%25lx:+1:1:2:1: ++%*25lx:+1:0:2: ++%25lx:+0X1:1:4:1: ++%*25lx:+0X1:0:4: ++%25lx:+0x1:1:4:1: ++%*25lx:+0x1:0:4: ++%25lx:+2a:1:3:42: ++%*25lx:+2a:0:3: ++%25lx:+2A:1:3:42: ++%*25lx:+2A:0:3: ++%25lx:+0X2a:1:5:42: ++%*25lx:+0X2a:0:5: ++%25lx:+0x2A:1:5:42: ++%*25lx:+0x2A:0:5: ++%25lx:+ffffffffffffffff:1:17:18446744073709551615: ++%*25lx:+ffffffffffffffff:0:17: ++%25lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lx:+FFFFFFFFFFFFFFFF:0:17: ++%25lx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lx:+0Xffffffffffffffff:0:19: ++%25lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lx:+0xFFFFFFFFFFFFFFFF:0:19: ++%25lx:+10000000000000000:1:18:18446744073709551615: ++%*25lx:+10000000000000000:0:18: ++%25lx:+0X10000000000000000:1:20:18446744073709551615: ++%*25lx:+0X10000000000000000:0:20: ++%25lx:+0x10000000000000000:1:20:18446744073709551615: ++%*25lx:+0x10000000000000000:0:20: ++%25lx:+100000000028757b1:1:18:18446744073709551615: ++%*25lx:+100000000028757b1:0:18: ++%25lx:+100000000028757B1:1:18:18446744073709551615: ++%*25lx:+100000000028757B1:0:18: ++%25lx:+0X100000000028757b1:1:20:18446744073709551615: ++%*25lx:+0X100000000028757b1:0:20: ++%25lx:+0x100000000028757B1:1:20:18446744073709551615: ++%*25lx:+0x100000000028757B1:0:20: ++%2lx: :0:-1: ++%*2lx: :0:-1: ++%2lx: -7b:1:3:18446744073709551609: ++%*2lx: -7b:0:3: ++%2lx: -7B:1:3:18446744073709551609: ++%*2lx: -7B:0:3: ++%2lx: -0X7b:1:3:0: ++%*2lx: -0X7b:0:3: ++%2lx: -0x7B:1:3:0: ++%*2lx: -0x7B:0:3: ++%2lx: -1:1:3:18446744073709551615: ++%*2lx: -1:0:3: ++%2lx: -0X1:1:3:0: ++%*2lx: -0X1:0:3: ++%2lx: -0x1:1:3:0: ++%*2lx: -0x1:0:3: ++%2lx: -0:1:3:0: ++%*2lx: -0:0:3: ++%2lx: -0X0:1:3:0: ++%*2lx: -0X0:0:3: ++%2lx: -0x0:1:3:0: ++%*2lx: -0x0:0:3: ++%2lx: 0:1:2:0: ++%*2lx: 0:0:2: ++# BZ12701 %2lx: 0X0:0:-1: ++# BZ12701 %*2lx: 0X0:0:-1: ++# BZ12701 %2lx: 0x0:0:-1: ++# BZ12701 %*2lx: 0x0:0:-1: ++%2lx: 1:1:2:1: ++%*2lx: 1:0:2: ++# BZ12701 %2lx: 0X1:0:-1: ++# BZ12701 %*2lx: 0X1:0:-1: ++# BZ12701 %2lx: 0x1:0:-1: ++# BZ12701 %*2lx: 0x1:0:-1: ++%2lx: 2a:1:3:42: ++%*2lx: 2a:0:3: ++%2lx: 2A:1:3:42: ++%*2lx: 2A:0:3: ++# BZ12701 %2lx: 0X2a:0:-1: ++# BZ12701 %*2lx: 0X2a:0:-1: ++# BZ12701 %2lx: 0x2A:0:-1: ++# BZ12701 %*2lx: 0x2A:0:-1: ++%2lx: ffffffffffffffff:1:3:255: ++%*2lx: ffffffffffffffff:0:3: ++%2lx: FFFFFFFFFFFFFFFF:1:3:255: ++%*2lx: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2lx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2lx: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lx: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2lx: 10000000000000000:1:3:16: ++%*2lx: 10000000000000000:0:3: ++# BZ12701 %2lx: 0X10000000000000000:0:-1: ++# BZ12701 %*2lx: 0X10000000000000000:0:-1: ++# BZ12701 %2lx: 0x10000000000000000:0:-1: ++# BZ12701 %*2lx: 0x10000000000000000:0:-1: ++%2lx: 100000000028757b1:1:3:16: ++%*2lx: 100000000028757b1:0:3: ++%2lx: 100000000028757B1:1:3:16: ++%*2lx: 100000000028757B1:0:3: ++# BZ12701 %2lx: 0X100000000028757b1:0:-1: ++# BZ12701 %*2lx: 0X100000000028757b1:0:-1: ++# BZ12701 %2lx: 0x100000000028757B1:0:-1: ++# BZ12701 %*2lx: 0x100000000028757B1:0:-1: ++%2lx: +0:1:3:0: ++%*2lx: +0:0:3: ++%2lx: +0X0:1:3:0: ++%*2lx: +0X0:0:3: ++%2lx: +0x0:1:3:0: ++%*2lx: +0x0:0:3: ++%2lx: +1:1:3:1: ++%*2lx: +1:0:3: ++%2lx: +0X1:1:3:0: ++%*2lx: +0X1:0:3: ++%2lx: +0x1:1:3:0: ++%*2lx: +0x1:0:3: ++%2lx: +2a:1:3:2: ++%*2lx: +2a:0:3: ++%2lx: +2A:1:3:2: ++%*2lx: +2A:0:3: ++%2lx: +0X2a:1:3:0: ++%*2lx: +0X2a:0:3: ++%2lx: +0x2A:1:3:0: ++%*2lx: +0x2A:0:3: ++%2lx: +ffffffffffffffff:1:3:15: ++%*2lx: +ffffffffffffffff:0:3: ++%2lx: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2lx: +FFFFFFFFFFFFFFFF:0:3: ++%2lx: +0Xffffffffffffffff:1:3:0: ++%*2lx: +0Xffffffffffffffff:0:3: ++%2lx: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2lx: +0xFFFFFFFFFFFFFFFF:0:3: ++%2lx: +10000000000000000:1:3:1: ++%*2lx: +10000000000000000:0:3: ++%2lx: +0X10000000000000000:1:3:0: ++%*2lx: +0X10000000000000000:0:3: ++%2lx: +0x10000000000000000:1:3:0: ++%*2lx: +0x10000000000000000:0:3: ++%2lx: +100000000028757b1:1:3:1: ++%*2lx: +100000000028757b1:0:3: ++%2lx: +100000000028757B1:1:3:1: ++%*2lx: +100000000028757B1:0:3: ++%2lx: +0X100000000028757b1:1:3:0: ++%*2lx: +0X100000000028757b1:0:3: ++%2lx: +0x100000000028757B1:1:3:0: ++%*2lx: +0x100000000028757B1:0:3: ++%25lx: :0:-1: ++%*25lx: :0:-1: ++%25lx: -7b:1:4:18446744073709551493: ++%*25lx: -7b:0:4: ++%25lx: -7B:1:4:18446744073709551493: ++%*25lx: -7B:0:4: ++%25lx: -0X7b:1:6:18446744073709551493: ++%*25lx: -0X7b:0:6: ++%25lx: -0x7B:1:6:18446744073709551493: ++%*25lx: -0x7B:0:6: ++%25lx: -1:1:3:18446744073709551615: ++%*25lx: -1:0:3: ++%25lx: -0X1:1:5:18446744073709551615: ++%*25lx: -0X1:0:5: ++%25lx: -0x1:1:5:18446744073709551615: ++%*25lx: -0x1:0:5: ++%25lx: -0:1:3:0: ++%*25lx: -0:0:3: ++%25lx: -0X0:1:5:0: ++%*25lx: -0X0:0:5: ++%25lx: -0x0:1:5:0: ++%*25lx: -0x0:0:5: ++%25lx: 0:1:2:0: ++%*25lx: 0:0:2: ++%25lx: 0X0:1:4:0: ++%*25lx: 0X0:0:4: ++%25lx: 0x0:1:4:0: ++%*25lx: 0x0:0:4: ++%25lx: 1:1:2:1: ++%*25lx: 1:0:2: ++%25lx: 0X1:1:4:1: ++%*25lx: 0X1:0:4: ++%25lx: 0x1:1:4:1: ++%*25lx: 0x1:0:4: ++%25lx: 2a:1:3:42: ++%*25lx: 2a:0:3: ++%25lx: 2A:1:3:42: ++%*25lx: 2A:0:3: ++%25lx: 0X2a:1:5:42: ++%*25lx: 0X2a:0:5: ++%25lx: 0x2A:1:5:42: ++%*25lx: 0x2A:0:5: ++%25lx: ffffffffffffffff:1:17:18446744073709551615: ++%*25lx: ffffffffffffffff:0:17: ++%25lx: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lx: FFFFFFFFFFFFFFFF:0:17: ++%25lx: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lx: 0Xffffffffffffffff:0:19: ++%25lx: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lx: 0xFFFFFFFFFFFFFFFF:0:19: ++%25lx: 10000000000000000:1:18:18446744073709551615: ++%*25lx: 10000000000000000:0:18: ++%25lx: 0X10000000000000000:1:20:18446744073709551615: ++%*25lx: 0X10000000000000000:0:20: ++%25lx: 0x10000000000000000:1:20:18446744073709551615: ++%*25lx: 0x10000000000000000:0:20: ++%25lx: 100000000028757b1:1:18:18446744073709551615: ++%*25lx: 100000000028757b1:0:18: ++%25lx: 100000000028757B1:1:18:18446744073709551615: ++%*25lx: 100000000028757B1:0:18: ++%25lx: 0X100000000028757b1:1:20:18446744073709551615: ++%*25lx: 0X100000000028757b1:0:20: ++%25lx: 0x100000000028757B1:1:20:18446744073709551615: ++%*25lx: 0x100000000028757B1:0:20: ++%25lx: +0:1:3:0: ++%*25lx: +0:0:3: ++%25lx: +0X0:1:5:0: ++%*25lx: +0X0:0:5: ++%25lx: +0x0:1:5:0: ++%*25lx: +0x0:0:5: ++%25lx: +1:1:3:1: ++%*25lx: +1:0:3: ++%25lx: +0X1:1:5:1: ++%*25lx: +0X1:0:5: ++%25lx: +0x1:1:5:1: ++%*25lx: +0x1:0:5: ++%25lx: +2a:1:4:42: ++%*25lx: +2a:0:4: ++%25lx: +2A:1:4:42: ++%*25lx: +2A:0:4: ++%25lx: +0X2a:1:6:42: ++%*25lx: +0X2a:0:6: ++%25lx: +0x2A:1:6:42: ++%*25lx: +0x2A:0:6: ++%25lx: +ffffffffffffffff:1:18:18446744073709551615: ++%*25lx: +ffffffffffffffff:0:18: ++%25lx: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lx: +FFFFFFFFFFFFFFFF:0:18: ++%25lx: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25lx: +0Xffffffffffffffff:0:20: ++%25lx: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25lx: +0xFFFFFFFFFFFFFFFF:0:20: ++%25lx: +10000000000000000:1:19:18446744073709551615: ++%*25lx: +10000000000000000:0:19: ++%25lx: +0X10000000000000000:1:21:18446744073709551615: ++%*25lx: +0X10000000000000000:0:21: ++%25lx: +0x10000000000000000:1:21:18446744073709551615: ++%*25lx: +0x10000000000000000:0:21: ++%25lx: +100000000028757b1:1:19:18446744073709551615: ++%*25lx: +100000000028757b1:0:19: ++%25lx: +100000000028757B1:1:19:18446744073709551615: ++%*25lx: +100000000028757B1:0:19: ++%25lx: +0X100000000028757b1:1:21:18446744073709551615: ++%*25lx: +0X100000000028757b1:0:21: ++%25lx: +0x100000000028757B1:1:21:18446744073709551615: ++%*25lx: +0x100000000028757B1:0:21: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input +new file mode 100644 +index 0000000000000000..883b3b423c871150 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input +@@ -0,0 +1,742 @@ ++%lX::0:-1: ++%*lX::0:-1: ++%lX:-7b:1:3:18446744073709551493: ++%*lX:-7b:0:3: ++%lX:-7B:1:3:18446744073709551493: ++%*lX:-7B:0:3: ++%lX:-0X7b:1:5:18446744073709551493: ++%*lX:-0X7b:0:5: ++%lX:-0x7B:1:5:18446744073709551493: ++%*lX:-0x7B:0:5: ++%lX:-1:1:2:18446744073709551615: ++%*lX:-1:0:2: ++%lX:-0X1:1:4:18446744073709551615: ++%*lX:-0X1:0:4: ++%lX:-0x1:1:4:18446744073709551615: ++%*lX:-0x1:0:4: ++%lX:-0:1:2:0: ++%*lX:-0:0:2: ++%lX:-0X0:1:4:0: ++%*lX:-0X0:0:4: ++%lX:-0x0:1:4:0: ++%*lX:-0x0:0:4: ++%lX:0:1:1:0: ++%*lX:0:0:1: ++%lX:0X0:1:3:0: ++%*lX:0X0:0:3: ++%lX:0x0:1:3:0: ++%*lX:0x0:0:3: ++%lX:1:1:1:1: ++%*lX:1:0:1: ++%lX:0X1:1:3:1: ++%*lX:0X1:0:3: ++%lX:0x1:1:3:1: ++%*lX:0x1:0:3: ++%lX:2a:1:2:42: ++%*lX:2a:0:2: ++%lX:2A:1:2:42: ++%*lX:2A:0:2: ++%lX:0X2a:1:4:42: ++%*lX:0X2a:0:4: ++%lX:0x2A:1:4:42: ++%*lX:0x2A:0:4: ++%lX:ffffffffffffffff:1:16:18446744073709551615: ++%*lX:ffffffffffffffff:0:16: ++%lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*lX:FFFFFFFFFFFFFFFF:0:16: ++%lX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*lX:0Xffffffffffffffff:0:18: ++%lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*lX:0xFFFFFFFFFFFFFFFF:0:18: ++%lX:10000000000000000:1:17:18446744073709551615: ++%*lX:10000000000000000:0:17: ++%lX:0X10000000000000000:1:19:18446744073709551615: ++%*lX:0X10000000000000000:0:19: ++%lX:0x10000000000000000:1:19:18446744073709551615: ++%*lX:0x10000000000000000:0:19: ++%lX:100000000028757b1:1:17:18446744073709551615: ++%*lX:100000000028757b1:0:17: ++%lX:100000000028757B1:1:17:18446744073709551615: ++%*lX:100000000028757B1:0:17: ++%lX:0X100000000028757b1:1:19:18446744073709551615: ++%*lX:0X100000000028757b1:0:19: ++%lX:0x100000000028757B1:1:19:18446744073709551615: ++%*lX:0x100000000028757B1:0:19: ++%lX:+0:1:2:0: ++%*lX:+0:0:2: ++%lX:+0X0:1:4:0: ++%*lX:+0X0:0:4: ++%lX:+0x0:1:4:0: ++%*lX:+0x0:0:4: ++%lX:+1:1:2:1: ++%*lX:+1:0:2: ++%lX:+0X1:1:4:1: ++%*lX:+0X1:0:4: ++%lX:+0x1:1:4:1: ++%*lX:+0x1:0:4: ++%lX:+2a:1:3:42: ++%*lX:+2a:0:3: ++%lX:+2A:1:3:42: ++%*lX:+2A:0:3: ++%lX:+0X2a:1:5:42: ++%*lX:+0X2a:0:5: ++%lX:+0x2A:1:5:42: ++%*lX:+0x2A:0:5: ++%lX:+ffffffffffffffff:1:17:18446744073709551615: ++%*lX:+ffffffffffffffff:0:17: ++%lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*lX:+FFFFFFFFFFFFFFFF:0:17: ++%lX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*lX:+0Xffffffffffffffff:0:19: ++%lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*lX:+0xFFFFFFFFFFFFFFFF:0:19: ++%lX:+10000000000000000:1:18:18446744073709551615: ++%*lX:+10000000000000000:0:18: ++%lX:+0X10000000000000000:1:20:18446744073709551615: ++%*lX:+0X10000000000000000:0:20: ++%lX:+0x10000000000000000:1:20:18446744073709551615: ++%*lX:+0x10000000000000000:0:20: ++%lX:+100000000028757b1:1:18:18446744073709551615: ++%*lX:+100000000028757b1:0:18: ++%lX:+100000000028757B1:1:18:18446744073709551615: ++%*lX:+100000000028757B1:0:18: ++%lX:+0X100000000028757b1:1:20:18446744073709551615: ++%*lX:+0X100000000028757b1:0:20: ++%lX:+0x100000000028757B1:1:20:18446744073709551615: ++%*lX:+0x100000000028757B1:0:20: ++%1lX::0:-1: ++%*1lX::0:-1: ++%1lX:-7b:0:-1: ++%*1lX:-7b:0:-1: ++%1lX:-7B:0:-1: ++%*1lX:-7B:0:-1: ++%1lX:-0X7b:0:-1: ++%*1lX:-0X7b:0:-1: ++%1lX:-0x7B:0:-1: ++%*1lX:-0x7B:0:-1: ++%1lX:-1:0:-1: ++%*1lX:-1:0:-1: ++%1lX:-0X1:0:-1: ++%*1lX:-0X1:0:-1: ++%1lX:-0x1:0:-1: ++%*1lX:-0x1:0:-1: ++%1lX:-0:0:-1: ++%*1lX:-0:0:-1: ++%1lX:-0X0:0:-1: ++%*1lX:-0X0:0:-1: ++%1lX:-0x0:0:-1: ++%*1lX:-0x0:0:-1: ++%1lX:0:1:1:0: ++%*1lX:0:0:1: ++%1lX:0X0:1:1:0: ++%*1lX:0X0:0:1: ++%1lX:0x0:1:1:0: ++%*1lX:0x0:0:1: ++%1lX:1:1:1:1: ++%*1lX:1:0:1: ++%1lX:0X1:1:1:0: ++%*1lX:0X1:0:1: ++%1lX:0x1:1:1:0: ++%*1lX:0x1:0:1: ++%1lX:2a:1:1:2: ++%*1lX:2a:0:1: ++%1lX:2A:1:1:2: ++%*1lX:2A:0:1: ++%1lX:0X2a:1:1:0: ++%*1lX:0X2a:0:1: ++%1lX:0x2A:1:1:0: ++%*1lX:0x2A:0:1: ++%1lX:ffffffffffffffff:1:1:15: ++%*1lX:ffffffffffffffff:0:1: ++%1lX:FFFFFFFFFFFFFFFF:1:1:15: ++%*1lX:FFFFFFFFFFFFFFFF:0:1: ++%1lX:0Xffffffffffffffff:1:1:0: ++%*1lX:0Xffffffffffffffff:0:1: ++%1lX:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1lX:0xFFFFFFFFFFFFFFFF:0:1: ++%1lX:10000000000000000:1:1:1: ++%*1lX:10000000000000000:0:1: ++%1lX:0X10000000000000000:1:1:0: ++%*1lX:0X10000000000000000:0:1: ++%1lX:0x10000000000000000:1:1:0: ++%*1lX:0x10000000000000000:0:1: ++%1lX:100000000028757b1:1:1:1: ++%*1lX:100000000028757b1:0:1: ++%1lX:100000000028757B1:1:1:1: ++%*1lX:100000000028757B1:0:1: ++%1lX:0X100000000028757b1:1:1:0: ++%*1lX:0X100000000028757b1:0:1: ++%1lX:0x100000000028757B1:1:1:0: ++%*1lX:0x100000000028757B1:0:1: ++%1lX:+0:0:-1: ++%*1lX:+0:0:-1: ++%1lX:+0X0:0:-1: ++%*1lX:+0X0:0:-1: ++%1lX:+0x0:0:-1: ++%*1lX:+0x0:0:-1: ++%1lX:+1:0:-1: ++%*1lX:+1:0:-1: ++%1lX:+0X1:0:-1: ++%*1lX:+0X1:0:-1: ++%1lX:+0x1:0:-1: ++%*1lX:+0x1:0:-1: ++%1lX:+2a:0:-1: ++%*1lX:+2a:0:-1: ++%1lX:+2A:0:-1: ++%*1lX:+2A:0:-1: ++%1lX:+0X2a:0:-1: ++%*1lX:+0X2a:0:-1: ++%1lX:+0x2A:0:-1: ++%*1lX:+0x2A:0:-1: ++%1lX:+ffffffffffffffff:0:-1: ++%*1lX:+ffffffffffffffff:0:-1: ++%1lX:+FFFFFFFFFFFFFFFF:0:-1: ++%*1lX:+FFFFFFFFFFFFFFFF:0:-1: ++%1lX:+0Xffffffffffffffff:0:-1: ++%*1lX:+0Xffffffffffffffff:0:-1: ++%1lX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1lX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1lX:+10000000000000000:0:-1: ++%*1lX:+10000000000000000:0:-1: ++%1lX:+0X10000000000000000:0:-1: ++%*1lX:+0X10000000000000000:0:-1: ++%1lX:+0x10000000000000000:0:-1: ++%*1lX:+0x10000000000000000:0:-1: ++%1lX:+100000000028757b1:0:-1: ++%*1lX:+100000000028757b1:0:-1: ++%1lX:+100000000028757B1:0:-1: ++%*1lX:+100000000028757B1:0:-1: ++%1lX:+0X100000000028757b1:0:-1: ++%*1lX:+0X100000000028757b1:0:-1: ++%1lX:+0x100000000028757B1:0:-1: ++%*1lX:+0x100000000028757B1:0:-1: ++%2lX::0:-1: ++%*2lX::0:-1: ++%2lX:-7b:1:2:18446744073709551609: ++%*2lX:-7b:0:2: ++%2lX:-7B:1:2:18446744073709551609: ++%*2lX:-7B:0:2: ++%2lX:-0X7b:1:2:0: ++%*2lX:-0X7b:0:2: ++%2lX:-0x7B:1:2:0: ++%*2lX:-0x7B:0:2: ++%2lX:-1:1:2:18446744073709551615: ++%*2lX:-1:0:2: ++%2lX:-0X1:1:2:0: ++%*2lX:-0X1:0:2: ++%2lX:-0x1:1:2:0: ++%*2lX:-0x1:0:2: ++%2lX:-0:1:2:0: ++%*2lX:-0:0:2: ++%2lX:-0X0:1:2:0: ++%*2lX:-0X0:0:2: ++%2lX:-0x0:1:2:0: ++%*2lX:-0x0:0:2: ++%2lX:0:1:1:0: ++%*2lX:0:0:1: ++# BZ12701 %2lX:0X0:0:-1: ++# BZ12701 %*2lX:0X0:0:-1: ++# BZ12701 %2lX:0x0:0:-1: ++# BZ12701 %*2lX:0x0:0:-1: ++%2lX:1:1:1:1: ++%*2lX:1:0:1: ++# BZ12701 %2lX:0X1:0:-1: ++# BZ12701 %*2lX:0X1:0:-1: ++# BZ12701 %2lX:0x1:0:-1: ++# BZ12701 %*2lX:0x1:0:-1: ++%2lX:2a:1:2:42: ++%*2lX:2a:0:2: ++%2lX:2A:1:2:42: ++%*2lX:2A:0:2: ++# BZ12701 %2lX:0X2a:0:-1: ++# BZ12701 %*2lX:0X2a:0:-1: ++# BZ12701 %2lX:0x2A:0:-1: ++# BZ12701 %*2lX:0x2A:0:-1: ++%2lX:ffffffffffffffff:1:2:255: ++%*2lX:ffffffffffffffff:0:2: ++%2lX:FFFFFFFFFFFFFFFF:1:2:255: ++%*2lX:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2lX:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lX:0Xffffffffffffffff:0:-1: ++# BZ12701 %2lX:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lX:0xFFFFFFFFFFFFFFFF:0:-1: ++%2lX:10000000000000000:1:2:16: ++%*2lX:10000000000000000:0:2: ++# BZ12701 %2lX:0X10000000000000000:0:-1: ++# BZ12701 %*2lX:0X10000000000000000:0:-1: ++# BZ12701 %2lX:0x10000000000000000:0:-1: ++# BZ12701 %*2lX:0x10000000000000000:0:-1: ++%2lX:100000000028757b1:1:2:16: ++%*2lX:100000000028757b1:0:2: ++%2lX:100000000028757B1:1:2:16: ++%*2lX:100000000028757B1:0:2: ++# BZ12701 %2lX:0X100000000028757b1:0:-1: ++# BZ12701 %*2lX:0X100000000028757b1:0:-1: ++# BZ12701 %2lX:0x100000000028757B1:0:-1: ++# BZ12701 %*2lX:0x100000000028757B1:0:-1: ++%2lX:+0:1:2:0: ++%*2lX:+0:0:2: ++%2lX:+0X0:1:2:0: ++%*2lX:+0X0:0:2: ++%2lX:+0x0:1:2:0: ++%*2lX:+0x0:0:2: ++%2lX:+1:1:2:1: ++%*2lX:+1:0:2: ++%2lX:+0X1:1:2:0: ++%*2lX:+0X1:0:2: ++%2lX:+0x1:1:2:0: ++%*2lX:+0x1:0:2: ++%2lX:+2a:1:2:2: ++%*2lX:+2a:0:2: ++%2lX:+2A:1:2:2: ++%*2lX:+2A:0:2: ++%2lX:+0X2a:1:2:0: ++%*2lX:+0X2a:0:2: ++%2lX:+0x2A:1:2:0: ++%*2lX:+0x2A:0:2: ++%2lX:+ffffffffffffffff:1:2:15: ++%*2lX:+ffffffffffffffff:0:2: ++%2lX:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2lX:+FFFFFFFFFFFFFFFF:0:2: ++%2lX:+0Xffffffffffffffff:1:2:0: ++%*2lX:+0Xffffffffffffffff:0:2: ++%2lX:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2lX:+0xFFFFFFFFFFFFFFFF:0:2: ++%2lX:+10000000000000000:1:2:1: ++%*2lX:+10000000000000000:0:2: ++%2lX:+0X10000000000000000:1:2:0: ++%*2lX:+0X10000000000000000:0:2: ++%2lX:+0x10000000000000000:1:2:0: ++%*2lX:+0x10000000000000000:0:2: ++%2lX:+100000000028757b1:1:2:1: ++%*2lX:+100000000028757b1:0:2: ++%2lX:+100000000028757B1:1:2:1: ++%*2lX:+100000000028757B1:0:2: ++%2lX:+0X100000000028757b1:1:2:0: ++%*2lX:+0X100000000028757b1:0:2: ++%2lX:+0x100000000028757B1:1:2:0: ++%*2lX:+0x100000000028757B1:0:2: ++%15lX::0:-1: ++%*15lX::0:-1: ++%15lX:-7b:1:3:18446744073709551493: ++%*15lX:-7b:0:3: ++%15lX:-7B:1:3:18446744073709551493: ++%*15lX:-7B:0:3: ++%15lX:-0X7b:1:5:18446744073709551493: ++%*15lX:-0X7b:0:5: ++%15lX:-0x7B:1:5:18446744073709551493: ++%*15lX:-0x7B:0:5: ++%15lX:-1:1:2:18446744073709551615: ++%*15lX:-1:0:2: ++%15lX:-0X1:1:4:18446744073709551615: ++%*15lX:-0X1:0:4: ++%15lX:-0x1:1:4:18446744073709551615: ++%*15lX:-0x1:0:4: ++%15lX:-0:1:2:0: ++%*15lX:-0:0:2: ++%15lX:-0X0:1:4:0: ++%*15lX:-0X0:0:4: ++%15lX:-0x0:1:4:0: ++%*15lX:-0x0:0:4: ++%15lX:0:1:1:0: ++%*15lX:0:0:1: ++%15lX:0X0:1:3:0: ++%*15lX:0X0:0:3: ++%15lX:0x0:1:3:0: ++%*15lX:0x0:0:3: ++%15lX:1:1:1:1: ++%*15lX:1:0:1: ++%15lX:0X1:1:3:1: ++%*15lX:0X1:0:3: ++%15lX:0x1:1:3:1: ++%*15lX:0x1:0:3: ++%15lX:2a:1:2:42: ++%*15lX:2a:0:2: ++%15lX:2A:1:2:42: ++%*15lX:2A:0:2: ++%15lX:0X2a:1:4:42: ++%*15lX:0X2a:0:4: ++%15lX:0x2A:1:4:42: ++%*15lX:0x2A:0:4: ++%15lX:ffffffffffffffff:1:15:1152921504606846975: ++%*15lX:ffffffffffffffff:0:15: ++%15lX:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15lX:FFFFFFFFFFFFFFFF:0:15: ++%15lX:0Xffffffffffffffff:1:15:4503599627370495: ++%*15lX:0Xffffffffffffffff:0:15: ++%15lX:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15lX:0xFFFFFFFFFFFFFFFF:0:15: ++%15lX:10000000000000000:1:15:72057594037927936: ++%*15lX:10000000000000000:0:15: ++%15lX:0X10000000000000000:1:15:281474976710656: ++%*15lX:0X10000000000000000:0:15: ++%15lX:0x10000000000000000:1:15:281474976710656: ++%*15lX:0x10000000000000000:0:15: ++%15lX:100000000028757b1:1:15:72057594038093655: ++%*15lX:100000000028757b1:0:15: ++%15lX:100000000028757B1:1:15:72057594038093655: ++%*15lX:100000000028757B1:0:15: ++%15lX:0X100000000028757b1:1:15:281474976711303: ++%*15lX:0X100000000028757b1:0:15: ++%15lX:0x100000000028757B1:1:15:281474976711303: ++%*15lX:0x100000000028757B1:0:15: ++%15lX:+0:1:2:0: ++%*15lX:+0:0:2: ++%15lX:+0X0:1:4:0: ++%*15lX:+0X0:0:4: ++%15lX:+0x0:1:4:0: ++%*15lX:+0x0:0:4: ++%15lX:+1:1:2:1: ++%*15lX:+1:0:2: ++%15lX:+0X1:1:4:1: ++%*15lX:+0X1:0:4: ++%15lX:+0x1:1:4:1: ++%*15lX:+0x1:0:4: ++%15lX:+2a:1:3:42: ++%*15lX:+2a:0:3: ++%15lX:+2A:1:3:42: ++%*15lX:+2A:0:3: ++%15lX:+0X2a:1:5:42: ++%*15lX:+0X2a:0:5: ++%15lX:+0x2A:1:5:42: ++%*15lX:+0x2A:0:5: ++%15lX:+ffffffffffffffff:1:15:72057594037927935: ++%*15lX:+ffffffffffffffff:0:15: ++%15lX:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15lX:+FFFFFFFFFFFFFFFF:0:15: ++%15lX:+0Xffffffffffffffff:1:15:281474976710655: ++%*15lX:+0Xffffffffffffffff:0:15: ++%15lX:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15lX:+0xFFFFFFFFFFFFFFFF:0:15: ++%15lX:+10000000000000000:1:15:4503599627370496: ++%*15lX:+10000000000000000:0:15: ++%15lX:+0X10000000000000000:1:15:17592186044416: ++%*15lX:+0X10000000000000000:0:15: ++%15lX:+0x10000000000000000:1:15:17592186044416: ++%*15lX:+0x10000000000000000:0:15: ++%15lX:+100000000028757b1:1:15:4503599627380853: ++%*15lX:+100000000028757b1:0:15: ++%15lX:+100000000028757B1:1:15:4503599627380853: ++%*15lX:+100000000028757B1:0:15: ++%15lX:+0X100000000028757b1:1:15:17592186044456: ++%*15lX:+0X100000000028757b1:0:15: ++%15lX:+0x100000000028757B1:1:15:17592186044456: ++%*15lX:+0x100000000028757B1:0:15: ++%25lX::0:-1: ++%*25lX::0:-1: ++%25lX:-7b:1:3:18446744073709551493: ++%*25lX:-7b:0:3: ++%25lX:-7B:1:3:18446744073709551493: ++%*25lX:-7B:0:3: ++%25lX:-0X7b:1:5:18446744073709551493: ++%*25lX:-0X7b:0:5: ++%25lX:-0x7B:1:5:18446744073709551493: ++%*25lX:-0x7B:0:5: ++%25lX:-1:1:2:18446744073709551615: ++%*25lX:-1:0:2: ++%25lX:-0X1:1:4:18446744073709551615: ++%*25lX:-0X1:0:4: ++%25lX:-0x1:1:4:18446744073709551615: ++%*25lX:-0x1:0:4: ++%25lX:-0:1:2:0: ++%*25lX:-0:0:2: ++%25lX:-0X0:1:4:0: ++%*25lX:-0X0:0:4: ++%25lX:-0x0:1:4:0: ++%*25lX:-0x0:0:4: ++%25lX:0:1:1:0: ++%*25lX:0:0:1: ++%25lX:0X0:1:3:0: ++%*25lX:0X0:0:3: ++%25lX:0x0:1:3:0: ++%*25lX:0x0:0:3: ++%25lX:1:1:1:1: ++%*25lX:1:0:1: ++%25lX:0X1:1:3:1: ++%*25lX:0X1:0:3: ++%25lX:0x1:1:3:1: ++%*25lX:0x1:0:3: ++%25lX:2a:1:2:42: ++%*25lX:2a:0:2: ++%25lX:2A:1:2:42: ++%*25lX:2A:0:2: ++%25lX:0X2a:1:4:42: ++%*25lX:0X2a:0:4: ++%25lX:0x2A:1:4:42: ++%*25lX:0x2A:0:4: ++%25lX:ffffffffffffffff:1:16:18446744073709551615: ++%*25lX:ffffffffffffffff:0:16: ++%25lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25lX:FFFFFFFFFFFFFFFF:0:16: ++%25lX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25lX:0Xffffffffffffffff:0:18: ++%25lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lX:0xFFFFFFFFFFFFFFFF:0:18: ++%25lX:10000000000000000:1:17:18446744073709551615: ++%*25lX:10000000000000000:0:17: ++%25lX:0X10000000000000000:1:19:18446744073709551615: ++%*25lX:0X10000000000000000:0:19: ++%25lX:0x10000000000000000:1:19:18446744073709551615: ++%*25lX:0x10000000000000000:0:19: ++%25lX:100000000028757b1:1:17:18446744073709551615: ++%*25lX:100000000028757b1:0:17: ++%25lX:100000000028757B1:1:17:18446744073709551615: ++%*25lX:100000000028757B1:0:17: ++%25lX:0X100000000028757b1:1:19:18446744073709551615: ++%*25lX:0X100000000028757b1:0:19: ++%25lX:0x100000000028757B1:1:19:18446744073709551615: ++%*25lX:0x100000000028757B1:0:19: ++%25lX:+0:1:2:0: ++%*25lX:+0:0:2: ++%25lX:+0X0:1:4:0: ++%*25lX:+0X0:0:4: ++%25lX:+0x0:1:4:0: ++%*25lX:+0x0:0:4: ++%25lX:+1:1:2:1: ++%*25lX:+1:0:2: ++%25lX:+0X1:1:4:1: ++%*25lX:+0X1:0:4: ++%25lX:+0x1:1:4:1: ++%*25lX:+0x1:0:4: ++%25lX:+2a:1:3:42: ++%*25lX:+2a:0:3: ++%25lX:+2A:1:3:42: ++%*25lX:+2A:0:3: ++%25lX:+0X2a:1:5:42: ++%*25lX:+0X2a:0:5: ++%25lX:+0x2A:1:5:42: ++%*25lX:+0x2A:0:5: ++%25lX:+ffffffffffffffff:1:17:18446744073709551615: ++%*25lX:+ffffffffffffffff:0:17: ++%25lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lX:+FFFFFFFFFFFFFFFF:0:17: ++%25lX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lX:+0Xffffffffffffffff:0:19: ++%25lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lX:+0xFFFFFFFFFFFFFFFF:0:19: ++%25lX:+10000000000000000:1:18:18446744073709551615: ++%*25lX:+10000000000000000:0:18: ++%25lX:+0X10000000000000000:1:20:18446744073709551615: ++%*25lX:+0X10000000000000000:0:20: ++%25lX:+0x10000000000000000:1:20:18446744073709551615: ++%*25lX:+0x10000000000000000:0:20: ++%25lX:+100000000028757b1:1:18:18446744073709551615: ++%*25lX:+100000000028757b1:0:18: ++%25lX:+100000000028757B1:1:18:18446744073709551615: ++%*25lX:+100000000028757B1:0:18: ++%25lX:+0X100000000028757b1:1:20:18446744073709551615: ++%*25lX:+0X100000000028757b1:0:20: ++%25lX:+0x100000000028757B1:1:20:18446744073709551615: ++%*25lX:+0x100000000028757B1:0:20: ++%2lX: :0:-1: ++%*2lX: :0:-1: ++%2lX: -7b:1:3:18446744073709551609: ++%*2lX: -7b:0:3: ++%2lX: -7B:1:3:18446744073709551609: ++%*2lX: -7B:0:3: ++%2lX: -0X7b:1:3:0: ++%*2lX: -0X7b:0:3: ++%2lX: -0x7B:1:3:0: ++%*2lX: -0x7B:0:3: ++%2lX: -1:1:3:18446744073709551615: ++%*2lX: -1:0:3: ++%2lX: -0X1:1:3:0: ++%*2lX: -0X1:0:3: ++%2lX: -0x1:1:3:0: ++%*2lX: -0x1:0:3: ++%2lX: -0:1:3:0: ++%*2lX: -0:0:3: ++%2lX: -0X0:1:3:0: ++%*2lX: -0X0:0:3: ++%2lX: -0x0:1:3:0: ++%*2lX: -0x0:0:3: ++%2lX: 0:1:2:0: ++%*2lX: 0:0:2: ++# BZ12701 %2lX: 0X0:0:-1: ++# BZ12701 %*2lX: 0X0:0:-1: ++# BZ12701 %2lX: 0x0:0:-1: ++# BZ12701 %*2lX: 0x0:0:-1: ++%2lX: 1:1:2:1: ++%*2lX: 1:0:2: ++# BZ12701 %2lX: 0X1:0:-1: ++# BZ12701 %*2lX: 0X1:0:-1: ++# BZ12701 %2lX: 0x1:0:-1: ++# BZ12701 %*2lX: 0x1:0:-1: ++%2lX: 2a:1:3:42: ++%*2lX: 2a:0:3: ++%2lX: 2A:1:3:42: ++%*2lX: 2A:0:3: ++# BZ12701 %2lX: 0X2a:0:-1: ++# BZ12701 %*2lX: 0X2a:0:-1: ++# BZ12701 %2lX: 0x2A:0:-1: ++# BZ12701 %*2lX: 0x2A:0:-1: ++%2lX: ffffffffffffffff:1:3:255: ++%*2lX: ffffffffffffffff:0:3: ++%2lX: FFFFFFFFFFFFFFFF:1:3:255: ++%*2lX: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2lX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2lX: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lX: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2lX: 10000000000000000:1:3:16: ++%*2lX: 10000000000000000:0:3: ++# BZ12701 %2lX: 0X10000000000000000:0:-1: ++# BZ12701 %*2lX: 0X10000000000000000:0:-1: ++# BZ12701 %2lX: 0x10000000000000000:0:-1: ++# BZ12701 %*2lX: 0x10000000000000000:0:-1: ++%2lX: 100000000028757b1:1:3:16: ++%*2lX: 100000000028757b1:0:3: ++%2lX: 100000000028757B1:1:3:16: ++%*2lX: 100000000028757B1:0:3: ++# BZ12701 %2lX: 0X100000000028757b1:0:-1: ++# BZ12701 %*2lX: 0X100000000028757b1:0:-1: ++# BZ12701 %2lX: 0x100000000028757B1:0:-1: ++# BZ12701 %*2lX: 0x100000000028757B1:0:-1: ++%2lX: +0:1:3:0: ++%*2lX: +0:0:3: ++%2lX: +0X0:1:3:0: ++%*2lX: +0X0:0:3: ++%2lX: +0x0:1:3:0: ++%*2lX: +0x0:0:3: ++%2lX: +1:1:3:1: ++%*2lX: +1:0:3: ++%2lX: +0X1:1:3:0: ++%*2lX: +0X1:0:3: ++%2lX: +0x1:1:3:0: ++%*2lX: +0x1:0:3: ++%2lX: +2a:1:3:2: ++%*2lX: +2a:0:3: ++%2lX: +2A:1:3:2: ++%*2lX: +2A:0:3: ++%2lX: +0X2a:1:3:0: ++%*2lX: +0X2a:0:3: ++%2lX: +0x2A:1:3:0: ++%*2lX: +0x2A:0:3: ++%2lX: +ffffffffffffffff:1:3:15: ++%*2lX: +ffffffffffffffff:0:3: ++%2lX: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2lX: +FFFFFFFFFFFFFFFF:0:3: ++%2lX: +0Xffffffffffffffff:1:3:0: ++%*2lX: +0Xffffffffffffffff:0:3: ++%2lX: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2lX: +0xFFFFFFFFFFFFFFFF:0:3: ++%2lX: +10000000000000000:1:3:1: ++%*2lX: +10000000000000000:0:3: ++%2lX: +0X10000000000000000:1:3:0: ++%*2lX: +0X10000000000000000:0:3: ++%2lX: +0x10000000000000000:1:3:0: ++%*2lX: +0x10000000000000000:0:3: ++%2lX: +100000000028757b1:1:3:1: ++%*2lX: +100000000028757b1:0:3: ++%2lX: +100000000028757B1:1:3:1: ++%*2lX: +100000000028757B1:0:3: ++%2lX: +0X100000000028757b1:1:3:0: ++%*2lX: +0X100000000028757b1:0:3: ++%2lX: +0x100000000028757B1:1:3:0: ++%*2lX: +0x100000000028757B1:0:3: ++%25lX: :0:-1: ++%*25lX: :0:-1: ++%25lX: -7b:1:4:18446744073709551493: ++%*25lX: -7b:0:4: ++%25lX: -7B:1:4:18446744073709551493: ++%*25lX: -7B:0:4: ++%25lX: -0X7b:1:6:18446744073709551493: ++%*25lX: -0X7b:0:6: ++%25lX: -0x7B:1:6:18446744073709551493: ++%*25lX: -0x7B:0:6: ++%25lX: -1:1:3:18446744073709551615: ++%*25lX: -1:0:3: ++%25lX: -0X1:1:5:18446744073709551615: ++%*25lX: -0X1:0:5: ++%25lX: -0x1:1:5:18446744073709551615: ++%*25lX: -0x1:0:5: ++%25lX: -0:1:3:0: ++%*25lX: -0:0:3: ++%25lX: -0X0:1:5:0: ++%*25lX: -0X0:0:5: ++%25lX: -0x0:1:5:0: ++%*25lX: -0x0:0:5: ++%25lX: 0:1:2:0: ++%*25lX: 0:0:2: ++%25lX: 0X0:1:4:0: ++%*25lX: 0X0:0:4: ++%25lX: 0x0:1:4:0: ++%*25lX: 0x0:0:4: ++%25lX: 1:1:2:1: ++%*25lX: 1:0:2: ++%25lX: 0X1:1:4:1: ++%*25lX: 0X1:0:4: ++%25lX: 0x1:1:4:1: ++%*25lX: 0x1:0:4: ++%25lX: 2a:1:3:42: ++%*25lX: 2a:0:3: ++%25lX: 2A:1:3:42: ++%*25lX: 2A:0:3: ++%25lX: 0X2a:1:5:42: ++%*25lX: 0X2a:0:5: ++%25lX: 0x2A:1:5:42: ++%*25lX: 0x2A:0:5: ++%25lX: ffffffffffffffff:1:17:18446744073709551615: ++%*25lX: ffffffffffffffff:0:17: ++%25lX: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lX: FFFFFFFFFFFFFFFF:0:17: ++%25lX: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lX: 0Xffffffffffffffff:0:19: ++%25lX: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lX: 0xFFFFFFFFFFFFFFFF:0:19: ++%25lX: 10000000000000000:1:18:18446744073709551615: ++%*25lX: 10000000000000000:0:18: ++%25lX: 0X10000000000000000:1:20:18446744073709551615: ++%*25lX: 0X10000000000000000:0:20: ++%25lX: 0x10000000000000000:1:20:18446744073709551615: ++%*25lX: 0x10000000000000000:0:20: ++%25lX: 100000000028757b1:1:18:18446744073709551615: ++%*25lX: 100000000028757b1:0:18: ++%25lX: 100000000028757B1:1:18:18446744073709551615: ++%*25lX: 100000000028757B1:0:18: ++%25lX: 0X100000000028757b1:1:20:18446744073709551615: ++%*25lX: 0X100000000028757b1:0:20: ++%25lX: 0x100000000028757B1:1:20:18446744073709551615: ++%*25lX: 0x100000000028757B1:0:20: ++%25lX: +0:1:3:0: ++%*25lX: +0:0:3: ++%25lX: +0X0:1:5:0: ++%*25lX: +0X0:0:5: ++%25lX: +0x0:1:5:0: ++%*25lX: +0x0:0:5: ++%25lX: +1:1:3:1: ++%*25lX: +1:0:3: ++%25lX: +0X1:1:5:1: ++%*25lX: +0X1:0:5: ++%25lX: +0x1:1:5:1: ++%*25lX: +0x1:0:5: ++%25lX: +2a:1:4:42: ++%*25lX: +2a:0:4: ++%25lX: +2A:1:4:42: ++%*25lX: +2A:0:4: ++%25lX: +0X2a:1:6:42: ++%*25lX: +0X2a:0:6: ++%25lX: +0x2A:1:6:42: ++%*25lX: +0x2A:0:6: ++%25lX: +ffffffffffffffff:1:18:18446744073709551615: ++%*25lX: +ffffffffffffffff:0:18: ++%25lX: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lX: +FFFFFFFFFFFFFFFF:0:18: ++%25lX: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25lX: +0Xffffffffffffffff:0:20: ++%25lX: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25lX: +0xFFFFFFFFFFFFFFFF:0:20: ++%25lX: +10000000000000000:1:19:18446744073709551615: ++%*25lX: +10000000000000000:0:19: ++%25lX: +0X10000000000000000:1:21:18446744073709551615: ++%*25lX: +0X10000000000000000:0:21: ++%25lX: +0x10000000000000000:1:21:18446744073709551615: ++%*25lX: +0x10000000000000000:0:21: ++%25lX: +100000000028757b1:1:19:18446744073709551615: ++%*25lX: +100000000028757b1:0:19: ++%25lX: +100000000028757B1:1:19:18446744073709551615: ++%*25lX: +100000000028757B1:0:19: ++%25lX: +0X100000000028757b1:1:21:18446744073709551615: ++%*25lX: +0X100000000028757b1:0:21: ++%25lX: +0x100000000028757B1:1:21:18446744073709551615: ++%*25lX: +0x100000000028757B1:0:21: diff --git a/SOURCES/glibc-RHEL-84306-4.patch b/SOURCES/glibc-RHEL-84306-4.patch new file mode 100644 index 0000000..7beb5ee --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-4.patch @@ -0,0 +1,5032 @@ +commit 26df22636d5876352cbd53b8662173e461e1e220 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf float data for IEEE 754 binary32 format + + Add Makefile infrastructure and `float' real input data for targets + using the IEEE 754 binary32 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/flt-32/Makefile b/sysdeps/ieee754/flt-32/Makefile +new file mode 100644 +index 0000000000000000..aaba9e9bc6904467 +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/Makefile +@@ -0,0 +1,3 @@ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += float ++endif +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +new file mode 100644 +index 0000000000000000..196cb734b277653e +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +@@ -0,0 +1,682 @@ ++%a::0:-1: ++%*a::0:-1: ++%a:-infinity:1:9:-inf: ++%*a:-infinity:0:9: ++%a:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*a:-0xf.fffffp+124:0:15: ++%a:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*a:-0x7.fffff8p125:0:15: ++%a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*a:-0x2.345678p+123:0:16: ++%a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*a:-0x2.345678p0123:0:16: ++%a:-0x8p-129:1:9:-0x1p-126: ++%*a:-0x8p-129:0:9: ++%a:-0x0p+0:1:7:-0x0: ++%*a:-0x0p+0:0:7: ++%a:-0x0p0:1:6:-0x0: ++%*a:-0x0p0:0:6: ++%a:-nan(09A_Zaz):1:13:-nan: ++%*a:-nan(09A_Zaz):0:13: ++%a:-nan():1:6:-nan: ++%*a:-nan():0:6: ++%a:nan():1:5:nan: ++%*a:nan():0:5: ++%a:nan(09A_Zaz):1:12:nan: ++%*a:nan(09A_Zaz):0:12: ++%a:0x0p0:1:5:0x0: ++%*a:0x0p0:0:5: ++%a:0x0p+0:1:6:0x0: ++%*a:0x0p+0:0:6: ++%a:0x8p-129:1:8:0x1p-126: ++%*a:0x8p-129:0:8: ++%a:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*a:0x2.345678p0123:0:15: ++%a:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*a:0x2.345678p+123:0:15: ++%a:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*a:0x7.fffff8p125:0:14: ++%a:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*a:0xf.fffffp+124:0:14: ++%a:infinity:1:8:inf: ++%*a:infinity:0:8: ++%a:+nan():1:6:nan: ++%*a:+nan():0:6: ++%a:+nan(09A_Zaz):1:13:nan: ++%*a:+nan(09A_Zaz):0:13: ++%a:+0x0p0:1:6:0x0: ++%*a:+0x0p0:0:6: ++%a:+0x0p+0:1:7:0x0: ++%*a:+0x0p+0:0:7: ++%a:+0x8p-129:1:9:0x1p-126: ++%*a:+0x8p-129:0:9: ++%a:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*a:+0x2.345678p0123:0:16: ++%a:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*a:+0x2.345678p+123:0:16: ++%a:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*a:+0x7.fffff8p125:0:15: ++%a:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*a:+0xf.fffffp+124:0:15: ++%a:+infinity:1:9:inf: ++%*a:+infinity:0:9: ++%1a::0:-1: ++%*1a::0:-1: ++%1a:-infinity:0:-1: ++%*1a:-infinity:0:-1: ++%1a:-0xf.fffffp+124:0:-1: ++%*1a:-0xf.fffffp+124:0:-1: ++%1a:-0x7.fffff8p125:0:-1: ++%*1a:-0x7.fffff8p125:0:-1: ++%1a:-0x2.345678p+123:0:-1: ++%*1a:-0x2.345678p+123:0:-1: ++%1a:-0x2.345678p0123:0:-1: ++%*1a:-0x2.345678p0123:0:-1: ++%1a:-0x8p-129:0:-1: ++%*1a:-0x8p-129:0:-1: ++%1a:-0x0p+0:0:-1: ++%*1a:-0x0p+0:0:-1: ++%1a:-0x0p0:0:-1: ++%*1a:-0x0p0:0:-1: ++%1a:-nan(09A_Zaz):0:-1: ++%*1a:-nan(09A_Zaz):0:-1: ++%1a:-nan():0:-1: ++%*1a:-nan():0:-1: ++%1a:nan():0:-1: ++%*1a:nan():0:-1: ++%1a:nan(09A_Zaz):0:-1: ++%*1a:nan(09A_Zaz):0:-1: ++%1a:0x0p0:1:1:0x0: ++%*1a:0x0p0:0:1: ++%1a:0x0p+0:1:1:0x0: ++%*1a:0x0p+0:0:1: ++%1a:0x8p-129:1:1:0x0: ++%*1a:0x8p-129:0:1: ++%1a:0x2.345678p0123:1:1:0x0: ++%*1a:0x2.345678p0123:0:1: ++%1a:0x2.345678p+123:1:1:0x0: ++%*1a:0x2.345678p+123:0:1: ++%1a:0x7.fffff8p125:1:1:0x0: ++%*1a:0x7.fffff8p125:0:1: ++%1a:0xf.fffffp+124:1:1:0x0: ++%*1a:0xf.fffffp+124:0:1: ++%1a:infinity:0:-1: ++%*1a:infinity:0:-1: ++%1a:+nan():0:-1: ++%*1a:+nan():0:-1: ++%1a:+nan(09A_Zaz):0:-1: ++%*1a:+nan(09A_Zaz):0:-1: ++%1a:+0x0p0:0:-1: ++%*1a:+0x0p0:0:-1: ++%1a:+0x0p+0:0:-1: ++%*1a:+0x0p+0:0:-1: ++%1a:+0x8p-129:0:-1: ++%*1a:+0x8p-129:0:-1: ++%1a:+0x2.345678p0123:0:-1: ++%*1a:+0x2.345678p0123:0:-1: ++%1a:+0x2.345678p+123:0:-1: ++%*1a:+0x2.345678p+123:0:-1: ++%1a:+0x7.fffff8p125:0:-1: ++%*1a:+0x7.fffff8p125:0:-1: ++%1a:+0xf.fffffp+124:0:-1: ++%*1a:+0xf.fffffp+124:0:-1: ++%1a:+infinity:0:-1: ++%*1a:+infinity:0:-1: ++%2a::0:-1: ++%*2a::0:-1: ++%2a:-infinity:0:-1: ++%*2a:-infinity:0:-1: ++%2a:-0xf.fffffp+124:1:2:-0x0: ++%*2a:-0xf.fffffp+124:0:2: ++%2a:-0x7.fffff8p125:1:2:-0x0: ++%*2a:-0x7.fffff8p125:0:2: ++%2a:-0x2.345678p+123:1:2:-0x0: ++%*2a:-0x2.345678p+123:0:2: ++%2a:-0x2.345678p0123:1:2:-0x0: ++%*2a:-0x2.345678p0123:0:2: ++%2a:-0x8p-129:1:2:-0x0: ++%*2a:-0x8p-129:0:2: ++%2a:-0x0p+0:1:2:-0x0: ++%*2a:-0x0p+0:0:2: ++%2a:-0x0p0:1:2:-0x0: ++%*2a:-0x0p0:0:2: ++%2a:-nan(09A_Zaz):0:-1: ++%*2a:-nan(09A_Zaz):0:-1: ++%2a:-nan():0:-1: ++%*2a:-nan():0:-1: ++%2a:nan():0:-1: ++%*2a:nan():0:-1: ++%2a:nan(09A_Zaz):0:-1: ++%*2a:nan(09A_Zaz):0:-1: ++# BZ12701 %2a:0x0p0:0:-1: ++# BZ12701 %*2a:0x0p0:0:-1: ++# BZ12701 %2a:0x0p+0:0:-1: ++# BZ12701 %*2a:0x0p+0:0:-1: ++# BZ12701 %2a:0x8p-129:0:-1: ++# BZ12701 %*2a:0x8p-129:0:-1: ++# BZ12701 %2a:0x2.345678p0123:0:-1: ++# BZ12701 %*2a:0x2.345678p0123:0:-1: ++# BZ12701 %2a:0x2.345678p+123:0:-1: ++# BZ12701 %*2a:0x2.345678p+123:0:-1: ++# BZ12701 %2a:0x7.fffff8p125:0:-1: ++# BZ12701 %*2a:0x7.fffff8p125:0:-1: ++# BZ12701 %2a:0xf.fffffp+124:0:-1: ++# BZ12701 %*2a:0xf.fffffp+124:0:-1: ++%2a:infinity:0:-1: ++%*2a:infinity:0:-1: ++%2a:+nan():0:-1: ++%*2a:+nan():0:-1: ++%2a:+nan(09A_Zaz):0:-1: ++%*2a:+nan(09A_Zaz):0:-1: ++%2a:+0x0p0:1:2:0x0: ++%*2a:+0x0p0:0:2: ++%2a:+0x0p+0:1:2:0x0: ++%*2a:+0x0p+0:0:2: ++%2a:+0x8p-129:1:2:0x0: ++%*2a:+0x8p-129:0:2: ++%2a:+0x2.345678p0123:1:2:0x0: ++%*2a:+0x2.345678p0123:0:2: ++%2a:+0x2.345678p+123:1:2:0x0: ++%*2a:+0x2.345678p+123:0:2: ++%2a:+0x7.fffff8p125:1:2:0x0: ++%*2a:+0x7.fffff8p125:0:2: ++%2a:+0xf.fffffp+124:1:2:0x0: ++%*2a:+0xf.fffffp+124:0:2: ++%2a:+infinity:0:-1: ++%*2a:+infinity:0:-1: ++%3a::0:-1: ++%*3a::0:-1: ++%3a:-infinity:0:-1: ++%*3a:-infinity:0:-1: ++# BZ12701 %3a:-0xf.fffffp+124:0:-1: ++# BZ12701 %*3a:-0xf.fffffp+124:0:-1: ++# BZ12701 %3a:-0x7.fffff8p125:0:-1: ++# BZ12701 %*3a:-0x7.fffff8p125:0:-1: ++# BZ12701 %3a:-0x2.345678p+123:0:-1: ++# BZ12701 %*3a:-0x2.345678p+123:0:-1: ++# BZ12701 %3a:-0x2.345678p0123:0:-1: ++# BZ12701 %*3a:-0x2.345678p0123:0:-1: ++# BZ12701 %3a:-0x8p-129:0:-1: ++# BZ12701 %*3a:-0x8p-129:0:-1: ++# BZ12701 %3a:-0x0p+0:0:-1: ++# BZ12701 %*3a:-0x0p+0:0:-1: ++# BZ12701 %3a:-0x0p0:0:-1: ++# BZ12701 %*3a:-0x0p0:0:-1: ++%3a:-nan(09A_Zaz):0:-1: ++%*3a:-nan(09A_Zaz):0:-1: ++%3a:-nan():0:-1: ++%*3a:-nan():0:-1: ++%3a:nan():1:3:nan: ++%*3a:nan():0:3: ++%3a:nan(09A_Zaz):1:3:nan: ++%*3a:nan(09A_Zaz):0:3: ++%3a:0x0p0:1:3:0x0: ++%*3a:0x0p0:0:3: ++%3a:0x0p+0:1:3:0x0: ++%*3a:0x0p+0:0:3: ++%3a:0x8p-129:1:3:0x1p3: ++%*3a:0x8p-129:0:3: ++%3a:0x2.345678p0123:1:3:0x1p1: ++%*3a:0x2.345678p0123:0:3: ++%3a:0x2.345678p+123:1:3:0x1p1: ++%*3a:0x2.345678p+123:0:3: ++%3a:0x7.fffff8p125:1:3:0x1.cp2: ++%*3a:0x7.fffff8p125:0:3: ++%3a:0xf.fffffp+124:1:3:0x1.ep3: ++%*3a:0xf.fffffp+124:0:3: ++%3a:infinity:1:3:inf: ++%*3a:infinity:0:3: ++%3a:+nan():0:-1: ++%*3a:+nan():0:-1: ++%3a:+nan(09A_Zaz):0:-1: ++%*3a:+nan(09A_Zaz):0:-1: ++# BZ12701 %3a:+0x0p0:0:-1: ++# BZ12701 %*3a:+0x0p0:0:-1: ++# BZ12701 %3a:+0x0p+0:0:-1: ++# BZ12701 %*3a:+0x0p+0:0:-1: ++# BZ12701 %3a:+0x8p-129:0:-1: ++# BZ12701 %*3a:+0x8p-129:0:-1: ++# BZ12701 %3a:+0x2.345678p0123:0:-1: ++# BZ12701 %*3a:+0x2.345678p0123:0:-1: ++# BZ12701 %3a:+0x2.345678p+123:0:-1: ++# BZ12701 %*3a:+0x2.345678p+123:0:-1: ++# BZ12701 %3a:+0x7.fffff8p125:0:-1: ++# BZ12701 %*3a:+0x7.fffff8p125:0:-1: ++# BZ12701 %3a:+0xf.fffffp+124:0:-1: ++# BZ12701 %*3a:+0xf.fffffp+124:0:-1: ++%3a:+infinity:0:-1: ++%*3a:+infinity:0:-1: ++%4a::0:-1: ++%*4a::0:-1: ++%4a:-infinity:1:4:-inf: ++%*4a:-infinity:0:4: ++%4a:-0xf.fffffp+124:1:4:-0x1.ep3: ++%*4a:-0xf.fffffp+124:0:4: ++%4a:-0x7.fffff8p125:1:4:-0x1.cp2: ++%*4a:-0x7.fffff8p125:0:4: ++%4a:-0x2.345678p+123:1:4:-0x1p1: ++%*4a:-0x2.345678p+123:0:4: ++%4a:-0x2.345678p0123:1:4:-0x1p1: ++%*4a:-0x2.345678p0123:0:4: ++%4a:-0x8p-129:1:4:-0x1p3: ++%*4a:-0x8p-129:0:4: ++%4a:-0x0p+0:1:4:-0x0: ++%*4a:-0x0p+0:0:4: ++%4a:-0x0p0:1:4:-0x0: ++%*4a:-0x0p0:0:4: ++%4a:-nan(09A_Zaz):1:4:-nan: ++%*4a:-nan(09A_Zaz):0:4: ++%4a:-nan():1:4:-nan: ++%*4a:-nan():0:4: ++%4a:nan():0:-1: ++%*4a:nan():0:-1: ++%4a:nan(09A_Zaz):0:-1: ++%*4a:nan(09A_Zaz):0:-1: ++# BZ12701 %4a:0x0p0:0:-1: ++# BZ12701 %*4a:0x0p0:0:-1: ++# BZ12701 %4a:0x0p+0:0:-1: ++# BZ12701 %*4a:0x0p+0:0:-1: ++# BZ12701 %4a:0x8p-129:0:-1: ++# BZ12701 %*4a:0x8p-129:0:-1: ++%4a:0x2.345678p0123:1:4:0x1p1: ++%*4a:0x2.345678p0123:0:4: ++%4a:0x2.345678p+123:1:4:0x1p1: ++%*4a:0x2.345678p+123:0:4: ++%4a:0x7.fffff8p125:1:4:0x1.cp2: ++%*4a:0x7.fffff8p125:0:4: ++%4a:0xf.fffffp+124:1:4:0x1.ep3: ++%*4a:0xf.fffffp+124:0:4: ++%4a:infinity:0:-1: ++%*4a:infinity:0:-1: ++%4a:+nan():1:4:nan: ++%*4a:+nan():0:4: ++%4a:+nan(09A_Zaz):1:4:nan: ++%*4a:+nan(09A_Zaz):0:4: ++%4a:+0x0p0:1:4:0x0: ++%*4a:+0x0p0:0:4: ++%4a:+0x0p+0:1:4:0x0: ++%*4a:+0x0p+0:0:4: ++%4a:+0x8p-129:1:4:0x1p3: ++%*4a:+0x8p-129:0:4: ++%4a:+0x2.345678p0123:1:4:0x1p1: ++%*4a:+0x2.345678p0123:0:4: ++%4a:+0x2.345678p+123:1:4:0x1p1: ++%*4a:+0x2.345678p+123:0:4: ++%4a:+0x7.fffff8p125:1:4:0x1.cp2: ++%*4a:+0x7.fffff8p125:0:4: ++%4a:+0xf.fffffp+124:1:4:0x1.ep3: ++%*4a:+0xf.fffffp+124:0:4: ++%4a:+infinity:1:4:inf: ++%*4a:+infinity:0:4: ++%5a::0:-1: ++%*5a::0:-1: ++%5a:-infinity:0:-1: ++%*5a:-infinity:0:-1: ++%5a:-0xf.fffffp+124:1:5:-0x1.ep3: ++%*5a:-0xf.fffffp+124:0:5: ++%5a:-0x7.fffff8p125:1:5:-0x1.cp2: ++%*5a:-0x7.fffff8p125:0:5: ++%5a:-0x2.345678p+123:1:5:-0x1p1: ++%*5a:-0x2.345678p+123:0:5: ++%5a:-0x2.345678p0123:1:5:-0x1p1: ++%*5a:-0x2.345678p0123:0:5: ++# BZ12701 %5a:-0x8p-129:0:-1: ++# BZ12701 %*5a:-0x8p-129:0:-1: ++# BZ12701 %5a:-0x0p+0:0:-1: ++# BZ12701 %*5a:-0x0p+0:0:-1: ++# BZ12701 %5a:-0x0p0:0:-1: ++# BZ12701 %*5a:-0x0p0:0:-1: ++%5a:-nan(09A_Zaz):0:-1: ++%*5a:-nan(09A_Zaz):0:-1: ++%5a:-nan():0:-1: ++%*5a:-nan():0:-1: ++%5a:nan():1:5:nan: ++%*5a:nan():0:5: ++%5a:nan(09A_Zaz):0:-1: ++%*5a:nan(09A_Zaz):0:-1: ++%5a:0x0p0:1:5:0x0: ++%*5a:0x0p0:0:5: ++# BZ12701 %5a:0x0p+0:0:-1: ++# BZ12701 %*5a:0x0p+0:0:-1: ++# BZ12701 %5a:0x8p-129:0:-1: ++# BZ12701 %*5a:0x8p-129:0:-1: ++%5a:0x2.345678p0123:1:5:0x1.18p1: ++%*5a:0x2.345678p0123:0:5: ++%5a:0x2.345678p+123:1:5:0x1.18p1: ++%*5a:0x2.345678p+123:0:5: ++%5a:0x7.fffff8p125:1:5:0x1.fcp2: ++%*5a:0x7.fffff8p125:0:5: ++%5a:0xf.fffffp+124:1:5:0x1.fep3: ++%*5a:0xf.fffffp+124:0:5: ++%5a:infinity:0:-1: ++%*5a:infinity:0:-1: ++%5a:+nan():0:-1: ++%*5a:+nan():0:-1: ++%5a:+nan(09A_Zaz):0:-1: ++%*5a:+nan(09A_Zaz):0:-1: ++# BZ12701 %5a:+0x0p0:0:-1: ++# BZ12701 %*5a:+0x0p0:0:-1: ++# BZ12701 %5a:+0x0p+0:0:-1: ++# BZ12701 %*5a:+0x0p+0:0:-1: ++# BZ12701 %5a:+0x8p-129:0:-1: ++# BZ12701 %*5a:+0x8p-129:0:-1: ++%5a:+0x2.345678p0123:1:5:0x1p1: ++%*5a:+0x2.345678p0123:0:5: ++%5a:+0x2.345678p+123:1:5:0x1p1: ++%*5a:+0x2.345678p+123:0:5: ++%5a:+0x7.fffff8p125:1:5:0x1.cp2: ++%*5a:+0x7.fffff8p125:0:5: ++%5a:+0xf.fffffp+124:1:5:0x1.ep3: ++%*5a:+0xf.fffffp+124:0:5: ++%5a:+infinity:0:-1: ++%*5a:+infinity:0:-1: ++%6a::0:-1: ++%*6a::0:-1: ++%6a:-infinity:0:-1: ++%*6a:-infinity:0:-1: ++%6a:-0xf.fffffp+124:1:6:-0x1.fep3: ++%*6a:-0xf.fffffp+124:0:6: ++%6a:-0x7.fffff8p125:1:6:-0x1.fcp2: ++%*6a:-0x7.fffff8p125:0:6: ++%6a:-0x2.345678p+123:1:6:-0x1.18p1: ++%*6a:-0x2.345678p+123:0:6: ++%6a:-0x2.345678p0123:1:6:-0x1.18p1: ++%*6a:-0x2.345678p0123:0:6: ++# BZ12701 %6a:-0x8p-129:0:-1: ++# BZ12701 %*6a:-0x8p-129:0:-1: ++# BZ12701 %6a:-0x0p+0:0:-1: ++# BZ12701 %*6a:-0x0p+0:0:-1: ++%6a:-0x0p0:1:6:-0x0: ++%*6a:-0x0p0:0:6: ++%6a:-nan(09A_Zaz):0:-1: ++%*6a:-nan(09A_Zaz):0:-1: ++%6a:-nan():1:6:-nan: ++%*6a:-nan():0:6: ++%6a:nan():1:5:nan: ++%*6a:nan():0:5: ++%6a:nan(09A_Zaz):0:-1: ++%*6a:nan(09A_Zaz):0:-1: ++%6a:0x0p0:1:5:0x0: ++%*6a:0x0p0:0:5: ++%6a:0x0p+0:1:6:0x0: ++%*6a:0x0p+0:0:6: ++%6a:0x8p-129:1:6:0x1p2: ++%*6a:0x8p-129:0:6: ++%6a:0x2.345678p0123:1:6:0x1.1ap1: ++%*6a:0x2.345678p0123:0:6: ++%6a:0x2.345678p+123:1:6:0x1.1ap1: ++%*6a:0x2.345678p+123:0:6: ++%6a:0x7.fffff8p125:1:6:0x1.ffcp2: ++%*6a:0x7.fffff8p125:0:6: ++%6a:0xf.fffffp+124:1:6:0x1.ffep3: ++%*6a:0xf.fffffp+124:0:6: ++%6a:infinity:0:-1: ++%*6a:infinity:0:-1: ++%6a:+nan():1:6:nan: ++%*6a:+nan():0:6: ++%6a:+nan(09A_Zaz):0:-1: ++%*6a:+nan(09A_Zaz):0:-1: ++%6a:+0x0p0:1:6:0x0: ++%*6a:+0x0p0:0:6: ++# BZ12701 %6a:+0x0p+0:0:-1: ++# BZ12701 %*6a:+0x0p+0:0:-1: ++# BZ12701 %6a:+0x8p-129:0:-1: ++# BZ12701 %*6a:+0x8p-129:0:-1: ++%6a:+0x2.345678p0123:1:6:0x1.18p1: ++%*6a:+0x2.345678p0123:0:6: ++%6a:+0x2.345678p+123:1:6:0x1.18p1: ++%*6a:+0x2.345678p+123:0:6: ++%6a:+0x7.fffff8p125:1:6:0x1.fcp2: ++%*6a:+0x7.fffff8p125:0:6: ++%6a:+0xf.fffffp+124:1:6:0x1.fep3: ++%*6a:+0xf.fffffp+124:0:6: ++%6a:+infinity:0:-1: ++%*6a:+infinity:0:-1: ++%12a::0:-1: ++%*12a::0:-1: ++%12a:-infinity:1:9:-inf: ++%*12a:-infinity:0:9: ++# BZ12701 %12a:-0xf.fffffp+124:0:-1: ++# BZ12701 %*12a:-0xf.fffffp+124:0:-1: ++# BZ12701 %12a:-0x7.fffff8p125:0:-1: ++# BZ12701 %*12a:-0x7.fffff8p125:0:-1: ++# BZ12701 %12a:-0x2.345678p+123:0:-1: ++# BZ12701 %*12a:-0x2.345678p+123:0:-1: ++# BZ12701 %12a:-0x2.345678p0123:0:-1: ++# BZ12701 %*12a:-0x2.345678p0123:0:-1: ++%12a:-0x8p-129:1:9:-0x1p-126: ++%*12a:-0x8p-129:0:9: ++%12a:-0x0p+0:1:7:-0x0: ++%*12a:-0x0p+0:0:7: ++%12a:-0x0p0:1:6:-0x0: ++%*12a:-0x0p0:0:6: ++%12a:-nan(09A_Zaz):0:-1: ++%*12a:-nan(09A_Zaz):0:-1: ++%12a:-nan():1:6:-nan: ++%*12a:-nan():0:6: ++%12a:nan():1:5:nan: ++%*12a:nan():0:5: ++%12a:nan(09A_Zaz):1:12:nan: ++%*12a:nan(09A_Zaz):0:12: ++%12a:0x0p0:1:5:0x0: ++%*12a:0x0p0:0:5: ++%12a:0x0p+0:1:6:0x0: ++%*12a:0x0p+0:0:6: ++%12a:0x8p-129:1:8:0x1p-126: ++%*12a:0x8p-129:0:8: ++%12a:0x2.345678p0123:1:12:0x1.1a2b3cp1: ++%*12a:0x2.345678p0123:0:12: ++# BZ12701 %12a:0x2.345678p+123:0:-1: ++# BZ12701 %*12a:0x2.345678p+123:0:-1: ++%12a:0x7.fffff8p125:1:12:0x1.fffffep3: ++%*12a:0x7.fffff8p125:0:12: ++%12a:0xf.fffffp+124:1:12:0x1.fffffep4: ++%*12a:0xf.fffffp+124:0:12: ++%12a:infinity:1:8:inf: ++%*12a:infinity:0:8: ++%12a:+nan():1:6:nan: ++%*12a:+nan():0:6: ++%12a:+nan(09A_Zaz):0:-1: ++%*12a:+nan(09A_Zaz):0:-1: ++%12a:+0x0p0:1:6:0x0: ++%*12a:+0x0p0:0:6: ++%12a:+0x0p+0:1:7:0x0: ++%*12a:+0x0p+0:0:7: ++%12a:+0x8p-129:1:9:0x1p-126: ++%*12a:+0x8p-129:0:9: ++# BZ12701 %12a:+0x2.345678p0123:0:-1: ++# BZ12701 %*12a:+0x2.345678p0123:0:-1: ++# BZ12701 %12a:+0x2.345678p+123:0:-1: ++# BZ12701 %*12a:+0x2.345678p+123:0:-1: ++# BZ12701 %12a:+0x7.fffff8p125:0:-1: ++# BZ12701 %*12a:+0x7.fffff8p125:0:-1: ++# BZ12701 %12a:+0xf.fffffp+124:0:-1: ++# BZ12701 %*12a:+0xf.fffffp+124:0:-1: ++%12a:+infinity:1:9:inf: ++%*12a:+infinity:0:9: ++%18a::0:-1: ++%*18a::0:-1: ++%18a:-infinity:1:9:-inf: ++%*18a:-infinity:0:9: ++%18a:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*18a:-0xf.fffffp+124:0:15: ++%18a:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*18a:-0x7.fffff8p125:0:15: ++%18a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*18a:-0x2.345678p+123:0:16: ++%18a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*18a:-0x2.345678p0123:0:16: ++%18a:-0x8p-129:1:9:-0x1p-126: ++%*18a:-0x8p-129:0:9: ++%18a:-0x0p+0:1:7:-0x0: ++%*18a:-0x0p+0:0:7: ++%18a:-0x0p0:1:6:-0x0: ++%*18a:-0x0p0:0:6: ++%18a:-nan(09A_Zaz):1:13:-nan: ++%*18a:-nan(09A_Zaz):0:13: ++%18a:-nan():1:6:-nan: ++%*18a:-nan():0:6: ++%18a:nan():1:5:nan: ++%*18a:nan():0:5: ++%18a:nan(09A_Zaz):1:12:nan: ++%*18a:nan(09A_Zaz):0:12: ++%18a:0x0p0:1:5:0x0: ++%*18a:0x0p0:0:5: ++%18a:0x0p+0:1:6:0x0: ++%*18a:0x0p+0:0:6: ++%18a:0x8p-129:1:8:0x1p-126: ++%*18a:0x8p-129:0:8: ++%18a:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*18a:0x2.345678p0123:0:15: ++%18a:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*18a:0x2.345678p+123:0:15: ++%18a:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*18a:0x7.fffff8p125:0:14: ++%18a:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*18a:0xf.fffffp+124:0:14: ++%18a:infinity:1:8:inf: ++%*18a:infinity:0:8: ++%18a:+nan():1:6:nan: ++%*18a:+nan():0:6: ++%18a:+nan(09A_Zaz):1:13:nan: ++%*18a:+nan(09A_Zaz):0:13: ++%18a:+0x0p0:1:6:0x0: ++%*18a:+0x0p0:0:6: ++%18a:+0x0p+0:1:7:0x0: ++%*18a:+0x0p+0:0:7: ++%18a:+0x8p-129:1:9:0x1p-126: ++%*18a:+0x8p-129:0:9: ++%18a:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18a:+0x2.345678p0123:0:16: ++%18a:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18a:+0x2.345678p+123:0:16: ++%18a:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18a:+0x7.fffff8p125:0:15: ++%18a:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18a:+0xf.fffffp+124:0:15: ++%18a:+infinity:1:9:inf: ++%*18a:+infinity:0:9: ++%5a: :0:-1: ++%*5a: :0:-1: ++%5a: -infinity:0:-1: ++%*5a: -infinity:0:-1: ++%5a: -0xf.fffffp+124:1:6:-0x1.ep3: ++%*5a: -0xf.fffffp+124:0:6: ++%5a: -0x7.fffff8p125:1:6:-0x1.cp2: ++%*5a: -0x7.fffff8p125:0:6: ++%5a: -0x2.345678p+123:1:6:-0x1p1: ++%*5a: -0x2.345678p+123:0:6: ++%5a: -0x2.345678p0123:1:6:-0x1p1: ++%*5a: -0x2.345678p0123:0:6: ++# BZ12701 %5a: -0x8p-129:0:-1: ++# BZ12701 %*5a: -0x8p-129:0:-1: ++# BZ12701 %5a: -0x0p+0:0:-1: ++# BZ12701 %*5a: -0x0p+0:0:-1: ++# BZ12701 %5a: -0x0p0:0:-1: ++# BZ12701 %*5a: -0x0p0:0:-1: ++%5a: -nan(09A_Zaz):0:-1: ++%*5a: -nan(09A_Zaz):0:-1: ++%5a: -nan():0:-1: ++%*5a: -nan():0:-1: ++%5a: nan():1:6:nan: ++%*5a: nan():0:6: ++%5a: nan(09A_Zaz):0:-1: ++%*5a: nan(09A_Zaz):0:-1: ++%5a: 0x0p0:1:6:0x0: ++%*5a: 0x0p0:0:6: ++# BZ12701 %5a: 0x0p+0:0:-1: ++# BZ12701 %*5a: 0x0p+0:0:-1: ++# BZ12701 %5a: 0x8p-129:0:-1: ++# BZ12701 %*5a: 0x8p-129:0:-1: ++%5a: 0x2.345678p0123:1:6:0x1.18p1: ++%*5a: 0x2.345678p0123:0:6: ++%5a: 0x2.345678p+123:1:6:0x1.18p1: ++%*5a: 0x2.345678p+123:0:6: ++%5a: 0x7.fffff8p125:1:6:0x1.fcp2: ++%*5a: 0x7.fffff8p125:0:6: ++%5a: 0xf.fffffp+124:1:6:0x1.fep3: ++%*5a: 0xf.fffffp+124:0:6: ++%5a: infinity:0:-1: ++%*5a: infinity:0:-1: ++%5a: +nan():0:-1: ++%*5a: +nan():0:-1: ++%5a: +nan(09A_Zaz):0:-1: ++%*5a: +nan(09A_Zaz):0:-1: ++# BZ12701 %5a: +0x0p0:0:-1: ++# BZ12701 %*5a: +0x0p0:0:-1: ++# BZ12701 %5a: +0x0p+0:0:-1: ++# BZ12701 %*5a: +0x0p+0:0:-1: ++# BZ12701 %5a: +0x8p-129:0:-1: ++# BZ12701 %*5a: +0x8p-129:0:-1: ++%5a: +0x2.345678p0123:1:6:0x1p1: ++%*5a: +0x2.345678p0123:0:6: ++%5a: +0x2.345678p+123:1:6:0x1p1: ++%*5a: +0x2.345678p+123:0:6: ++%5a: +0x7.fffff8p125:1:6:0x1.cp2: ++%*5a: +0x7.fffff8p125:0:6: ++%5a: +0xf.fffffp+124:1:6:0x1.ep3: ++%*5a: +0xf.fffffp+124:0:6: ++%5a: +infinity:0:-1: ++%*5a: +infinity:0:-1: ++%18a: :0:-1: ++%*18a: :0:-1: ++%18a: -infinity:1:10:-inf: ++%*18a: -infinity:0:10: ++%18a: -0xf.fffffp+124:1:16:-0x1.fffffep127: ++%*18a: -0xf.fffffp+124:0:16: ++%18a: -0x7.fffff8p125:1:16:-0x1.fffffep127: ++%*18a: -0x7.fffff8p125:0:16: ++%18a: -0x2.345678p+123:1:17:-0x1.1a2b3cp124: ++%*18a: -0x2.345678p+123:0:17: ++%18a: -0x2.345678p0123:1:17:-0x1.1a2b3cp124: ++%*18a: -0x2.345678p0123:0:17: ++%18a: -0x8p-129:1:10:-0x1p-126: ++%*18a: -0x8p-129:0:10: ++%18a: -0x0p+0:1:8:-0x0: ++%*18a: -0x0p+0:0:8: ++%18a: -0x0p0:1:7:-0x0: ++%*18a: -0x0p0:0:7: ++%18a: -nan(09A_Zaz):1:14:-nan: ++%*18a: -nan(09A_Zaz):0:14: ++%18a: -nan():1:7:-nan: ++%*18a: -nan():0:7: ++%18a: nan():1:6:nan: ++%*18a: nan():0:6: ++%18a: nan(09A_Zaz):1:13:nan: ++%*18a: nan(09A_Zaz):0:13: ++%18a: 0x0p0:1:6:0x0: ++%*18a: 0x0p0:0:6: ++%18a: 0x0p+0:1:7:0x0: ++%*18a: 0x0p+0:0:7: ++%18a: 0x8p-129:1:9:0x1p-126: ++%*18a: 0x8p-129:0:9: ++%18a: 0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18a: 0x2.345678p0123:0:16: ++%18a: 0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18a: 0x2.345678p+123:0:16: ++%18a: 0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18a: 0x7.fffff8p125:0:15: ++%18a: 0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18a: 0xf.fffffp+124:0:15: ++%18a: infinity:1:9:inf: ++%*18a: infinity:0:9: ++%18a: +nan():1:7:nan: ++%*18a: +nan():0:7: ++%18a: +nan(09A_Zaz):1:14:nan: ++%*18a: +nan(09A_Zaz):0:14: ++%18a: +0x0p0:1:7:0x0: ++%*18a: +0x0p0:0:7: ++%18a: +0x0p+0:1:8:0x0: ++%*18a: +0x0p+0:0:8: ++%18a: +0x8p-129:1:10:0x1p-126: ++%*18a: +0x8p-129:0:10: ++%18a: +0x2.345678p0123:1:17:0x1.1a2b3cp124: ++%*18a: +0x2.345678p0123:0:17: ++%18a: +0x2.345678p+123:1:17:0x1.1a2b3cp124: ++%*18a: +0x2.345678p+123:0:17: ++%18a: +0x7.fffff8p125:1:16:0x1.fffffep127: ++%*18a: +0x7.fffff8p125:0:16: ++%18a: +0xf.fffffp+124:1:16:0x1.fffffep127: ++%*18a: +0xf.fffffp+124:0:16: ++%18a: +infinity:1:10:inf: ++%*18a: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +new file mode 100644 +index 0000000000000000..9f541217605c0b7a +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +@@ -0,0 +1,682 @@ ++%A::0:-1: ++%*A::0:-1: ++%A:-INFINITY:1:9:-inf: ++%*A:-INFINITY:0:9: ++%A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*A:-0XF.FFFFFP+124:0:15: ++%A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*A:-0X7.FFFFF8P125:0:15: ++%A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*A:-0X2.345678P+123:0:16: ++%A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*A:-0X2.345678P0123:0:16: ++%A:-0X8P-129:1:9:-0x1p-126: ++%*A:-0X8P-129:0:9: ++%A:-0X0P+0:1:7:-0x0: ++%*A:-0X0P+0:0:7: ++%A:-0X0P0:1:6:-0x0: ++%*A:-0X0P0:0:6: ++%A:-NAN(09A_Zaz):1:13:-nan: ++%*A:-NAN(09A_Zaz):0:13: ++%A:-NAN():1:6:-nan: ++%*A:-NAN():0:6: ++%A:NAN():1:5:nan: ++%*A:NAN():0:5: ++%A:NAN(09A_Zaz):1:12:nan: ++%*A:NAN(09A_Zaz):0:12: ++%A:0X0P0:1:5:0x0: ++%*A:0X0P0:0:5: ++%A:0X0P+0:1:6:0x0: ++%*A:0X0P+0:0:6: ++%A:0X8P-129:1:8:0x1p-126: ++%*A:0X8P-129:0:8: ++%A:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*A:0X2.345678P0123:0:15: ++%A:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*A:0X2.345678P+123:0:15: ++%A:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*A:0X7.FFFFF8P125:0:14: ++%A:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*A:0XF.FFFFFP+124:0:14: ++%A:INFINITY:1:8:inf: ++%*A:INFINITY:0:8: ++%A:+NAN():1:6:nan: ++%*A:+NAN():0:6: ++%A:+NAN(09A_Zaz):1:13:nan: ++%*A:+NAN(09A_Zaz):0:13: ++%A:+0X0P0:1:6:0x0: ++%*A:+0X0P0:0:6: ++%A:+0X0P+0:1:7:0x0: ++%*A:+0X0P+0:0:7: ++%A:+0X8P-129:1:9:0x1p-126: ++%*A:+0X8P-129:0:9: ++%A:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*A:+0X2.345678P0123:0:16: ++%A:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*A:+0X2.345678P+123:0:16: ++%A:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*A:+0X7.FFFFF8P125:0:15: ++%A:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*A:+0XF.FFFFFP+124:0:15: ++%A:+INFINITY:1:9:inf: ++%*A:+INFINITY:0:9: ++%1A::0:-1: ++%*1A::0:-1: ++%1A:-INFINITY:0:-1: ++%*1A:-INFINITY:0:-1: ++%1A:-0XF.FFFFFP+124:0:-1: ++%*1A:-0XF.FFFFFP+124:0:-1: ++%1A:-0X7.FFFFF8P125:0:-1: ++%*1A:-0X7.FFFFF8P125:0:-1: ++%1A:-0X2.345678P+123:0:-1: ++%*1A:-0X2.345678P+123:0:-1: ++%1A:-0X2.345678P0123:0:-1: ++%*1A:-0X2.345678P0123:0:-1: ++%1A:-0X8P-129:0:-1: ++%*1A:-0X8P-129:0:-1: ++%1A:-0X0P+0:0:-1: ++%*1A:-0X0P+0:0:-1: ++%1A:-0X0P0:0:-1: ++%*1A:-0X0P0:0:-1: ++%1A:-NAN(09A_Zaz):0:-1: ++%*1A:-NAN(09A_Zaz):0:-1: ++%1A:-NAN():0:-1: ++%*1A:-NAN():0:-1: ++%1A:NAN():0:-1: ++%*1A:NAN():0:-1: ++%1A:NAN(09A_Zaz):0:-1: ++%*1A:NAN(09A_Zaz):0:-1: ++%1A:0X0P0:1:1:0x0: ++%*1A:0X0P0:0:1: ++%1A:0X0P+0:1:1:0x0: ++%*1A:0X0P+0:0:1: ++%1A:0X8P-129:1:1:0x0: ++%*1A:0X8P-129:0:1: ++%1A:0X2.345678P0123:1:1:0x0: ++%*1A:0X2.345678P0123:0:1: ++%1A:0X2.345678P+123:1:1:0x0: ++%*1A:0X2.345678P+123:0:1: ++%1A:0X7.FFFFF8P125:1:1:0x0: ++%*1A:0X7.FFFFF8P125:0:1: ++%1A:0XF.FFFFFP+124:1:1:0x0: ++%*1A:0XF.FFFFFP+124:0:1: ++%1A:INFINITY:0:-1: ++%*1A:INFINITY:0:-1: ++%1A:+NAN():0:-1: ++%*1A:+NAN():0:-1: ++%1A:+NAN(09A_Zaz):0:-1: ++%*1A:+NAN(09A_Zaz):0:-1: ++%1A:+0X0P0:0:-1: ++%*1A:+0X0P0:0:-1: ++%1A:+0X0P+0:0:-1: ++%*1A:+0X0P+0:0:-1: ++%1A:+0X8P-129:0:-1: ++%*1A:+0X8P-129:0:-1: ++%1A:+0X2.345678P0123:0:-1: ++%*1A:+0X2.345678P0123:0:-1: ++%1A:+0X2.345678P+123:0:-1: ++%*1A:+0X2.345678P+123:0:-1: ++%1A:+0X7.FFFFF8P125:0:-1: ++%*1A:+0X7.FFFFF8P125:0:-1: ++%1A:+0XF.FFFFFP+124:0:-1: ++%*1A:+0XF.FFFFFP+124:0:-1: ++%1A:+INFINITY:0:-1: ++%*1A:+INFINITY:0:-1: ++%2A::0:-1: ++%*2A::0:-1: ++%2A:-INFINITY:0:-1: ++%*2A:-INFINITY:0:-1: ++%2A:-0XF.FFFFFP+124:1:2:-0x0: ++%*2A:-0XF.FFFFFP+124:0:2: ++%2A:-0X7.FFFFF8P125:1:2:-0x0: ++%*2A:-0X7.FFFFF8P125:0:2: ++%2A:-0X2.345678P+123:1:2:-0x0: ++%*2A:-0X2.345678P+123:0:2: ++%2A:-0X2.345678P0123:1:2:-0x0: ++%*2A:-0X2.345678P0123:0:2: ++%2A:-0X8P-129:1:2:-0x0: ++%*2A:-0X8P-129:0:2: ++%2A:-0X0P+0:1:2:-0x0: ++%*2A:-0X0P+0:0:2: ++%2A:-0X0P0:1:2:-0x0: ++%*2A:-0X0P0:0:2: ++%2A:-NAN(09A_Zaz):0:-1: ++%*2A:-NAN(09A_Zaz):0:-1: ++%2A:-NAN():0:-1: ++%*2A:-NAN():0:-1: ++%2A:NAN():0:-1: ++%*2A:NAN():0:-1: ++%2A:NAN(09A_Zaz):0:-1: ++%*2A:NAN(09A_Zaz):0:-1: ++# BZ12701 %2A:0X0P0:0:-1: ++# BZ12701 %*2A:0X0P0:0:-1: ++# BZ12701 %2A:0X0P+0:0:-1: ++# BZ12701 %*2A:0X0P+0:0:-1: ++# BZ12701 %2A:0X8P-129:0:-1: ++# BZ12701 %*2A:0X8P-129:0:-1: ++# BZ12701 %2A:0X2.345678P0123:0:-1: ++# BZ12701 %*2A:0X2.345678P0123:0:-1: ++# BZ12701 %2A:0X2.345678P+123:0:-1: ++# BZ12701 %*2A:0X2.345678P+123:0:-1: ++# BZ12701 %2A:0X7.FFFFF8P125:0:-1: ++# BZ12701 %*2A:0X7.FFFFF8P125:0:-1: ++# BZ12701 %2A:0XF.FFFFFP+124:0:-1: ++# BZ12701 %*2A:0XF.FFFFFP+124:0:-1: ++%2A:INFINITY:0:-1: ++%*2A:INFINITY:0:-1: ++%2A:+NAN():0:-1: ++%*2A:+NAN():0:-1: ++%2A:+NAN(09A_Zaz):0:-1: ++%*2A:+NAN(09A_Zaz):0:-1: ++%2A:+0X0P0:1:2:0x0: ++%*2A:+0X0P0:0:2: ++%2A:+0X0P+0:1:2:0x0: ++%*2A:+0X0P+0:0:2: ++%2A:+0X8P-129:1:2:0x0: ++%*2A:+0X8P-129:0:2: ++%2A:+0X2.345678P0123:1:2:0x0: ++%*2A:+0X2.345678P0123:0:2: ++%2A:+0X2.345678P+123:1:2:0x0: ++%*2A:+0X2.345678P+123:0:2: ++%2A:+0X7.FFFFF8P125:1:2:0x0: ++%*2A:+0X7.FFFFF8P125:0:2: ++%2A:+0XF.FFFFFP+124:1:2:0x0: ++%*2A:+0XF.FFFFFP+124:0:2: ++%2A:+INFINITY:0:-1: ++%*2A:+INFINITY:0:-1: ++%3A::0:-1: ++%*3A::0:-1: ++%3A:-INFINITY:0:-1: ++%*3A:-INFINITY:0:-1: ++# BZ12701 %3A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %3A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %3A:-0X2.345678P+123:0:-1: ++# BZ12701 %*3A:-0X2.345678P+123:0:-1: ++# BZ12701 %3A:-0X2.345678P0123:0:-1: ++# BZ12701 %*3A:-0X2.345678P0123:0:-1: ++# BZ12701 %3A:-0X8P-129:0:-1: ++# BZ12701 %*3A:-0X8P-129:0:-1: ++# BZ12701 %3A:-0X0P+0:0:-1: ++# BZ12701 %*3A:-0X0P+0:0:-1: ++# BZ12701 %3A:-0X0P0:0:-1: ++# BZ12701 %*3A:-0X0P0:0:-1: ++%3A:-NAN(09A_Zaz):0:-1: ++%*3A:-NAN(09A_Zaz):0:-1: ++%3A:-NAN():0:-1: ++%*3A:-NAN():0:-1: ++%3A:NAN():1:3:nan: ++%*3A:NAN():0:3: ++%3A:NAN(09A_Zaz):1:3:nan: ++%*3A:NAN(09A_Zaz):0:3: ++%3A:0X0P0:1:3:0x0: ++%*3A:0X0P0:0:3: ++%3A:0X0P+0:1:3:0x0: ++%*3A:0X0P+0:0:3: ++%3A:0X8P-129:1:3:0x1p3: ++%*3A:0X8P-129:0:3: ++%3A:0X2.345678P0123:1:3:0x1p1: ++%*3A:0X2.345678P0123:0:3: ++%3A:0X2.345678P+123:1:3:0x1p1: ++%*3A:0X2.345678P+123:0:3: ++%3A:0X7.FFFFF8P125:1:3:0x1.cp2: ++%*3A:0X7.FFFFF8P125:0:3: ++%3A:0XF.FFFFFP+124:1:3:0x1.ep3: ++%*3A:0XF.FFFFFP+124:0:3: ++%3A:INFINITY:1:3:inf: ++%*3A:INFINITY:0:3: ++%3A:+NAN():0:-1: ++%*3A:+NAN():0:-1: ++%3A:+NAN(09A_Zaz):0:-1: ++%*3A:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3A:+0X0P0:0:-1: ++# BZ12701 %*3A:+0X0P0:0:-1: ++# BZ12701 %3A:+0X0P+0:0:-1: ++# BZ12701 %*3A:+0X0P+0:0:-1: ++# BZ12701 %3A:+0X8P-129:0:-1: ++# BZ12701 %*3A:+0X8P-129:0:-1: ++# BZ12701 %3A:+0X2.345678P0123:0:-1: ++# BZ12701 %*3A:+0X2.345678P0123:0:-1: ++# BZ12701 %3A:+0X2.345678P+123:0:-1: ++# BZ12701 %*3A:+0X2.345678P+123:0:-1: ++# BZ12701 %3A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %3A:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3A:+0XF.FFFFFP+124:0:-1: ++%3A:+INFINITY:0:-1: ++%*3A:+INFINITY:0:-1: ++%4A::0:-1: ++%*4A::0:-1: ++%4A:-INFINITY:1:4:-inf: ++%*4A:-INFINITY:0:4: ++%4A:-0XF.FFFFFP+124:1:4:-0x1.ep3: ++%*4A:-0XF.FFFFFP+124:0:4: ++%4A:-0X7.FFFFF8P125:1:4:-0x1.cp2: ++%*4A:-0X7.FFFFF8P125:0:4: ++%4A:-0X2.345678P+123:1:4:-0x1p1: ++%*4A:-0X2.345678P+123:0:4: ++%4A:-0X2.345678P0123:1:4:-0x1p1: ++%*4A:-0X2.345678P0123:0:4: ++%4A:-0X8P-129:1:4:-0x1p3: ++%*4A:-0X8P-129:0:4: ++%4A:-0X0P+0:1:4:-0x0: ++%*4A:-0X0P+0:0:4: ++%4A:-0X0P0:1:4:-0x0: ++%*4A:-0X0P0:0:4: ++%4A:-NAN(09A_Zaz):1:4:-nan: ++%*4A:-NAN(09A_Zaz):0:4: ++%4A:-NAN():1:4:-nan: ++%*4A:-NAN():0:4: ++%4A:NAN():0:-1: ++%*4A:NAN():0:-1: ++%4A:NAN(09A_Zaz):0:-1: ++%*4A:NAN(09A_Zaz):0:-1: ++# BZ12701 %4A:0X0P0:0:-1: ++# BZ12701 %*4A:0X0P0:0:-1: ++# BZ12701 %4A:0X0P+0:0:-1: ++# BZ12701 %*4A:0X0P+0:0:-1: ++# BZ12701 %4A:0X8P-129:0:-1: ++# BZ12701 %*4A:0X8P-129:0:-1: ++%4A:0X2.345678P0123:1:4:0x1p1: ++%*4A:0X2.345678P0123:0:4: ++%4A:0X2.345678P+123:1:4:0x1p1: ++%*4A:0X2.345678P+123:0:4: ++%4A:0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4A:0X7.FFFFF8P125:0:4: ++%4A:0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4A:0XF.FFFFFP+124:0:4: ++%4A:INFINITY:0:-1: ++%*4A:INFINITY:0:-1: ++%4A:+NAN():1:4:nan: ++%*4A:+NAN():0:4: ++%4A:+NAN(09A_Zaz):1:4:nan: ++%*4A:+NAN(09A_Zaz):0:4: ++%4A:+0X0P0:1:4:0x0: ++%*4A:+0X0P0:0:4: ++%4A:+0X0P+0:1:4:0x0: ++%*4A:+0X0P+0:0:4: ++%4A:+0X8P-129:1:4:0x1p3: ++%*4A:+0X8P-129:0:4: ++%4A:+0X2.345678P0123:1:4:0x1p1: ++%*4A:+0X2.345678P0123:0:4: ++%4A:+0X2.345678P+123:1:4:0x1p1: ++%*4A:+0X2.345678P+123:0:4: ++%4A:+0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4A:+0X7.FFFFF8P125:0:4: ++%4A:+0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4A:+0XF.FFFFFP+124:0:4: ++%4A:+INFINITY:1:4:inf: ++%*4A:+INFINITY:0:4: ++%5A::0:-1: ++%*5A::0:-1: ++%5A:-INFINITY:0:-1: ++%*5A:-INFINITY:0:-1: ++%5A:-0XF.FFFFFP+124:1:5:-0x1.ep3: ++%*5A:-0XF.FFFFFP+124:0:5: ++%5A:-0X7.FFFFF8P125:1:5:-0x1.cp2: ++%*5A:-0X7.FFFFF8P125:0:5: ++%5A:-0X2.345678P+123:1:5:-0x1p1: ++%*5A:-0X2.345678P+123:0:5: ++%5A:-0X2.345678P0123:1:5:-0x1p1: ++%*5A:-0X2.345678P0123:0:5: ++# BZ12701 %5A:-0X8P-129:0:-1: ++# BZ12701 %*5A:-0X8P-129:0:-1: ++# BZ12701 %5A:-0X0P+0:0:-1: ++# BZ12701 %*5A:-0X0P+0:0:-1: ++# BZ12701 %5A:-0X0P0:0:-1: ++# BZ12701 %*5A:-0X0P0:0:-1: ++%5A:-NAN(09A_Zaz):0:-1: ++%*5A:-NAN(09A_Zaz):0:-1: ++%5A:-NAN():0:-1: ++%*5A:-NAN():0:-1: ++%5A:NAN():1:5:nan: ++%*5A:NAN():0:5: ++%5A:NAN(09A_Zaz):0:-1: ++%*5A:NAN(09A_Zaz):0:-1: ++%5A:0X0P0:1:5:0x0: ++%*5A:0X0P0:0:5: ++# BZ12701 %5A:0X0P+0:0:-1: ++# BZ12701 %*5A:0X0P+0:0:-1: ++# BZ12701 %5A:0X8P-129:0:-1: ++# BZ12701 %*5A:0X8P-129:0:-1: ++%5A:0X2.345678P0123:1:5:0x1.18p1: ++%*5A:0X2.345678P0123:0:5: ++%5A:0X2.345678P+123:1:5:0x1.18p1: ++%*5A:0X2.345678P+123:0:5: ++%5A:0X7.FFFFF8P125:1:5:0x1.fcp2: ++%*5A:0X7.FFFFF8P125:0:5: ++%5A:0XF.FFFFFP+124:1:5:0x1.fep3: ++%*5A:0XF.FFFFFP+124:0:5: ++%5A:INFINITY:0:-1: ++%*5A:INFINITY:0:-1: ++%5A:+NAN():0:-1: ++%*5A:+NAN():0:-1: ++%5A:+NAN(09A_Zaz):0:-1: ++%*5A:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5A:+0X0P0:0:-1: ++# BZ12701 %*5A:+0X0P0:0:-1: ++# BZ12701 %5A:+0X0P+0:0:-1: ++# BZ12701 %*5A:+0X0P+0:0:-1: ++# BZ12701 %5A:+0X8P-129:0:-1: ++# BZ12701 %*5A:+0X8P-129:0:-1: ++%5A:+0X2.345678P0123:1:5:0x1p1: ++%*5A:+0X2.345678P0123:0:5: ++%5A:+0X2.345678P+123:1:5:0x1p1: ++%*5A:+0X2.345678P+123:0:5: ++%5A:+0X7.FFFFF8P125:1:5:0x1.cp2: ++%*5A:+0X7.FFFFF8P125:0:5: ++%5A:+0XF.FFFFFP+124:1:5:0x1.ep3: ++%*5A:+0XF.FFFFFP+124:0:5: ++%5A:+INFINITY:0:-1: ++%*5A:+INFINITY:0:-1: ++%6A::0:-1: ++%*6A::0:-1: ++%6A:-INFINITY:0:-1: ++%*6A:-INFINITY:0:-1: ++%6A:-0XF.FFFFFP+124:1:6:-0x1.fep3: ++%*6A:-0XF.FFFFFP+124:0:6: ++%6A:-0X7.FFFFF8P125:1:6:-0x1.fcp2: ++%*6A:-0X7.FFFFF8P125:0:6: ++%6A:-0X2.345678P+123:1:6:-0x1.18p1: ++%*6A:-0X2.345678P+123:0:6: ++%6A:-0X2.345678P0123:1:6:-0x1.18p1: ++%*6A:-0X2.345678P0123:0:6: ++# BZ12701 %6A:-0X8P-129:0:-1: ++# BZ12701 %*6A:-0X8P-129:0:-1: ++# BZ12701 %6A:-0X0P+0:0:-1: ++# BZ12701 %*6A:-0X0P+0:0:-1: ++%6A:-0X0P0:1:6:-0x0: ++%*6A:-0X0P0:0:6: ++%6A:-NAN(09A_Zaz):0:-1: ++%*6A:-NAN(09A_Zaz):0:-1: ++%6A:-NAN():1:6:-nan: ++%*6A:-NAN():0:6: ++%6A:NAN():1:5:nan: ++%*6A:NAN():0:5: ++%6A:NAN(09A_Zaz):0:-1: ++%*6A:NAN(09A_Zaz):0:-1: ++%6A:0X0P0:1:5:0x0: ++%*6A:0X0P0:0:5: ++%6A:0X0P+0:1:6:0x0: ++%*6A:0X0P+0:0:6: ++%6A:0X8P-129:1:6:0x1p2: ++%*6A:0X8P-129:0:6: ++%6A:0X2.345678P0123:1:6:0x1.1ap1: ++%*6A:0X2.345678P0123:0:6: ++%6A:0X2.345678P+123:1:6:0x1.1ap1: ++%*6A:0X2.345678P+123:0:6: ++%6A:0X7.FFFFF8P125:1:6:0x1.ffcp2: ++%*6A:0X7.FFFFF8P125:0:6: ++%6A:0XF.FFFFFP+124:1:6:0x1.ffep3: ++%*6A:0XF.FFFFFP+124:0:6: ++%6A:INFINITY:0:-1: ++%*6A:INFINITY:0:-1: ++%6A:+NAN():1:6:nan: ++%*6A:+NAN():0:6: ++%6A:+NAN(09A_Zaz):0:-1: ++%*6A:+NAN(09A_Zaz):0:-1: ++%6A:+0X0P0:1:6:0x0: ++%*6A:+0X0P0:0:6: ++# BZ12701 %6A:+0X0P+0:0:-1: ++# BZ12701 %*6A:+0X0P+0:0:-1: ++# BZ12701 %6A:+0X8P-129:0:-1: ++# BZ12701 %*6A:+0X8P-129:0:-1: ++%6A:+0X2.345678P0123:1:6:0x1.18p1: ++%*6A:+0X2.345678P0123:0:6: ++%6A:+0X2.345678P+123:1:6:0x1.18p1: ++%*6A:+0X2.345678P+123:0:6: ++%6A:+0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*6A:+0X7.FFFFF8P125:0:6: ++%6A:+0XF.FFFFFP+124:1:6:0x1.fep3: ++%*6A:+0XF.FFFFFP+124:0:6: ++%6A:+INFINITY:0:-1: ++%*6A:+INFINITY:0:-1: ++%12A::0:-1: ++%*12A::0:-1: ++%12A:-INFINITY:1:9:-inf: ++%*12A:-INFINITY:0:9: ++# BZ12701 %12A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %12A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %12A:-0X2.345678P+123:0:-1: ++# BZ12701 %*12A:-0X2.345678P+123:0:-1: ++# BZ12701 %12A:-0X2.345678P0123:0:-1: ++# BZ12701 %*12A:-0X2.345678P0123:0:-1: ++%12A:-0X8P-129:1:9:-0x1p-126: ++%*12A:-0X8P-129:0:9: ++%12A:-0X0P+0:1:7:-0x0: ++%*12A:-0X0P+0:0:7: ++%12A:-0X0P0:1:6:-0x0: ++%*12A:-0X0P0:0:6: ++%12A:-NAN(09A_Zaz):0:-1: ++%*12A:-NAN(09A_Zaz):0:-1: ++%12A:-NAN():1:6:-nan: ++%*12A:-NAN():0:6: ++%12A:NAN():1:5:nan: ++%*12A:NAN():0:5: ++%12A:NAN(09A_Zaz):1:12:nan: ++%*12A:NAN(09A_Zaz):0:12: ++%12A:0X0P0:1:5:0x0: ++%*12A:0X0P0:0:5: ++%12A:0X0P+0:1:6:0x0: ++%*12A:0X0P+0:0:6: ++%12A:0X8P-129:1:8:0x1p-126: ++%*12A:0X8P-129:0:8: ++%12A:0X2.345678P0123:1:12:0x1.1a2b3cp1: ++%*12A:0X2.345678P0123:0:12: ++# BZ12701 %12A:0X2.345678P+123:0:-1: ++# BZ12701 %*12A:0X2.345678P+123:0:-1: ++%12A:0X7.FFFFF8P125:1:12:0x1.fffffep3: ++%*12A:0X7.FFFFF8P125:0:12: ++%12A:0XF.FFFFFP+124:1:12:0x1.fffffep4: ++%*12A:0XF.FFFFFP+124:0:12: ++%12A:INFINITY:1:8:inf: ++%*12A:INFINITY:0:8: ++%12A:+NAN():1:6:nan: ++%*12A:+NAN():0:6: ++%12A:+NAN(09A_Zaz):0:-1: ++%*12A:+NAN(09A_Zaz):0:-1: ++%12A:+0X0P0:1:6:0x0: ++%*12A:+0X0P0:0:6: ++%12A:+0X0P+0:1:7:0x0: ++%*12A:+0X0P+0:0:7: ++%12A:+0X8P-129:1:9:0x1p-126: ++%*12A:+0X8P-129:0:9: ++# BZ12701 %12A:+0X2.345678P0123:0:-1: ++# BZ12701 %*12A:+0X2.345678P0123:0:-1: ++# BZ12701 %12A:+0X2.345678P+123:0:-1: ++# BZ12701 %*12A:+0X2.345678P+123:0:-1: ++# BZ12701 %12A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %12A:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12A:+0XF.FFFFFP+124:0:-1: ++%12A:+INFINITY:1:9:inf: ++%*12A:+INFINITY:0:9: ++%18A::0:-1: ++%*18A::0:-1: ++%18A:-INFINITY:1:9:-inf: ++%*18A:-INFINITY:0:9: ++%18A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*18A:-0XF.FFFFFP+124:0:15: ++%18A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*18A:-0X7.FFFFF8P125:0:15: ++%18A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*18A:-0X2.345678P+123:0:16: ++%18A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*18A:-0X2.345678P0123:0:16: ++%18A:-0X8P-129:1:9:-0x1p-126: ++%*18A:-0X8P-129:0:9: ++%18A:-0X0P+0:1:7:-0x0: ++%*18A:-0X0P+0:0:7: ++%18A:-0X0P0:1:6:-0x0: ++%*18A:-0X0P0:0:6: ++%18A:-NAN(09A_Zaz):1:13:-nan: ++%*18A:-NAN(09A_Zaz):0:13: ++%18A:-NAN():1:6:-nan: ++%*18A:-NAN():0:6: ++%18A:NAN():1:5:nan: ++%*18A:NAN():0:5: ++%18A:NAN(09A_Zaz):1:12:nan: ++%*18A:NAN(09A_Zaz):0:12: ++%18A:0X0P0:1:5:0x0: ++%*18A:0X0P0:0:5: ++%18A:0X0P+0:1:6:0x0: ++%*18A:0X0P+0:0:6: ++%18A:0X8P-129:1:8:0x1p-126: ++%*18A:0X8P-129:0:8: ++%18A:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*18A:0X2.345678P0123:0:15: ++%18A:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*18A:0X2.345678P+123:0:15: ++%18A:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*18A:0X7.FFFFF8P125:0:14: ++%18A:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*18A:0XF.FFFFFP+124:0:14: ++%18A:INFINITY:1:8:inf: ++%*18A:INFINITY:0:8: ++%18A:+NAN():1:6:nan: ++%*18A:+NAN():0:6: ++%18A:+NAN(09A_Zaz):1:13:nan: ++%*18A:+NAN(09A_Zaz):0:13: ++%18A:+0X0P0:1:6:0x0: ++%*18A:+0X0P0:0:6: ++%18A:+0X0P+0:1:7:0x0: ++%*18A:+0X0P+0:0:7: ++%18A:+0X8P-129:1:9:0x1p-126: ++%*18A:+0X8P-129:0:9: ++%18A:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18A:+0X2.345678P0123:0:16: ++%18A:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18A:+0X2.345678P+123:0:16: ++%18A:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18A:+0X7.FFFFF8P125:0:15: ++%18A:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18A:+0XF.FFFFFP+124:0:15: ++%18A:+INFINITY:1:9:inf: ++%*18A:+INFINITY:0:9: ++%5A: :0:-1: ++%*5A: :0:-1: ++%5A: -INFINITY:0:-1: ++%*5A: -INFINITY:0:-1: ++%5A: -0XF.FFFFFP+124:1:6:-0x1.ep3: ++%*5A: -0XF.FFFFFP+124:0:6: ++%5A: -0X7.FFFFF8P125:1:6:-0x1.cp2: ++%*5A: -0X7.FFFFF8P125:0:6: ++%5A: -0X2.345678P+123:1:6:-0x1p1: ++%*5A: -0X2.345678P+123:0:6: ++%5A: -0X2.345678P0123:1:6:-0x1p1: ++%*5A: -0X2.345678P0123:0:6: ++# BZ12701 %5A: -0X8P-129:0:-1: ++# BZ12701 %*5A: -0X8P-129:0:-1: ++# BZ12701 %5A: -0X0P+0:0:-1: ++# BZ12701 %*5A: -0X0P+0:0:-1: ++# BZ12701 %5A: -0X0P0:0:-1: ++# BZ12701 %*5A: -0X0P0:0:-1: ++%5A: -NAN(09A_Zaz):0:-1: ++%*5A: -NAN(09A_Zaz):0:-1: ++%5A: -NAN():0:-1: ++%*5A: -NAN():0:-1: ++%5A: NAN():1:6:nan: ++%*5A: NAN():0:6: ++%5A: NAN(09A_Zaz):0:-1: ++%*5A: NAN(09A_Zaz):0:-1: ++%5A: 0X0P0:1:6:0x0: ++%*5A: 0X0P0:0:6: ++# BZ12701 %5A: 0X0P+0:0:-1: ++# BZ12701 %*5A: 0X0P+0:0:-1: ++# BZ12701 %5A: 0X8P-129:0:-1: ++# BZ12701 %*5A: 0X8P-129:0:-1: ++%5A: 0X2.345678P0123:1:6:0x1.18p1: ++%*5A: 0X2.345678P0123:0:6: ++%5A: 0X2.345678P+123:1:6:0x1.18p1: ++%*5A: 0X2.345678P+123:0:6: ++%5A: 0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*5A: 0X7.FFFFF8P125:0:6: ++%5A: 0XF.FFFFFP+124:1:6:0x1.fep3: ++%*5A: 0XF.FFFFFP+124:0:6: ++%5A: INFINITY:0:-1: ++%*5A: INFINITY:0:-1: ++%5A: +NAN():0:-1: ++%*5A: +NAN():0:-1: ++%5A: +NAN(09A_Zaz):0:-1: ++%*5A: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5A: +0X0P0:0:-1: ++# BZ12701 %*5A: +0X0P0:0:-1: ++# BZ12701 %5A: +0X0P+0:0:-1: ++# BZ12701 %*5A: +0X0P+0:0:-1: ++# BZ12701 %5A: +0X8P-129:0:-1: ++# BZ12701 %*5A: +0X8P-129:0:-1: ++%5A: +0X2.345678P0123:1:6:0x1p1: ++%*5A: +0X2.345678P0123:0:6: ++%5A: +0X2.345678P+123:1:6:0x1p1: ++%*5A: +0X2.345678P+123:0:6: ++%5A: +0X7.FFFFF8P125:1:6:0x1.cp2: ++%*5A: +0X7.FFFFF8P125:0:6: ++%5A: +0XF.FFFFFP+124:1:6:0x1.ep3: ++%*5A: +0XF.FFFFFP+124:0:6: ++%5A: +INFINITY:0:-1: ++%*5A: +INFINITY:0:-1: ++%18A: :0:-1: ++%*18A: :0:-1: ++%18A: -INFINITY:1:10:-inf: ++%*18A: -INFINITY:0:10: ++%18A: -0XF.FFFFFP+124:1:16:-0x1.fffffep127: ++%*18A: -0XF.FFFFFP+124:0:16: ++%18A: -0X7.FFFFF8P125:1:16:-0x1.fffffep127: ++%*18A: -0X7.FFFFF8P125:0:16: ++%18A: -0X2.345678P+123:1:17:-0x1.1a2b3cp124: ++%*18A: -0X2.345678P+123:0:17: ++%18A: -0X2.345678P0123:1:17:-0x1.1a2b3cp124: ++%*18A: -0X2.345678P0123:0:17: ++%18A: -0X8P-129:1:10:-0x1p-126: ++%*18A: -0X8P-129:0:10: ++%18A: -0X0P+0:1:8:-0x0: ++%*18A: -0X0P+0:0:8: ++%18A: -0X0P0:1:7:-0x0: ++%*18A: -0X0P0:0:7: ++%18A: -NAN(09A_Zaz):1:14:-nan: ++%*18A: -NAN(09A_Zaz):0:14: ++%18A: -NAN():1:7:-nan: ++%*18A: -NAN():0:7: ++%18A: NAN():1:6:nan: ++%*18A: NAN():0:6: ++%18A: NAN(09A_Zaz):1:13:nan: ++%*18A: NAN(09A_Zaz):0:13: ++%18A: 0X0P0:1:6:0x0: ++%*18A: 0X0P0:0:6: ++%18A: 0X0P+0:1:7:0x0: ++%*18A: 0X0P+0:0:7: ++%18A: 0X8P-129:1:9:0x1p-126: ++%*18A: 0X8P-129:0:9: ++%18A: 0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18A: 0X2.345678P0123:0:16: ++%18A: 0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18A: 0X2.345678P+123:0:16: ++%18A: 0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18A: 0X7.FFFFF8P125:0:15: ++%18A: 0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18A: 0XF.FFFFFP+124:0:15: ++%18A: INFINITY:1:9:inf: ++%*18A: INFINITY:0:9: ++%18A: +NAN():1:7:nan: ++%*18A: +NAN():0:7: ++%18A: +NAN(09A_Zaz):1:14:nan: ++%*18A: +NAN(09A_Zaz):0:14: ++%18A: +0X0P0:1:7:0x0: ++%*18A: +0X0P0:0:7: ++%18A: +0X0P+0:1:8:0x0: ++%*18A: +0X0P+0:0:8: ++%18A: +0X8P-129:1:10:0x1p-126: ++%*18A: +0X8P-129:0:10: ++%18A: +0X2.345678P0123:1:17:0x1.1a2b3cp124: ++%*18A: +0X2.345678P0123:0:17: ++%18A: +0X2.345678P+123:1:17:0x1.1a2b3cp124: ++%*18A: +0X2.345678P+123:0:17: ++%18A: +0X7.FFFFF8P125:1:16:0x1.fffffep127: ++%*18A: +0X7.FFFFF8P125:0:16: ++%18A: +0XF.FFFFFP+124:1:16:0x1.fffffep127: ++%*18A: +0XF.FFFFFP+124:0:16: ++%18A: +INFINITY:1:10:inf: ++%*18A: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +new file mode 100644 +index 0000000000000000..e555bb47b9c86bbe +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +@@ -0,0 +1,558 @@ ++%e::0:-1: ++%*e::0:-1: ++%e:-infinity:1:9:-inf: ++%*e:-infinity:0:9: ++%e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127: ++%*e:-3.40282346638528859811704183484516925e+38:0:42: ++%e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127: ++%*e:-3.40282346638528859811704183484516925e38:0:41: ++%e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124: ++%*e:-2.344167378255246830294536494851817472e+37:0:43: ++%e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124: ++%*e:-2.344167378255246830294536494851817472e037:0:43: ++%e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126: ++%*e:-1.17549435082228750796873653722224568e-38:0:42: ++%e:-0e+0:1:5:-0x0: ++%*e:-0e+0:0:5: ++%e:-0e0:1:4:-0x0: ++%*e:-0e0:0:4: ++%e:-nan(09A_Zaz):1:13:-nan: ++%*e:-nan(09A_Zaz):0:13: ++%e:-nan():1:6:-nan: ++%*e:-nan():0:6: ++%e:nan():1:5:nan: ++%*e:nan():0:5: ++%e:nan(09A_Zaz):1:12:nan: ++%*e:nan(09A_Zaz):0:12: ++%e:0e0:1:3:0x0: ++%*e:0e0:0:3: ++%e:0e+0:1:4:0x0: ++%*e:0e+0:0:4: ++%e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126: ++%*e:1.17549435082228750796873653722224568e-38:0:41: ++%e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124: ++%*e:2.344167378255246830294536494851817472e037:0:42: ++%e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124: ++%*e:2.344167378255246830294536494851817472e+37:0:42: ++%e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*e:3.40282346638528859811704183484516925e38:0:40: ++%e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127: ++%*e:3.40282346638528859811704183484516925e+38:0:41: ++%e:infinity:1:8:inf: ++%*e:infinity:0:8: ++%e:+nan():1:6:nan: ++%*e:+nan():0:6: ++%e:+nan(09A_Zaz):1:13:nan: ++%*e:+nan(09A_Zaz):0:13: ++%e:+0e0:1:4:0x0: ++%*e:+0e0:0:4: ++%e:+0e+0:1:5:0x0: ++%*e:+0e+0:0:5: ++%e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*e:+1.17549435082228750796873653722224568e-38:0:42: ++%e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*e:+2.344167378255246830294536494851817472e037:0:43: ++%e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*e:+2.344167378255246830294536494851817472e+37:0:43: ++%e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*e:+3.40282346638528859811704183484516925e38:0:41: ++%e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*e:+3.40282346638528859811704183484516925e+38:0:42: ++%e:+infinity:1:9:inf: ++%*e:+infinity:0:9: ++%1e::0:-1: ++%*1e::0:-1: ++%1e:-infinity:0:-1: ++%*1e:-infinity:0:-1: ++%1e:-3.40282346638528859811704183484516925e+38:0:-1: ++%*1e:-3.40282346638528859811704183484516925e+38:0:-1: ++%1e:-3.40282346638528859811704183484516925e38:0:-1: ++%*1e:-3.40282346638528859811704183484516925e38:0:-1: ++%1e:-2.344167378255246830294536494851817472e+37:0:-1: ++%*1e:-2.344167378255246830294536494851817472e+37:0:-1: ++%1e:-2.344167378255246830294536494851817472e037:0:-1: ++%*1e:-2.344167378255246830294536494851817472e037:0:-1: ++%1e:-1.17549435082228750796873653722224568e-38:0:-1: ++%*1e:-1.17549435082228750796873653722224568e-38:0:-1: ++%1e:-0e+0:0:-1: ++%*1e:-0e+0:0:-1: ++%1e:-0e0:0:-1: ++%*1e:-0e0:0:-1: ++%1e:-nan(09A_Zaz):0:-1: ++%*1e:-nan(09A_Zaz):0:-1: ++%1e:-nan():0:-1: ++%*1e:-nan():0:-1: ++%1e:nan():0:-1: ++%*1e:nan():0:-1: ++%1e:nan(09A_Zaz):0:-1: ++%*1e:nan(09A_Zaz):0:-1: ++%1e:0e0:1:1:0x0: ++%*1e:0e0:0:1: ++%1e:0e+0:1:1:0x0: ++%*1e:0e+0:0:1: ++%1e:1.17549435082228750796873653722224568e-38:1:1:0x1: ++%*1e:1.17549435082228750796873653722224568e-38:0:1: ++%1e:2.344167378255246830294536494851817472e037:1:1:0x1p1: ++%*1e:2.344167378255246830294536494851817472e037:0:1: ++%1e:2.344167378255246830294536494851817472e+37:1:1:0x1p1: ++%*1e:2.344167378255246830294536494851817472e+37:0:1: ++%1e:3.40282346638528859811704183484516925e38:1:1:0x1.8p1: ++%*1e:3.40282346638528859811704183484516925e38:0:1: ++%1e:3.40282346638528859811704183484516925e+38:1:1:0x1.8p1: ++%*1e:3.40282346638528859811704183484516925e+38:0:1: ++%1e:infinity:0:-1: ++%*1e:infinity:0:-1: ++%1e:+nan():0:-1: ++%*1e:+nan():0:-1: ++%1e:+nan(09A_Zaz):0:-1: ++%*1e:+nan(09A_Zaz):0:-1: ++%1e:+0e0:0:-1: ++%*1e:+0e0:0:-1: ++%1e:+0e+0:0:-1: ++%*1e:+0e+0:0:-1: ++%1e:+1.17549435082228750796873653722224568e-38:0:-1: ++%*1e:+1.17549435082228750796873653722224568e-38:0:-1: ++%1e:+2.344167378255246830294536494851817472e037:0:-1: ++%*1e:+2.344167378255246830294536494851817472e037:0:-1: ++%1e:+2.344167378255246830294536494851817472e+37:0:-1: ++%*1e:+2.344167378255246830294536494851817472e+37:0:-1: ++%1e:+3.40282346638528859811704183484516925e38:0:-1: ++%*1e:+3.40282346638528859811704183484516925e38:0:-1: ++%1e:+3.40282346638528859811704183484516925e+38:0:-1: ++%*1e:+3.40282346638528859811704183484516925e+38:0:-1: ++%1e:+infinity:0:-1: ++%*1e:+infinity:0:-1: ++%2e::0:-1: ++%*2e::0:-1: ++%2e:-infinity:0:-1: ++%*2e:-infinity:0:-1: ++%2e:-3.40282346638528859811704183484516925e+38:1:2:-0x1.8p1: ++%*2e:-3.40282346638528859811704183484516925e+38:0:2: ++%2e:-3.40282346638528859811704183484516925e38:1:2:-0x1.8p1: ++%*2e:-3.40282346638528859811704183484516925e38:0:2: ++%2e:-2.344167378255246830294536494851817472e+37:1:2:-0x1p1: ++%*2e:-2.344167378255246830294536494851817472e+37:0:2: ++%2e:-2.344167378255246830294536494851817472e037:1:2:-0x1p1: ++%*2e:-2.344167378255246830294536494851817472e037:0:2: ++%2e:-1.17549435082228750796873653722224568e-38:1:2:-0x1: ++%*2e:-1.17549435082228750796873653722224568e-38:0:2: ++%2e:-0e+0:1:2:-0x0: ++%*2e:-0e+0:0:2: ++%2e:-0e0:1:2:-0x0: ++%*2e:-0e0:0:2: ++%2e:-nan(09A_Zaz):0:-1: ++%*2e:-nan(09A_Zaz):0:-1: ++%2e:-nan():0:-1: ++%*2e:-nan():0:-1: ++%2e:nan():0:-1: ++%*2e:nan():0:-1: ++%2e:nan(09A_Zaz):0:-1: ++%*2e:nan(09A_Zaz):0:-1: ++# BZ12701 %2e:0e0:0:-1: ++# BZ12701 %*2e:0e0:0:-1: ++# BZ12701 %2e:0e+0:0:-1: ++# BZ12701 %*2e:0e+0:0:-1: ++%2e:1.17549435082228750796873653722224568e-38:1:2:0x1: ++%*2e:1.17549435082228750796873653722224568e-38:0:2: ++%2e:2.344167378255246830294536494851817472e037:1:2:0x1p1: ++%*2e:2.344167378255246830294536494851817472e037:0:2: ++%2e:2.344167378255246830294536494851817472e+37:1:2:0x1p1: ++%*2e:2.344167378255246830294536494851817472e+37:0:2: ++%2e:3.40282346638528859811704183484516925e38:1:2:0x1.8p1: ++%*2e:3.40282346638528859811704183484516925e38:0:2: ++%2e:3.40282346638528859811704183484516925e+38:1:2:0x1.8p1: ++%*2e:3.40282346638528859811704183484516925e+38:0:2: ++%2e:infinity:0:-1: ++%*2e:infinity:0:-1: ++%2e:+nan():0:-1: ++%*2e:+nan():0:-1: ++%2e:+nan(09A_Zaz):0:-1: ++%*2e:+nan(09A_Zaz):0:-1: ++%2e:+0e0:1:2:0x0: ++%*2e:+0e0:0:2: ++%2e:+0e+0:1:2:0x0: ++%*2e:+0e+0:0:2: ++%2e:+1.17549435082228750796873653722224568e-38:1:2:0x1: ++%*2e:+1.17549435082228750796873653722224568e-38:0:2: ++%2e:+2.344167378255246830294536494851817472e037:1:2:0x1p1: ++%*2e:+2.344167378255246830294536494851817472e037:0:2: ++%2e:+2.344167378255246830294536494851817472e+37:1:2:0x1p1: ++%*2e:+2.344167378255246830294536494851817472e+37:0:2: ++%2e:+3.40282346638528859811704183484516925e38:1:2:0x1.8p1: ++%*2e:+3.40282346638528859811704183484516925e38:0:2: ++%2e:+3.40282346638528859811704183484516925e+38:1:2:0x1.8p1: ++%*2e:+3.40282346638528859811704183484516925e+38:0:2: ++%2e:+infinity:0:-1: ++%*2e:+infinity:0:-1: ++%3e::0:-1: ++%*3e::0:-1: ++%3e:-infinity:0:-1: ++%*3e:-infinity:0:-1: ++%3e:-3.40282346638528859811704183484516925e+38:1:3:-0x1.8p1: ++%*3e:-3.40282346638528859811704183484516925e+38:0:3: ++%3e:-3.40282346638528859811704183484516925e38:1:3:-0x1.8p1: ++%*3e:-3.40282346638528859811704183484516925e38:0:3: ++%3e:-2.344167378255246830294536494851817472e+37:1:3:-0x1p1: ++%*3e:-2.344167378255246830294536494851817472e+37:0:3: ++%3e:-2.344167378255246830294536494851817472e037:1:3:-0x1p1: ++%*3e:-2.344167378255246830294536494851817472e037:0:3: ++%3e:-1.17549435082228750796873653722224568e-38:1:3:-0x1: ++%*3e:-1.17549435082228750796873653722224568e-38:0:3: ++# BZ12701 %3e:-0e+0:0:-1: ++# BZ12701 %*3e:-0e+0:0:-1: ++# BZ12701 %3e:-0e0:0:-1: ++# BZ12701 %*3e:-0e0:0:-1: ++%3e:-nan(09A_Zaz):0:-1: ++%*3e:-nan(09A_Zaz):0:-1: ++%3e:-nan():0:-1: ++%*3e:-nan():0:-1: ++%3e:nan():1:3:nan: ++%*3e:nan():0:3: ++%3e:nan(09A_Zaz):1:3:nan: ++%*3e:nan(09A_Zaz):0:3: ++%3e:0e0:1:3:0x0: ++%*3e:0e0:0:3: ++# BZ12701 %3e:0e+0:0:-1: ++# BZ12701 %*3e:0e+0:0:-1: ++%3e:1.17549435082228750796873653722224568e-38:1:3:0x1.19999a: ++%*3e:1.17549435082228750796873653722224568e-38:0:3: ++%3e:2.344167378255246830294536494851817472e037:1:3:0x1.266666p1: ++%*3e:2.344167378255246830294536494851817472e037:0:3: ++%3e:2.344167378255246830294536494851817472e+37:1:3:0x1.266666p1: ++%*3e:2.344167378255246830294536494851817472e+37:0:3: ++%3e:3.40282346638528859811704183484516925e38:1:3:0x1.b33334p1: ++%*3e:3.40282346638528859811704183484516925e38:0:3: ++%3e:3.40282346638528859811704183484516925e+38:1:3:0x1.b33334p1: ++%*3e:3.40282346638528859811704183484516925e+38:0:3: ++%3e:infinity:1:3:inf: ++%*3e:infinity:0:3: ++%3e:+nan():0:-1: ++%*3e:+nan():0:-1: ++%3e:+nan(09A_Zaz):0:-1: ++%*3e:+nan(09A_Zaz):0:-1: ++# BZ12701 %3e:+0e0:0:-1: ++# BZ12701 %*3e:+0e0:0:-1: ++# BZ12701 %3e:+0e+0:0:-1: ++# BZ12701 %*3e:+0e+0:0:-1: ++%3e:+1.17549435082228750796873653722224568e-38:1:3:0x1: ++%*3e:+1.17549435082228750796873653722224568e-38:0:3: ++%3e:+2.344167378255246830294536494851817472e037:1:3:0x1p1: ++%*3e:+2.344167378255246830294536494851817472e037:0:3: ++%3e:+2.344167378255246830294536494851817472e+37:1:3:0x1p1: ++%*3e:+2.344167378255246830294536494851817472e+37:0:3: ++%3e:+3.40282346638528859811704183484516925e38:1:3:0x1.8p1: ++%*3e:+3.40282346638528859811704183484516925e38:0:3: ++%3e:+3.40282346638528859811704183484516925e+38:1:3:0x1.8p1: ++%*3e:+3.40282346638528859811704183484516925e+38:0:3: ++%3e:+infinity:0:-1: ++%*3e:+infinity:0:-1: ++%4e::0:-1: ++%*4e::0:-1: ++%4e:-infinity:1:4:-inf: ++%*4e:-infinity:0:4: ++%4e:-3.40282346638528859811704183484516925e+38:1:4:-0x1.b33334p1: ++%*4e:-3.40282346638528859811704183484516925e+38:0:4: ++%4e:-3.40282346638528859811704183484516925e38:1:4:-0x1.b33334p1: ++%*4e:-3.40282346638528859811704183484516925e38:0:4: ++%4e:-2.344167378255246830294536494851817472e+37:1:4:-0x1.266666p1: ++%*4e:-2.344167378255246830294536494851817472e+37:0:4: ++%4e:-2.344167378255246830294536494851817472e037:1:4:-0x1.266666p1: ++%*4e:-2.344167378255246830294536494851817472e037:0:4: ++%4e:-1.17549435082228750796873653722224568e-38:1:4:-0x1.19999a: ++%*4e:-1.17549435082228750796873653722224568e-38:0:4: ++# BZ12701 %4e:-0e+0:0:-1: ++# BZ12701 %*4e:-0e+0:0:-1: ++%4e:-0e0:1:4:-0x0: ++%*4e:-0e0:0:4: ++%4e:-nan(09A_Zaz):1:4:-nan: ++%*4e:-nan(09A_Zaz):0:4: ++%4e:-nan():1:4:-nan: ++%*4e:-nan():0:4: ++%4e:nan():0:-1: ++%*4e:nan():0:-1: ++%4e:nan(09A_Zaz):0:-1: ++%*4e:nan(09A_Zaz):0:-1: ++%4e:0e0:1:3:0x0: ++%*4e:0e0:0:3: ++%4e:0e+0:1:4:0x0: ++%*4e:0e+0:0:4: ++%4e:1.17549435082228750796873653722224568e-38:1:4:0x1.2b851e: ++%*4e:1.17549435082228750796873653722224568e-38:0:4: ++%4e:2.344167378255246830294536494851817472e037:1:4:0x1.2b851ep1: ++%*4e:2.344167378255246830294536494851817472e037:0:4: ++%4e:2.344167378255246830294536494851817472e+37:1:4:0x1.2b851ep1: ++%*4e:2.344167378255246830294536494851817472e+37:0:4: ++%4e:3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*4e:3.40282346638528859811704183484516925e38:0:4: ++%4e:3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*4e:3.40282346638528859811704183484516925e+38:0:4: ++%4e:infinity:0:-1: ++%*4e:infinity:0:-1: ++%4e:+nan():1:4:nan: ++%*4e:+nan():0:4: ++%4e:+nan(09A_Zaz):1:4:nan: ++%*4e:+nan(09A_Zaz):0:4: ++%4e:+0e0:1:4:0x0: ++%*4e:+0e0:0:4: ++# BZ12701 %4e:+0e+0:0:-1: ++# BZ12701 %*4e:+0e+0:0:-1: ++%4e:+1.17549435082228750796873653722224568e-38:1:4:0x1.19999a: ++%*4e:+1.17549435082228750796873653722224568e-38:0:4: ++%4e:+2.344167378255246830294536494851817472e037:1:4:0x1.266666p1: ++%*4e:+2.344167378255246830294536494851817472e037:0:4: ++%4e:+2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1: ++%*4e:+2.344167378255246830294536494851817472e+37:0:4: ++%4e:+3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*4e:+3.40282346638528859811704183484516925e38:0:4: ++%4e:+3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*4e:+3.40282346638528859811704183484516925e+38:0:4: ++%4e:+infinity:1:4:inf: ++%*4e:+infinity:0:4: ++%40e::0:-1: ++%*40e::0:-1: ++%40e:-infinity:1:9:-inf: ++%*40e:-infinity:0:9: ++# BZ12701 %40e:-3.40282346638528859811704183484516925e+38:0:-1: ++# BZ12701 %*40e:-3.40282346638528859811704183484516925e+38:0:-1: ++%40e:-3.40282346638528859811704183484516925e38:1:40:-0x1.a95a5ap11: ++%*40e:-3.40282346638528859811704183484516925e38:0:40: ++# BZ12701 %40e:-2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:-2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %40e:-2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %*40e:-2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %40e:-1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %*40e:-1.17549435082228750796873653722224568e-38:0:-1: ++%40e:-0e+0:1:5:-0x0: ++%*40e:-0e+0:0:5: ++%40e:-0e0:1:4:-0x0: ++%*40e:-0e0:0:4: ++%40e:-nan(09A_Zaz):1:13:-nan: ++%*40e:-nan(09A_Zaz):0:13: ++%40e:-nan():1:6:-nan: ++%*40e:-nan():0:6: ++%40e:nan():1:5:nan: ++%*40e:nan():0:5: ++%40e:nan(09A_Zaz):1:12:nan: ++%*40e:nan(09A_Zaz):0:12: ++%40e:0e0:1:3:0x0: ++%*40e:0e0:0:3: ++%40e:0e+0:1:4:0x0: ++%*40e:0e+0:0:4: ++%40e:1.17549435082228750796873653722224568e-38:1:40:0x1.342618p-10: ++%*40e:1.17549435082228750796873653722224568e-38:0:40: ++%40e:2.344167378255246830294536494851817472e037:1:40:0x1.2c0daep1: ++%*40e:2.344167378255246830294536494851817472e037:0:40: ++# BZ12701 %40e:2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:2.344167378255246830294536494851817472e+37:0:-1: ++%40e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*40e:3.40282346638528859811704183484516925e38:0:40: ++%40e:3.40282346638528859811704183484516925e+38:1:40:0x1.a95a5ap11: ++%*40e:3.40282346638528859811704183484516925e+38:0:40: ++%40e:infinity:1:8:inf: ++%*40e:infinity:0:8: ++%40e:+nan():1:6:nan: ++%*40e:+nan():0:6: ++%40e:+nan(09A_Zaz):1:13:nan: ++%*40e:+nan(09A_Zaz):0:13: ++%40e:+0e0:1:4:0x0: ++%*40e:+0e0:0:4: ++%40e:+0e+0:1:5:0x0: ++%*40e:+0e+0:0:5: ++# BZ12701 %40e:+1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %*40e:+1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %40e:+2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %*40e:+2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %40e:+2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:+2.344167378255246830294536494851817472e+37:0:-1: ++%40e:+3.40282346638528859811704183484516925e38:1:40:0x1.a95a5ap11: ++%*40e:+3.40282346638528859811704183484516925e38:0:40: ++# BZ12701 %40e:+3.40282346638528859811704183484516925e+38:0:-1: ++# BZ12701 %*40e:+3.40282346638528859811704183484516925e+38:0:-1: ++%40e:+infinity:1:9:inf: ++%*40e:+infinity:0:9: ++%48e::0:-1: ++%*48e::0:-1: ++%48e:-infinity:1:9:-inf: ++%*48e:-infinity:0:9: ++%48e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127: ++%*48e:-3.40282346638528859811704183484516925e+38:0:42: ++%48e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127: ++%*48e:-3.40282346638528859811704183484516925e38:0:41: ++%48e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124: ++%*48e:-2.344167378255246830294536494851817472e+37:0:43: ++%48e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124: ++%*48e:-2.344167378255246830294536494851817472e037:0:43: ++%48e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126: ++%*48e:-1.17549435082228750796873653722224568e-38:0:42: ++%48e:-0e+0:1:5:-0x0: ++%*48e:-0e+0:0:5: ++%48e:-0e0:1:4:-0x0: ++%*48e:-0e0:0:4: ++%48e:-nan(09A_Zaz):1:13:-nan: ++%*48e:-nan(09A_Zaz):0:13: ++%48e:-nan():1:6:-nan: ++%*48e:-nan():0:6: ++%48e:nan():1:5:nan: ++%*48e:nan():0:5: ++%48e:nan(09A_Zaz):1:12:nan: ++%*48e:nan(09A_Zaz):0:12: ++%48e:0e0:1:3:0x0: ++%*48e:0e0:0:3: ++%48e:0e+0:1:4:0x0: ++%*48e:0e+0:0:4: ++%48e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126: ++%*48e:1.17549435082228750796873653722224568e-38:0:41: ++%48e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124: ++%*48e:2.344167378255246830294536494851817472e037:0:42: ++%48e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124: ++%*48e:2.344167378255246830294536494851817472e+37:0:42: ++%48e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*48e:3.40282346638528859811704183484516925e38:0:40: ++%48e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127: ++%*48e:3.40282346638528859811704183484516925e+38:0:41: ++%48e:infinity:1:8:inf: ++%*48e:infinity:0:8: ++%48e:+nan():1:6:nan: ++%*48e:+nan():0:6: ++%48e:+nan(09A_Zaz):1:13:nan: ++%*48e:+nan(09A_Zaz):0:13: ++%48e:+0e0:1:4:0x0: ++%*48e:+0e0:0:4: ++%48e:+0e+0:1:5:0x0: ++%*48e:+0e+0:0:5: ++%48e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*48e:+1.17549435082228750796873653722224568e-38:0:42: ++%48e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*48e:+2.344167378255246830294536494851817472e037:0:43: ++%48e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*48e:+2.344167378255246830294536494851817472e+37:0:43: ++%48e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*48e:+3.40282346638528859811704183484516925e38:0:41: ++%48e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*48e:+3.40282346638528859811704183484516925e+38:0:42: ++%48e:+infinity:1:9:inf: ++%*48e:+infinity:0:9: ++%3e: :0:-1: ++%*3e: :0:-1: ++%3e: -infinity:0:-1: ++%*3e: -infinity:0:-1: ++%3e: -3.40282346638528859811704183484516925e+38:1:4:-0x1.8p1: ++%*3e: -3.40282346638528859811704183484516925e+38:0:4: ++%3e: -3.40282346638528859811704183484516925e38:1:4:-0x1.8p1: ++%*3e: -3.40282346638528859811704183484516925e38:0:4: ++%3e: -2.344167378255246830294536494851817472e+37:1:4:-0x1p1: ++%*3e: -2.344167378255246830294536494851817472e+37:0:4: ++%3e: -2.344167378255246830294536494851817472e037:1:4:-0x1p1: ++%*3e: -2.344167378255246830294536494851817472e037:0:4: ++%3e: -1.17549435082228750796873653722224568e-38:1:4:-0x1: ++%*3e: -1.17549435082228750796873653722224568e-38:0:4: ++# BZ12701 %3e: -0e+0:0:-1: ++# BZ12701 %*3e: -0e+0:0:-1: ++# BZ12701 %3e: -0e0:0:-1: ++# BZ12701 %*3e: -0e0:0:-1: ++%3e: -nan(09A_Zaz):0:-1: ++%*3e: -nan(09A_Zaz):0:-1: ++%3e: -nan():0:-1: ++%*3e: -nan():0:-1: ++%3e: nan():1:4:nan: ++%*3e: nan():0:4: ++%3e: nan(09A_Zaz):1:4:nan: ++%*3e: nan(09A_Zaz):0:4: ++%3e: 0e0:1:4:0x0: ++%*3e: 0e0:0:4: ++# BZ12701 %3e: 0e+0:0:-1: ++# BZ12701 %*3e: 0e+0:0:-1: ++%3e: 1.17549435082228750796873653722224568e-38:1:4:0x1.19999a: ++%*3e: 1.17549435082228750796873653722224568e-38:0:4: ++%3e: 2.344167378255246830294536494851817472e037:1:4:0x1.266666p1: ++%*3e: 2.344167378255246830294536494851817472e037:0:4: ++%3e: 2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1: ++%*3e: 2.344167378255246830294536494851817472e+37:0:4: ++%3e: 3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*3e: 3.40282346638528859811704183484516925e38:0:4: ++%3e: 3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*3e: 3.40282346638528859811704183484516925e+38:0:4: ++%3e: infinity:1:4:inf: ++%*3e: infinity:0:4: ++%3e: +nan():0:-1: ++%*3e: +nan():0:-1: ++%3e: +nan(09A_Zaz):0:-1: ++%*3e: +nan(09A_Zaz):0:-1: ++# BZ12701 %3e: +0e0:0:-1: ++# BZ12701 %*3e: +0e0:0:-1: ++# BZ12701 %3e: +0e+0:0:-1: ++# BZ12701 %*3e: +0e+0:0:-1: ++%3e: +1.17549435082228750796873653722224568e-38:1:4:0x1: ++%*3e: +1.17549435082228750796873653722224568e-38:0:4: ++%3e: +2.344167378255246830294536494851817472e037:1:4:0x1p1: ++%*3e: +2.344167378255246830294536494851817472e037:0:4: ++%3e: +2.344167378255246830294536494851817472e+37:1:4:0x1p1: ++%*3e: +2.344167378255246830294536494851817472e+37:0:4: ++%3e: +3.40282346638528859811704183484516925e38:1:4:0x1.8p1: ++%*3e: +3.40282346638528859811704183484516925e38:0:4: ++%3e: +3.40282346638528859811704183484516925e+38:1:4:0x1.8p1: ++%*3e: +3.40282346638528859811704183484516925e+38:0:4: ++%3e: +infinity:0:-1: ++%*3e: +infinity:0:-1: ++%48e: :0:-1: ++%*48e: :0:-1: ++%48e: -infinity:1:10:-inf: ++%*48e: -infinity:0:10: ++%48e: -3.40282346638528859811704183484516925e+38:1:43:-0x1.fffffep127: ++%*48e: -3.40282346638528859811704183484516925e+38:0:43: ++%48e: -3.40282346638528859811704183484516925e38:1:42:-0x1.fffffep127: ++%*48e: -3.40282346638528859811704183484516925e38:0:42: ++%48e: -2.344167378255246830294536494851817472e+37:1:44:-0x1.1a2b3cp124: ++%*48e: -2.344167378255246830294536494851817472e+37:0:44: ++%48e: -2.344167378255246830294536494851817472e037:1:44:-0x1.1a2b3cp124: ++%*48e: -2.344167378255246830294536494851817472e037:0:44: ++%48e: -1.17549435082228750796873653722224568e-38:1:43:-0x1p-126: ++%*48e: -1.17549435082228750796873653722224568e-38:0:43: ++%48e: -0e+0:1:6:-0x0: ++%*48e: -0e+0:0:6: ++%48e: -0e0:1:5:-0x0: ++%*48e: -0e0:0:5: ++%48e: -nan(09A_Zaz):1:14:-nan: ++%*48e: -nan(09A_Zaz):0:14: ++%48e: -nan():1:7:-nan: ++%*48e: -nan():0:7: ++%48e: nan():1:6:nan: ++%*48e: nan():0:6: ++%48e: nan(09A_Zaz):1:13:nan: ++%*48e: nan(09A_Zaz):0:13: ++%48e: 0e0:1:4:0x0: ++%*48e: 0e0:0:4: ++%48e: 0e+0:1:5:0x0: ++%*48e: 0e+0:0:5: ++%48e: 1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*48e: 1.17549435082228750796873653722224568e-38:0:42: ++%48e: 2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*48e: 2.344167378255246830294536494851817472e037:0:43: ++%48e: 2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*48e: 2.344167378255246830294536494851817472e+37:0:43: ++%48e: 3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*48e: 3.40282346638528859811704183484516925e38:0:41: ++%48e: 3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*48e: 3.40282346638528859811704183484516925e+38:0:42: ++%48e: infinity:1:9:inf: ++%*48e: infinity:0:9: ++%48e: +nan():1:7:nan: ++%*48e: +nan():0:7: ++%48e: +nan(09A_Zaz):1:14:nan: ++%*48e: +nan(09A_Zaz):0:14: ++%48e: +0e0:1:5:0x0: ++%*48e: +0e0:0:5: ++%48e: +0e+0:1:6:0x0: ++%*48e: +0e+0:0:6: ++%48e: +1.17549435082228750796873653722224568e-38:1:43:0x1p-126: ++%*48e: +1.17549435082228750796873653722224568e-38:0:43: ++%48e: +2.344167378255246830294536494851817472e037:1:44:0x1.1a2b3cp124: ++%*48e: +2.344167378255246830294536494851817472e037:0:44: ++%48e: +2.344167378255246830294536494851817472e+37:1:44:0x1.1a2b3cp124: ++%*48e: +2.344167378255246830294536494851817472e+37:0:44: ++%48e: +3.40282346638528859811704183484516925e38:1:42:0x1.fffffep127: ++%*48e: +3.40282346638528859811704183484516925e38:0:42: ++%48e: +3.40282346638528859811704183484516925e+38:1:43:0x1.fffffep127: ++%*48e: +3.40282346638528859811704183484516925e+38:0:43: ++%48e: +infinity:1:10:inf: ++%*48e: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +new file mode 100644 +index 0000000000000000..a5aa4175ee0a4641 +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +@@ -0,0 +1,558 @@ ++%E::0:-1: ++%*E::0:-1: ++%E:-INFINITY:1:9:-inf: ++%*E:-INFINITY:0:9: ++%E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127: ++%*E:-3.40282346638528859811704183484516925E+38:0:42: ++%E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127: ++%*E:-3.40282346638528859811704183484516925E38:0:41: ++%E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124: ++%*E:-2.344167378255246830294536494851817472E+37:0:43: ++%E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124: ++%*E:-2.344167378255246830294536494851817472E037:0:43: ++%E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126: ++%*E:-1.17549435082228750796873653722224568E-38:0:42: ++%E:-0E+0:1:5:-0x0: ++%*E:-0E+0:0:5: ++%E:-0E0:1:4:-0x0: ++%*E:-0E0:0:4: ++%E:-NAN(09A_Zaz):1:13:-nan: ++%*E:-NAN(09A_Zaz):0:13: ++%E:-NAN():1:6:-nan: ++%*E:-NAN():0:6: ++%E:NAN():1:5:nan: ++%*E:NAN():0:5: ++%E:NAN(09A_Zaz):1:12:nan: ++%*E:NAN(09A_Zaz):0:12: ++%E:0E0:1:3:0x0: ++%*E:0E0:0:3: ++%E:0E+0:1:4:0x0: ++%*E:0E+0:0:4: ++%E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126: ++%*E:1.17549435082228750796873653722224568E-38:0:41: ++%E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124: ++%*E:2.344167378255246830294536494851817472E037:0:42: ++%E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124: ++%*E:2.344167378255246830294536494851817472E+37:0:42: ++%E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*E:3.40282346638528859811704183484516925E38:0:40: ++%E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127: ++%*E:3.40282346638528859811704183484516925E+38:0:41: ++%E:INFINITY:1:8:inf: ++%*E:INFINITY:0:8: ++%E:+NAN():1:6:nan: ++%*E:+NAN():0:6: ++%E:+NAN(09A_Zaz):1:13:nan: ++%*E:+NAN(09A_Zaz):0:13: ++%E:+0E0:1:4:0x0: ++%*E:+0E0:0:4: ++%E:+0E+0:1:5:0x0: ++%*E:+0E+0:0:5: ++%E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*E:+1.17549435082228750796873653722224568E-38:0:42: ++%E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*E:+2.344167378255246830294536494851817472E037:0:43: ++%E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*E:+2.344167378255246830294536494851817472E+37:0:43: ++%E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*E:+3.40282346638528859811704183484516925E38:0:41: ++%E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*E:+3.40282346638528859811704183484516925E+38:0:42: ++%E:+INFINITY:1:9:inf: ++%*E:+INFINITY:0:9: ++%1E::0:-1: ++%*1E::0:-1: ++%1E:-INFINITY:0:-1: ++%*1E:-INFINITY:0:-1: ++%1E:-3.40282346638528859811704183484516925E+38:0:-1: ++%*1E:-3.40282346638528859811704183484516925E+38:0:-1: ++%1E:-3.40282346638528859811704183484516925E38:0:-1: ++%*1E:-3.40282346638528859811704183484516925E38:0:-1: ++%1E:-2.344167378255246830294536494851817472E+37:0:-1: ++%*1E:-2.344167378255246830294536494851817472E+37:0:-1: ++%1E:-2.344167378255246830294536494851817472E037:0:-1: ++%*1E:-2.344167378255246830294536494851817472E037:0:-1: ++%1E:-1.17549435082228750796873653722224568E-38:0:-1: ++%*1E:-1.17549435082228750796873653722224568E-38:0:-1: ++%1E:-0E+0:0:-1: ++%*1E:-0E+0:0:-1: ++%1E:-0E0:0:-1: ++%*1E:-0E0:0:-1: ++%1E:-NAN(09A_Zaz):0:-1: ++%*1E:-NAN(09A_Zaz):0:-1: ++%1E:-NAN():0:-1: ++%*1E:-NAN():0:-1: ++%1E:NAN():0:-1: ++%*1E:NAN():0:-1: ++%1E:NAN(09A_Zaz):0:-1: ++%*1E:NAN(09A_Zaz):0:-1: ++%1E:0E0:1:1:0x0: ++%*1E:0E0:0:1: ++%1E:0E+0:1:1:0x0: ++%*1E:0E+0:0:1: ++%1E:1.17549435082228750796873653722224568E-38:1:1:0x1: ++%*1E:1.17549435082228750796873653722224568E-38:0:1: ++%1E:2.344167378255246830294536494851817472E037:1:1:0x1p1: ++%*1E:2.344167378255246830294536494851817472E037:0:1: ++%1E:2.344167378255246830294536494851817472E+37:1:1:0x1p1: ++%*1E:2.344167378255246830294536494851817472E+37:0:1: ++%1E:3.40282346638528859811704183484516925E38:1:1:0x1.8p1: ++%*1E:3.40282346638528859811704183484516925E38:0:1: ++%1E:3.40282346638528859811704183484516925E+38:1:1:0x1.8p1: ++%*1E:3.40282346638528859811704183484516925E+38:0:1: ++%1E:INFINITY:0:-1: ++%*1E:INFINITY:0:-1: ++%1E:+NAN():0:-1: ++%*1E:+NAN():0:-1: ++%1E:+NAN(09A_Zaz):0:-1: ++%*1E:+NAN(09A_Zaz):0:-1: ++%1E:+0E0:0:-1: ++%*1E:+0E0:0:-1: ++%1E:+0E+0:0:-1: ++%*1E:+0E+0:0:-1: ++%1E:+1.17549435082228750796873653722224568E-38:0:-1: ++%*1E:+1.17549435082228750796873653722224568E-38:0:-1: ++%1E:+2.344167378255246830294536494851817472E037:0:-1: ++%*1E:+2.344167378255246830294536494851817472E037:0:-1: ++%1E:+2.344167378255246830294536494851817472E+37:0:-1: ++%*1E:+2.344167378255246830294536494851817472E+37:0:-1: ++%1E:+3.40282346638528859811704183484516925E38:0:-1: ++%*1E:+3.40282346638528859811704183484516925E38:0:-1: ++%1E:+3.40282346638528859811704183484516925E+38:0:-1: ++%*1E:+3.40282346638528859811704183484516925E+38:0:-1: ++%1E:+INFINITY:0:-1: ++%*1E:+INFINITY:0:-1: ++%2E::0:-1: ++%*2E::0:-1: ++%2E:-INFINITY:0:-1: ++%*2E:-INFINITY:0:-1: ++%2E:-3.40282346638528859811704183484516925E+38:1:2:-0x1.8p1: ++%*2E:-3.40282346638528859811704183484516925E+38:0:2: ++%2E:-3.40282346638528859811704183484516925E38:1:2:-0x1.8p1: ++%*2E:-3.40282346638528859811704183484516925E38:0:2: ++%2E:-2.344167378255246830294536494851817472E+37:1:2:-0x1p1: ++%*2E:-2.344167378255246830294536494851817472E+37:0:2: ++%2E:-2.344167378255246830294536494851817472E037:1:2:-0x1p1: ++%*2E:-2.344167378255246830294536494851817472E037:0:2: ++%2E:-1.17549435082228750796873653722224568E-38:1:2:-0x1: ++%*2E:-1.17549435082228750796873653722224568E-38:0:2: ++%2E:-0E+0:1:2:-0x0: ++%*2E:-0E+0:0:2: ++%2E:-0E0:1:2:-0x0: ++%*2E:-0E0:0:2: ++%2E:-NAN(09A_Zaz):0:-1: ++%*2E:-NAN(09A_Zaz):0:-1: ++%2E:-NAN():0:-1: ++%*2E:-NAN():0:-1: ++%2E:NAN():0:-1: ++%*2E:NAN():0:-1: ++%2E:NAN(09A_Zaz):0:-1: ++%*2E:NAN(09A_Zaz):0:-1: ++# BZ12701 %2E:0E0:0:-1: ++# BZ12701 %*2E:0E0:0:-1: ++# BZ12701 %2E:0E+0:0:-1: ++# BZ12701 %*2E:0E+0:0:-1: ++%2E:1.17549435082228750796873653722224568E-38:1:2:0x1: ++%*2E:1.17549435082228750796873653722224568E-38:0:2: ++%2E:2.344167378255246830294536494851817472E037:1:2:0x1p1: ++%*2E:2.344167378255246830294536494851817472E037:0:2: ++%2E:2.344167378255246830294536494851817472E+37:1:2:0x1p1: ++%*2E:2.344167378255246830294536494851817472E+37:0:2: ++%2E:3.40282346638528859811704183484516925E38:1:2:0x1.8p1: ++%*2E:3.40282346638528859811704183484516925E38:0:2: ++%2E:3.40282346638528859811704183484516925E+38:1:2:0x1.8p1: ++%*2E:3.40282346638528859811704183484516925E+38:0:2: ++%2E:INFINITY:0:-1: ++%*2E:INFINITY:0:-1: ++%2E:+NAN():0:-1: ++%*2E:+NAN():0:-1: ++%2E:+NAN(09A_Zaz):0:-1: ++%*2E:+NAN(09A_Zaz):0:-1: ++%2E:+0E0:1:2:0x0: ++%*2E:+0E0:0:2: ++%2E:+0E+0:1:2:0x0: ++%*2E:+0E+0:0:2: ++%2E:+1.17549435082228750796873653722224568E-38:1:2:0x1: ++%*2E:+1.17549435082228750796873653722224568E-38:0:2: ++%2E:+2.344167378255246830294536494851817472E037:1:2:0x1p1: ++%*2E:+2.344167378255246830294536494851817472E037:0:2: ++%2E:+2.344167378255246830294536494851817472E+37:1:2:0x1p1: ++%*2E:+2.344167378255246830294536494851817472E+37:0:2: ++%2E:+3.40282346638528859811704183484516925E38:1:2:0x1.8p1: ++%*2E:+3.40282346638528859811704183484516925E38:0:2: ++%2E:+3.40282346638528859811704183484516925E+38:1:2:0x1.8p1: ++%*2E:+3.40282346638528859811704183484516925E+38:0:2: ++%2E:+INFINITY:0:-1: ++%*2E:+INFINITY:0:-1: ++%3E::0:-1: ++%*3E::0:-1: ++%3E:-INFINITY:0:-1: ++%*3E:-INFINITY:0:-1: ++%3E:-3.40282346638528859811704183484516925E+38:1:3:-0x1.8p1: ++%*3E:-3.40282346638528859811704183484516925E+38:0:3: ++%3E:-3.40282346638528859811704183484516925E38:1:3:-0x1.8p1: ++%*3E:-3.40282346638528859811704183484516925E38:0:3: ++%3E:-2.344167378255246830294536494851817472E+37:1:3:-0x1p1: ++%*3E:-2.344167378255246830294536494851817472E+37:0:3: ++%3E:-2.344167378255246830294536494851817472E037:1:3:-0x1p1: ++%*3E:-2.344167378255246830294536494851817472E037:0:3: ++%3E:-1.17549435082228750796873653722224568E-38:1:3:-0x1: ++%*3E:-1.17549435082228750796873653722224568E-38:0:3: ++# BZ12701 %3E:-0E+0:0:-1: ++# BZ12701 %*3E:-0E+0:0:-1: ++# BZ12701 %3E:-0E0:0:-1: ++# BZ12701 %*3E:-0E0:0:-1: ++%3E:-NAN(09A_Zaz):0:-1: ++%*3E:-NAN(09A_Zaz):0:-1: ++%3E:-NAN():0:-1: ++%*3E:-NAN():0:-1: ++%3E:NAN():1:3:nan: ++%*3E:NAN():0:3: ++%3E:NAN(09A_Zaz):1:3:nan: ++%*3E:NAN(09A_Zaz):0:3: ++%3E:0E0:1:3:0x0: ++%*3E:0E0:0:3: ++# BZ12701 %3E:0E+0:0:-1: ++# BZ12701 %*3E:0E+0:0:-1: ++%3E:1.17549435082228750796873653722224568E-38:1:3:0x1.19999a: ++%*3E:1.17549435082228750796873653722224568E-38:0:3: ++%3E:2.344167378255246830294536494851817472E037:1:3:0x1.266666p1: ++%*3E:2.344167378255246830294536494851817472E037:0:3: ++%3E:2.344167378255246830294536494851817472E+37:1:3:0x1.266666p1: ++%*3E:2.344167378255246830294536494851817472E+37:0:3: ++%3E:3.40282346638528859811704183484516925E38:1:3:0x1.b33334p1: ++%*3E:3.40282346638528859811704183484516925E38:0:3: ++%3E:3.40282346638528859811704183484516925E+38:1:3:0x1.b33334p1: ++%*3E:3.40282346638528859811704183484516925E+38:0:3: ++%3E:INFINITY:1:3:inf: ++%*3E:INFINITY:0:3: ++%3E:+NAN():0:-1: ++%*3E:+NAN():0:-1: ++%3E:+NAN(09A_Zaz):0:-1: ++%*3E:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3E:+0E0:0:-1: ++# BZ12701 %*3E:+0E0:0:-1: ++# BZ12701 %3E:+0E+0:0:-1: ++# BZ12701 %*3E:+0E+0:0:-1: ++%3E:+1.17549435082228750796873653722224568E-38:1:3:0x1: ++%*3E:+1.17549435082228750796873653722224568E-38:0:3: ++%3E:+2.344167378255246830294536494851817472E037:1:3:0x1p1: ++%*3E:+2.344167378255246830294536494851817472E037:0:3: ++%3E:+2.344167378255246830294536494851817472E+37:1:3:0x1p1: ++%*3E:+2.344167378255246830294536494851817472E+37:0:3: ++%3E:+3.40282346638528859811704183484516925E38:1:3:0x1.8p1: ++%*3E:+3.40282346638528859811704183484516925E38:0:3: ++%3E:+3.40282346638528859811704183484516925E+38:1:3:0x1.8p1: ++%*3E:+3.40282346638528859811704183484516925E+38:0:3: ++%3E:+INFINITY:0:-1: ++%*3E:+INFINITY:0:-1: ++%4E::0:-1: ++%*4E::0:-1: ++%4E:-INFINITY:1:4:-inf: ++%*4E:-INFINITY:0:4: ++%4E:-3.40282346638528859811704183484516925E+38:1:4:-0x1.b33334p1: ++%*4E:-3.40282346638528859811704183484516925E+38:0:4: ++%4E:-3.40282346638528859811704183484516925E38:1:4:-0x1.b33334p1: ++%*4E:-3.40282346638528859811704183484516925E38:0:4: ++%4E:-2.344167378255246830294536494851817472E+37:1:4:-0x1.266666p1: ++%*4E:-2.344167378255246830294536494851817472E+37:0:4: ++%4E:-2.344167378255246830294536494851817472E037:1:4:-0x1.266666p1: ++%*4E:-2.344167378255246830294536494851817472E037:0:4: ++%4E:-1.17549435082228750796873653722224568E-38:1:4:-0x1.19999a: ++%*4E:-1.17549435082228750796873653722224568E-38:0:4: ++# BZ12701 %4E:-0E+0:0:-1: ++# BZ12701 %*4E:-0E+0:0:-1: ++%4E:-0E0:1:4:-0x0: ++%*4E:-0E0:0:4: ++%4E:-NAN(09A_Zaz):1:4:-nan: ++%*4E:-NAN(09A_Zaz):0:4: ++%4E:-NAN():1:4:-nan: ++%*4E:-NAN():0:4: ++%4E:NAN():0:-1: ++%*4E:NAN():0:-1: ++%4E:NAN(09A_Zaz):0:-1: ++%*4E:NAN(09A_Zaz):0:-1: ++%4E:0E0:1:3:0x0: ++%*4E:0E0:0:3: ++%4E:0E+0:1:4:0x0: ++%*4E:0E+0:0:4: ++%4E:1.17549435082228750796873653722224568E-38:1:4:0x1.2b851e: ++%*4E:1.17549435082228750796873653722224568E-38:0:4: ++%4E:2.344167378255246830294536494851817472E037:1:4:0x1.2b851ep1: ++%*4E:2.344167378255246830294536494851817472E037:0:4: ++%4E:2.344167378255246830294536494851817472E+37:1:4:0x1.2b851ep1: ++%*4E:2.344167378255246830294536494851817472E+37:0:4: ++%4E:3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*4E:3.40282346638528859811704183484516925E38:0:4: ++%4E:3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*4E:3.40282346638528859811704183484516925E+38:0:4: ++%4E:INFINITY:0:-1: ++%*4E:INFINITY:0:-1: ++%4E:+NAN():1:4:nan: ++%*4E:+NAN():0:4: ++%4E:+NAN(09A_Zaz):1:4:nan: ++%*4E:+NAN(09A_Zaz):0:4: ++%4E:+0E0:1:4:0x0: ++%*4E:+0E0:0:4: ++# BZ12701 %4E:+0E+0:0:-1: ++# BZ12701 %*4E:+0E+0:0:-1: ++%4E:+1.17549435082228750796873653722224568E-38:1:4:0x1.19999a: ++%*4E:+1.17549435082228750796873653722224568E-38:0:4: ++%4E:+2.344167378255246830294536494851817472E037:1:4:0x1.266666p1: ++%*4E:+2.344167378255246830294536494851817472E037:0:4: ++%4E:+2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1: ++%*4E:+2.344167378255246830294536494851817472E+37:0:4: ++%4E:+3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*4E:+3.40282346638528859811704183484516925E38:0:4: ++%4E:+3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*4E:+3.40282346638528859811704183484516925E+38:0:4: ++%4E:+INFINITY:1:4:inf: ++%*4E:+INFINITY:0:4: ++%40E::0:-1: ++%*40E::0:-1: ++%40E:-INFINITY:1:9:-inf: ++%*40E:-INFINITY:0:9: ++# BZ12701 %40E:-3.40282346638528859811704183484516925E+38:0:-1: ++# BZ12701 %*40E:-3.40282346638528859811704183484516925E+38:0:-1: ++%40E:-3.40282346638528859811704183484516925E38:1:40:-0x1.a95a5ap11: ++%*40E:-3.40282346638528859811704183484516925E38:0:40: ++# BZ12701 %40E:-2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:-2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %40E:-2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %*40E:-2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %40E:-1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %*40E:-1.17549435082228750796873653722224568E-38:0:-1: ++%40E:-0E+0:1:5:-0x0: ++%*40E:-0E+0:0:5: ++%40E:-0E0:1:4:-0x0: ++%*40E:-0E0:0:4: ++%40E:-NAN(09A_Zaz):1:13:-nan: ++%*40E:-NAN(09A_Zaz):0:13: ++%40E:-NAN():1:6:-nan: ++%*40E:-NAN():0:6: ++%40E:NAN():1:5:nan: ++%*40E:NAN():0:5: ++%40E:NAN(09A_Zaz):1:12:nan: ++%*40E:NAN(09A_Zaz):0:12: ++%40E:0E0:1:3:0x0: ++%*40E:0E0:0:3: ++%40E:0E+0:1:4:0x0: ++%*40E:0E+0:0:4: ++%40E:1.17549435082228750796873653722224568E-38:1:40:0x1.342618p-10: ++%*40E:1.17549435082228750796873653722224568E-38:0:40: ++%40E:2.344167378255246830294536494851817472E037:1:40:0x1.2c0daep1: ++%*40E:2.344167378255246830294536494851817472E037:0:40: ++# BZ12701 %40E:2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:2.344167378255246830294536494851817472E+37:0:-1: ++%40E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*40E:3.40282346638528859811704183484516925E38:0:40: ++%40E:3.40282346638528859811704183484516925E+38:1:40:0x1.a95a5ap11: ++%*40E:3.40282346638528859811704183484516925E+38:0:40: ++%40E:INFINITY:1:8:inf: ++%*40E:INFINITY:0:8: ++%40E:+NAN():1:6:nan: ++%*40E:+NAN():0:6: ++%40E:+NAN(09A_Zaz):1:13:nan: ++%*40E:+NAN(09A_Zaz):0:13: ++%40E:+0E0:1:4:0x0: ++%*40E:+0E0:0:4: ++%40E:+0E+0:1:5:0x0: ++%*40E:+0E+0:0:5: ++# BZ12701 %40E:+1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %*40E:+1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %40E:+2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %*40E:+2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %40E:+2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:+2.344167378255246830294536494851817472E+37:0:-1: ++%40E:+3.40282346638528859811704183484516925E38:1:40:0x1.a95a5ap11: ++%*40E:+3.40282346638528859811704183484516925E38:0:40: ++# BZ12701 %40E:+3.40282346638528859811704183484516925E+38:0:-1: ++# BZ12701 %*40E:+3.40282346638528859811704183484516925E+38:0:-1: ++%40E:+INFINITY:1:9:inf: ++%*40E:+INFINITY:0:9: ++%48E::0:-1: ++%*48E::0:-1: ++%48E:-INFINITY:1:9:-inf: ++%*48E:-INFINITY:0:9: ++%48E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127: ++%*48E:-3.40282346638528859811704183484516925E+38:0:42: ++%48E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127: ++%*48E:-3.40282346638528859811704183484516925E38:0:41: ++%48E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124: ++%*48E:-2.344167378255246830294536494851817472E+37:0:43: ++%48E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124: ++%*48E:-2.344167378255246830294536494851817472E037:0:43: ++%48E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126: ++%*48E:-1.17549435082228750796873653722224568E-38:0:42: ++%48E:-0E+0:1:5:-0x0: ++%*48E:-0E+0:0:5: ++%48E:-0E0:1:4:-0x0: ++%*48E:-0E0:0:4: ++%48E:-NAN(09A_Zaz):1:13:-nan: ++%*48E:-NAN(09A_Zaz):0:13: ++%48E:-NAN():1:6:-nan: ++%*48E:-NAN():0:6: ++%48E:NAN():1:5:nan: ++%*48E:NAN():0:5: ++%48E:NAN(09A_Zaz):1:12:nan: ++%*48E:NAN(09A_Zaz):0:12: ++%48E:0E0:1:3:0x0: ++%*48E:0E0:0:3: ++%48E:0E+0:1:4:0x0: ++%*48E:0E+0:0:4: ++%48E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126: ++%*48E:1.17549435082228750796873653722224568E-38:0:41: ++%48E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124: ++%*48E:2.344167378255246830294536494851817472E037:0:42: ++%48E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124: ++%*48E:2.344167378255246830294536494851817472E+37:0:42: ++%48E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*48E:3.40282346638528859811704183484516925E38:0:40: ++%48E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127: ++%*48E:3.40282346638528859811704183484516925E+38:0:41: ++%48E:INFINITY:1:8:inf: ++%*48E:INFINITY:0:8: ++%48E:+NAN():1:6:nan: ++%*48E:+NAN():0:6: ++%48E:+NAN(09A_Zaz):1:13:nan: ++%*48E:+NAN(09A_Zaz):0:13: ++%48E:+0E0:1:4:0x0: ++%*48E:+0E0:0:4: ++%48E:+0E+0:1:5:0x0: ++%*48E:+0E+0:0:5: ++%48E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*48E:+1.17549435082228750796873653722224568E-38:0:42: ++%48E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*48E:+2.344167378255246830294536494851817472E037:0:43: ++%48E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*48E:+2.344167378255246830294536494851817472E+37:0:43: ++%48E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*48E:+3.40282346638528859811704183484516925E38:0:41: ++%48E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*48E:+3.40282346638528859811704183484516925E+38:0:42: ++%48E:+INFINITY:1:9:inf: ++%*48E:+INFINITY:0:9: ++%3E: :0:-1: ++%*3E: :0:-1: ++%3E: -INFINITY:0:-1: ++%*3E: -INFINITY:0:-1: ++%3E: -3.40282346638528859811704183484516925E+38:1:4:-0x1.8p1: ++%*3E: -3.40282346638528859811704183484516925E+38:0:4: ++%3E: -3.40282346638528859811704183484516925E38:1:4:-0x1.8p1: ++%*3E: -3.40282346638528859811704183484516925E38:0:4: ++%3E: -2.344167378255246830294536494851817472E+37:1:4:-0x1p1: ++%*3E: -2.344167378255246830294536494851817472E+37:0:4: ++%3E: -2.344167378255246830294536494851817472E037:1:4:-0x1p1: ++%*3E: -2.344167378255246830294536494851817472E037:0:4: ++%3E: -1.17549435082228750796873653722224568E-38:1:4:-0x1: ++%*3E: -1.17549435082228750796873653722224568E-38:0:4: ++# BZ12701 %3E: -0E+0:0:-1: ++# BZ12701 %*3E: -0E+0:0:-1: ++# BZ12701 %3E: -0E0:0:-1: ++# BZ12701 %*3E: -0E0:0:-1: ++%3E: -NAN(09A_Zaz):0:-1: ++%*3E: -NAN(09A_Zaz):0:-1: ++%3E: -NAN():0:-1: ++%*3E: -NAN():0:-1: ++%3E: NAN():1:4:nan: ++%*3E: NAN():0:4: ++%3E: NAN(09A_Zaz):1:4:nan: ++%*3E: NAN(09A_Zaz):0:4: ++%3E: 0E0:1:4:0x0: ++%*3E: 0E0:0:4: ++# BZ12701 %3E: 0E+0:0:-1: ++# BZ12701 %*3E: 0E+0:0:-1: ++%3E: 1.17549435082228750796873653722224568E-38:1:4:0x1.19999a: ++%*3E: 1.17549435082228750796873653722224568E-38:0:4: ++%3E: 2.344167378255246830294536494851817472E037:1:4:0x1.266666p1: ++%*3E: 2.344167378255246830294536494851817472E037:0:4: ++%3E: 2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1: ++%*3E: 2.344167378255246830294536494851817472E+37:0:4: ++%3E: 3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*3E: 3.40282346638528859811704183484516925E38:0:4: ++%3E: 3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*3E: 3.40282346638528859811704183484516925E+38:0:4: ++%3E: INFINITY:1:4:inf: ++%*3E: INFINITY:0:4: ++%3E: +NAN():0:-1: ++%*3E: +NAN():0:-1: ++%3E: +NAN(09A_Zaz):0:-1: ++%*3E: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3E: +0E0:0:-1: ++# BZ12701 %*3E: +0E0:0:-1: ++# BZ12701 %3E: +0E+0:0:-1: ++# BZ12701 %*3E: +0E+0:0:-1: ++%3E: +1.17549435082228750796873653722224568E-38:1:4:0x1: ++%*3E: +1.17549435082228750796873653722224568E-38:0:4: ++%3E: +2.344167378255246830294536494851817472E037:1:4:0x1p1: ++%*3E: +2.344167378255246830294536494851817472E037:0:4: ++%3E: +2.344167378255246830294536494851817472E+37:1:4:0x1p1: ++%*3E: +2.344167378255246830294536494851817472E+37:0:4: ++%3E: +3.40282346638528859811704183484516925E38:1:4:0x1.8p1: ++%*3E: +3.40282346638528859811704183484516925E38:0:4: ++%3E: +3.40282346638528859811704183484516925E+38:1:4:0x1.8p1: ++%*3E: +3.40282346638528859811704183484516925E+38:0:4: ++%3E: +INFINITY:0:-1: ++%*3E: +INFINITY:0:-1: ++%48E: :0:-1: ++%*48E: :0:-1: ++%48E: -INFINITY:1:10:-inf: ++%*48E: -INFINITY:0:10: ++%48E: -3.40282346638528859811704183484516925E+38:1:43:-0x1.fffffep127: ++%*48E: -3.40282346638528859811704183484516925E+38:0:43: ++%48E: -3.40282346638528859811704183484516925E38:1:42:-0x1.fffffep127: ++%*48E: -3.40282346638528859811704183484516925E38:0:42: ++%48E: -2.344167378255246830294536494851817472E+37:1:44:-0x1.1a2b3cp124: ++%*48E: -2.344167378255246830294536494851817472E+37:0:44: ++%48E: -2.344167378255246830294536494851817472E037:1:44:-0x1.1a2b3cp124: ++%*48E: -2.344167378255246830294536494851817472E037:0:44: ++%48E: -1.17549435082228750796873653722224568E-38:1:43:-0x1p-126: ++%*48E: -1.17549435082228750796873653722224568E-38:0:43: ++%48E: -0E+0:1:6:-0x0: ++%*48E: -0E+0:0:6: ++%48E: -0E0:1:5:-0x0: ++%*48E: -0E0:0:5: ++%48E: -NAN(09A_Zaz):1:14:-nan: ++%*48E: -NAN(09A_Zaz):0:14: ++%48E: -NAN():1:7:-nan: ++%*48E: -NAN():0:7: ++%48E: NAN():1:6:nan: ++%*48E: NAN():0:6: ++%48E: NAN(09A_Zaz):1:13:nan: ++%*48E: NAN(09A_Zaz):0:13: ++%48E: 0E0:1:4:0x0: ++%*48E: 0E0:0:4: ++%48E: 0E+0:1:5:0x0: ++%*48E: 0E+0:0:5: ++%48E: 1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*48E: 1.17549435082228750796873653722224568E-38:0:42: ++%48E: 2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*48E: 2.344167378255246830294536494851817472E037:0:43: ++%48E: 2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*48E: 2.344167378255246830294536494851817472E+37:0:43: ++%48E: 3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*48E: 3.40282346638528859811704183484516925E38:0:41: ++%48E: 3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*48E: 3.40282346638528859811704183484516925E+38:0:42: ++%48E: INFINITY:1:9:inf: ++%*48E: INFINITY:0:9: ++%48E: +NAN():1:7:nan: ++%*48E: +NAN():0:7: ++%48E: +NAN(09A_Zaz):1:14:nan: ++%*48E: +NAN(09A_Zaz):0:14: ++%48E: +0E0:1:5:0x0: ++%*48E: +0E0:0:5: ++%48E: +0E+0:1:6:0x0: ++%*48E: +0E+0:0:6: ++%48E: +1.17549435082228750796873653722224568E-38:1:43:0x1p-126: ++%*48E: +1.17549435082228750796873653722224568E-38:0:43: ++%48E: +2.344167378255246830294536494851817472E037:1:44:0x1.1a2b3cp124: ++%*48E: +2.344167378255246830294536494851817472E037:0:44: ++%48E: +2.344167378255246830294536494851817472E+37:1:44:0x1.1a2b3cp124: ++%*48E: +2.344167378255246830294536494851817472E+37:0:44: ++%48E: +3.40282346638528859811704183484516925E38:1:42:0x1.fffffep127: ++%*48E: +3.40282346638528859811704183484516925E38:0:42: ++%48E: +3.40282346638528859811704183484516925E+38:1:43:0x1.fffffep127: ++%*48E: +3.40282346638528859811704183484516925E+38:0:43: ++%48E: +INFINITY:1:10:inf: ++%*48E: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +new file mode 100644 +index 0000000000000000..57d9677b1b9650db +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +@@ -0,0 +1,558 @@ ++%f::0:-1: ++%*f::0:-1: ++%f:-infinity:1:9:-inf: ++%*f:-infinity:0:9: ++%f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*f:-0340282346638528859811704183484516925440.0:0:43: ++%f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*f:-340282346638528859811704183484516925440:0:40: ++%f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*f:-023441673782552468302945364948518174720.0:0:42: ++%f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*f:-23441673782552468302945364948518174720:0:39: ++%f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%f:-0.0:1:4:-0x0: ++%*f:-0.0:0:4: ++%f:-0:1:2:-0x0: ++%*f:-0:0:2: ++%f:-nan(09A_Zaz):1:13:-nan: ++%*f:-nan(09A_Zaz):0:13: ++%f:-nan():1:6:-nan: ++%*f:-nan():0:6: ++%f:nan():1:5:nan: ++%*f:nan():0:5: ++%f:nan(09A_Zaz):1:12:nan: ++%*f:nan(09A_Zaz):0:12: ++%f:0:1:1:0x0: ++%*f:0:0:1: ++%f:0.0:1:3:0x0: ++%*f:0.0:0:3: ++%f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*f:23441673782552468302945364948518174720:0:38: ++%f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*f:023441673782552468302945364948518174720.0:0:41: ++%f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*f:340282346638528859811704183484516925440:0:39: ++%f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*f:0340282346638528859811704183484516925440.0:0:42: ++%f:infinity:1:8:inf: ++%*f:infinity:0:8: ++%f:+nan():1:6:nan: ++%*f:+nan():0:6: ++%f:+nan(09A_Zaz):1:13:nan: ++%*f:+nan(09A_Zaz):0:13: ++%f:+0:1:2:0x0: ++%*f:+0:0:2: ++%f:+0.0:1:4:0x0: ++%*f:+0.0:0:4: ++%f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*f:+23441673782552468302945364948518174720:0:39: ++%f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*f:+023441673782552468302945364948518174720.0:0:42: ++%f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*f:+340282346638528859811704183484516925440:0:40: ++%f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*f:+0340282346638528859811704183484516925440.0:0:43: ++%f:+infinity:1:9:inf: ++%*f:+infinity:0:9: ++%1f::0:-1: ++%*1f::0:-1: ++%1f:-infinity:0:-1: ++%*1f:-infinity:0:-1: ++%1f:-0340282346638528859811704183484516925440.0:0:-1: ++%*1f:-0340282346638528859811704183484516925440.0:0:-1: ++%1f:-340282346638528859811704183484516925440:0:-1: ++%*1f:-340282346638528859811704183484516925440:0:-1: ++%1f:-023441673782552468302945364948518174720.0:0:-1: ++%*1f:-023441673782552468302945364948518174720.0:0:-1: ++%1f:-23441673782552468302945364948518174720:0:-1: ++%*1f:-23441673782552468302945364948518174720:0:-1: ++%1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1f:-0.0:0:-1: ++%*1f:-0.0:0:-1: ++%1f:-0:0:-1: ++%*1f:-0:0:-1: ++%1f:-nan(09A_Zaz):0:-1: ++%*1f:-nan(09A_Zaz):0:-1: ++%1f:-nan():0:-1: ++%*1f:-nan():0:-1: ++%1f:nan():0:-1: ++%*1f:nan():0:-1: ++%1f:nan(09A_Zaz):0:-1: ++%*1f:nan(09A_Zaz):0:-1: ++%1f:0:1:1:0x0: ++%*1f:0:0:1: ++%1f:0.0:1:1:0x0: ++%*1f:0.0:0:1: ++%1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0: ++%*1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1: ++%1f:23441673782552468302945364948518174720:1:1:0x1p1: ++%*1f:23441673782552468302945364948518174720:0:1: ++%1f:023441673782552468302945364948518174720.0:1:1:0x0: ++%*1f:023441673782552468302945364948518174720.0:0:1: ++%1f:340282346638528859811704183484516925440:1:1:0x1.8p1: ++%*1f:340282346638528859811704183484516925440:0:1: ++%1f:0340282346638528859811704183484516925440.0:1:1:0x0: ++%*1f:0340282346638528859811704183484516925440.0:0:1: ++%1f:infinity:0:-1: ++%*1f:infinity:0:-1: ++%1f:+nan():0:-1: ++%*1f:+nan():0:-1: ++%1f:+nan(09A_Zaz):0:-1: ++%*1f:+nan(09A_Zaz):0:-1: ++%1f:+0:0:-1: ++%*1f:+0:0:-1: ++%1f:+0.0:0:-1: ++%*1f:+0.0:0:-1: ++%1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1f:+23441673782552468302945364948518174720:0:-1: ++%*1f:+23441673782552468302945364948518174720:0:-1: ++%1f:+023441673782552468302945364948518174720.0:0:-1: ++%*1f:+023441673782552468302945364948518174720.0:0:-1: ++%1f:+340282346638528859811704183484516925440:0:-1: ++%*1f:+340282346638528859811704183484516925440:0:-1: ++%1f:+0340282346638528859811704183484516925440.0:0:-1: ++%*1f:+0340282346638528859811704183484516925440.0:0:-1: ++%1f:+infinity:0:-1: ++%*1f:+infinity:0:-1: ++%2f::0:-1: ++%*2f::0:-1: ++%2f:-infinity:0:-1: ++%*2f:-infinity:0:-1: ++%2f:-0340282346638528859811704183484516925440.0:1:2:-0x0: ++%*2f:-0340282346638528859811704183484516925440.0:0:2: ++%2f:-340282346638528859811704183484516925440:1:2:-0x1.8p1: ++%*2f:-340282346638528859811704183484516925440:0:2: ++%2f:-023441673782552468302945364948518174720.0:1:2:-0x0: ++%*2f:-023441673782552468302945364948518174720.0:0:2: ++%2f:-23441673782552468302945364948518174720:1:2:-0x1p1: ++%*2f:-23441673782552468302945364948518174720:0:2: ++%2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0: ++%*2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:-0.0:1:2:-0x0: ++%*2f:-0.0:0:2: ++%2f:-0:1:2:-0x0: ++%*2f:-0:0:2: ++%2f:-nan(09A_Zaz):0:-1: ++%*2f:-nan(09A_Zaz):0:-1: ++%2f:-nan():0:-1: ++%*2f:-nan():0:-1: ++%2f:nan():0:-1: ++%*2f:nan():0:-1: ++%2f:nan(09A_Zaz):0:-1: ++%*2f:nan(09A_Zaz):0:-1: ++%2f:0:1:1:0x0: ++%*2f:0:0:1: ++%2f:0.0:1:2:0x0: ++%*2f:0.0:0:2: ++%2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:23441673782552468302945364948518174720:1:2:0x1.7p4: ++%*2f:23441673782552468302945364948518174720:0:2: ++%2f:023441673782552468302945364948518174720.0:1:2:0x1p1: ++%*2f:023441673782552468302945364948518174720.0:0:2: ++%2f:340282346638528859811704183484516925440:1:2:0x1.1p5: ++%*2f:340282346638528859811704183484516925440:0:2: ++%2f:0340282346638528859811704183484516925440.0:1:2:0x1.8p1: ++%*2f:0340282346638528859811704183484516925440.0:0:2: ++%2f:infinity:0:-1: ++%*2f:infinity:0:-1: ++%2f:+nan():0:-1: ++%*2f:+nan():0:-1: ++%2f:+nan(09A_Zaz):0:-1: ++%*2f:+nan(09A_Zaz):0:-1: ++%2f:+0:1:2:0x0: ++%*2f:+0:0:2: ++%2f:+0.0:1:2:0x0: ++%*2f:+0.0:0:2: ++%2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:+23441673782552468302945364948518174720:1:2:0x1p1: ++%*2f:+23441673782552468302945364948518174720:0:2: ++%2f:+023441673782552468302945364948518174720.0:1:2:0x0: ++%*2f:+023441673782552468302945364948518174720.0:0:2: ++%2f:+340282346638528859811704183484516925440:1:2:0x1.8p1: ++%*2f:+340282346638528859811704183484516925440:0:2: ++%2f:+0340282346638528859811704183484516925440.0:1:2:0x0: ++%*2f:+0340282346638528859811704183484516925440.0:0:2: ++%2f:+infinity:0:-1: ++%*2f:+infinity:0:-1: ++%3f::0:-1: ++%*3f::0:-1: ++%3f:-infinity:0:-1: ++%*3f:-infinity:0:-1: ++%3f:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1: ++%*3f:-0340282346638528859811704183484516925440.0:0:3: ++%3f:-340282346638528859811704183484516925440:1:3:-0x1.1p5: ++%*3f:-340282346638528859811704183484516925440:0:3: ++%3f:-023441673782552468302945364948518174720.0:1:3:-0x1p1: ++%*3f:-023441673782552468302945364948518174720.0:0:3: ++%3f:-23441673782552468302945364948518174720:1:3:-0x1.7p4: ++%*3f:-23441673782552468302945364948518174720:0:3: ++%3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0: ++%*3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:-0.0:1:3:-0x0: ++%*3f:-0.0:0:3: ++%3f:-0:1:2:-0x0: ++%*3f:-0:0:2: ++%3f:-nan(09A_Zaz):0:-1: ++%*3f:-nan(09A_Zaz):0:-1: ++%3f:-nan():0:-1: ++%*3f:-nan():0:-1: ++%3f:nan():1:3:nan: ++%*3f:nan():0:3: ++%3f:nan(09A_Zaz):1:3:nan: ++%*3f:nan(09A_Zaz):0:3: ++%3f:0:1:1:0x0: ++%*3f:0:0:1: ++%3f:0.0:1:3:0x0: ++%*3f:0.0:0:3: ++%3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:23441673782552468302945364948518174720:1:3:0x1.d4p7: ++%*3f:23441673782552468302945364948518174720:0:3: ++%3f:023441673782552468302945364948518174720.0:1:3:0x1.7p4: ++%*3f:023441673782552468302945364948518174720.0:0:3: ++%3f:340282346638528859811704183484516925440:1:3:0x1.54p8: ++%*3f:340282346638528859811704183484516925440:0:3: ++%3f:0340282346638528859811704183484516925440.0:1:3:0x1.1p5: ++%*3f:0340282346638528859811704183484516925440.0:0:3: ++%3f:infinity:1:3:inf: ++%*3f:infinity:0:3: ++%3f:+nan():0:-1: ++%*3f:+nan():0:-1: ++%3f:+nan(09A_Zaz):0:-1: ++%*3f:+nan(09A_Zaz):0:-1: ++%3f:+0:1:2:0x0: ++%*3f:+0:0:2: ++%3f:+0.0:1:3:0x0: ++%*3f:+0.0:0:3: ++%3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:+23441673782552468302945364948518174720:1:3:0x1.7p4: ++%*3f:+23441673782552468302945364948518174720:0:3: ++%3f:+023441673782552468302945364948518174720.0:1:3:0x1p1: ++%*3f:+023441673782552468302945364948518174720.0:0:3: ++%3f:+340282346638528859811704183484516925440:1:3:0x1.1p5: ++%*3f:+340282346638528859811704183484516925440:0:3: ++%3f:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1: ++%*3f:+0340282346638528859811704183484516925440.0:0:3: ++%3f:+infinity:0:-1: ++%*3f:+infinity:0:-1: ++%4f::0:-1: ++%*4f::0:-1: ++%4f:-infinity:1:4:-inf: ++%*4f:-infinity:0:4: ++%4f:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5: ++%*4f:-0340282346638528859811704183484516925440.0:0:4: ++%4f:-340282346638528859811704183484516925440:1:4:-0x1.54p8: ++%*4f:-340282346638528859811704183484516925440:0:4: ++%4f:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4: ++%*4f:-023441673782552468302945364948518174720.0:0:4: ++%4f:-23441673782552468302945364948518174720:1:4:-0x1.d4p7: ++%*4f:-23441673782552468302945364948518174720:0:4: ++%4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:-0.0:1:4:-0x0: ++%*4f:-0.0:0:4: ++%4f:-0:1:2:-0x0: ++%*4f:-0:0:2: ++%4f:-nan(09A_Zaz):1:4:-nan: ++%*4f:-nan(09A_Zaz):0:4: ++%4f:-nan():1:4:-nan: ++%*4f:-nan():0:4: ++%4f:nan():0:-1: ++%*4f:nan():0:-1: ++%4f:nan(09A_Zaz):0:-1: ++%*4f:nan(09A_Zaz):0:-1: ++%4f:0:1:1:0x0: ++%*4f:0:0:1: ++%4f:0.0:1:3:0x0: ++%*4f:0.0:0:3: ++%4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:23441673782552468302945364948518174720:1:4:0x1.25p11: ++%*4f:23441673782552468302945364948518174720:0:4: ++%4f:023441673782552468302945364948518174720.0:1:4:0x1.d4p7: ++%*4f:023441673782552468302945364948518174720.0:0:4: ++%4f:340282346638528859811704183484516925440:1:4:0x1.a94p11: ++%*4f:340282346638528859811704183484516925440:0:4: ++%4f:0340282346638528859811704183484516925440.0:1:4:0x1.54p8: ++%*4f:0340282346638528859811704183484516925440.0:0:4: ++%4f:infinity:0:-1: ++%*4f:infinity:0:-1: ++%4f:+nan():1:4:nan: ++%*4f:+nan():0:4: ++%4f:+nan(09A_Zaz):1:4:nan: ++%*4f:+nan(09A_Zaz):0:4: ++%4f:+0:1:2:0x0: ++%*4f:+0:0:2: ++%4f:+0.0:1:4:0x0: ++%*4f:+0.0:0:4: ++%4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:+23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*4f:+23441673782552468302945364948518174720:0:4: ++%4f:+023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*4f:+023441673782552468302945364948518174720.0:0:4: ++%4f:+340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*4f:+340282346638528859811704183484516925440:0:4: ++%4f:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*4f:+0340282346638528859811704183484516925440.0:0:4: ++%4f:+infinity:1:4:inf: ++%*4f:+infinity:0:4: ++%41f::0:-1: ++%*41f::0:-1: ++%41f:-infinity:1:9:-inf: ++%*41f:-infinity:0:9: ++%41f:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127: ++%*41f:-0340282346638528859811704183484516925440.0:0:41: ++%41f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*41f:-340282346638528859811704183484516925440:0:40: ++%41f:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124: ++%*41f:-023441673782552468302945364948518174720.0:0:41: ++%41f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*41f:-23441673782552468302945364948518174720:0:39: ++%41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127: ++%*41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:-0.0:1:4:-0x0: ++%*41f:-0.0:0:4: ++%41f:-0:1:2:-0x0: ++%*41f:-0:0:2: ++%41f:-nan(09A_Zaz):1:13:-nan: ++%*41f:-nan(09A_Zaz):0:13: ++%41f:-nan():1:6:-nan: ++%*41f:-nan():0:6: ++%41f:nan():1:5:nan: ++%*41f:nan():0:5: ++%41f:nan(09A_Zaz):1:12:nan: ++%*41f:nan(09A_Zaz):0:12: ++%41f:0:1:1:0x0: ++%*41f:0:0:1: ++%41f:0.0:1:3:0x0: ++%*41f:0.0:0:3: ++%41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127: ++%*41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*41f:23441673782552468302945364948518174720:0:38: ++%41f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41f:023441673782552468302945364948518174720.0:0:41: ++%41f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*41f:340282346638528859811704183484516925440:0:39: ++%41f:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41f:0340282346638528859811704183484516925440.0:0:41: ++%41f:infinity:1:8:inf: ++%*41f:infinity:0:8: ++%41f:+nan():1:6:nan: ++%*41f:+nan():0:6: ++%41f:+nan(09A_Zaz):1:13:nan: ++%*41f:+nan(09A_Zaz):0:13: ++%41f:+0:1:2:0x0: ++%*41f:+0:0:2: ++%41f:+0.0:1:4:0x0: ++%*41f:+0.0:0:4: ++%41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127: ++%*41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*41f:+23441673782552468302945364948518174720:0:39: ++%41f:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41f:+023441673782552468302945364948518174720.0:0:41: ++%41f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*41f:+340282346638528859811704183484516925440:0:40: ++%41f:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41f:+0340282346638528859811704183484516925440.0:0:41: ++%41f:+infinity:1:9:inf: ++%*41f:+infinity:0:9: ++%80f::0:-1: ++%*80f::0:-1: ++%80f:-infinity:1:9:-inf: ++%*80f:-infinity:0:9: ++%80f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*80f:-0340282346638528859811704183484516925440.0:0:43: ++%80f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*80f:-340282346638528859811704183484516925440:0:40: ++%80f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*80f:-023441673782552468302945364948518174720.0:0:42: ++%80f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*80f:-23441673782552468302945364948518174720:0:39: ++%80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f:-0.0:1:4:-0x0: ++%*80f:-0.0:0:4: ++%80f:-0:1:2:-0x0: ++%*80f:-0:0:2: ++%80f:-nan(09A_Zaz):1:13:-nan: ++%*80f:-nan(09A_Zaz):0:13: ++%80f:-nan():1:6:-nan: ++%*80f:-nan():0:6: ++%80f:nan():1:5:nan: ++%*80f:nan():0:5: ++%80f:nan(09A_Zaz):1:12:nan: ++%*80f:nan(09A_Zaz):0:12: ++%80f:0:1:1:0x0: ++%*80f:0:0:1: ++%80f:0.0:1:3:0x0: ++%*80f:0.0:0:3: ++%80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%80f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*80f:23441673782552468302945364948518174720:0:38: ++%80f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*80f:023441673782552468302945364948518174720.0:0:41: ++%80f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*80f:340282346638528859811704183484516925440:0:39: ++%80f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*80f:0340282346638528859811704183484516925440.0:0:42: ++%80f:infinity:1:8:inf: ++%*80f:infinity:0:8: ++%80f:+nan():1:6:nan: ++%*80f:+nan():0:6: ++%80f:+nan(09A_Zaz):1:13:nan: ++%*80f:+nan(09A_Zaz):0:13: ++%80f:+0:1:2:0x0: ++%*80f:+0:0:2: ++%80f:+0.0:1:4:0x0: ++%*80f:+0.0:0:4: ++%80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80f:+23441673782552468302945364948518174720:0:39: ++%80f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80f:+023441673782552468302945364948518174720.0:0:42: ++%80f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80f:+340282346638528859811704183484516925440:0:40: ++%80f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80f:+0340282346638528859811704183484516925440.0:0:43: ++%80f:+infinity:1:9:inf: ++%*80f:+infinity:0:9: ++%3f: :0:-1: ++%*3f: :0:-1: ++%3f: -infinity:0:-1: ++%*3f: -infinity:0:-1: ++%3f: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1: ++%*3f: -0340282346638528859811704183484516925440.0:0:4: ++%3f: -340282346638528859811704183484516925440:1:4:-0x1.1p5: ++%*3f: -340282346638528859811704183484516925440:0:4: ++%3f: -023441673782552468302945364948518174720.0:1:4:-0x1p1: ++%*3f: -023441673782552468302945364948518174720.0:0:4: ++%3f: -23441673782552468302945364948518174720:1:4:-0x1.7p4: ++%*3f: -23441673782552468302945364948518174720:0:4: ++%3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: -0.0:1:4:-0x0: ++%*3f: -0.0:0:4: ++%3f: -0:1:3:-0x0: ++%*3f: -0:0:3: ++%3f: -nan(09A_Zaz):0:-1: ++%*3f: -nan(09A_Zaz):0:-1: ++%3f: -nan():0:-1: ++%*3f: -nan():0:-1: ++%3f: nan():1:4:nan: ++%*3f: nan():0:4: ++%3f: nan(09A_Zaz):1:4:nan: ++%*3f: nan(09A_Zaz):0:4: ++%3f: 0:1:2:0x0: ++%*3f: 0:0:2: ++%3f: 0.0:1:4:0x0: ++%*3f: 0.0:0:4: ++%3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: 23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*3f: 23441673782552468302945364948518174720:0:4: ++%3f: 023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*3f: 023441673782552468302945364948518174720.0:0:4: ++%3f: 340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*3f: 340282346638528859811704183484516925440:0:4: ++%3f: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*3f: 0340282346638528859811704183484516925440.0:0:4: ++%3f: infinity:1:4:inf: ++%*3f: infinity:0:4: ++%3f: +nan():0:-1: ++%*3f: +nan():0:-1: ++%3f: +nan(09A_Zaz):0:-1: ++%*3f: +nan(09A_Zaz):0:-1: ++%3f: +0:1:3:0x0: ++%*3f: +0:0:3: ++%3f: +0.0:1:4:0x0: ++%*3f: +0.0:0:4: ++%3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: +23441673782552468302945364948518174720:1:4:0x1.7p4: ++%*3f: +23441673782552468302945364948518174720:0:4: ++%3f: +023441673782552468302945364948518174720.0:1:4:0x1p1: ++%*3f: +023441673782552468302945364948518174720.0:0:4: ++%3f: +340282346638528859811704183484516925440:1:4:0x1.1p5: ++%*3f: +340282346638528859811704183484516925440:0:4: ++%3f: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1: ++%*3f: +0340282346638528859811704183484516925440.0:0:4: ++%3f: +infinity:0:-1: ++%*3f: +infinity:0:-1: ++%80f: :0:-1: ++%*80f: :0:-1: ++%80f: -infinity:1:10:-inf: ++%*80f: -infinity:0:10: ++%80f: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127: ++%*80f: -0340282346638528859811704183484516925440.0:0:44: ++%80f: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127: ++%*80f: -340282346638528859811704183484516925440:0:41: ++%80f: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124: ++%*80f: -023441673782552468302945364948518174720.0:0:43: ++%80f: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124: ++%*80f: -23441673782552468302945364948518174720:0:40: ++%80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126: ++%*80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80f: -0.0:1:5:-0x0: ++%*80f: -0.0:0:5: ++%80f: -0:1:3:-0x0: ++%*80f: -0:0:3: ++%80f: -nan(09A_Zaz):1:14:-nan: ++%*80f: -nan(09A_Zaz):0:14: ++%80f: -nan():1:7:-nan: ++%*80f: -nan():0:7: ++%80f: nan():1:6:nan: ++%*80f: nan():0:6: ++%80f: nan(09A_Zaz):1:13:nan: ++%*80f: nan(09A_Zaz):0:13: ++%80f: 0:1:2:0x0: ++%*80f: 0:0:2: ++%80f: 0.0:1:4:0x0: ++%*80f: 0.0:0:4: ++%80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80f: 23441673782552468302945364948518174720:0:39: ++%80f: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80f: 023441673782552468302945364948518174720.0:0:42: ++%80f: 340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80f: 340282346638528859811704183484516925440:0:40: ++%80f: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80f: 0340282346638528859811704183484516925440.0:0:43: ++%80f: infinity:1:9:inf: ++%*80f: infinity:0:9: ++%80f: +nan():1:7:nan: ++%*80f: +nan():0:7: ++%80f: +nan(09A_Zaz):1:14:nan: ++%*80f: +nan(09A_Zaz):0:14: ++%80f: +0:1:3:0x0: ++%*80f: +0:0:3: ++%80f: +0.0:1:5:0x0: ++%*80f: +0.0:0:5: ++%80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126: ++%*80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80f: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124: ++%*80f: +23441673782552468302945364948518174720:0:40: ++%80f: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124: ++%*80f: +023441673782552468302945364948518174720.0:0:43: ++%80f: +340282346638528859811704183484516925440:1:41:0x1.fffffep127: ++%*80f: +340282346638528859811704183484516925440:0:41: ++%80f: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127: ++%*80f: +0340282346638528859811704183484516925440.0:0:44: ++%80f: +infinity:1:10:inf: ++%*80f: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +new file mode 100644 +index 0000000000000000..3ec8ed0e8f7069be +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +@@ -0,0 +1,558 @@ ++%F::0:-1: ++%*F::0:-1: ++%F:-INFINITY:1:9:-inf: ++%*F:-INFINITY:0:9: ++%F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*F:-0340282346638528859811704183484516925440.0:0:43: ++%F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*F:-340282346638528859811704183484516925440:0:40: ++%F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*F:-023441673782552468302945364948518174720.0:0:42: ++%F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*F:-23441673782552468302945364948518174720:0:39: ++%F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%F:-0.0:1:4:-0x0: ++%*F:-0.0:0:4: ++%F:-0:1:2:-0x0: ++%*F:-0:0:2: ++%F:-NAN(09A_Zaz):1:13:-nan: ++%*F:-NAN(09A_Zaz):0:13: ++%F:-NAN():1:6:-nan: ++%*F:-NAN():0:6: ++%F:NAN():1:5:nan: ++%*F:NAN():0:5: ++%F:NAN(09A_Zaz):1:12:nan: ++%*F:NAN(09A_Zaz):0:12: ++%F:0:1:1:0x0: ++%*F:0:0:1: ++%F:0.0:1:3:0x0: ++%*F:0.0:0:3: ++%F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*F:23441673782552468302945364948518174720:0:38: ++%F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*F:023441673782552468302945364948518174720.0:0:41: ++%F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*F:340282346638528859811704183484516925440:0:39: ++%F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*F:0340282346638528859811704183484516925440.0:0:42: ++%F:INFINITY:1:8:inf: ++%*F:INFINITY:0:8: ++%F:+NAN():1:6:nan: ++%*F:+NAN():0:6: ++%F:+NAN(09A_Zaz):1:13:nan: ++%*F:+NAN(09A_Zaz):0:13: ++%F:+0:1:2:0x0: ++%*F:+0:0:2: ++%F:+0.0:1:4:0x0: ++%*F:+0.0:0:4: ++%F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*F:+23441673782552468302945364948518174720:0:39: ++%F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*F:+023441673782552468302945364948518174720.0:0:42: ++%F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*F:+340282346638528859811704183484516925440:0:40: ++%F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*F:+0340282346638528859811704183484516925440.0:0:43: ++%F:+INFINITY:1:9:inf: ++%*F:+INFINITY:0:9: ++%1F::0:-1: ++%*1F::0:-1: ++%1F:-INFINITY:0:-1: ++%*1F:-INFINITY:0:-1: ++%1F:-0340282346638528859811704183484516925440.0:0:-1: ++%*1F:-0340282346638528859811704183484516925440.0:0:-1: ++%1F:-340282346638528859811704183484516925440:0:-1: ++%*1F:-340282346638528859811704183484516925440:0:-1: ++%1F:-023441673782552468302945364948518174720.0:0:-1: ++%*1F:-023441673782552468302945364948518174720.0:0:-1: ++%1F:-23441673782552468302945364948518174720:0:-1: ++%*1F:-23441673782552468302945364948518174720:0:-1: ++%1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1F:-0.0:0:-1: ++%*1F:-0.0:0:-1: ++%1F:-0:0:-1: ++%*1F:-0:0:-1: ++%1F:-NAN(09A_Zaz):0:-1: ++%*1F:-NAN(09A_Zaz):0:-1: ++%1F:-NAN():0:-1: ++%*1F:-NAN():0:-1: ++%1F:NAN():0:-1: ++%*1F:NAN():0:-1: ++%1F:NAN(09A_Zaz):0:-1: ++%*1F:NAN(09A_Zaz):0:-1: ++%1F:0:1:1:0x0: ++%*1F:0:0:1: ++%1F:0.0:1:1:0x0: ++%*1F:0.0:0:1: ++%1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0: ++%*1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1: ++%1F:23441673782552468302945364948518174720:1:1:0x1p1: ++%*1F:23441673782552468302945364948518174720:0:1: ++%1F:023441673782552468302945364948518174720.0:1:1:0x0: ++%*1F:023441673782552468302945364948518174720.0:0:1: ++%1F:340282346638528859811704183484516925440:1:1:0x1.8p1: ++%*1F:340282346638528859811704183484516925440:0:1: ++%1F:0340282346638528859811704183484516925440.0:1:1:0x0: ++%*1F:0340282346638528859811704183484516925440.0:0:1: ++%1F:INFINITY:0:-1: ++%*1F:INFINITY:0:-1: ++%1F:+NAN():0:-1: ++%*1F:+NAN():0:-1: ++%1F:+NAN(09A_Zaz):0:-1: ++%*1F:+NAN(09A_Zaz):0:-1: ++%1F:+0:0:-1: ++%*1F:+0:0:-1: ++%1F:+0.0:0:-1: ++%*1F:+0.0:0:-1: ++%1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1F:+23441673782552468302945364948518174720:0:-1: ++%*1F:+23441673782552468302945364948518174720:0:-1: ++%1F:+023441673782552468302945364948518174720.0:0:-1: ++%*1F:+023441673782552468302945364948518174720.0:0:-1: ++%1F:+340282346638528859811704183484516925440:0:-1: ++%*1F:+340282346638528859811704183484516925440:0:-1: ++%1F:+0340282346638528859811704183484516925440.0:0:-1: ++%*1F:+0340282346638528859811704183484516925440.0:0:-1: ++%1F:+INFINITY:0:-1: ++%*1F:+INFINITY:0:-1: ++%2F::0:-1: ++%*2F::0:-1: ++%2F:-INFINITY:0:-1: ++%*2F:-INFINITY:0:-1: ++%2F:-0340282346638528859811704183484516925440.0:1:2:-0x0: ++%*2F:-0340282346638528859811704183484516925440.0:0:2: ++%2F:-340282346638528859811704183484516925440:1:2:-0x1.8p1: ++%*2F:-340282346638528859811704183484516925440:0:2: ++%2F:-023441673782552468302945364948518174720.0:1:2:-0x0: ++%*2F:-023441673782552468302945364948518174720.0:0:2: ++%2F:-23441673782552468302945364948518174720:1:2:-0x1p1: ++%*2F:-23441673782552468302945364948518174720:0:2: ++%2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0: ++%*2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:-0.0:1:2:-0x0: ++%*2F:-0.0:0:2: ++%2F:-0:1:2:-0x0: ++%*2F:-0:0:2: ++%2F:-NAN(09A_Zaz):0:-1: ++%*2F:-NAN(09A_Zaz):0:-1: ++%2F:-NAN():0:-1: ++%*2F:-NAN():0:-1: ++%2F:NAN():0:-1: ++%*2F:NAN():0:-1: ++%2F:NAN(09A_Zaz):0:-1: ++%*2F:NAN(09A_Zaz):0:-1: ++%2F:0:1:1:0x0: ++%*2F:0:0:1: ++%2F:0.0:1:2:0x0: ++%*2F:0.0:0:2: ++%2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:23441673782552468302945364948518174720:1:2:0x1.7p4: ++%*2F:23441673782552468302945364948518174720:0:2: ++%2F:023441673782552468302945364948518174720.0:1:2:0x1p1: ++%*2F:023441673782552468302945364948518174720.0:0:2: ++%2F:340282346638528859811704183484516925440:1:2:0x1.1p5: ++%*2F:340282346638528859811704183484516925440:0:2: ++%2F:0340282346638528859811704183484516925440.0:1:2:0x1.8p1: ++%*2F:0340282346638528859811704183484516925440.0:0:2: ++%2F:INFINITY:0:-1: ++%*2F:INFINITY:0:-1: ++%2F:+NAN():0:-1: ++%*2F:+NAN():0:-1: ++%2F:+NAN(09A_Zaz):0:-1: ++%*2F:+NAN(09A_Zaz):0:-1: ++%2F:+0:1:2:0x0: ++%*2F:+0:0:2: ++%2F:+0.0:1:2:0x0: ++%*2F:+0.0:0:2: ++%2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:+23441673782552468302945364948518174720:1:2:0x1p1: ++%*2F:+23441673782552468302945364948518174720:0:2: ++%2F:+023441673782552468302945364948518174720.0:1:2:0x0: ++%*2F:+023441673782552468302945364948518174720.0:0:2: ++%2F:+340282346638528859811704183484516925440:1:2:0x1.8p1: ++%*2F:+340282346638528859811704183484516925440:0:2: ++%2F:+0340282346638528859811704183484516925440.0:1:2:0x0: ++%*2F:+0340282346638528859811704183484516925440.0:0:2: ++%2F:+INFINITY:0:-1: ++%*2F:+INFINITY:0:-1: ++%3F::0:-1: ++%*3F::0:-1: ++%3F:-INFINITY:0:-1: ++%*3F:-INFINITY:0:-1: ++%3F:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1: ++%*3F:-0340282346638528859811704183484516925440.0:0:3: ++%3F:-340282346638528859811704183484516925440:1:3:-0x1.1p5: ++%*3F:-340282346638528859811704183484516925440:0:3: ++%3F:-023441673782552468302945364948518174720.0:1:3:-0x1p1: ++%*3F:-023441673782552468302945364948518174720.0:0:3: ++%3F:-23441673782552468302945364948518174720:1:3:-0x1.7p4: ++%*3F:-23441673782552468302945364948518174720:0:3: ++%3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0: ++%*3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:-0.0:1:3:-0x0: ++%*3F:-0.0:0:3: ++%3F:-0:1:2:-0x0: ++%*3F:-0:0:2: ++%3F:-NAN(09A_Zaz):0:-1: ++%*3F:-NAN(09A_Zaz):0:-1: ++%3F:-NAN():0:-1: ++%*3F:-NAN():0:-1: ++%3F:NAN():1:3:nan: ++%*3F:NAN():0:3: ++%3F:NAN(09A_Zaz):1:3:nan: ++%*3F:NAN(09A_Zaz):0:3: ++%3F:0:1:1:0x0: ++%*3F:0:0:1: ++%3F:0.0:1:3:0x0: ++%*3F:0.0:0:3: ++%3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:23441673782552468302945364948518174720:1:3:0x1.d4p7: ++%*3F:23441673782552468302945364948518174720:0:3: ++%3F:023441673782552468302945364948518174720.0:1:3:0x1.7p4: ++%*3F:023441673782552468302945364948518174720.0:0:3: ++%3F:340282346638528859811704183484516925440:1:3:0x1.54p8: ++%*3F:340282346638528859811704183484516925440:0:3: ++%3F:0340282346638528859811704183484516925440.0:1:3:0x1.1p5: ++%*3F:0340282346638528859811704183484516925440.0:0:3: ++%3F:INFINITY:1:3:inf: ++%*3F:INFINITY:0:3: ++%3F:+NAN():0:-1: ++%*3F:+NAN():0:-1: ++%3F:+NAN(09A_Zaz):0:-1: ++%*3F:+NAN(09A_Zaz):0:-1: ++%3F:+0:1:2:0x0: ++%*3F:+0:0:2: ++%3F:+0.0:1:3:0x0: ++%*3F:+0.0:0:3: ++%3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:+23441673782552468302945364948518174720:1:3:0x1.7p4: ++%*3F:+23441673782552468302945364948518174720:0:3: ++%3F:+023441673782552468302945364948518174720.0:1:3:0x1p1: ++%*3F:+023441673782552468302945364948518174720.0:0:3: ++%3F:+340282346638528859811704183484516925440:1:3:0x1.1p5: ++%*3F:+340282346638528859811704183484516925440:0:3: ++%3F:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1: ++%*3F:+0340282346638528859811704183484516925440.0:0:3: ++%3F:+INFINITY:0:-1: ++%*3F:+INFINITY:0:-1: ++%4F::0:-1: ++%*4F::0:-1: ++%4F:-INFINITY:1:4:-inf: ++%*4F:-INFINITY:0:4: ++%4F:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5: ++%*4F:-0340282346638528859811704183484516925440.0:0:4: ++%4F:-340282346638528859811704183484516925440:1:4:-0x1.54p8: ++%*4F:-340282346638528859811704183484516925440:0:4: ++%4F:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4: ++%*4F:-023441673782552468302945364948518174720.0:0:4: ++%4F:-23441673782552468302945364948518174720:1:4:-0x1.d4p7: ++%*4F:-23441673782552468302945364948518174720:0:4: ++%4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:-0.0:1:4:-0x0: ++%*4F:-0.0:0:4: ++%4F:-0:1:2:-0x0: ++%*4F:-0:0:2: ++%4F:-NAN(09A_Zaz):1:4:-nan: ++%*4F:-NAN(09A_Zaz):0:4: ++%4F:-NAN():1:4:-nan: ++%*4F:-NAN():0:4: ++%4F:NAN():0:-1: ++%*4F:NAN():0:-1: ++%4F:NAN(09A_Zaz):0:-1: ++%*4F:NAN(09A_Zaz):0:-1: ++%4F:0:1:1:0x0: ++%*4F:0:0:1: ++%4F:0.0:1:3:0x0: ++%*4F:0.0:0:3: ++%4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:23441673782552468302945364948518174720:1:4:0x1.25p11: ++%*4F:23441673782552468302945364948518174720:0:4: ++%4F:023441673782552468302945364948518174720.0:1:4:0x1.d4p7: ++%*4F:023441673782552468302945364948518174720.0:0:4: ++%4F:340282346638528859811704183484516925440:1:4:0x1.a94p11: ++%*4F:340282346638528859811704183484516925440:0:4: ++%4F:0340282346638528859811704183484516925440.0:1:4:0x1.54p8: ++%*4F:0340282346638528859811704183484516925440.0:0:4: ++%4F:INFINITY:0:-1: ++%*4F:INFINITY:0:-1: ++%4F:+NAN():1:4:nan: ++%*4F:+NAN():0:4: ++%4F:+NAN(09A_Zaz):1:4:nan: ++%*4F:+NAN(09A_Zaz):0:4: ++%4F:+0:1:2:0x0: ++%*4F:+0:0:2: ++%4F:+0.0:1:4:0x0: ++%*4F:+0.0:0:4: ++%4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:+23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*4F:+23441673782552468302945364948518174720:0:4: ++%4F:+023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*4F:+023441673782552468302945364948518174720.0:0:4: ++%4F:+340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*4F:+340282346638528859811704183484516925440:0:4: ++%4F:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*4F:+0340282346638528859811704183484516925440.0:0:4: ++%4F:+INFINITY:1:4:inf: ++%*4F:+INFINITY:0:4: ++%41F::0:-1: ++%*41F::0:-1: ++%41F:-INFINITY:1:9:-inf: ++%*41F:-INFINITY:0:9: ++%41F:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127: ++%*41F:-0340282346638528859811704183484516925440.0:0:41: ++%41F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*41F:-340282346638528859811704183484516925440:0:40: ++%41F:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124: ++%*41F:-023441673782552468302945364948518174720.0:0:41: ++%41F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*41F:-23441673782552468302945364948518174720:0:39: ++%41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127: ++%*41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:-0.0:1:4:-0x0: ++%*41F:-0.0:0:4: ++%41F:-0:1:2:-0x0: ++%*41F:-0:0:2: ++%41F:-NAN(09A_Zaz):1:13:-nan: ++%*41F:-NAN(09A_Zaz):0:13: ++%41F:-NAN():1:6:-nan: ++%*41F:-NAN():0:6: ++%41F:NAN():1:5:nan: ++%*41F:NAN():0:5: ++%41F:NAN(09A_Zaz):1:12:nan: ++%*41F:NAN(09A_Zaz):0:12: ++%41F:0:1:1:0x0: ++%*41F:0:0:1: ++%41F:0.0:1:3:0x0: ++%*41F:0.0:0:3: ++%41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127: ++%*41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*41F:23441673782552468302945364948518174720:0:38: ++%41F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41F:023441673782552468302945364948518174720.0:0:41: ++%41F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*41F:340282346638528859811704183484516925440:0:39: ++%41F:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41F:0340282346638528859811704183484516925440.0:0:41: ++%41F:INFINITY:1:8:inf: ++%*41F:INFINITY:0:8: ++%41F:+NAN():1:6:nan: ++%*41F:+NAN():0:6: ++%41F:+NAN(09A_Zaz):1:13:nan: ++%*41F:+NAN(09A_Zaz):0:13: ++%41F:+0:1:2:0x0: ++%*41F:+0:0:2: ++%41F:+0.0:1:4:0x0: ++%*41F:+0.0:0:4: ++%41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127: ++%*41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*41F:+23441673782552468302945364948518174720:0:39: ++%41F:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41F:+023441673782552468302945364948518174720.0:0:41: ++%41F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*41F:+340282346638528859811704183484516925440:0:40: ++%41F:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41F:+0340282346638528859811704183484516925440.0:0:41: ++%41F:+INFINITY:1:9:inf: ++%*41F:+INFINITY:0:9: ++%80F::0:-1: ++%*80F::0:-1: ++%80F:-INFINITY:1:9:-inf: ++%*80F:-INFINITY:0:9: ++%80F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*80F:-0340282346638528859811704183484516925440.0:0:43: ++%80F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*80F:-340282346638528859811704183484516925440:0:40: ++%80F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*80F:-023441673782552468302945364948518174720.0:0:42: ++%80F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*80F:-23441673782552468302945364948518174720:0:39: ++%80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F:-0.0:1:4:-0x0: ++%*80F:-0.0:0:4: ++%80F:-0:1:2:-0x0: ++%*80F:-0:0:2: ++%80F:-NAN(09A_Zaz):1:13:-nan: ++%*80F:-NAN(09A_Zaz):0:13: ++%80F:-NAN():1:6:-nan: ++%*80F:-NAN():0:6: ++%80F:NAN():1:5:nan: ++%*80F:NAN():0:5: ++%80F:NAN(09A_Zaz):1:12:nan: ++%*80F:NAN(09A_Zaz):0:12: ++%80F:0:1:1:0x0: ++%*80F:0:0:1: ++%80F:0.0:1:3:0x0: ++%*80F:0.0:0:3: ++%80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%80F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*80F:23441673782552468302945364948518174720:0:38: ++%80F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*80F:023441673782552468302945364948518174720.0:0:41: ++%80F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*80F:340282346638528859811704183484516925440:0:39: ++%80F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*80F:0340282346638528859811704183484516925440.0:0:42: ++%80F:INFINITY:1:8:inf: ++%*80F:INFINITY:0:8: ++%80F:+NAN():1:6:nan: ++%*80F:+NAN():0:6: ++%80F:+NAN(09A_Zaz):1:13:nan: ++%*80F:+NAN(09A_Zaz):0:13: ++%80F:+0:1:2:0x0: ++%*80F:+0:0:2: ++%80F:+0.0:1:4:0x0: ++%*80F:+0.0:0:4: ++%80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80F:+23441673782552468302945364948518174720:0:39: ++%80F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80F:+023441673782552468302945364948518174720.0:0:42: ++%80F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80F:+340282346638528859811704183484516925440:0:40: ++%80F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80F:+0340282346638528859811704183484516925440.0:0:43: ++%80F:+INFINITY:1:9:inf: ++%*80F:+INFINITY:0:9: ++%3F: :0:-1: ++%*3F: :0:-1: ++%3F: -INFINITY:0:-1: ++%*3F: -INFINITY:0:-1: ++%3F: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1: ++%*3F: -0340282346638528859811704183484516925440.0:0:4: ++%3F: -340282346638528859811704183484516925440:1:4:-0x1.1p5: ++%*3F: -340282346638528859811704183484516925440:0:4: ++%3F: -023441673782552468302945364948518174720.0:1:4:-0x1p1: ++%*3F: -023441673782552468302945364948518174720.0:0:4: ++%3F: -23441673782552468302945364948518174720:1:4:-0x1.7p4: ++%*3F: -23441673782552468302945364948518174720:0:4: ++%3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: -0.0:1:4:-0x0: ++%*3F: -0.0:0:4: ++%3F: -0:1:3:-0x0: ++%*3F: -0:0:3: ++%3F: -NAN(09A_Zaz):0:-1: ++%*3F: -NAN(09A_Zaz):0:-1: ++%3F: -NAN():0:-1: ++%*3F: -NAN():0:-1: ++%3F: NAN():1:4:nan: ++%*3F: NAN():0:4: ++%3F: NAN(09A_Zaz):1:4:nan: ++%*3F: NAN(09A_Zaz):0:4: ++%3F: 0:1:2:0x0: ++%*3F: 0:0:2: ++%3F: 0.0:1:4:0x0: ++%*3F: 0.0:0:4: ++%3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: 23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*3F: 23441673782552468302945364948518174720:0:4: ++%3F: 023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*3F: 023441673782552468302945364948518174720.0:0:4: ++%3F: 340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*3F: 340282346638528859811704183484516925440:0:4: ++%3F: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*3F: 0340282346638528859811704183484516925440.0:0:4: ++%3F: INFINITY:1:4:inf: ++%*3F: INFINITY:0:4: ++%3F: +NAN():0:-1: ++%*3F: +NAN():0:-1: ++%3F: +NAN(09A_Zaz):0:-1: ++%*3F: +NAN(09A_Zaz):0:-1: ++%3F: +0:1:3:0x0: ++%*3F: +0:0:3: ++%3F: +0.0:1:4:0x0: ++%*3F: +0.0:0:4: ++%3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: +23441673782552468302945364948518174720:1:4:0x1.7p4: ++%*3F: +23441673782552468302945364948518174720:0:4: ++%3F: +023441673782552468302945364948518174720.0:1:4:0x1p1: ++%*3F: +023441673782552468302945364948518174720.0:0:4: ++%3F: +340282346638528859811704183484516925440:1:4:0x1.1p5: ++%*3F: +340282346638528859811704183484516925440:0:4: ++%3F: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1: ++%*3F: +0340282346638528859811704183484516925440.0:0:4: ++%3F: +INFINITY:0:-1: ++%*3F: +INFINITY:0:-1: ++%80F: :0:-1: ++%*80F: :0:-1: ++%80F: -INFINITY:1:10:-inf: ++%*80F: -INFINITY:0:10: ++%80F: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127: ++%*80F: -0340282346638528859811704183484516925440.0:0:44: ++%80F: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127: ++%*80F: -340282346638528859811704183484516925440:0:41: ++%80F: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124: ++%*80F: -023441673782552468302945364948518174720.0:0:43: ++%80F: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124: ++%*80F: -23441673782552468302945364948518174720:0:40: ++%80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126: ++%*80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80F: -0.0:1:5:-0x0: ++%*80F: -0.0:0:5: ++%80F: -0:1:3:-0x0: ++%*80F: -0:0:3: ++%80F: -NAN(09A_Zaz):1:14:-nan: ++%*80F: -NAN(09A_Zaz):0:14: ++%80F: -NAN():1:7:-nan: ++%*80F: -NAN():0:7: ++%80F: NAN():1:6:nan: ++%*80F: NAN():0:6: ++%80F: NAN(09A_Zaz):1:13:nan: ++%*80F: NAN(09A_Zaz):0:13: ++%80F: 0:1:2:0x0: ++%*80F: 0:0:2: ++%80F: 0.0:1:4:0x0: ++%*80F: 0.0:0:4: ++%80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80F: 23441673782552468302945364948518174720:0:39: ++%80F: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80F: 023441673782552468302945364948518174720.0:0:42: ++%80F: 340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80F: 340282346638528859811704183484516925440:0:40: ++%80F: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80F: 0340282346638528859811704183484516925440.0:0:43: ++%80F: INFINITY:1:9:inf: ++%*80F: INFINITY:0:9: ++%80F: +NAN():1:7:nan: ++%*80F: +NAN():0:7: ++%80F: +NAN(09A_Zaz):1:14:nan: ++%*80F: +NAN(09A_Zaz):0:14: ++%80F: +0:1:3:0x0: ++%*80F: +0:0:3: ++%80F: +0.0:1:5:0x0: ++%*80F: +0.0:0:5: ++%80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126: ++%*80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80F: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124: ++%*80F: +23441673782552468302945364948518174720:0:40: ++%80F: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124: ++%*80F: +023441673782552468302945364948518174720.0:0:43: ++%80F: +340282346638528859811704183484516925440:1:41:0x1.fffffep127: ++%*80F: +340282346638528859811704183484516925440:0:41: ++%80F: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127: ++%*80F: +0340282346638528859811704183484516925440.0:0:44: ++%80F: +INFINITY:1:10:inf: ++%*80F: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +new file mode 100644 +index 0000000000000000..81462cd764def99b +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +@@ -0,0 +1,682 @@ ++%g::0:-1: ++%*g::0:-1: ++%g:-infinity:1:9:-inf: ++%*g:-infinity:0:9: ++%g:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*g:-0xf.fffffp+124:0:15: ++%g:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*g:-0x7.fffff8p125:0:15: ++%g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*g:-0x2.345678p+123:0:16: ++%g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*g:-0x2.345678p0123:0:16: ++%g:-0x8p-129:1:9:-0x1p-126: ++%*g:-0x8p-129:0:9: ++%g:-0x0p+0:1:7:-0x0: ++%*g:-0x0p+0:0:7: ++%g:-0x0p0:1:6:-0x0: ++%*g:-0x0p0:0:6: ++%g:-nan(09A_Zaz):1:13:-nan: ++%*g:-nan(09A_Zaz):0:13: ++%g:-nan():1:6:-nan: ++%*g:-nan():0:6: ++%g:nan():1:5:nan: ++%*g:nan():0:5: ++%g:nan(09A_Zaz):1:12:nan: ++%*g:nan(09A_Zaz):0:12: ++%g:0x0p0:1:5:0x0: ++%*g:0x0p0:0:5: ++%g:0x0p+0:1:6:0x0: ++%*g:0x0p+0:0:6: ++%g:0x8p-129:1:8:0x1p-126: ++%*g:0x8p-129:0:8: ++%g:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*g:0x2.345678p0123:0:15: ++%g:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*g:0x2.345678p+123:0:15: ++%g:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*g:0x7.fffff8p125:0:14: ++%g:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*g:0xf.fffffp+124:0:14: ++%g:infinity:1:8:inf: ++%*g:infinity:0:8: ++%g:+nan():1:6:nan: ++%*g:+nan():0:6: ++%g:+nan(09A_Zaz):1:13:nan: ++%*g:+nan(09A_Zaz):0:13: ++%g:+0x0p0:1:6:0x0: ++%*g:+0x0p0:0:6: ++%g:+0x0p+0:1:7:0x0: ++%*g:+0x0p+0:0:7: ++%g:+0x8p-129:1:9:0x1p-126: ++%*g:+0x8p-129:0:9: ++%g:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*g:+0x2.345678p0123:0:16: ++%g:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*g:+0x2.345678p+123:0:16: ++%g:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*g:+0x7.fffff8p125:0:15: ++%g:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*g:+0xf.fffffp+124:0:15: ++%g:+infinity:1:9:inf: ++%*g:+infinity:0:9: ++%1g::0:-1: ++%*1g::0:-1: ++%1g:-infinity:0:-1: ++%*1g:-infinity:0:-1: ++%1g:-0xf.fffffp+124:0:-1: ++%*1g:-0xf.fffffp+124:0:-1: ++%1g:-0x7.fffff8p125:0:-1: ++%*1g:-0x7.fffff8p125:0:-1: ++%1g:-0x2.345678p+123:0:-1: ++%*1g:-0x2.345678p+123:0:-1: ++%1g:-0x2.345678p0123:0:-1: ++%*1g:-0x2.345678p0123:0:-1: ++%1g:-0x8p-129:0:-1: ++%*1g:-0x8p-129:0:-1: ++%1g:-0x0p+0:0:-1: ++%*1g:-0x0p+0:0:-1: ++%1g:-0x0p0:0:-1: ++%*1g:-0x0p0:0:-1: ++%1g:-nan(09A_Zaz):0:-1: ++%*1g:-nan(09A_Zaz):0:-1: ++%1g:-nan():0:-1: ++%*1g:-nan():0:-1: ++%1g:nan():0:-1: ++%*1g:nan():0:-1: ++%1g:nan(09A_Zaz):0:-1: ++%*1g:nan(09A_Zaz):0:-1: ++%1g:0x0p0:1:1:0x0: ++%*1g:0x0p0:0:1: ++%1g:0x0p+0:1:1:0x0: ++%*1g:0x0p+0:0:1: ++%1g:0x8p-129:1:1:0x0: ++%*1g:0x8p-129:0:1: ++%1g:0x2.345678p0123:1:1:0x0: ++%*1g:0x2.345678p0123:0:1: ++%1g:0x2.345678p+123:1:1:0x0: ++%*1g:0x2.345678p+123:0:1: ++%1g:0x7.fffff8p125:1:1:0x0: ++%*1g:0x7.fffff8p125:0:1: ++%1g:0xf.fffffp+124:1:1:0x0: ++%*1g:0xf.fffffp+124:0:1: ++%1g:infinity:0:-1: ++%*1g:infinity:0:-1: ++%1g:+nan():0:-1: ++%*1g:+nan():0:-1: ++%1g:+nan(09A_Zaz):0:-1: ++%*1g:+nan(09A_Zaz):0:-1: ++%1g:+0x0p0:0:-1: ++%*1g:+0x0p0:0:-1: ++%1g:+0x0p+0:0:-1: ++%*1g:+0x0p+0:0:-1: ++%1g:+0x8p-129:0:-1: ++%*1g:+0x8p-129:0:-1: ++%1g:+0x2.345678p0123:0:-1: ++%*1g:+0x2.345678p0123:0:-1: ++%1g:+0x2.345678p+123:0:-1: ++%*1g:+0x2.345678p+123:0:-1: ++%1g:+0x7.fffff8p125:0:-1: ++%*1g:+0x7.fffff8p125:0:-1: ++%1g:+0xf.fffffp+124:0:-1: ++%*1g:+0xf.fffffp+124:0:-1: ++%1g:+infinity:0:-1: ++%*1g:+infinity:0:-1: ++%2g::0:-1: ++%*2g::0:-1: ++%2g:-infinity:0:-1: ++%*2g:-infinity:0:-1: ++%2g:-0xf.fffffp+124:1:2:-0x0: ++%*2g:-0xf.fffffp+124:0:2: ++%2g:-0x7.fffff8p125:1:2:-0x0: ++%*2g:-0x7.fffff8p125:0:2: ++%2g:-0x2.345678p+123:1:2:-0x0: ++%*2g:-0x2.345678p+123:0:2: ++%2g:-0x2.345678p0123:1:2:-0x0: ++%*2g:-0x2.345678p0123:0:2: ++%2g:-0x8p-129:1:2:-0x0: ++%*2g:-0x8p-129:0:2: ++%2g:-0x0p+0:1:2:-0x0: ++%*2g:-0x0p+0:0:2: ++%2g:-0x0p0:1:2:-0x0: ++%*2g:-0x0p0:0:2: ++%2g:-nan(09A_Zaz):0:-1: ++%*2g:-nan(09A_Zaz):0:-1: ++%2g:-nan():0:-1: ++%*2g:-nan():0:-1: ++%2g:nan():0:-1: ++%*2g:nan():0:-1: ++%2g:nan(09A_Zaz):0:-1: ++%*2g:nan(09A_Zaz):0:-1: ++# BZ12701 %2g:0x0p0:0:-1: ++# BZ12701 %*2g:0x0p0:0:-1: ++# BZ12701 %2g:0x0p+0:0:-1: ++# BZ12701 %*2g:0x0p+0:0:-1: ++# BZ12701 %2g:0x8p-129:0:-1: ++# BZ12701 %*2g:0x8p-129:0:-1: ++# BZ12701 %2g:0x2.345678p0123:0:-1: ++# BZ12701 %*2g:0x2.345678p0123:0:-1: ++# BZ12701 %2g:0x2.345678p+123:0:-1: ++# BZ12701 %*2g:0x2.345678p+123:0:-1: ++# BZ12701 %2g:0x7.fffff8p125:0:-1: ++# BZ12701 %*2g:0x7.fffff8p125:0:-1: ++# BZ12701 %2g:0xf.fffffp+124:0:-1: ++# BZ12701 %*2g:0xf.fffffp+124:0:-1: ++%2g:infinity:0:-1: ++%*2g:infinity:0:-1: ++%2g:+nan():0:-1: ++%*2g:+nan():0:-1: ++%2g:+nan(09A_Zaz):0:-1: ++%*2g:+nan(09A_Zaz):0:-1: ++%2g:+0x0p0:1:2:0x0: ++%*2g:+0x0p0:0:2: ++%2g:+0x0p+0:1:2:0x0: ++%*2g:+0x0p+0:0:2: ++%2g:+0x8p-129:1:2:0x0: ++%*2g:+0x8p-129:0:2: ++%2g:+0x2.345678p0123:1:2:0x0: ++%*2g:+0x2.345678p0123:0:2: ++%2g:+0x2.345678p+123:1:2:0x0: ++%*2g:+0x2.345678p+123:0:2: ++%2g:+0x7.fffff8p125:1:2:0x0: ++%*2g:+0x7.fffff8p125:0:2: ++%2g:+0xf.fffffp+124:1:2:0x0: ++%*2g:+0xf.fffffp+124:0:2: ++%2g:+infinity:0:-1: ++%*2g:+infinity:0:-1: ++%3g::0:-1: ++%*3g::0:-1: ++%3g:-infinity:0:-1: ++%*3g:-infinity:0:-1: ++# BZ12701 %3g:-0xf.fffffp+124:0:-1: ++# BZ12701 %*3g:-0xf.fffffp+124:0:-1: ++# BZ12701 %3g:-0x7.fffff8p125:0:-1: ++# BZ12701 %*3g:-0x7.fffff8p125:0:-1: ++# BZ12701 %3g:-0x2.345678p+123:0:-1: ++# BZ12701 %*3g:-0x2.345678p+123:0:-1: ++# BZ12701 %3g:-0x2.345678p0123:0:-1: ++# BZ12701 %*3g:-0x2.345678p0123:0:-1: ++# BZ12701 %3g:-0x8p-129:0:-1: ++# BZ12701 %*3g:-0x8p-129:0:-1: ++# BZ12701 %3g:-0x0p+0:0:-1: ++# BZ12701 %*3g:-0x0p+0:0:-1: ++# BZ12701 %3g:-0x0p0:0:-1: ++# BZ12701 %*3g:-0x0p0:0:-1: ++%3g:-nan(09A_Zaz):0:-1: ++%*3g:-nan(09A_Zaz):0:-1: ++%3g:-nan():0:-1: ++%*3g:-nan():0:-1: ++%3g:nan():1:3:nan: ++%*3g:nan():0:3: ++%3g:nan(09A_Zaz):1:3:nan: ++%*3g:nan(09A_Zaz):0:3: ++%3g:0x0p0:1:3:0x0: ++%*3g:0x0p0:0:3: ++%3g:0x0p+0:1:3:0x0: ++%*3g:0x0p+0:0:3: ++%3g:0x8p-129:1:3:0x1p3: ++%*3g:0x8p-129:0:3: ++%3g:0x2.345678p0123:1:3:0x1p1: ++%*3g:0x2.345678p0123:0:3: ++%3g:0x2.345678p+123:1:3:0x1p1: ++%*3g:0x2.345678p+123:0:3: ++%3g:0x7.fffff8p125:1:3:0x1.cp2: ++%*3g:0x7.fffff8p125:0:3: ++%3g:0xf.fffffp+124:1:3:0x1.ep3: ++%*3g:0xf.fffffp+124:0:3: ++%3g:infinity:1:3:inf: ++%*3g:infinity:0:3: ++%3g:+nan():0:-1: ++%*3g:+nan():0:-1: ++%3g:+nan(09A_Zaz):0:-1: ++%*3g:+nan(09A_Zaz):0:-1: ++# BZ12701 %3g:+0x0p0:0:-1: ++# BZ12701 %*3g:+0x0p0:0:-1: ++# BZ12701 %3g:+0x0p+0:0:-1: ++# BZ12701 %*3g:+0x0p+0:0:-1: ++# BZ12701 %3g:+0x8p-129:0:-1: ++# BZ12701 %*3g:+0x8p-129:0:-1: ++# BZ12701 %3g:+0x2.345678p0123:0:-1: ++# BZ12701 %*3g:+0x2.345678p0123:0:-1: ++# BZ12701 %3g:+0x2.345678p+123:0:-1: ++# BZ12701 %*3g:+0x2.345678p+123:0:-1: ++# BZ12701 %3g:+0x7.fffff8p125:0:-1: ++# BZ12701 %*3g:+0x7.fffff8p125:0:-1: ++# BZ12701 %3g:+0xf.fffffp+124:0:-1: ++# BZ12701 %*3g:+0xf.fffffp+124:0:-1: ++%3g:+infinity:0:-1: ++%*3g:+infinity:0:-1: ++%4g::0:-1: ++%*4g::0:-1: ++%4g:-infinity:1:4:-inf: ++%*4g:-infinity:0:4: ++%4g:-0xf.fffffp+124:1:4:-0x1.ep3: ++%*4g:-0xf.fffffp+124:0:4: ++%4g:-0x7.fffff8p125:1:4:-0x1.cp2: ++%*4g:-0x7.fffff8p125:0:4: ++%4g:-0x2.345678p+123:1:4:-0x1p1: ++%*4g:-0x2.345678p+123:0:4: ++%4g:-0x2.345678p0123:1:4:-0x1p1: ++%*4g:-0x2.345678p0123:0:4: ++%4g:-0x8p-129:1:4:-0x1p3: ++%*4g:-0x8p-129:0:4: ++%4g:-0x0p+0:1:4:-0x0: ++%*4g:-0x0p+0:0:4: ++%4g:-0x0p0:1:4:-0x0: ++%*4g:-0x0p0:0:4: ++%4g:-nan(09A_Zaz):1:4:-nan: ++%*4g:-nan(09A_Zaz):0:4: ++%4g:-nan():1:4:-nan: ++%*4g:-nan():0:4: ++%4g:nan():0:-1: ++%*4g:nan():0:-1: ++%4g:nan(09A_Zaz):0:-1: ++%*4g:nan(09A_Zaz):0:-1: ++# BZ12701 %4g:0x0p0:0:-1: ++# BZ12701 %*4g:0x0p0:0:-1: ++# BZ12701 %4g:0x0p+0:0:-1: ++# BZ12701 %*4g:0x0p+0:0:-1: ++# BZ12701 %4g:0x8p-129:0:-1: ++# BZ12701 %*4g:0x8p-129:0:-1: ++%4g:0x2.345678p0123:1:4:0x1p1: ++%*4g:0x2.345678p0123:0:4: ++%4g:0x2.345678p+123:1:4:0x1p1: ++%*4g:0x2.345678p+123:0:4: ++%4g:0x7.fffff8p125:1:4:0x1.cp2: ++%*4g:0x7.fffff8p125:0:4: ++%4g:0xf.fffffp+124:1:4:0x1.ep3: ++%*4g:0xf.fffffp+124:0:4: ++%4g:infinity:0:-1: ++%*4g:infinity:0:-1: ++%4g:+nan():1:4:nan: ++%*4g:+nan():0:4: ++%4g:+nan(09A_Zaz):1:4:nan: ++%*4g:+nan(09A_Zaz):0:4: ++%4g:+0x0p0:1:4:0x0: ++%*4g:+0x0p0:0:4: ++%4g:+0x0p+0:1:4:0x0: ++%*4g:+0x0p+0:0:4: ++%4g:+0x8p-129:1:4:0x1p3: ++%*4g:+0x8p-129:0:4: ++%4g:+0x2.345678p0123:1:4:0x1p1: ++%*4g:+0x2.345678p0123:0:4: ++%4g:+0x2.345678p+123:1:4:0x1p1: ++%*4g:+0x2.345678p+123:0:4: ++%4g:+0x7.fffff8p125:1:4:0x1.cp2: ++%*4g:+0x7.fffff8p125:0:4: ++%4g:+0xf.fffffp+124:1:4:0x1.ep3: ++%*4g:+0xf.fffffp+124:0:4: ++%4g:+infinity:1:4:inf: ++%*4g:+infinity:0:4: ++%5g::0:-1: ++%*5g::0:-1: ++%5g:-infinity:0:-1: ++%*5g:-infinity:0:-1: ++%5g:-0xf.fffffp+124:1:5:-0x1.ep3: ++%*5g:-0xf.fffffp+124:0:5: ++%5g:-0x7.fffff8p125:1:5:-0x1.cp2: ++%*5g:-0x7.fffff8p125:0:5: ++%5g:-0x2.345678p+123:1:5:-0x1p1: ++%*5g:-0x2.345678p+123:0:5: ++%5g:-0x2.345678p0123:1:5:-0x1p1: ++%*5g:-0x2.345678p0123:0:5: ++# BZ12701 %5g:-0x8p-129:0:-1: ++# BZ12701 %*5g:-0x8p-129:0:-1: ++# BZ12701 %5g:-0x0p+0:0:-1: ++# BZ12701 %*5g:-0x0p+0:0:-1: ++# BZ12701 %5g:-0x0p0:0:-1: ++# BZ12701 %*5g:-0x0p0:0:-1: ++%5g:-nan(09A_Zaz):0:-1: ++%*5g:-nan(09A_Zaz):0:-1: ++%5g:-nan():0:-1: ++%*5g:-nan():0:-1: ++%5g:nan():1:5:nan: ++%*5g:nan():0:5: ++%5g:nan(09A_Zaz):0:-1: ++%*5g:nan(09A_Zaz):0:-1: ++%5g:0x0p0:1:5:0x0: ++%*5g:0x0p0:0:5: ++# BZ12701 %5g:0x0p+0:0:-1: ++# BZ12701 %*5g:0x0p+0:0:-1: ++# BZ12701 %5g:0x8p-129:0:-1: ++# BZ12701 %*5g:0x8p-129:0:-1: ++%5g:0x2.345678p0123:1:5:0x1.18p1: ++%*5g:0x2.345678p0123:0:5: ++%5g:0x2.345678p+123:1:5:0x1.18p1: ++%*5g:0x2.345678p+123:0:5: ++%5g:0x7.fffff8p125:1:5:0x1.fcp2: ++%*5g:0x7.fffff8p125:0:5: ++%5g:0xf.fffffp+124:1:5:0x1.fep3: ++%*5g:0xf.fffffp+124:0:5: ++%5g:infinity:0:-1: ++%*5g:infinity:0:-1: ++%5g:+nan():0:-1: ++%*5g:+nan():0:-1: ++%5g:+nan(09A_Zaz):0:-1: ++%*5g:+nan(09A_Zaz):0:-1: ++# BZ12701 %5g:+0x0p0:0:-1: ++# BZ12701 %*5g:+0x0p0:0:-1: ++# BZ12701 %5g:+0x0p+0:0:-1: ++# BZ12701 %*5g:+0x0p+0:0:-1: ++# BZ12701 %5g:+0x8p-129:0:-1: ++# BZ12701 %*5g:+0x8p-129:0:-1: ++%5g:+0x2.345678p0123:1:5:0x1p1: ++%*5g:+0x2.345678p0123:0:5: ++%5g:+0x2.345678p+123:1:5:0x1p1: ++%*5g:+0x2.345678p+123:0:5: ++%5g:+0x7.fffff8p125:1:5:0x1.cp2: ++%*5g:+0x7.fffff8p125:0:5: ++%5g:+0xf.fffffp+124:1:5:0x1.ep3: ++%*5g:+0xf.fffffp+124:0:5: ++%5g:+infinity:0:-1: ++%*5g:+infinity:0:-1: ++%6g::0:-1: ++%*6g::0:-1: ++%6g:-infinity:0:-1: ++%*6g:-infinity:0:-1: ++%6g:-0xf.fffffp+124:1:6:-0x1.fep3: ++%*6g:-0xf.fffffp+124:0:6: ++%6g:-0x7.fffff8p125:1:6:-0x1.fcp2: ++%*6g:-0x7.fffff8p125:0:6: ++%6g:-0x2.345678p+123:1:6:-0x1.18p1: ++%*6g:-0x2.345678p+123:0:6: ++%6g:-0x2.345678p0123:1:6:-0x1.18p1: ++%*6g:-0x2.345678p0123:0:6: ++# BZ12701 %6g:-0x8p-129:0:-1: ++# BZ12701 %*6g:-0x8p-129:0:-1: ++# BZ12701 %6g:-0x0p+0:0:-1: ++# BZ12701 %*6g:-0x0p+0:0:-1: ++%6g:-0x0p0:1:6:-0x0: ++%*6g:-0x0p0:0:6: ++%6g:-nan(09A_Zaz):0:-1: ++%*6g:-nan(09A_Zaz):0:-1: ++%6g:-nan():1:6:-nan: ++%*6g:-nan():0:6: ++%6g:nan():1:5:nan: ++%*6g:nan():0:5: ++%6g:nan(09A_Zaz):0:-1: ++%*6g:nan(09A_Zaz):0:-1: ++%6g:0x0p0:1:5:0x0: ++%*6g:0x0p0:0:5: ++%6g:0x0p+0:1:6:0x0: ++%*6g:0x0p+0:0:6: ++%6g:0x8p-129:1:6:0x1p2: ++%*6g:0x8p-129:0:6: ++%6g:0x2.345678p0123:1:6:0x1.1ap1: ++%*6g:0x2.345678p0123:0:6: ++%6g:0x2.345678p+123:1:6:0x1.1ap1: ++%*6g:0x2.345678p+123:0:6: ++%6g:0x7.fffff8p125:1:6:0x1.ffcp2: ++%*6g:0x7.fffff8p125:0:6: ++%6g:0xf.fffffp+124:1:6:0x1.ffep3: ++%*6g:0xf.fffffp+124:0:6: ++%6g:infinity:0:-1: ++%*6g:infinity:0:-1: ++%6g:+nan():1:6:nan: ++%*6g:+nan():0:6: ++%6g:+nan(09A_Zaz):0:-1: ++%*6g:+nan(09A_Zaz):0:-1: ++%6g:+0x0p0:1:6:0x0: ++%*6g:+0x0p0:0:6: ++# BZ12701 %6g:+0x0p+0:0:-1: ++# BZ12701 %*6g:+0x0p+0:0:-1: ++# BZ12701 %6g:+0x8p-129:0:-1: ++# BZ12701 %*6g:+0x8p-129:0:-1: ++%6g:+0x2.345678p0123:1:6:0x1.18p1: ++%*6g:+0x2.345678p0123:0:6: ++%6g:+0x2.345678p+123:1:6:0x1.18p1: ++%*6g:+0x2.345678p+123:0:6: ++%6g:+0x7.fffff8p125:1:6:0x1.fcp2: ++%*6g:+0x7.fffff8p125:0:6: ++%6g:+0xf.fffffp+124:1:6:0x1.fep3: ++%*6g:+0xf.fffffp+124:0:6: ++%6g:+infinity:0:-1: ++%*6g:+infinity:0:-1: ++%12g::0:-1: ++%*12g::0:-1: ++%12g:-infinity:1:9:-inf: ++%*12g:-infinity:0:9: ++# BZ12701 %12g:-0xf.fffffp+124:0:-1: ++# BZ12701 %*12g:-0xf.fffffp+124:0:-1: ++# BZ12701 %12g:-0x7.fffff8p125:0:-1: ++# BZ12701 %*12g:-0x7.fffff8p125:0:-1: ++# BZ12701 %12g:-0x2.345678p+123:0:-1: ++# BZ12701 %*12g:-0x2.345678p+123:0:-1: ++# BZ12701 %12g:-0x2.345678p0123:0:-1: ++# BZ12701 %*12g:-0x2.345678p0123:0:-1: ++%12g:-0x8p-129:1:9:-0x1p-126: ++%*12g:-0x8p-129:0:9: ++%12g:-0x0p+0:1:7:-0x0: ++%*12g:-0x0p+0:0:7: ++%12g:-0x0p0:1:6:-0x0: ++%*12g:-0x0p0:0:6: ++%12g:-nan(09A_Zaz):0:-1: ++%*12g:-nan(09A_Zaz):0:-1: ++%12g:-nan():1:6:-nan: ++%*12g:-nan():0:6: ++%12g:nan():1:5:nan: ++%*12g:nan():0:5: ++%12g:nan(09A_Zaz):1:12:nan: ++%*12g:nan(09A_Zaz):0:12: ++%12g:0x0p0:1:5:0x0: ++%*12g:0x0p0:0:5: ++%12g:0x0p+0:1:6:0x0: ++%*12g:0x0p+0:0:6: ++%12g:0x8p-129:1:8:0x1p-126: ++%*12g:0x8p-129:0:8: ++%12g:0x2.345678p0123:1:12:0x1.1a2b3cp1: ++%*12g:0x2.345678p0123:0:12: ++# BZ12701 %12g:0x2.345678p+123:0:-1: ++# BZ12701 %*12g:0x2.345678p+123:0:-1: ++%12g:0x7.fffff8p125:1:12:0x1.fffffep3: ++%*12g:0x7.fffff8p125:0:12: ++%12g:0xf.fffffp+124:1:12:0x1.fffffep4: ++%*12g:0xf.fffffp+124:0:12: ++%12g:infinity:1:8:inf: ++%*12g:infinity:0:8: ++%12g:+nan():1:6:nan: ++%*12g:+nan():0:6: ++%12g:+nan(09A_Zaz):0:-1: ++%*12g:+nan(09A_Zaz):0:-1: ++%12g:+0x0p0:1:6:0x0: ++%*12g:+0x0p0:0:6: ++%12g:+0x0p+0:1:7:0x0: ++%*12g:+0x0p+0:0:7: ++%12g:+0x8p-129:1:9:0x1p-126: ++%*12g:+0x8p-129:0:9: ++# BZ12701 %12g:+0x2.345678p0123:0:-1: ++# BZ12701 %*12g:+0x2.345678p0123:0:-1: ++# BZ12701 %12g:+0x2.345678p+123:0:-1: ++# BZ12701 %*12g:+0x2.345678p+123:0:-1: ++# BZ12701 %12g:+0x7.fffff8p125:0:-1: ++# BZ12701 %*12g:+0x7.fffff8p125:0:-1: ++# BZ12701 %12g:+0xf.fffffp+124:0:-1: ++# BZ12701 %*12g:+0xf.fffffp+124:0:-1: ++%12g:+infinity:1:9:inf: ++%*12g:+infinity:0:9: ++%18g::0:-1: ++%*18g::0:-1: ++%18g:-infinity:1:9:-inf: ++%*18g:-infinity:0:9: ++%18g:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*18g:-0xf.fffffp+124:0:15: ++%18g:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*18g:-0x7.fffff8p125:0:15: ++%18g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*18g:-0x2.345678p+123:0:16: ++%18g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*18g:-0x2.345678p0123:0:16: ++%18g:-0x8p-129:1:9:-0x1p-126: ++%*18g:-0x8p-129:0:9: ++%18g:-0x0p+0:1:7:-0x0: ++%*18g:-0x0p+0:0:7: ++%18g:-0x0p0:1:6:-0x0: ++%*18g:-0x0p0:0:6: ++%18g:-nan(09A_Zaz):1:13:-nan: ++%*18g:-nan(09A_Zaz):0:13: ++%18g:-nan():1:6:-nan: ++%*18g:-nan():0:6: ++%18g:nan():1:5:nan: ++%*18g:nan():0:5: ++%18g:nan(09A_Zaz):1:12:nan: ++%*18g:nan(09A_Zaz):0:12: ++%18g:0x0p0:1:5:0x0: ++%*18g:0x0p0:0:5: ++%18g:0x0p+0:1:6:0x0: ++%*18g:0x0p+0:0:6: ++%18g:0x8p-129:1:8:0x1p-126: ++%*18g:0x8p-129:0:8: ++%18g:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*18g:0x2.345678p0123:0:15: ++%18g:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*18g:0x2.345678p+123:0:15: ++%18g:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*18g:0x7.fffff8p125:0:14: ++%18g:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*18g:0xf.fffffp+124:0:14: ++%18g:infinity:1:8:inf: ++%*18g:infinity:0:8: ++%18g:+nan():1:6:nan: ++%*18g:+nan():0:6: ++%18g:+nan(09A_Zaz):1:13:nan: ++%*18g:+nan(09A_Zaz):0:13: ++%18g:+0x0p0:1:6:0x0: ++%*18g:+0x0p0:0:6: ++%18g:+0x0p+0:1:7:0x0: ++%*18g:+0x0p+0:0:7: ++%18g:+0x8p-129:1:9:0x1p-126: ++%*18g:+0x8p-129:0:9: ++%18g:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18g:+0x2.345678p0123:0:16: ++%18g:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18g:+0x2.345678p+123:0:16: ++%18g:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18g:+0x7.fffff8p125:0:15: ++%18g:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18g:+0xf.fffffp+124:0:15: ++%18g:+infinity:1:9:inf: ++%*18g:+infinity:0:9: ++%5g: :0:-1: ++%*5g: :0:-1: ++%5g: -infinity:0:-1: ++%*5g: -infinity:0:-1: ++%5g: -0xf.fffffp+124:1:6:-0x1.ep3: ++%*5g: -0xf.fffffp+124:0:6: ++%5g: -0x7.fffff8p125:1:6:-0x1.cp2: ++%*5g: -0x7.fffff8p125:0:6: ++%5g: -0x2.345678p+123:1:6:-0x1p1: ++%*5g: -0x2.345678p+123:0:6: ++%5g: -0x2.345678p0123:1:6:-0x1p1: ++%*5g: -0x2.345678p0123:0:6: ++# BZ12701 %5g: -0x8p-129:0:-1: ++# BZ12701 %*5g: -0x8p-129:0:-1: ++# BZ12701 %5g: -0x0p+0:0:-1: ++# BZ12701 %*5g: -0x0p+0:0:-1: ++# BZ12701 %5g: -0x0p0:0:-1: ++# BZ12701 %*5g: -0x0p0:0:-1: ++%5g: -nan(09A_Zaz):0:-1: ++%*5g: -nan(09A_Zaz):0:-1: ++%5g: -nan():0:-1: ++%*5g: -nan():0:-1: ++%5g: nan():1:6:nan: ++%*5g: nan():0:6: ++%5g: nan(09A_Zaz):0:-1: ++%*5g: nan(09A_Zaz):0:-1: ++%5g: 0x0p0:1:6:0x0: ++%*5g: 0x0p0:0:6: ++# BZ12701 %5g: 0x0p+0:0:-1: ++# BZ12701 %*5g: 0x0p+0:0:-1: ++# BZ12701 %5g: 0x8p-129:0:-1: ++# BZ12701 %*5g: 0x8p-129:0:-1: ++%5g: 0x2.345678p0123:1:6:0x1.18p1: ++%*5g: 0x2.345678p0123:0:6: ++%5g: 0x2.345678p+123:1:6:0x1.18p1: ++%*5g: 0x2.345678p+123:0:6: ++%5g: 0x7.fffff8p125:1:6:0x1.fcp2: ++%*5g: 0x7.fffff8p125:0:6: ++%5g: 0xf.fffffp+124:1:6:0x1.fep3: ++%*5g: 0xf.fffffp+124:0:6: ++%5g: infinity:0:-1: ++%*5g: infinity:0:-1: ++%5g: +nan():0:-1: ++%*5g: +nan():0:-1: ++%5g: +nan(09A_Zaz):0:-1: ++%*5g: +nan(09A_Zaz):0:-1: ++# BZ12701 %5g: +0x0p0:0:-1: ++# BZ12701 %*5g: +0x0p0:0:-1: ++# BZ12701 %5g: +0x0p+0:0:-1: ++# BZ12701 %*5g: +0x0p+0:0:-1: ++# BZ12701 %5g: +0x8p-129:0:-1: ++# BZ12701 %*5g: +0x8p-129:0:-1: ++%5g: +0x2.345678p0123:1:6:0x1p1: ++%*5g: +0x2.345678p0123:0:6: ++%5g: +0x2.345678p+123:1:6:0x1p1: ++%*5g: +0x2.345678p+123:0:6: ++%5g: +0x7.fffff8p125:1:6:0x1.cp2: ++%*5g: +0x7.fffff8p125:0:6: ++%5g: +0xf.fffffp+124:1:6:0x1.ep3: ++%*5g: +0xf.fffffp+124:0:6: ++%5g: +infinity:0:-1: ++%*5g: +infinity:0:-1: ++%18g: :0:-1: ++%*18g: :0:-1: ++%18g: -infinity:1:10:-inf: ++%*18g: -infinity:0:10: ++%18g: -0xf.fffffp+124:1:16:-0x1.fffffep127: ++%*18g: -0xf.fffffp+124:0:16: ++%18g: -0x7.fffff8p125:1:16:-0x1.fffffep127: ++%*18g: -0x7.fffff8p125:0:16: ++%18g: -0x2.345678p+123:1:17:-0x1.1a2b3cp124: ++%*18g: -0x2.345678p+123:0:17: ++%18g: -0x2.345678p0123:1:17:-0x1.1a2b3cp124: ++%*18g: -0x2.345678p0123:0:17: ++%18g: -0x8p-129:1:10:-0x1p-126: ++%*18g: -0x8p-129:0:10: ++%18g: -0x0p+0:1:8:-0x0: ++%*18g: -0x0p+0:0:8: ++%18g: -0x0p0:1:7:-0x0: ++%*18g: -0x0p0:0:7: ++%18g: -nan(09A_Zaz):1:14:-nan: ++%*18g: -nan(09A_Zaz):0:14: ++%18g: -nan():1:7:-nan: ++%*18g: -nan():0:7: ++%18g: nan():1:6:nan: ++%*18g: nan():0:6: ++%18g: nan(09A_Zaz):1:13:nan: ++%*18g: nan(09A_Zaz):0:13: ++%18g: 0x0p0:1:6:0x0: ++%*18g: 0x0p0:0:6: ++%18g: 0x0p+0:1:7:0x0: ++%*18g: 0x0p+0:0:7: ++%18g: 0x8p-129:1:9:0x1p-126: ++%*18g: 0x8p-129:0:9: ++%18g: 0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18g: 0x2.345678p0123:0:16: ++%18g: 0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18g: 0x2.345678p+123:0:16: ++%18g: 0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18g: 0x7.fffff8p125:0:15: ++%18g: 0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18g: 0xf.fffffp+124:0:15: ++%18g: infinity:1:9:inf: ++%*18g: infinity:0:9: ++%18g: +nan():1:7:nan: ++%*18g: +nan():0:7: ++%18g: +nan(09A_Zaz):1:14:nan: ++%*18g: +nan(09A_Zaz):0:14: ++%18g: +0x0p0:1:7:0x0: ++%*18g: +0x0p0:0:7: ++%18g: +0x0p+0:1:8:0x0: ++%*18g: +0x0p+0:0:8: ++%18g: +0x8p-129:1:10:0x1p-126: ++%*18g: +0x8p-129:0:10: ++%18g: +0x2.345678p0123:1:17:0x1.1a2b3cp124: ++%*18g: +0x2.345678p0123:0:17: ++%18g: +0x2.345678p+123:1:17:0x1.1a2b3cp124: ++%*18g: +0x2.345678p+123:0:17: ++%18g: +0x7.fffff8p125:1:16:0x1.fffffep127: ++%*18g: +0x7.fffff8p125:0:16: ++%18g: +0xf.fffffp+124:1:16:0x1.fffffep127: ++%*18g: +0xf.fffffp+124:0:16: ++%18g: +infinity:1:10:inf: ++%*18g: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +new file mode 100644 +index 0000000000000000..4236ea9f247c13cc +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +@@ -0,0 +1,682 @@ ++%G::0:-1: ++%*G::0:-1: ++%G:-INFINITY:1:9:-inf: ++%*G:-INFINITY:0:9: ++%G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*G:-0XF.FFFFFP+124:0:15: ++%G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*G:-0X7.FFFFF8P125:0:15: ++%G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*G:-0X2.345678P+123:0:16: ++%G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*G:-0X2.345678P0123:0:16: ++%G:-0X8P-129:1:9:-0x1p-126: ++%*G:-0X8P-129:0:9: ++%G:-0X0P+0:1:7:-0x0: ++%*G:-0X0P+0:0:7: ++%G:-0X0P0:1:6:-0x0: ++%*G:-0X0P0:0:6: ++%G:-NAN(09A_Zaz):1:13:-nan: ++%*G:-NAN(09A_Zaz):0:13: ++%G:-NAN():1:6:-nan: ++%*G:-NAN():0:6: ++%G:NAN():1:5:nan: ++%*G:NAN():0:5: ++%G:NAN(09A_Zaz):1:12:nan: ++%*G:NAN(09A_Zaz):0:12: ++%G:0X0P0:1:5:0x0: ++%*G:0X0P0:0:5: ++%G:0X0P+0:1:6:0x0: ++%*G:0X0P+0:0:6: ++%G:0X8P-129:1:8:0x1p-126: ++%*G:0X8P-129:0:8: ++%G:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*G:0X2.345678P0123:0:15: ++%G:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*G:0X2.345678P+123:0:15: ++%G:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*G:0X7.FFFFF8P125:0:14: ++%G:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*G:0XF.FFFFFP+124:0:14: ++%G:INFINITY:1:8:inf: ++%*G:INFINITY:0:8: ++%G:+NAN():1:6:nan: ++%*G:+NAN():0:6: ++%G:+NAN(09A_Zaz):1:13:nan: ++%*G:+NAN(09A_Zaz):0:13: ++%G:+0X0P0:1:6:0x0: ++%*G:+0X0P0:0:6: ++%G:+0X0P+0:1:7:0x0: ++%*G:+0X0P+0:0:7: ++%G:+0X8P-129:1:9:0x1p-126: ++%*G:+0X8P-129:0:9: ++%G:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*G:+0X2.345678P0123:0:16: ++%G:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*G:+0X2.345678P+123:0:16: ++%G:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*G:+0X7.FFFFF8P125:0:15: ++%G:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*G:+0XF.FFFFFP+124:0:15: ++%G:+INFINITY:1:9:inf: ++%*G:+INFINITY:0:9: ++%1G::0:-1: ++%*1G::0:-1: ++%1G:-INFINITY:0:-1: ++%*1G:-INFINITY:0:-1: ++%1G:-0XF.FFFFFP+124:0:-1: ++%*1G:-0XF.FFFFFP+124:0:-1: ++%1G:-0X7.FFFFF8P125:0:-1: ++%*1G:-0X7.FFFFF8P125:0:-1: ++%1G:-0X2.345678P+123:0:-1: ++%*1G:-0X2.345678P+123:0:-1: ++%1G:-0X2.345678P0123:0:-1: ++%*1G:-0X2.345678P0123:0:-1: ++%1G:-0X8P-129:0:-1: ++%*1G:-0X8P-129:0:-1: ++%1G:-0X0P+0:0:-1: ++%*1G:-0X0P+0:0:-1: ++%1G:-0X0P0:0:-1: ++%*1G:-0X0P0:0:-1: ++%1G:-NAN(09A_Zaz):0:-1: ++%*1G:-NAN(09A_Zaz):0:-1: ++%1G:-NAN():0:-1: ++%*1G:-NAN():0:-1: ++%1G:NAN():0:-1: ++%*1G:NAN():0:-1: ++%1G:NAN(09A_Zaz):0:-1: ++%*1G:NAN(09A_Zaz):0:-1: ++%1G:0X0P0:1:1:0x0: ++%*1G:0X0P0:0:1: ++%1G:0X0P+0:1:1:0x0: ++%*1G:0X0P+0:0:1: ++%1G:0X8P-129:1:1:0x0: ++%*1G:0X8P-129:0:1: ++%1G:0X2.345678P0123:1:1:0x0: ++%*1G:0X2.345678P0123:0:1: ++%1G:0X2.345678P+123:1:1:0x0: ++%*1G:0X2.345678P+123:0:1: ++%1G:0X7.FFFFF8P125:1:1:0x0: ++%*1G:0X7.FFFFF8P125:0:1: ++%1G:0XF.FFFFFP+124:1:1:0x0: ++%*1G:0XF.FFFFFP+124:0:1: ++%1G:INFINITY:0:-1: ++%*1G:INFINITY:0:-1: ++%1G:+NAN():0:-1: ++%*1G:+NAN():0:-1: ++%1G:+NAN(09A_Zaz):0:-1: ++%*1G:+NAN(09A_Zaz):0:-1: ++%1G:+0X0P0:0:-1: ++%*1G:+0X0P0:0:-1: ++%1G:+0X0P+0:0:-1: ++%*1G:+0X0P+0:0:-1: ++%1G:+0X8P-129:0:-1: ++%*1G:+0X8P-129:0:-1: ++%1G:+0X2.345678P0123:0:-1: ++%*1G:+0X2.345678P0123:0:-1: ++%1G:+0X2.345678P+123:0:-1: ++%*1G:+0X2.345678P+123:0:-1: ++%1G:+0X7.FFFFF8P125:0:-1: ++%*1G:+0X7.FFFFF8P125:0:-1: ++%1G:+0XF.FFFFFP+124:0:-1: ++%*1G:+0XF.FFFFFP+124:0:-1: ++%1G:+INFINITY:0:-1: ++%*1G:+INFINITY:0:-1: ++%2G::0:-1: ++%*2G::0:-1: ++%2G:-INFINITY:0:-1: ++%*2G:-INFINITY:0:-1: ++%2G:-0XF.FFFFFP+124:1:2:-0x0: ++%*2G:-0XF.FFFFFP+124:0:2: ++%2G:-0X7.FFFFF8P125:1:2:-0x0: ++%*2G:-0X7.FFFFF8P125:0:2: ++%2G:-0X2.345678P+123:1:2:-0x0: ++%*2G:-0X2.345678P+123:0:2: ++%2G:-0X2.345678P0123:1:2:-0x0: ++%*2G:-0X2.345678P0123:0:2: ++%2G:-0X8P-129:1:2:-0x0: ++%*2G:-0X8P-129:0:2: ++%2G:-0X0P+0:1:2:-0x0: ++%*2G:-0X0P+0:0:2: ++%2G:-0X0P0:1:2:-0x0: ++%*2G:-0X0P0:0:2: ++%2G:-NAN(09A_Zaz):0:-1: ++%*2G:-NAN(09A_Zaz):0:-1: ++%2G:-NAN():0:-1: ++%*2G:-NAN():0:-1: ++%2G:NAN():0:-1: ++%*2G:NAN():0:-1: ++%2G:NAN(09A_Zaz):0:-1: ++%*2G:NAN(09A_Zaz):0:-1: ++# BZ12701 %2G:0X0P0:0:-1: ++# BZ12701 %*2G:0X0P0:0:-1: ++# BZ12701 %2G:0X0P+0:0:-1: ++# BZ12701 %*2G:0X0P+0:0:-1: ++# BZ12701 %2G:0X8P-129:0:-1: ++# BZ12701 %*2G:0X8P-129:0:-1: ++# BZ12701 %2G:0X2.345678P0123:0:-1: ++# BZ12701 %*2G:0X2.345678P0123:0:-1: ++# BZ12701 %2G:0X2.345678P+123:0:-1: ++# BZ12701 %*2G:0X2.345678P+123:0:-1: ++# BZ12701 %2G:0X7.FFFFF8P125:0:-1: ++# BZ12701 %*2G:0X7.FFFFF8P125:0:-1: ++# BZ12701 %2G:0XF.FFFFFP+124:0:-1: ++# BZ12701 %*2G:0XF.FFFFFP+124:0:-1: ++%2G:INFINITY:0:-1: ++%*2G:INFINITY:0:-1: ++%2G:+NAN():0:-1: ++%*2G:+NAN():0:-1: ++%2G:+NAN(09A_Zaz):0:-1: ++%*2G:+NAN(09A_Zaz):0:-1: ++%2G:+0X0P0:1:2:0x0: ++%*2G:+0X0P0:0:2: ++%2G:+0X0P+0:1:2:0x0: ++%*2G:+0X0P+0:0:2: ++%2G:+0X8P-129:1:2:0x0: ++%*2G:+0X8P-129:0:2: ++%2G:+0X2.345678P0123:1:2:0x0: ++%*2G:+0X2.345678P0123:0:2: ++%2G:+0X2.345678P+123:1:2:0x0: ++%*2G:+0X2.345678P+123:0:2: ++%2G:+0X7.FFFFF8P125:1:2:0x0: ++%*2G:+0X7.FFFFF8P125:0:2: ++%2G:+0XF.FFFFFP+124:1:2:0x0: ++%*2G:+0XF.FFFFFP+124:0:2: ++%2G:+INFINITY:0:-1: ++%*2G:+INFINITY:0:-1: ++%3G::0:-1: ++%*3G::0:-1: ++%3G:-INFINITY:0:-1: ++%*3G:-INFINITY:0:-1: ++# BZ12701 %3G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %3G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %3G:-0X2.345678P+123:0:-1: ++# BZ12701 %*3G:-0X2.345678P+123:0:-1: ++# BZ12701 %3G:-0X2.345678P0123:0:-1: ++# BZ12701 %*3G:-0X2.345678P0123:0:-1: ++# BZ12701 %3G:-0X8P-129:0:-1: ++# BZ12701 %*3G:-0X8P-129:0:-1: ++# BZ12701 %3G:-0X0P+0:0:-1: ++# BZ12701 %*3G:-0X0P+0:0:-1: ++# BZ12701 %3G:-0X0P0:0:-1: ++# BZ12701 %*3G:-0X0P0:0:-1: ++%3G:-NAN(09A_Zaz):0:-1: ++%*3G:-NAN(09A_Zaz):0:-1: ++%3G:-NAN():0:-1: ++%*3G:-NAN():0:-1: ++%3G:NAN():1:3:nan: ++%*3G:NAN():0:3: ++%3G:NAN(09A_Zaz):1:3:nan: ++%*3G:NAN(09A_Zaz):0:3: ++%3G:0X0P0:1:3:0x0: ++%*3G:0X0P0:0:3: ++%3G:0X0P+0:1:3:0x0: ++%*3G:0X0P+0:0:3: ++%3G:0X8P-129:1:3:0x1p3: ++%*3G:0X8P-129:0:3: ++%3G:0X2.345678P0123:1:3:0x1p1: ++%*3G:0X2.345678P0123:0:3: ++%3G:0X2.345678P+123:1:3:0x1p1: ++%*3G:0X2.345678P+123:0:3: ++%3G:0X7.FFFFF8P125:1:3:0x1.cp2: ++%*3G:0X7.FFFFF8P125:0:3: ++%3G:0XF.FFFFFP+124:1:3:0x1.ep3: ++%*3G:0XF.FFFFFP+124:0:3: ++%3G:INFINITY:1:3:inf: ++%*3G:INFINITY:0:3: ++%3G:+NAN():0:-1: ++%*3G:+NAN():0:-1: ++%3G:+NAN(09A_Zaz):0:-1: ++%*3G:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3G:+0X0P0:0:-1: ++# BZ12701 %*3G:+0X0P0:0:-1: ++# BZ12701 %3G:+0X0P+0:0:-1: ++# BZ12701 %*3G:+0X0P+0:0:-1: ++# BZ12701 %3G:+0X8P-129:0:-1: ++# BZ12701 %*3G:+0X8P-129:0:-1: ++# BZ12701 %3G:+0X2.345678P0123:0:-1: ++# BZ12701 %*3G:+0X2.345678P0123:0:-1: ++# BZ12701 %3G:+0X2.345678P+123:0:-1: ++# BZ12701 %*3G:+0X2.345678P+123:0:-1: ++# BZ12701 %3G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %3G:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3G:+0XF.FFFFFP+124:0:-1: ++%3G:+INFINITY:0:-1: ++%*3G:+INFINITY:0:-1: ++%4G::0:-1: ++%*4G::0:-1: ++%4G:-INFINITY:1:4:-inf: ++%*4G:-INFINITY:0:4: ++%4G:-0XF.FFFFFP+124:1:4:-0x1.ep3: ++%*4G:-0XF.FFFFFP+124:0:4: ++%4G:-0X7.FFFFF8P125:1:4:-0x1.cp2: ++%*4G:-0X7.FFFFF8P125:0:4: ++%4G:-0X2.345678P+123:1:4:-0x1p1: ++%*4G:-0X2.345678P+123:0:4: ++%4G:-0X2.345678P0123:1:4:-0x1p1: ++%*4G:-0X2.345678P0123:0:4: ++%4G:-0X8P-129:1:4:-0x1p3: ++%*4G:-0X8P-129:0:4: ++%4G:-0X0P+0:1:4:-0x0: ++%*4G:-0X0P+0:0:4: ++%4G:-0X0P0:1:4:-0x0: ++%*4G:-0X0P0:0:4: ++%4G:-NAN(09A_Zaz):1:4:-nan: ++%*4G:-NAN(09A_Zaz):0:4: ++%4G:-NAN():1:4:-nan: ++%*4G:-NAN():0:4: ++%4G:NAN():0:-1: ++%*4G:NAN():0:-1: ++%4G:NAN(09A_Zaz):0:-1: ++%*4G:NAN(09A_Zaz):0:-1: ++# BZ12701 %4G:0X0P0:0:-1: ++# BZ12701 %*4G:0X0P0:0:-1: ++# BZ12701 %4G:0X0P+0:0:-1: ++# BZ12701 %*4G:0X0P+0:0:-1: ++# BZ12701 %4G:0X8P-129:0:-1: ++# BZ12701 %*4G:0X8P-129:0:-1: ++%4G:0X2.345678P0123:1:4:0x1p1: ++%*4G:0X2.345678P0123:0:4: ++%4G:0X2.345678P+123:1:4:0x1p1: ++%*4G:0X2.345678P+123:0:4: ++%4G:0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4G:0X7.FFFFF8P125:0:4: ++%4G:0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4G:0XF.FFFFFP+124:0:4: ++%4G:INFINITY:0:-1: ++%*4G:INFINITY:0:-1: ++%4G:+NAN():1:4:nan: ++%*4G:+NAN():0:4: ++%4G:+NAN(09A_Zaz):1:4:nan: ++%*4G:+NAN(09A_Zaz):0:4: ++%4G:+0X0P0:1:4:0x0: ++%*4G:+0X0P0:0:4: ++%4G:+0X0P+0:1:4:0x0: ++%*4G:+0X0P+0:0:4: ++%4G:+0X8P-129:1:4:0x1p3: ++%*4G:+0X8P-129:0:4: ++%4G:+0X2.345678P0123:1:4:0x1p1: ++%*4G:+0X2.345678P0123:0:4: ++%4G:+0X2.345678P+123:1:4:0x1p1: ++%*4G:+0X2.345678P+123:0:4: ++%4G:+0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4G:+0X7.FFFFF8P125:0:4: ++%4G:+0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4G:+0XF.FFFFFP+124:0:4: ++%4G:+INFINITY:1:4:inf: ++%*4G:+INFINITY:0:4: ++%5G::0:-1: ++%*5G::0:-1: ++%5G:-INFINITY:0:-1: ++%*5G:-INFINITY:0:-1: ++%5G:-0XF.FFFFFP+124:1:5:-0x1.ep3: ++%*5G:-0XF.FFFFFP+124:0:5: ++%5G:-0X7.FFFFF8P125:1:5:-0x1.cp2: ++%*5G:-0X7.FFFFF8P125:0:5: ++%5G:-0X2.345678P+123:1:5:-0x1p1: ++%*5G:-0X2.345678P+123:0:5: ++%5G:-0X2.345678P0123:1:5:-0x1p1: ++%*5G:-0X2.345678P0123:0:5: ++# BZ12701 %5G:-0X8P-129:0:-1: ++# BZ12701 %*5G:-0X8P-129:0:-1: ++# BZ12701 %5G:-0X0P+0:0:-1: ++# BZ12701 %*5G:-0X0P+0:0:-1: ++# BZ12701 %5G:-0X0P0:0:-1: ++# BZ12701 %*5G:-0X0P0:0:-1: ++%5G:-NAN(09A_Zaz):0:-1: ++%*5G:-NAN(09A_Zaz):0:-1: ++%5G:-NAN():0:-1: ++%*5G:-NAN():0:-1: ++%5G:NAN():1:5:nan: ++%*5G:NAN():0:5: ++%5G:NAN(09A_Zaz):0:-1: ++%*5G:NAN(09A_Zaz):0:-1: ++%5G:0X0P0:1:5:0x0: ++%*5G:0X0P0:0:5: ++# BZ12701 %5G:0X0P+0:0:-1: ++# BZ12701 %*5G:0X0P+0:0:-1: ++# BZ12701 %5G:0X8P-129:0:-1: ++# BZ12701 %*5G:0X8P-129:0:-1: ++%5G:0X2.345678P0123:1:5:0x1.18p1: ++%*5G:0X2.345678P0123:0:5: ++%5G:0X2.345678P+123:1:5:0x1.18p1: ++%*5G:0X2.345678P+123:0:5: ++%5G:0X7.FFFFF8P125:1:5:0x1.fcp2: ++%*5G:0X7.FFFFF8P125:0:5: ++%5G:0XF.FFFFFP+124:1:5:0x1.fep3: ++%*5G:0XF.FFFFFP+124:0:5: ++%5G:INFINITY:0:-1: ++%*5G:INFINITY:0:-1: ++%5G:+NAN():0:-1: ++%*5G:+NAN():0:-1: ++%5G:+NAN(09A_Zaz):0:-1: ++%*5G:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5G:+0X0P0:0:-1: ++# BZ12701 %*5G:+0X0P0:0:-1: ++# BZ12701 %5G:+0X0P+0:0:-1: ++# BZ12701 %*5G:+0X0P+0:0:-1: ++# BZ12701 %5G:+0X8P-129:0:-1: ++# BZ12701 %*5G:+0X8P-129:0:-1: ++%5G:+0X2.345678P0123:1:5:0x1p1: ++%*5G:+0X2.345678P0123:0:5: ++%5G:+0X2.345678P+123:1:5:0x1p1: ++%*5G:+0X2.345678P+123:0:5: ++%5G:+0X7.FFFFF8P125:1:5:0x1.cp2: ++%*5G:+0X7.FFFFF8P125:0:5: ++%5G:+0XF.FFFFFP+124:1:5:0x1.ep3: ++%*5G:+0XF.FFFFFP+124:0:5: ++%5G:+INFINITY:0:-1: ++%*5G:+INFINITY:0:-1: ++%6G::0:-1: ++%*6G::0:-1: ++%6G:-INFINITY:0:-1: ++%*6G:-INFINITY:0:-1: ++%6G:-0XF.FFFFFP+124:1:6:-0x1.fep3: ++%*6G:-0XF.FFFFFP+124:0:6: ++%6G:-0X7.FFFFF8P125:1:6:-0x1.fcp2: ++%*6G:-0X7.FFFFF8P125:0:6: ++%6G:-0X2.345678P+123:1:6:-0x1.18p1: ++%*6G:-0X2.345678P+123:0:6: ++%6G:-0X2.345678P0123:1:6:-0x1.18p1: ++%*6G:-0X2.345678P0123:0:6: ++# BZ12701 %6G:-0X8P-129:0:-1: ++# BZ12701 %*6G:-0X8P-129:0:-1: ++# BZ12701 %6G:-0X0P+0:0:-1: ++# BZ12701 %*6G:-0X0P+0:0:-1: ++%6G:-0X0P0:1:6:-0x0: ++%*6G:-0X0P0:0:6: ++%6G:-NAN(09A_Zaz):0:-1: ++%*6G:-NAN(09A_Zaz):0:-1: ++%6G:-NAN():1:6:-nan: ++%*6G:-NAN():0:6: ++%6G:NAN():1:5:nan: ++%*6G:NAN():0:5: ++%6G:NAN(09A_Zaz):0:-1: ++%*6G:NAN(09A_Zaz):0:-1: ++%6G:0X0P0:1:5:0x0: ++%*6G:0X0P0:0:5: ++%6G:0X0P+0:1:6:0x0: ++%*6G:0X0P+0:0:6: ++%6G:0X8P-129:1:6:0x1p2: ++%*6G:0X8P-129:0:6: ++%6G:0X2.345678P0123:1:6:0x1.1ap1: ++%*6G:0X2.345678P0123:0:6: ++%6G:0X2.345678P+123:1:6:0x1.1ap1: ++%*6G:0X2.345678P+123:0:6: ++%6G:0X7.FFFFF8P125:1:6:0x1.ffcp2: ++%*6G:0X7.FFFFF8P125:0:6: ++%6G:0XF.FFFFFP+124:1:6:0x1.ffep3: ++%*6G:0XF.FFFFFP+124:0:6: ++%6G:INFINITY:0:-1: ++%*6G:INFINITY:0:-1: ++%6G:+NAN():1:6:nan: ++%*6G:+NAN():0:6: ++%6G:+NAN(09A_Zaz):0:-1: ++%*6G:+NAN(09A_Zaz):0:-1: ++%6G:+0X0P0:1:6:0x0: ++%*6G:+0X0P0:0:6: ++# BZ12701 %6G:+0X0P+0:0:-1: ++# BZ12701 %*6G:+0X0P+0:0:-1: ++# BZ12701 %6G:+0X8P-129:0:-1: ++# BZ12701 %*6G:+0X8P-129:0:-1: ++%6G:+0X2.345678P0123:1:6:0x1.18p1: ++%*6G:+0X2.345678P0123:0:6: ++%6G:+0X2.345678P+123:1:6:0x1.18p1: ++%*6G:+0X2.345678P+123:0:6: ++%6G:+0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*6G:+0X7.FFFFF8P125:0:6: ++%6G:+0XF.FFFFFP+124:1:6:0x1.fep3: ++%*6G:+0XF.FFFFFP+124:0:6: ++%6G:+INFINITY:0:-1: ++%*6G:+INFINITY:0:-1: ++%12G::0:-1: ++%*12G::0:-1: ++%12G:-INFINITY:1:9:-inf: ++%*12G:-INFINITY:0:9: ++# BZ12701 %12G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %12G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %12G:-0X2.345678P+123:0:-1: ++# BZ12701 %*12G:-0X2.345678P+123:0:-1: ++# BZ12701 %12G:-0X2.345678P0123:0:-1: ++# BZ12701 %*12G:-0X2.345678P0123:0:-1: ++%12G:-0X8P-129:1:9:-0x1p-126: ++%*12G:-0X8P-129:0:9: ++%12G:-0X0P+0:1:7:-0x0: ++%*12G:-0X0P+0:0:7: ++%12G:-0X0P0:1:6:-0x0: ++%*12G:-0X0P0:0:6: ++%12G:-NAN(09A_Zaz):0:-1: ++%*12G:-NAN(09A_Zaz):0:-1: ++%12G:-NAN():1:6:-nan: ++%*12G:-NAN():0:6: ++%12G:NAN():1:5:nan: ++%*12G:NAN():0:5: ++%12G:NAN(09A_Zaz):1:12:nan: ++%*12G:NAN(09A_Zaz):0:12: ++%12G:0X0P0:1:5:0x0: ++%*12G:0X0P0:0:5: ++%12G:0X0P+0:1:6:0x0: ++%*12G:0X0P+0:0:6: ++%12G:0X8P-129:1:8:0x1p-126: ++%*12G:0X8P-129:0:8: ++%12G:0X2.345678P0123:1:12:0x1.1a2b3cp1: ++%*12G:0X2.345678P0123:0:12: ++# BZ12701 %12G:0X2.345678P+123:0:-1: ++# BZ12701 %*12G:0X2.345678P+123:0:-1: ++%12G:0X7.FFFFF8P125:1:12:0x1.fffffep3: ++%*12G:0X7.FFFFF8P125:0:12: ++%12G:0XF.FFFFFP+124:1:12:0x1.fffffep4: ++%*12G:0XF.FFFFFP+124:0:12: ++%12G:INFINITY:1:8:inf: ++%*12G:INFINITY:0:8: ++%12G:+NAN():1:6:nan: ++%*12G:+NAN():0:6: ++%12G:+NAN(09A_Zaz):0:-1: ++%*12G:+NAN(09A_Zaz):0:-1: ++%12G:+0X0P0:1:6:0x0: ++%*12G:+0X0P0:0:6: ++%12G:+0X0P+0:1:7:0x0: ++%*12G:+0X0P+0:0:7: ++%12G:+0X8P-129:1:9:0x1p-126: ++%*12G:+0X8P-129:0:9: ++# BZ12701 %12G:+0X2.345678P0123:0:-1: ++# BZ12701 %*12G:+0X2.345678P0123:0:-1: ++# BZ12701 %12G:+0X2.345678P+123:0:-1: ++# BZ12701 %*12G:+0X2.345678P+123:0:-1: ++# BZ12701 %12G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %12G:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12G:+0XF.FFFFFP+124:0:-1: ++%12G:+INFINITY:1:9:inf: ++%*12G:+INFINITY:0:9: ++%18G::0:-1: ++%*18G::0:-1: ++%18G:-INFINITY:1:9:-inf: ++%*18G:-INFINITY:0:9: ++%18G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*18G:-0XF.FFFFFP+124:0:15: ++%18G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*18G:-0X7.FFFFF8P125:0:15: ++%18G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*18G:-0X2.345678P+123:0:16: ++%18G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*18G:-0X2.345678P0123:0:16: ++%18G:-0X8P-129:1:9:-0x1p-126: ++%*18G:-0X8P-129:0:9: ++%18G:-0X0P+0:1:7:-0x0: ++%*18G:-0X0P+0:0:7: ++%18G:-0X0P0:1:6:-0x0: ++%*18G:-0X0P0:0:6: ++%18G:-NAN(09A_Zaz):1:13:-nan: ++%*18G:-NAN(09A_Zaz):0:13: ++%18G:-NAN():1:6:-nan: ++%*18G:-NAN():0:6: ++%18G:NAN():1:5:nan: ++%*18G:NAN():0:5: ++%18G:NAN(09A_Zaz):1:12:nan: ++%*18G:NAN(09A_Zaz):0:12: ++%18G:0X0P0:1:5:0x0: ++%*18G:0X0P0:0:5: ++%18G:0X0P+0:1:6:0x0: ++%*18G:0X0P+0:0:6: ++%18G:0X8P-129:1:8:0x1p-126: ++%*18G:0X8P-129:0:8: ++%18G:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*18G:0X2.345678P0123:0:15: ++%18G:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*18G:0X2.345678P+123:0:15: ++%18G:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*18G:0X7.FFFFF8P125:0:14: ++%18G:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*18G:0XF.FFFFFP+124:0:14: ++%18G:INFINITY:1:8:inf: ++%*18G:INFINITY:0:8: ++%18G:+NAN():1:6:nan: ++%*18G:+NAN():0:6: ++%18G:+NAN(09A_Zaz):1:13:nan: ++%*18G:+NAN(09A_Zaz):0:13: ++%18G:+0X0P0:1:6:0x0: ++%*18G:+0X0P0:0:6: ++%18G:+0X0P+0:1:7:0x0: ++%*18G:+0X0P+0:0:7: ++%18G:+0X8P-129:1:9:0x1p-126: ++%*18G:+0X8P-129:0:9: ++%18G:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18G:+0X2.345678P0123:0:16: ++%18G:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18G:+0X2.345678P+123:0:16: ++%18G:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18G:+0X7.FFFFF8P125:0:15: ++%18G:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18G:+0XF.FFFFFP+124:0:15: ++%18G:+INFINITY:1:9:inf: ++%*18G:+INFINITY:0:9: ++%5G: :0:-1: ++%*5G: :0:-1: ++%5G: -INFINITY:0:-1: ++%*5G: -INFINITY:0:-1: ++%5G: -0XF.FFFFFP+124:1:6:-0x1.ep3: ++%*5G: -0XF.FFFFFP+124:0:6: ++%5G: -0X7.FFFFF8P125:1:6:-0x1.cp2: ++%*5G: -0X7.FFFFF8P125:0:6: ++%5G: -0X2.345678P+123:1:6:-0x1p1: ++%*5G: -0X2.345678P+123:0:6: ++%5G: -0X2.345678P0123:1:6:-0x1p1: ++%*5G: -0X2.345678P0123:0:6: ++# BZ12701 %5G: -0X8P-129:0:-1: ++# BZ12701 %*5G: -0X8P-129:0:-1: ++# BZ12701 %5G: -0X0P+0:0:-1: ++# BZ12701 %*5G: -0X0P+0:0:-1: ++# BZ12701 %5G: -0X0P0:0:-1: ++# BZ12701 %*5G: -0X0P0:0:-1: ++%5G: -NAN(09A_Zaz):0:-1: ++%*5G: -NAN(09A_Zaz):0:-1: ++%5G: -NAN():0:-1: ++%*5G: -NAN():0:-1: ++%5G: NAN():1:6:nan: ++%*5G: NAN():0:6: ++%5G: NAN(09A_Zaz):0:-1: ++%*5G: NAN(09A_Zaz):0:-1: ++%5G: 0X0P0:1:6:0x0: ++%*5G: 0X0P0:0:6: ++# BZ12701 %5G: 0X0P+0:0:-1: ++# BZ12701 %*5G: 0X0P+0:0:-1: ++# BZ12701 %5G: 0X8P-129:0:-1: ++# BZ12701 %*5G: 0X8P-129:0:-1: ++%5G: 0X2.345678P0123:1:6:0x1.18p1: ++%*5G: 0X2.345678P0123:0:6: ++%5G: 0X2.345678P+123:1:6:0x1.18p1: ++%*5G: 0X2.345678P+123:0:6: ++%5G: 0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*5G: 0X7.FFFFF8P125:0:6: ++%5G: 0XF.FFFFFP+124:1:6:0x1.fep3: ++%*5G: 0XF.FFFFFP+124:0:6: ++%5G: INFINITY:0:-1: ++%*5G: INFINITY:0:-1: ++%5G: +NAN():0:-1: ++%*5G: +NAN():0:-1: ++%5G: +NAN(09A_Zaz):0:-1: ++%*5G: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5G: +0X0P0:0:-1: ++# BZ12701 %*5G: +0X0P0:0:-1: ++# BZ12701 %5G: +0X0P+0:0:-1: ++# BZ12701 %*5G: +0X0P+0:0:-1: ++# BZ12701 %5G: +0X8P-129:0:-1: ++# BZ12701 %*5G: +0X8P-129:0:-1: ++%5G: +0X2.345678P0123:1:6:0x1p1: ++%*5G: +0X2.345678P0123:0:6: ++%5G: +0X2.345678P+123:1:6:0x1p1: ++%*5G: +0X2.345678P+123:0:6: ++%5G: +0X7.FFFFF8P125:1:6:0x1.cp2: ++%*5G: +0X7.FFFFF8P125:0:6: ++%5G: +0XF.FFFFFP+124:1:6:0x1.ep3: ++%*5G: +0XF.FFFFFP+124:0:6: ++%5G: +INFINITY:0:-1: ++%*5G: +INFINITY:0:-1: ++%18G: :0:-1: ++%*18G: :0:-1: ++%18G: -INFINITY:1:10:-inf: ++%*18G: -INFINITY:0:10: ++%18G: -0XF.FFFFFP+124:1:16:-0x1.fffffep127: ++%*18G: -0XF.FFFFFP+124:0:16: ++%18G: -0X7.FFFFF8P125:1:16:-0x1.fffffep127: ++%*18G: -0X7.FFFFF8P125:0:16: ++%18G: -0X2.345678P+123:1:17:-0x1.1a2b3cp124: ++%*18G: -0X2.345678P+123:0:17: ++%18G: -0X2.345678P0123:1:17:-0x1.1a2b3cp124: ++%*18G: -0X2.345678P0123:0:17: ++%18G: -0X8P-129:1:10:-0x1p-126: ++%*18G: -0X8P-129:0:10: ++%18G: -0X0P+0:1:8:-0x0: ++%*18G: -0X0P+0:0:8: ++%18G: -0X0P0:1:7:-0x0: ++%*18G: -0X0P0:0:7: ++%18G: -NAN(09A_Zaz):1:14:-nan: ++%*18G: -NAN(09A_Zaz):0:14: ++%18G: -NAN():1:7:-nan: ++%*18G: -NAN():0:7: ++%18G: NAN():1:6:nan: ++%*18G: NAN():0:6: ++%18G: NAN(09A_Zaz):1:13:nan: ++%*18G: NAN(09A_Zaz):0:13: ++%18G: 0X0P0:1:6:0x0: ++%*18G: 0X0P0:0:6: ++%18G: 0X0P+0:1:7:0x0: ++%*18G: 0X0P+0:0:7: ++%18G: 0X8P-129:1:9:0x1p-126: ++%*18G: 0X8P-129:0:9: ++%18G: 0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18G: 0X2.345678P0123:0:16: ++%18G: 0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18G: 0X2.345678P+123:0:16: ++%18G: 0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18G: 0X7.FFFFF8P125:0:15: ++%18G: 0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18G: 0XF.FFFFFP+124:0:15: ++%18G: INFINITY:1:9:inf: ++%*18G: INFINITY:0:9: ++%18G: +NAN():1:7:nan: ++%*18G: +NAN():0:7: ++%18G: +NAN(09A_Zaz):1:14:nan: ++%*18G: +NAN(09A_Zaz):0:14: ++%18G: +0X0P0:1:7:0x0: ++%*18G: +0X0P0:0:7: ++%18G: +0X0P+0:1:8:0x0: ++%*18G: +0X0P+0:0:8: ++%18G: +0X8P-129:1:10:0x1p-126: ++%*18G: +0X8P-129:0:10: ++%18G: +0X2.345678P0123:1:17:0x1.1a2b3cp124: ++%*18G: +0X2.345678P0123:0:17: ++%18G: +0X2.345678P+123:1:17:0x1.1a2b3cp124: ++%*18G: +0X2.345678P+123:0:17: ++%18G: +0X7.FFFFF8P125:1:16:0x1.fffffep127: ++%*18G: +0X7.FFFFF8P125:0:16: ++%18G: +0XF.FFFFFP+124:1:16:0x1.fffffep127: ++%*18G: +0XF.FFFFFP+124:0:16: ++%18G: +INFINITY:1:10:inf: ++%*18G: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-84306-5.patch b/SOURCES/glibc-RHEL-84306-5.patch new file mode 100644 index 0000000..f0899bf --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-5.patch @@ -0,0 +1,5035 @@ +commit 0b311614395586608b5433dc8151e098d1906446 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf double data for IEEE 754 binary64 format + + Add Makefile infrastructure and `double' real input data for targets + using the IEEE 754 binary64 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/dbl-64/Makefile b/sysdeps/ieee754/dbl-64/Makefile +index 78530b5966017d03..766bef4a35d01d3d 100644 +--- a/sysdeps/ieee754/dbl-64/Makefile ++++ b/sysdeps/ieee754/dbl-64/Makefile +@@ -3,3 +3,7 @@ ifeq ($(subdir),math) + CFLAGS-branred.c += $(config-cflags-nofma) + CFLAGS-e_sqrt.c += $(config-cflags-nofma) + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += double ++endif +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +new file mode 100644 +index 0000000000000000..9d50b08b0b7aed3a +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +@@ -0,0 +1,682 @@ ++%la::0:-1: ++%*la::0:-1: ++%la:-infinity:1:9:-inf: ++%*la:-infinity:0:9: ++%la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*la:-0xf.ffffffffffff8p+1020:0:24: ++%la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*la:-0x7.ffffffffffffcp1021:0:23: ++%la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*la:-0x2.3456789abcdfep+123:0:23: ++%la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*la:-0x2.3456789abcdfep0123:0:23: ++%la:-0x8p-1025:1:10:-0x1p-1022: ++%*la:-0x8p-1025:0:10: ++%la:-0x0p+0:1:7:-0x0: ++%*la:-0x0p+0:0:7: ++%la:-0x0p0:1:6:-0x0: ++%*la:-0x0p0:0:6: ++%la:-nan(09A_Zaz):1:13:-nan: ++%*la:-nan(09A_Zaz):0:13: ++%la:-nan():1:6:-nan: ++%*la:-nan():0:6: ++%la:nan():1:5:nan: ++%*la:nan():0:5: ++%la:nan(09A_Zaz):1:12:nan: ++%*la:nan(09A_Zaz):0:12: ++%la:0x0p0:1:5:0x0: ++%*la:0x0p0:0:5: ++%la:0x0p+0:1:6:0x0: ++%*la:0x0p+0:0:6: ++%la:0x8p-1025:1:9:0x1p-1022: ++%*la:0x8p-1025:0:9: ++%la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*la:0x2.3456789abcdfep0123:0:22: ++%la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*la:0x2.3456789abcdfep+123:0:22: ++%la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*la:0x7.ffffffffffffcp1021:0:22: ++%la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*la:0xf.ffffffffffff8p+1020:0:23: ++%la:infinity:1:8:inf: ++%*la:infinity:0:8: ++%la:+nan():1:6:nan: ++%*la:+nan():0:6: ++%la:+nan(09A_Zaz):1:13:nan: ++%*la:+nan(09A_Zaz):0:13: ++%la:+0x0p0:1:6:0x0: ++%*la:+0x0p0:0:6: ++%la:+0x0p+0:1:7:0x0: ++%*la:+0x0p+0:0:7: ++%la:+0x8p-1025:1:10:0x1p-1022: ++%*la:+0x8p-1025:0:10: ++%la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*la:+0x2.3456789abcdfep0123:0:23: ++%la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*la:+0x2.3456789abcdfep+123:0:23: ++%la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*la:+0x7.ffffffffffffcp1021:0:23: ++%la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*la:+0xf.ffffffffffff8p+1020:0:24: ++%la:+infinity:1:9:inf: ++%*la:+infinity:0:9: ++%1la::0:-1: ++%*1la::0:-1: ++%1la:-infinity:0:-1: ++%*1la:-infinity:0:-1: ++%1la:-0xf.ffffffffffff8p+1020:0:-1: ++%*1la:-0xf.ffffffffffff8p+1020:0:-1: ++%1la:-0x7.ffffffffffffcp1021:0:-1: ++%*1la:-0x7.ffffffffffffcp1021:0:-1: ++%1la:-0x2.3456789abcdfep+123:0:-1: ++%*1la:-0x2.3456789abcdfep+123:0:-1: ++%1la:-0x2.3456789abcdfep0123:0:-1: ++%*1la:-0x2.3456789abcdfep0123:0:-1: ++%1la:-0x8p-1025:0:-1: ++%*1la:-0x8p-1025:0:-1: ++%1la:-0x0p+0:0:-1: ++%*1la:-0x0p+0:0:-1: ++%1la:-0x0p0:0:-1: ++%*1la:-0x0p0:0:-1: ++%1la:-nan(09A_Zaz):0:-1: ++%*1la:-nan(09A_Zaz):0:-1: ++%1la:-nan():0:-1: ++%*1la:-nan():0:-1: ++%1la:nan():0:-1: ++%*1la:nan():0:-1: ++%1la:nan(09A_Zaz):0:-1: ++%*1la:nan(09A_Zaz):0:-1: ++%1la:0x0p0:1:1:0x0: ++%*1la:0x0p0:0:1: ++%1la:0x0p+0:1:1:0x0: ++%*1la:0x0p+0:0:1: ++%1la:0x8p-1025:1:1:0x0: ++%*1la:0x8p-1025:0:1: ++%1la:0x2.3456789abcdfep0123:1:1:0x0: ++%*1la:0x2.3456789abcdfep0123:0:1: ++%1la:0x2.3456789abcdfep+123:1:1:0x0: ++%*1la:0x2.3456789abcdfep+123:0:1: ++%1la:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1la:0x7.ffffffffffffcp1021:0:1: ++%1la:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1la:0xf.ffffffffffff8p+1020:0:1: ++%1la:infinity:0:-1: ++%*1la:infinity:0:-1: ++%1la:+nan():0:-1: ++%*1la:+nan():0:-1: ++%1la:+nan(09A_Zaz):0:-1: ++%*1la:+nan(09A_Zaz):0:-1: ++%1la:+0x0p0:0:-1: ++%*1la:+0x0p0:0:-1: ++%1la:+0x0p+0:0:-1: ++%*1la:+0x0p+0:0:-1: ++%1la:+0x8p-1025:0:-1: ++%*1la:+0x8p-1025:0:-1: ++%1la:+0x2.3456789abcdfep0123:0:-1: ++%*1la:+0x2.3456789abcdfep0123:0:-1: ++%1la:+0x2.3456789abcdfep+123:0:-1: ++%*1la:+0x2.3456789abcdfep+123:0:-1: ++%1la:+0x7.ffffffffffffcp1021:0:-1: ++%*1la:+0x7.ffffffffffffcp1021:0:-1: ++%1la:+0xf.ffffffffffff8p+1020:0:-1: ++%*1la:+0xf.ffffffffffff8p+1020:0:-1: ++%1la:+infinity:0:-1: ++%*1la:+infinity:0:-1: ++%2la::0:-1: ++%*2la::0:-1: ++%2la:-infinity:0:-1: ++%*2la:-infinity:0:-1: ++%2la:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2la:-0xf.ffffffffffff8p+1020:0:2: ++%2la:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2la:-0x7.ffffffffffffcp1021:0:2: ++%2la:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2la:-0x2.3456789abcdfep+123:0:2: ++%2la:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2la:-0x2.3456789abcdfep0123:0:2: ++%2la:-0x8p-1025:1:2:-0x0: ++%*2la:-0x8p-1025:0:2: ++%2la:-0x0p+0:1:2:-0x0: ++%*2la:-0x0p+0:0:2: ++%2la:-0x0p0:1:2:-0x0: ++%*2la:-0x0p0:0:2: ++%2la:-nan(09A_Zaz):0:-1: ++%*2la:-nan(09A_Zaz):0:-1: ++%2la:-nan():0:-1: ++%*2la:-nan():0:-1: ++%2la:nan():0:-1: ++%*2la:nan():0:-1: ++%2la:nan(09A_Zaz):0:-1: ++%*2la:nan(09A_Zaz):0:-1: ++# BZ12701 %2la:0x0p0:0:-1: ++# BZ12701 %*2la:0x0p0:0:-1: ++# BZ12701 %2la:0x0p+0:0:-1: ++# BZ12701 %*2la:0x0p+0:0:-1: ++# BZ12701 %2la:0x8p-1025:0:-1: ++# BZ12701 %*2la:0x8p-1025:0:-1: ++# BZ12701 %2la:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2la:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2la:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2la:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2la:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2la:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2la:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2la:0xf.ffffffffffff8p+1020:0:-1: ++%2la:infinity:0:-1: ++%*2la:infinity:0:-1: ++%2la:+nan():0:-1: ++%*2la:+nan():0:-1: ++%2la:+nan(09A_Zaz):0:-1: ++%*2la:+nan(09A_Zaz):0:-1: ++%2la:+0x0p0:1:2:0x0: ++%*2la:+0x0p0:0:2: ++%2la:+0x0p+0:1:2:0x0: ++%*2la:+0x0p+0:0:2: ++%2la:+0x8p-1025:1:2:0x0: ++%*2la:+0x8p-1025:0:2: ++%2la:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2la:+0x2.3456789abcdfep0123:0:2: ++%2la:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2la:+0x2.3456789abcdfep+123:0:2: ++%2la:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2la:+0x7.ffffffffffffcp1021:0:2: ++%2la:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2la:+0xf.ffffffffffff8p+1020:0:2: ++%2la:+infinity:0:-1: ++%*2la:+infinity:0:-1: ++%3la::0:-1: ++%*3la::0:-1: ++%3la:-infinity:0:-1: ++%*3la:-infinity:0:-1: ++# BZ12701 %3la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3la:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3la:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3la:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3la:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3la:-0x8p-1025:0:-1: ++# BZ12701 %*3la:-0x8p-1025:0:-1: ++# BZ12701 %3la:-0x0p+0:0:-1: ++# BZ12701 %*3la:-0x0p+0:0:-1: ++# BZ12701 %3la:-0x0p0:0:-1: ++# BZ12701 %*3la:-0x0p0:0:-1: ++%3la:-nan(09A_Zaz):0:-1: ++%*3la:-nan(09A_Zaz):0:-1: ++%3la:-nan():0:-1: ++%*3la:-nan():0:-1: ++%3la:nan():1:3:nan: ++%*3la:nan():0:3: ++%3la:nan(09A_Zaz):1:3:nan: ++%*3la:nan(09A_Zaz):0:3: ++%3la:0x0p0:1:3:0x0: ++%*3la:0x0p0:0:3: ++%3la:0x0p+0:1:3:0x0: ++%*3la:0x0p+0:0:3: ++%3la:0x8p-1025:1:3:0x1p3: ++%*3la:0x8p-1025:0:3: ++%3la:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3la:0x2.3456789abcdfep0123:0:3: ++%3la:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3la:0x2.3456789abcdfep+123:0:3: ++%3la:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3la:0x7.ffffffffffffcp1021:0:3: ++%3la:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3la:0xf.ffffffffffff8p+1020:0:3: ++%3la:infinity:1:3:inf: ++%*3la:infinity:0:3: ++%3la:+nan():0:-1: ++%*3la:+nan():0:-1: ++%3la:+nan(09A_Zaz):0:-1: ++%*3la:+nan(09A_Zaz):0:-1: ++# BZ12701 %3la:+0x0p0:0:-1: ++# BZ12701 %*3la:+0x0p0:0:-1: ++# BZ12701 %3la:+0x0p+0:0:-1: ++# BZ12701 %*3la:+0x0p+0:0:-1: ++# BZ12701 %3la:+0x8p-1025:0:-1: ++# BZ12701 %*3la:+0x8p-1025:0:-1: ++# BZ12701 %3la:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3la:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3la:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3la:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3la:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3la:+0xf.ffffffffffff8p+1020:0:-1: ++%3la:+infinity:0:-1: ++%*3la:+infinity:0:-1: ++%4la::0:-1: ++%*4la::0:-1: ++%4la:-infinity:1:4:-inf: ++%*4la:-infinity:0:4: ++%4la:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4la:-0xf.ffffffffffff8p+1020:0:4: ++%4la:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4la:-0x7.ffffffffffffcp1021:0:4: ++%4la:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4la:-0x2.3456789abcdfep+123:0:4: ++%4la:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4la:-0x2.3456789abcdfep0123:0:4: ++%4la:-0x8p-1025:1:4:-0x1p3: ++%*4la:-0x8p-1025:0:4: ++%4la:-0x0p+0:1:4:-0x0: ++%*4la:-0x0p+0:0:4: ++%4la:-0x0p0:1:4:-0x0: ++%*4la:-0x0p0:0:4: ++%4la:-nan(09A_Zaz):1:4:-nan: ++%*4la:-nan(09A_Zaz):0:4: ++%4la:-nan():1:4:-nan: ++%*4la:-nan():0:4: ++%4la:nan():0:-1: ++%*4la:nan():0:-1: ++%4la:nan(09A_Zaz):0:-1: ++%*4la:nan(09A_Zaz):0:-1: ++# BZ12701 %4la:0x0p0:0:-1: ++# BZ12701 %*4la:0x0p0:0:-1: ++# BZ12701 %4la:0x0p+0:0:-1: ++# BZ12701 %*4la:0x0p+0:0:-1: ++# BZ12701 %4la:0x8p-1025:0:-1: ++# BZ12701 %*4la:0x8p-1025:0:-1: ++%4la:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4la:0x2.3456789abcdfep0123:0:4: ++%4la:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4la:0x2.3456789abcdfep+123:0:4: ++%4la:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4la:0x7.ffffffffffffcp1021:0:4: ++%4la:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4la:0xf.ffffffffffff8p+1020:0:4: ++%4la:infinity:0:-1: ++%*4la:infinity:0:-1: ++%4la:+nan():1:4:nan: ++%*4la:+nan():0:4: ++%4la:+nan(09A_Zaz):1:4:nan: ++%*4la:+nan(09A_Zaz):0:4: ++%4la:+0x0p0:1:4:0x0: ++%*4la:+0x0p0:0:4: ++%4la:+0x0p+0:1:4:0x0: ++%*4la:+0x0p+0:0:4: ++%4la:+0x8p-1025:1:4:0x1p3: ++%*4la:+0x8p-1025:0:4: ++%4la:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4la:+0x2.3456789abcdfep0123:0:4: ++%4la:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4la:+0x2.3456789abcdfep+123:0:4: ++%4la:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4la:+0x7.ffffffffffffcp1021:0:4: ++%4la:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4la:+0xf.ffffffffffff8p+1020:0:4: ++%4la:+infinity:1:4:inf: ++%*4la:+infinity:0:4: ++%5la::0:-1: ++%*5la::0:-1: ++%5la:-infinity:0:-1: ++%*5la:-infinity:0:-1: ++%5la:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5la:-0xf.ffffffffffff8p+1020:0:5: ++%5la:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5la:-0x7.ffffffffffffcp1021:0:5: ++%5la:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5la:-0x2.3456789abcdfep+123:0:5: ++%5la:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5la:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5la:-0x8p-1025:0:-1: ++# BZ12701 %*5la:-0x8p-1025:0:-1: ++# BZ12701 %5la:-0x0p+0:0:-1: ++# BZ12701 %*5la:-0x0p+0:0:-1: ++# BZ12701 %5la:-0x0p0:0:-1: ++# BZ12701 %*5la:-0x0p0:0:-1: ++%5la:-nan(09A_Zaz):0:-1: ++%*5la:-nan(09A_Zaz):0:-1: ++%5la:-nan():0:-1: ++%*5la:-nan():0:-1: ++%5la:nan():1:5:nan: ++%*5la:nan():0:5: ++%5la:nan(09A_Zaz):0:-1: ++%*5la:nan(09A_Zaz):0:-1: ++%5la:0x0p0:1:5:0x0: ++%*5la:0x0p0:0:5: ++# BZ12701 %5la:0x0p+0:0:-1: ++# BZ12701 %*5la:0x0p+0:0:-1: ++# BZ12701 %5la:0x8p-1025:0:-1: ++# BZ12701 %*5la:0x8p-1025:0:-1: ++%5la:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5la:0x2.3456789abcdfep0123:0:5: ++%5la:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5la:0x2.3456789abcdfep+123:0:5: ++%5la:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5la:0x7.ffffffffffffcp1021:0:5: ++%5la:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5la:0xf.ffffffffffff8p+1020:0:5: ++%5la:infinity:0:-1: ++%*5la:infinity:0:-1: ++%5la:+nan():0:-1: ++%*5la:+nan():0:-1: ++%5la:+nan(09A_Zaz):0:-1: ++%*5la:+nan(09A_Zaz):0:-1: ++# BZ12701 %5la:+0x0p0:0:-1: ++# BZ12701 %*5la:+0x0p0:0:-1: ++# BZ12701 %5la:+0x0p+0:0:-1: ++# BZ12701 %*5la:+0x0p+0:0:-1: ++# BZ12701 %5la:+0x8p-1025:0:-1: ++# BZ12701 %*5la:+0x8p-1025:0:-1: ++%5la:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5la:+0x2.3456789abcdfep0123:0:5: ++%5la:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5la:+0x2.3456789abcdfep+123:0:5: ++%5la:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5la:+0x7.ffffffffffffcp1021:0:5: ++%5la:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5la:+0xf.ffffffffffff8p+1020:0:5: ++%5la:+infinity:0:-1: ++%*5la:+infinity:0:-1: ++%6la::0:-1: ++%*6la::0:-1: ++%6la:-infinity:0:-1: ++%*6la:-infinity:0:-1: ++%6la:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6la:-0xf.ffffffffffff8p+1020:0:6: ++%6la:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6la:-0x7.ffffffffffffcp1021:0:6: ++%6la:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6la:-0x2.3456789abcdfep+123:0:6: ++%6la:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6la:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6la:-0x8p-1025:0:-1: ++# BZ12701 %*6la:-0x8p-1025:0:-1: ++# BZ12701 %6la:-0x0p+0:0:-1: ++# BZ12701 %*6la:-0x0p+0:0:-1: ++%6la:-0x0p0:1:6:-0x0: ++%*6la:-0x0p0:0:6: ++%6la:-nan(09A_Zaz):0:-1: ++%*6la:-nan(09A_Zaz):0:-1: ++%6la:-nan():1:6:-nan: ++%*6la:-nan():0:6: ++%6la:nan():1:5:nan: ++%*6la:nan():0:5: ++%6la:nan(09A_Zaz):0:-1: ++%*6la:nan(09A_Zaz):0:-1: ++%6la:0x0p0:1:5:0x0: ++%*6la:0x0p0:0:5: ++%6la:0x0p+0:1:6:0x0: ++%*6la:0x0p+0:0:6: ++%6la:0x8p-1025:1:6:0x1p2: ++%*6la:0x8p-1025:0:6: ++%6la:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6la:0x2.3456789abcdfep0123:0:6: ++%6la:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6la:0x2.3456789abcdfep+123:0:6: ++%6la:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6la:0x7.ffffffffffffcp1021:0:6: ++%6la:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6la:0xf.ffffffffffff8p+1020:0:6: ++%6la:infinity:0:-1: ++%*6la:infinity:0:-1: ++%6la:+nan():1:6:nan: ++%*6la:+nan():0:6: ++%6la:+nan(09A_Zaz):0:-1: ++%*6la:+nan(09A_Zaz):0:-1: ++%6la:+0x0p0:1:6:0x0: ++%*6la:+0x0p0:0:6: ++# BZ12701 %6la:+0x0p+0:0:-1: ++# BZ12701 %*6la:+0x0p+0:0:-1: ++# BZ12701 %6la:+0x8p-1025:0:-1: ++# BZ12701 %*6la:+0x8p-1025:0:-1: ++%6la:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6la:+0x2.3456789abcdfep0123:0:6: ++%6la:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6la:+0x2.3456789abcdfep+123:0:6: ++%6la:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6la:+0x7.ffffffffffffcp1021:0:6: ++%6la:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6la:+0xf.ffffffffffff8p+1020:0:6: ++%6la:+infinity:0:-1: ++%*6la:+infinity:0:-1: ++%20la::0:-1: ++%*20la::0:-1: ++%20la:-infinity:1:9:-inf: ++%*20la:-infinity:0:9: ++# BZ12701 %20la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20la:-0xf.ffffffffffff8p+1020:0:-1: ++%20la:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20la:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20la:-0x2.3456789abcdfep+123:0:-1: ++%20la:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20la:-0x2.3456789abcdfep0123:0:20: ++%20la:-0x8p-1025:1:10:-0x1p-1022: ++%*20la:-0x8p-1025:0:10: ++%20la:-0x0p+0:1:7:-0x0: ++%*20la:-0x0p+0:0:7: ++%20la:-0x0p0:1:6:-0x0: ++%*20la:-0x0p0:0:6: ++%20la:-nan(09A_Zaz):1:13:-nan: ++%*20la:-nan(09A_Zaz):0:13: ++%20la:-nan():1:6:-nan: ++%*20la:-nan():0:6: ++%20la:nan():1:5:nan: ++%*20la:nan():0:5: ++%20la:nan(09A_Zaz):1:12:nan: ++%*20la:nan(09A_Zaz):0:12: ++%20la:0x0p0:1:5:0x0: ++%*20la:0x0p0:0:5: ++%20la:0x0p+0:1:6:0x0: ++%*20la:0x0p+0:0:6: ++%20la:0x8p-1025:1:9:0x1p-1022: ++%*20la:0x8p-1025:0:9: ++%20la:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20la:0x2.3456789abcdfep0123:0:20: ++%20la:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20la:0x2.3456789abcdfep+123:0:20: ++%20la:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20la:0x7.ffffffffffffcp1021:0:20: ++%20la:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20la:0xf.ffffffffffff8p+1020:0:20: ++%20la:infinity:1:8:inf: ++%*20la:infinity:0:8: ++%20la:+nan():1:6:nan: ++%*20la:+nan():0:6: ++%20la:+nan(09A_Zaz):1:13:nan: ++%*20la:+nan(09A_Zaz):0:13: ++%20la:+0x0p0:1:6:0x0: ++%*20la:+0x0p0:0:6: ++%20la:+0x0p+0:1:7:0x0: ++%*20la:+0x0p+0:0:7: ++%20la:+0x8p-1025:1:10:0x1p-1022: ++%*20la:+0x8p-1025:0:10: ++%20la:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20la:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20la:+0x2.3456789abcdfep+123:0:-1: ++%20la:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20la:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20la:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20la:+0xf.ffffffffffff8p+1020:0:-1: ++%20la:+infinity:1:9:inf: ++%*20la:+infinity:0:9: ++%32la::0:-1: ++%*32la::0:-1: ++%32la:-infinity:1:9:-inf: ++%*32la:-infinity:0:9: ++%32la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32la:-0xf.ffffffffffff8p+1020:0:24: ++%32la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32la:-0x7.ffffffffffffcp1021:0:23: ++%32la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32la:-0x2.3456789abcdfep+123:0:23: ++%32la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32la:-0x2.3456789abcdfep0123:0:23: ++%32la:-0x8p-1025:1:10:-0x1p-1022: ++%*32la:-0x8p-1025:0:10: ++%32la:-0x0p+0:1:7:-0x0: ++%*32la:-0x0p+0:0:7: ++%32la:-0x0p0:1:6:-0x0: ++%*32la:-0x0p0:0:6: ++%32la:-nan(09A_Zaz):1:13:-nan: ++%*32la:-nan(09A_Zaz):0:13: ++%32la:-nan():1:6:-nan: ++%*32la:-nan():0:6: ++%32la:nan():1:5:nan: ++%*32la:nan():0:5: ++%32la:nan(09A_Zaz):1:12:nan: ++%*32la:nan(09A_Zaz):0:12: ++%32la:0x0p0:1:5:0x0: ++%*32la:0x0p0:0:5: ++%32la:0x0p+0:1:6:0x0: ++%*32la:0x0p+0:0:6: ++%32la:0x8p-1025:1:9:0x1p-1022: ++%*32la:0x8p-1025:0:9: ++%32la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32la:0x2.3456789abcdfep0123:0:22: ++%32la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32la:0x2.3456789abcdfep+123:0:22: ++%32la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32la:0x7.ffffffffffffcp1021:0:22: ++%32la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32la:0xf.ffffffffffff8p+1020:0:23: ++%32la:infinity:1:8:inf: ++%*32la:infinity:0:8: ++%32la:+nan():1:6:nan: ++%*32la:+nan():0:6: ++%32la:+nan(09A_Zaz):1:13:nan: ++%*32la:+nan(09A_Zaz):0:13: ++%32la:+0x0p0:1:6:0x0: ++%*32la:+0x0p0:0:6: ++%32la:+0x0p+0:1:7:0x0: ++%*32la:+0x0p+0:0:7: ++%32la:+0x8p-1025:1:10:0x1p-1022: ++%*32la:+0x8p-1025:0:10: ++%32la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la:+0x2.3456789abcdfep0123:0:23: ++%32la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la:+0x2.3456789abcdfep+123:0:23: ++%32la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32la:+0x7.ffffffffffffcp1021:0:23: ++%32la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32la:+0xf.ffffffffffff8p+1020:0:24: ++%32la:+infinity:1:9:inf: ++%*32la:+infinity:0:9: ++%5la: :0:-1: ++%*5la: :0:-1: ++%5la: -infinity:0:-1: ++%*5la: -infinity:0:-1: ++%5la: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5la: -0xf.ffffffffffff8p+1020:0:6: ++%5la: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5la: -0x7.ffffffffffffcp1021:0:6: ++%5la: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5la: -0x2.3456789abcdfep+123:0:6: ++%5la: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5la: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5la: -0x8p-1025:0:-1: ++# BZ12701 %*5la: -0x8p-1025:0:-1: ++# BZ12701 %5la: -0x0p+0:0:-1: ++# BZ12701 %*5la: -0x0p+0:0:-1: ++# BZ12701 %5la: -0x0p0:0:-1: ++# BZ12701 %*5la: -0x0p0:0:-1: ++%5la: -nan(09A_Zaz):0:-1: ++%*5la: -nan(09A_Zaz):0:-1: ++%5la: -nan():0:-1: ++%*5la: -nan():0:-1: ++%5la: nan():1:6:nan: ++%*5la: nan():0:6: ++%5la: nan(09A_Zaz):0:-1: ++%*5la: nan(09A_Zaz):0:-1: ++%5la: 0x0p0:1:6:0x0: ++%*5la: 0x0p0:0:6: ++# BZ12701 %5la: 0x0p+0:0:-1: ++# BZ12701 %*5la: 0x0p+0:0:-1: ++# BZ12701 %5la: 0x8p-1025:0:-1: ++# BZ12701 %*5la: 0x8p-1025:0:-1: ++%5la: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5la: 0x2.3456789abcdfep0123:0:6: ++%5la: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5la: 0x2.3456789abcdfep+123:0:6: ++%5la: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5la: 0x7.ffffffffffffcp1021:0:6: ++%5la: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5la: 0xf.ffffffffffff8p+1020:0:6: ++%5la: infinity:0:-1: ++%*5la: infinity:0:-1: ++%5la: +nan():0:-1: ++%*5la: +nan():0:-1: ++%5la: +nan(09A_Zaz):0:-1: ++%*5la: +nan(09A_Zaz):0:-1: ++# BZ12701 %5la: +0x0p0:0:-1: ++# BZ12701 %*5la: +0x0p0:0:-1: ++# BZ12701 %5la: +0x0p+0:0:-1: ++# BZ12701 %*5la: +0x0p+0:0:-1: ++# BZ12701 %5la: +0x8p-1025:0:-1: ++# BZ12701 %*5la: +0x8p-1025:0:-1: ++%5la: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5la: +0x2.3456789abcdfep0123:0:6: ++%5la: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5la: +0x2.3456789abcdfep+123:0:6: ++%5la: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5la: +0x7.ffffffffffffcp1021:0:6: ++%5la: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5la: +0xf.ffffffffffff8p+1020:0:6: ++%5la: +infinity:0:-1: ++%*5la: +infinity:0:-1: ++%32la: :0:-1: ++%*32la: :0:-1: ++%32la: -infinity:1:10:-inf: ++%*32la: -infinity:0:10: ++%32la: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32la: -0xf.ffffffffffff8p+1020:0:25: ++%32la: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32la: -0x7.ffffffffffffcp1021:0:24: ++%32la: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32la: -0x2.3456789abcdfep+123:0:24: ++%32la: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32la: -0x2.3456789abcdfep0123:0:24: ++%32la: -0x8p-1025:1:11:-0x1p-1022: ++%*32la: -0x8p-1025:0:11: ++%32la: -0x0p+0:1:8:-0x0: ++%*32la: -0x0p+0:0:8: ++%32la: -0x0p0:1:7:-0x0: ++%*32la: -0x0p0:0:7: ++%32la: -nan(09A_Zaz):1:14:-nan: ++%*32la: -nan(09A_Zaz):0:14: ++%32la: -nan():1:7:-nan: ++%*32la: -nan():0:7: ++%32la: nan():1:6:nan: ++%*32la: nan():0:6: ++%32la: nan(09A_Zaz):1:13:nan: ++%*32la: nan(09A_Zaz):0:13: ++%32la: 0x0p0:1:6:0x0: ++%*32la: 0x0p0:0:6: ++%32la: 0x0p+0:1:7:0x0: ++%*32la: 0x0p+0:0:7: ++%32la: 0x8p-1025:1:10:0x1p-1022: ++%*32la: 0x8p-1025:0:10: ++%32la: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la: 0x2.3456789abcdfep0123:0:23: ++%32la: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la: 0x2.3456789abcdfep+123:0:23: ++%32la: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32la: 0x7.ffffffffffffcp1021:0:23: ++%32la: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32la: 0xf.ffffffffffff8p+1020:0:24: ++%32la: infinity:1:9:inf: ++%*32la: infinity:0:9: ++%32la: +nan():1:7:nan: ++%*32la: +nan():0:7: ++%32la: +nan(09A_Zaz):1:14:nan: ++%*32la: +nan(09A_Zaz):0:14: ++%32la: +0x0p0:1:7:0x0: ++%*32la: +0x0p0:0:7: ++%32la: +0x0p+0:1:8:0x0: ++%*32la: +0x0p+0:0:8: ++%32la: +0x8p-1025:1:11:0x1p-1022: ++%*32la: +0x8p-1025:0:11: ++%32la: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32la: +0x2.3456789abcdfep0123:0:24: ++%32la: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32la: +0x2.3456789abcdfep+123:0:24: ++%32la: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32la: +0x7.ffffffffffffcp1021:0:24: ++%32la: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32la: +0xf.ffffffffffff8p+1020:0:25: ++%32la: +infinity:1:10:inf: ++%*32la: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +new file mode 100644 +index 0000000000000000..3b5a4fe81268339e +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +@@ -0,0 +1,682 @@ ++%lA::0:-1: ++%*lA::0:-1: ++%lA:-INFINITY:1:9:-inf: ++%*lA:-INFINITY:0:9: ++%lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*lA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*lA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lA:-0X2.3456789ABCDFEP+123:0:23: ++%lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lA:-0X2.3456789ABCDFEP0123:0:23: ++%lA:-0X8P-1025:1:10:-0x1p-1022: ++%*lA:-0X8P-1025:0:10: ++%lA:-0X0P+0:1:7:-0x0: ++%*lA:-0X0P+0:0:7: ++%lA:-0X0P0:1:6:-0x0: ++%*lA:-0X0P0:0:6: ++%lA:-NAN(09A_Zaz):1:13:-nan: ++%*lA:-NAN(09A_Zaz):0:13: ++%lA:-NAN():1:6:-nan: ++%*lA:-NAN():0:6: ++%lA:NAN():1:5:nan: ++%*lA:NAN():0:5: ++%lA:NAN(09A_Zaz):1:12:nan: ++%*lA:NAN(09A_Zaz):0:12: ++%lA:0X0P0:1:5:0x0: ++%*lA:0X0P0:0:5: ++%lA:0X0P+0:1:6:0x0: ++%*lA:0X0P+0:0:6: ++%lA:0X8P-1025:1:9:0x1p-1022: ++%*lA:0X8P-1025:0:9: ++%lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lA:0X2.3456789ABCDFEP0123:0:22: ++%lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lA:0X2.3456789ABCDFEP+123:0:22: ++%lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*lA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*lA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%lA:INFINITY:1:8:inf: ++%*lA:INFINITY:0:8: ++%lA:+NAN():1:6:nan: ++%*lA:+NAN():0:6: ++%lA:+NAN(09A_Zaz):1:13:nan: ++%*lA:+NAN(09A_Zaz):0:13: ++%lA:+0X0P0:1:6:0x0: ++%*lA:+0X0P0:0:6: ++%lA:+0X0P+0:1:7:0x0: ++%*lA:+0X0P+0:0:7: ++%lA:+0X8P-1025:1:10:0x1p-1022: ++%*lA:+0X8P-1025:0:10: ++%lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lA:+0X2.3456789ABCDFEP0123:0:23: ++%lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lA:+0X2.3456789ABCDFEP+123:0:23: ++%lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*lA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*lA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lA:+INFINITY:1:9:inf: ++%*lA:+INFINITY:0:9: ++%1lA::0:-1: ++%*1lA::0:-1: ++%1lA:-INFINITY:0:-1: ++%*1lA:-INFINITY:0:-1: ++%1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lA:-0X2.3456789ABCDFEP+123:0:-1: ++%*1lA:-0X2.3456789ABCDFEP+123:0:-1: ++%1lA:-0X2.3456789ABCDFEP0123:0:-1: ++%*1lA:-0X2.3456789ABCDFEP0123:0:-1: ++%1lA:-0X8P-1025:0:-1: ++%*1lA:-0X8P-1025:0:-1: ++%1lA:-0X0P+0:0:-1: ++%*1lA:-0X0P+0:0:-1: ++%1lA:-0X0P0:0:-1: ++%*1lA:-0X0P0:0:-1: ++%1lA:-NAN(09A_Zaz):0:-1: ++%*1lA:-NAN(09A_Zaz):0:-1: ++%1lA:-NAN():0:-1: ++%*1lA:-NAN():0:-1: ++%1lA:NAN():0:-1: ++%*1lA:NAN():0:-1: ++%1lA:NAN(09A_Zaz):0:-1: ++%*1lA:NAN(09A_Zaz):0:-1: ++%1lA:0X0P0:1:1:0x0: ++%*1lA:0X0P0:0:1: ++%1lA:0X0P+0:1:1:0x0: ++%*1lA:0X0P+0:0:1: ++%1lA:0X8P-1025:1:1:0x0: ++%*1lA:0X8P-1025:0:1: ++%1lA:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1lA:0X2.3456789ABCDFEP0123:0:1: ++%1lA:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1lA:0X2.3456789ABCDFEP+123:0:1: ++%1lA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1lA:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1lA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1lA:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1lA:INFINITY:0:-1: ++%*1lA:INFINITY:0:-1: ++%1lA:+NAN():0:-1: ++%*1lA:+NAN():0:-1: ++%1lA:+NAN(09A_Zaz):0:-1: ++%*1lA:+NAN(09A_Zaz):0:-1: ++%1lA:+0X0P0:0:-1: ++%*1lA:+0X0P0:0:-1: ++%1lA:+0X0P+0:0:-1: ++%*1lA:+0X0P+0:0:-1: ++%1lA:+0X8P-1025:0:-1: ++%*1lA:+0X8P-1025:0:-1: ++%1lA:+0X2.3456789ABCDFEP0123:0:-1: ++%*1lA:+0X2.3456789ABCDFEP0123:0:-1: ++%1lA:+0X2.3456789ABCDFEP+123:0:-1: ++%*1lA:+0X2.3456789ABCDFEP+123:0:-1: ++%1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lA:+INFINITY:0:-1: ++%*1lA:+INFINITY:0:-1: ++%2lA::0:-1: ++%*2lA::0:-1: ++%2lA:-INFINITY:0:-1: ++%*2lA:-INFINITY:0:-1: ++%2lA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2lA:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2lA:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lA:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2lA:-0X2.3456789ABCDFEP+123:0:2: ++%2lA:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2lA:-0X2.3456789ABCDFEP0123:0:2: ++%2lA:-0X8P-1025:1:2:-0x0: ++%*2lA:-0X8P-1025:0:2: ++%2lA:-0X0P+0:1:2:-0x0: ++%*2lA:-0X0P+0:0:2: ++%2lA:-0X0P0:1:2:-0x0: ++%*2lA:-0X0P0:0:2: ++%2lA:-NAN(09A_Zaz):0:-1: ++%*2lA:-NAN(09A_Zaz):0:-1: ++%2lA:-NAN():0:-1: ++%*2lA:-NAN():0:-1: ++%2lA:NAN():0:-1: ++%*2lA:NAN():0:-1: ++%2lA:NAN(09A_Zaz):0:-1: ++%*2lA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lA:0X0P0:0:-1: ++# BZ12701 %*2lA:0X0P0:0:-1: ++# BZ12701 %2lA:0X0P+0:0:-1: ++# BZ12701 %*2lA:0X0P+0:0:-1: ++# BZ12701 %2lA:0X8P-1025:0:-1: ++# BZ12701 %*2lA:0X8P-1025:0:-1: ++# BZ12701 %2lA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2lA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2lA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2lA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2lA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2lA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2lA:INFINITY:0:-1: ++%*2lA:INFINITY:0:-1: ++%2lA:+NAN():0:-1: ++%*2lA:+NAN():0:-1: ++%2lA:+NAN(09A_Zaz):0:-1: ++%*2lA:+NAN(09A_Zaz):0:-1: ++%2lA:+0X0P0:1:2:0x0: ++%*2lA:+0X0P0:0:2: ++%2lA:+0X0P+0:1:2:0x0: ++%*2lA:+0X0P+0:0:2: ++%2lA:+0X8P-1025:1:2:0x0: ++%*2lA:+0X8P-1025:0:2: ++%2lA:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2lA:+0X2.3456789ABCDFEP0123:0:2: ++%2lA:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2lA:+0X2.3456789ABCDFEP+123:0:2: ++%2lA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2lA:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2lA:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lA:+INFINITY:0:-1: ++%*2lA:+INFINITY:0:-1: ++%3lA::0:-1: ++%*3lA::0:-1: ++%3lA:-INFINITY:0:-1: ++%*3lA:-INFINITY:0:-1: ++# BZ12701 %3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lA:-0X8P-1025:0:-1: ++# BZ12701 %*3lA:-0X8P-1025:0:-1: ++# BZ12701 %3lA:-0X0P+0:0:-1: ++# BZ12701 %*3lA:-0X0P+0:0:-1: ++# BZ12701 %3lA:-0X0P0:0:-1: ++# BZ12701 %*3lA:-0X0P0:0:-1: ++%3lA:-NAN(09A_Zaz):0:-1: ++%*3lA:-NAN(09A_Zaz):0:-1: ++%3lA:-NAN():0:-1: ++%*3lA:-NAN():0:-1: ++%3lA:NAN():1:3:nan: ++%*3lA:NAN():0:3: ++%3lA:NAN(09A_Zaz):1:3:nan: ++%*3lA:NAN(09A_Zaz):0:3: ++%3lA:0X0P0:1:3:0x0: ++%*3lA:0X0P0:0:3: ++%3lA:0X0P+0:1:3:0x0: ++%*3lA:0X0P+0:0:3: ++%3lA:0X8P-1025:1:3:0x1p3: ++%*3lA:0X8P-1025:0:3: ++%3lA:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3lA:0X2.3456789ABCDFEP0123:0:3: ++%3lA:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3lA:0X2.3456789ABCDFEP+123:0:3: ++%3lA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3lA:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3lA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3lA:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3lA:INFINITY:1:3:inf: ++%*3lA:INFINITY:0:3: ++%3lA:+NAN():0:-1: ++%*3lA:+NAN():0:-1: ++%3lA:+NAN(09A_Zaz):0:-1: ++%*3lA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lA:+0X0P0:0:-1: ++# BZ12701 %*3lA:+0X0P0:0:-1: ++# BZ12701 %3lA:+0X0P+0:0:-1: ++# BZ12701 %*3lA:+0X0P+0:0:-1: ++# BZ12701 %3lA:+0X8P-1025:0:-1: ++# BZ12701 %*3lA:+0X8P-1025:0:-1: ++# BZ12701 %3lA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3lA:+INFINITY:0:-1: ++%*3lA:+INFINITY:0:-1: ++%4lA::0:-1: ++%*4lA::0:-1: ++%4lA:-INFINITY:1:4:-inf: ++%*4lA:-INFINITY:0:4: ++%4lA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4lA:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4lA:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4lA:-0X2.3456789ABCDFEP+123:0:4: ++%4lA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4lA:-0X2.3456789ABCDFEP0123:0:4: ++%4lA:-0X8P-1025:1:4:-0x1p3: ++%*4lA:-0X8P-1025:0:4: ++%4lA:-0X0P+0:1:4:-0x0: ++%*4lA:-0X0P+0:0:4: ++%4lA:-0X0P0:1:4:-0x0: ++%*4lA:-0X0P0:0:4: ++%4lA:-NAN(09A_Zaz):1:4:-nan: ++%*4lA:-NAN(09A_Zaz):0:4: ++%4lA:-NAN():1:4:-nan: ++%*4lA:-NAN():0:4: ++%4lA:NAN():0:-1: ++%*4lA:NAN():0:-1: ++%4lA:NAN(09A_Zaz):0:-1: ++%*4lA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4lA:0X0P0:0:-1: ++# BZ12701 %*4lA:0X0P0:0:-1: ++# BZ12701 %4lA:0X0P+0:0:-1: ++# BZ12701 %*4lA:0X0P+0:0:-1: ++# BZ12701 %4lA:0X8P-1025:0:-1: ++# BZ12701 %*4lA:0X8P-1025:0:-1: ++%4lA:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lA:0X2.3456789ABCDFEP0123:0:4: ++%4lA:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lA:0X2.3456789ABCDFEP+123:0:4: ++%4lA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lA:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lA:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:INFINITY:0:-1: ++%*4lA:INFINITY:0:-1: ++%4lA:+NAN():1:4:nan: ++%*4lA:+NAN():0:4: ++%4lA:+NAN(09A_Zaz):1:4:nan: ++%*4lA:+NAN(09A_Zaz):0:4: ++%4lA:+0X0P0:1:4:0x0: ++%*4lA:+0X0P0:0:4: ++%4lA:+0X0P+0:1:4:0x0: ++%*4lA:+0X0P+0:0:4: ++%4lA:+0X8P-1025:1:4:0x1p3: ++%*4lA:+0X8P-1025:0:4: ++%4lA:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lA:+0X2.3456789ABCDFEP0123:0:4: ++%4lA:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lA:+0X2.3456789ABCDFEP+123:0:4: ++%4lA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lA:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lA:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:+INFINITY:1:4:inf: ++%*4lA:+INFINITY:0:4: ++%5lA::0:-1: ++%*5lA::0:-1: ++%5lA:-INFINITY:0:-1: ++%*5lA:-INFINITY:0:-1: ++%5lA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5lA:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5lA:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5lA:-0X2.3456789ABCDFEP+123:0:5: ++%5lA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5lA:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5lA:-0X8P-1025:0:-1: ++# BZ12701 %*5lA:-0X8P-1025:0:-1: ++# BZ12701 %5lA:-0X0P+0:0:-1: ++# BZ12701 %*5lA:-0X0P+0:0:-1: ++# BZ12701 %5lA:-0X0P0:0:-1: ++# BZ12701 %*5lA:-0X0P0:0:-1: ++%5lA:-NAN(09A_Zaz):0:-1: ++%*5lA:-NAN(09A_Zaz):0:-1: ++%5lA:-NAN():0:-1: ++%*5lA:-NAN():0:-1: ++%5lA:NAN():1:5:nan: ++%*5lA:NAN():0:5: ++%5lA:NAN(09A_Zaz):0:-1: ++%*5lA:NAN(09A_Zaz):0:-1: ++%5lA:0X0P0:1:5:0x0: ++%*5lA:0X0P0:0:5: ++# BZ12701 %5lA:0X0P+0:0:-1: ++# BZ12701 %*5lA:0X0P+0:0:-1: ++# BZ12701 %5lA:0X8P-1025:0:-1: ++# BZ12701 %*5lA:0X8P-1025:0:-1: ++%5lA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5lA:0X2.3456789ABCDFEP0123:0:5: ++%5lA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5lA:0X2.3456789ABCDFEP+123:0:5: ++%5lA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5lA:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5lA:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:INFINITY:0:-1: ++%*5lA:INFINITY:0:-1: ++%5lA:+NAN():0:-1: ++%*5lA:+NAN():0:-1: ++%5lA:+NAN(09A_Zaz):0:-1: ++%*5lA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5lA:+0X0P0:0:-1: ++# BZ12701 %*5lA:+0X0P0:0:-1: ++# BZ12701 %5lA:+0X0P+0:0:-1: ++# BZ12701 %*5lA:+0X0P+0:0:-1: ++# BZ12701 %5lA:+0X8P-1025:0:-1: ++# BZ12701 %*5lA:+0X8P-1025:0:-1: ++%5lA:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5lA:+0X2.3456789ABCDFEP0123:0:5: ++%5lA:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5lA:+0X2.3456789ABCDFEP+123:0:5: ++%5lA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5lA:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5lA:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:+INFINITY:0:-1: ++%*5lA:+INFINITY:0:-1: ++%6lA::0:-1: ++%*6lA::0:-1: ++%6lA:-INFINITY:0:-1: ++%*6lA:-INFINITY:0:-1: ++%6lA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6lA:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6lA:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6lA:-0X2.3456789ABCDFEP+123:0:6: ++%6lA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6lA:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6lA:-0X8P-1025:0:-1: ++# BZ12701 %*6lA:-0X8P-1025:0:-1: ++# BZ12701 %6lA:-0X0P+0:0:-1: ++# BZ12701 %*6lA:-0X0P+0:0:-1: ++%6lA:-0X0P0:1:6:-0x0: ++%*6lA:-0X0P0:0:6: ++%6lA:-NAN(09A_Zaz):0:-1: ++%*6lA:-NAN(09A_Zaz):0:-1: ++%6lA:-NAN():1:6:-nan: ++%*6lA:-NAN():0:6: ++%6lA:NAN():1:5:nan: ++%*6lA:NAN():0:5: ++%6lA:NAN(09A_Zaz):0:-1: ++%*6lA:NAN(09A_Zaz):0:-1: ++%6lA:0X0P0:1:5:0x0: ++%*6lA:0X0P0:0:5: ++%6lA:0X0P+0:1:6:0x0: ++%*6lA:0X0P+0:0:6: ++%6lA:0X8P-1025:1:6:0x1p2: ++%*6lA:0X8P-1025:0:6: ++%6lA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6lA:0X2.3456789ABCDFEP0123:0:6: ++%6lA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6lA:0X2.3456789ABCDFEP+123:0:6: ++%6lA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6lA:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6lA:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:INFINITY:0:-1: ++%*6lA:INFINITY:0:-1: ++%6lA:+NAN():1:6:nan: ++%*6lA:+NAN():0:6: ++%6lA:+NAN(09A_Zaz):0:-1: ++%*6lA:+NAN(09A_Zaz):0:-1: ++%6lA:+0X0P0:1:6:0x0: ++%*6lA:+0X0P0:0:6: ++# BZ12701 %6lA:+0X0P+0:0:-1: ++# BZ12701 %*6lA:+0X0P+0:0:-1: ++# BZ12701 %6lA:+0X8P-1025:0:-1: ++# BZ12701 %*6lA:+0X8P-1025:0:-1: ++%6lA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6lA:+0X2.3456789ABCDFEP0123:0:6: ++%6lA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6lA:+0X2.3456789ABCDFEP+123:0:6: ++%6lA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6lA:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6lA:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:+INFINITY:0:-1: ++%*6lA:+INFINITY:0:-1: ++%20lA::0:-1: ++%*20lA::0:-1: ++%20lA:-INFINITY:1:9:-inf: ++%*20lA:-INFINITY:0:9: ++# BZ12701 %20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20lA:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lA:-0X2.3456789ABCDFEP+123:0:-1: ++%20lA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lA:-0X2.3456789ABCDFEP0123:0:20: ++%20lA:-0X8P-1025:1:10:-0x1p-1022: ++%*20lA:-0X8P-1025:0:10: ++%20lA:-0X0P+0:1:7:-0x0: ++%*20lA:-0X0P+0:0:7: ++%20lA:-0X0P0:1:6:-0x0: ++%*20lA:-0X0P0:0:6: ++%20lA:-NAN(09A_Zaz):1:13:-nan: ++%*20lA:-NAN(09A_Zaz):0:13: ++%20lA:-NAN():1:6:-nan: ++%*20lA:-NAN():0:6: ++%20lA:NAN():1:5:nan: ++%*20lA:NAN():0:5: ++%20lA:NAN(09A_Zaz):1:12:nan: ++%*20lA:NAN(09A_Zaz):0:12: ++%20lA:0X0P0:1:5:0x0: ++%*20lA:0X0P0:0:5: ++%20lA:0X0P+0:1:6:0x0: ++%*20lA:0X0P+0:0:6: ++%20lA:0X8P-1025:1:9:0x1p-1022: ++%*20lA:0X8P-1025:0:9: ++%20lA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lA:0X2.3456789ABCDFEP0123:0:20: ++%20lA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lA:0X2.3456789ABCDFEP+123:0:20: ++%20lA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20lA:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20lA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20lA:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20lA:INFINITY:1:8:inf: ++%*20lA:INFINITY:0:8: ++%20lA:+NAN():1:6:nan: ++%*20lA:+NAN():0:6: ++%20lA:+NAN(09A_Zaz):1:13:nan: ++%*20lA:+NAN(09A_Zaz):0:13: ++%20lA:+0X0P0:1:6:0x0: ++%*20lA:+0X0P0:0:6: ++%20lA:+0X0P+0:1:7:0x0: ++%*20lA:+0X0P+0:0:7: ++%20lA:+0X8P-1025:1:10:0x1p-1022: ++%*20lA:+0X8P-1025:0:10: ++%20lA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lA:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lA:+0X2.3456789ABCDFEP+123:0:-1: ++%20lA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20lA:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lA:+INFINITY:1:9:inf: ++%*20lA:+INFINITY:0:9: ++%32lA::0:-1: ++%*32lA::0:-1: ++%32lA:-INFINITY:1:9:-inf: ++%*32lA:-INFINITY:0:9: ++%32lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32lA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lA:-0X2.3456789ABCDFEP+123:0:23: ++%32lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lA:-0X2.3456789ABCDFEP0123:0:23: ++%32lA:-0X8P-1025:1:10:-0x1p-1022: ++%*32lA:-0X8P-1025:0:10: ++%32lA:-0X0P+0:1:7:-0x0: ++%*32lA:-0X0P+0:0:7: ++%32lA:-0X0P0:1:6:-0x0: ++%*32lA:-0X0P0:0:6: ++%32lA:-NAN(09A_Zaz):1:13:-nan: ++%*32lA:-NAN(09A_Zaz):0:13: ++%32lA:-NAN():1:6:-nan: ++%*32lA:-NAN():0:6: ++%32lA:NAN():1:5:nan: ++%*32lA:NAN():0:5: ++%32lA:NAN(09A_Zaz):1:12:nan: ++%*32lA:NAN(09A_Zaz):0:12: ++%32lA:0X0P0:1:5:0x0: ++%*32lA:0X0P0:0:5: ++%32lA:0X0P+0:1:6:0x0: ++%*32lA:0X0P+0:0:6: ++%32lA:0X8P-1025:1:9:0x1p-1022: ++%*32lA:0X8P-1025:0:9: ++%32lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lA:0X2.3456789ABCDFEP0123:0:22: ++%32lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lA:0X2.3456789ABCDFEP+123:0:22: ++%32lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32lA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32lA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32lA:INFINITY:1:8:inf: ++%*32lA:INFINITY:0:8: ++%32lA:+NAN():1:6:nan: ++%*32lA:+NAN():0:6: ++%32lA:+NAN(09A_Zaz):1:13:nan: ++%*32lA:+NAN(09A_Zaz):0:13: ++%32lA:+0X0P0:1:6:0x0: ++%*32lA:+0X0P0:0:6: ++%32lA:+0X0P+0:1:7:0x0: ++%*32lA:+0X0P+0:0:7: ++%32lA:+0X8P-1025:1:10:0x1p-1022: ++%*32lA:+0X8P-1025:0:10: ++%32lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA:+0X2.3456789ABCDFEP0123:0:23: ++%32lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA:+0X2.3456789ABCDFEP+123:0:23: ++%32lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA:+INFINITY:1:9:inf: ++%*32lA:+INFINITY:0:9: ++%5lA: :0:-1: ++%*5lA: :0:-1: ++%5lA: -INFINITY:0:-1: ++%*5lA: -INFINITY:0:-1: ++%5lA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5lA: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5lA: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5lA: -0X2.3456789ABCDFEP+123:0:6: ++%5lA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5lA: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5lA: -0X8P-1025:0:-1: ++# BZ12701 %*5lA: -0X8P-1025:0:-1: ++# BZ12701 %5lA: -0X0P+0:0:-1: ++# BZ12701 %*5lA: -0X0P+0:0:-1: ++# BZ12701 %5lA: -0X0P0:0:-1: ++# BZ12701 %*5lA: -0X0P0:0:-1: ++%5lA: -NAN(09A_Zaz):0:-1: ++%*5lA: -NAN(09A_Zaz):0:-1: ++%5lA: -NAN():0:-1: ++%*5lA: -NAN():0:-1: ++%5lA: NAN():1:6:nan: ++%*5lA: NAN():0:6: ++%5lA: NAN(09A_Zaz):0:-1: ++%*5lA: NAN(09A_Zaz):0:-1: ++%5lA: 0X0P0:1:6:0x0: ++%*5lA: 0X0P0:0:6: ++# BZ12701 %5lA: 0X0P+0:0:-1: ++# BZ12701 %*5lA: 0X0P+0:0:-1: ++# BZ12701 %5lA: 0X8P-1025:0:-1: ++# BZ12701 %*5lA: 0X8P-1025:0:-1: ++%5lA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5lA: 0X2.3456789ABCDFEP0123:0:6: ++%5lA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5lA: 0X2.3456789ABCDFEP+123:0:6: ++%5lA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5lA: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5lA: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: INFINITY:0:-1: ++%*5lA: INFINITY:0:-1: ++%5lA: +NAN():0:-1: ++%*5lA: +NAN():0:-1: ++%5lA: +NAN(09A_Zaz):0:-1: ++%*5lA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5lA: +0X0P0:0:-1: ++# BZ12701 %*5lA: +0X0P0:0:-1: ++# BZ12701 %5lA: +0X0P+0:0:-1: ++# BZ12701 %*5lA: +0X0P+0:0:-1: ++# BZ12701 %5lA: +0X8P-1025:0:-1: ++# BZ12701 %*5lA: +0X8P-1025:0:-1: ++%5lA: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5lA: +0X2.3456789ABCDFEP0123:0:6: ++%5lA: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5lA: +0X2.3456789ABCDFEP+123:0:6: ++%5lA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5lA: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5lA: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: +INFINITY:0:-1: ++%*5lA: +INFINITY:0:-1: ++%32lA: :0:-1: ++%*32lA: :0:-1: ++%32lA: -INFINITY:1:10:-inf: ++%*32lA: -INFINITY:0:10: ++%32lA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lA: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32lA: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lA: -0X2.3456789ABCDFEP+123:0:24: ++%32lA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lA: -0X2.3456789ABCDFEP0123:0:24: ++%32lA: -0X8P-1025:1:11:-0x1p-1022: ++%*32lA: -0X8P-1025:0:11: ++%32lA: -0X0P+0:1:8:-0x0: ++%*32lA: -0X0P+0:0:8: ++%32lA: -0X0P0:1:7:-0x0: ++%*32lA: -0X0P0:0:7: ++%32lA: -NAN(09A_Zaz):1:14:-nan: ++%*32lA: -NAN(09A_Zaz):0:14: ++%32lA: -NAN():1:7:-nan: ++%*32lA: -NAN():0:7: ++%32lA: NAN():1:6:nan: ++%*32lA: NAN():0:6: ++%32lA: NAN(09A_Zaz):1:13:nan: ++%*32lA: NAN(09A_Zaz):0:13: ++%32lA: 0X0P0:1:6:0x0: ++%*32lA: 0X0P0:0:6: ++%32lA: 0X0P+0:1:7:0x0: ++%*32lA: 0X0P+0:0:7: ++%32lA: 0X8P-1025:1:10:0x1p-1022: ++%*32lA: 0X8P-1025:0:10: ++%32lA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA: 0X2.3456789ABCDFEP0123:0:23: ++%32lA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA: 0X2.3456789ABCDFEP+123:0:23: ++%32lA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lA: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lA: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA: INFINITY:1:9:inf: ++%*32lA: INFINITY:0:9: ++%32lA: +NAN():1:7:nan: ++%*32lA: +NAN():0:7: ++%32lA: +NAN(09A_Zaz):1:14:nan: ++%*32lA: +NAN(09A_Zaz):0:14: ++%32lA: +0X0P0:1:7:0x0: ++%*32lA: +0X0P0:0:7: ++%32lA: +0X0P+0:1:8:0x0: ++%*32lA: +0X0P+0:0:8: ++%32lA: +0X8P-1025:1:11:0x1p-1022: ++%*32lA: +0X8P-1025:0:11: ++%32lA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lA: +0X2.3456789ABCDFEP0123:0:24: ++%32lA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lA: +0X2.3456789ABCDFEP+123:0:24: ++%32lA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32lA: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32lA: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lA: +INFINITY:1:10:inf: ++%*32lA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +new file mode 100644 +index 0000000000000000..cf1ea542c94e4082 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +@@ -0,0 +1,558 @@ ++%le::0:-1: ++%*le::0:-1: ++%le:-infinity:1:9:-inf: ++%*le:-infinity:0:9: ++%le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*le:-1.79769313486231570814527423731704357e+308:0:43: ++%le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*le:-1.79769313486231570814527423731704357e308:0:42: ++%le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*le:-2.3441674165664682593913711430784253952e+37:0:44: ++%le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*le:-2.3441674165664682593913711430784253952e037:0:44: ++%le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*le:-2.22507385850720138309023271733240406e-308:0:43: ++%le:-0e+0:1:5:-0x0: ++%*le:-0e+0:0:5: ++%le:-0e0:1:4:-0x0: ++%*le:-0e0:0:4: ++%le:-nan(09A_Zaz):1:13:-nan: ++%*le:-nan(09A_Zaz):0:13: ++%le:-nan():1:6:-nan: ++%*le:-nan():0:6: ++%le:nan():1:5:nan: ++%*le:nan():0:5: ++%le:nan(09A_Zaz):1:12:nan: ++%*le:nan(09A_Zaz):0:12: ++%le:0e0:1:3:0x0: ++%*le:0e0:0:3: ++%le:0e+0:1:4:0x0: ++%*le:0e+0:0:4: ++%le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*le:2.22507385850720138309023271733240406e-308:0:42: ++%le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*le:2.3441674165664682593913711430784253952e037:0:43: ++%le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*le:2.3441674165664682593913711430784253952e+37:0:43: ++%le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*le:1.79769313486231570814527423731704357e308:0:41: ++%le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*le:1.79769313486231570814527423731704357e+308:0:42: ++%le:infinity:1:8:inf: ++%*le:infinity:0:8: ++%le:+nan():1:6:nan: ++%*le:+nan():0:6: ++%le:+nan(09A_Zaz):1:13:nan: ++%*le:+nan(09A_Zaz):0:13: ++%le:+0e0:1:4:0x0: ++%*le:+0e0:0:4: ++%le:+0e+0:1:5:0x0: ++%*le:+0e+0:0:5: ++%le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*le:+2.22507385850720138309023271733240406e-308:0:43: ++%le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*le:+2.3441674165664682593913711430784253952e037:0:44: ++%le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*le:+2.3441674165664682593913711430784253952e+37:0:44: ++%le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*le:+1.79769313486231570814527423731704357e308:0:42: ++%le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*le:+1.79769313486231570814527423731704357e+308:0:43: ++%le:+infinity:1:9:inf: ++%*le:+infinity:0:9: ++%1le::0:-1: ++%*1le::0:-1: ++%1le:-infinity:0:-1: ++%*1le:-infinity:0:-1: ++%1le:-1.79769313486231570814527423731704357e+308:0:-1: ++%*1le:-1.79769313486231570814527423731704357e+308:0:-1: ++%1le:-1.79769313486231570814527423731704357e308:0:-1: ++%*1le:-1.79769313486231570814527423731704357e308:0:-1: ++%1le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%*1le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%1le:-2.3441674165664682593913711430784253952e037:0:-1: ++%*1le:-2.3441674165664682593913711430784253952e037:0:-1: ++%1le:-2.22507385850720138309023271733240406e-308:0:-1: ++%*1le:-2.22507385850720138309023271733240406e-308:0:-1: ++%1le:-0e+0:0:-1: ++%*1le:-0e+0:0:-1: ++%1le:-0e0:0:-1: ++%*1le:-0e0:0:-1: ++%1le:-nan(09A_Zaz):0:-1: ++%*1le:-nan(09A_Zaz):0:-1: ++%1le:-nan():0:-1: ++%*1le:-nan():0:-1: ++%1le:nan():0:-1: ++%*1le:nan():0:-1: ++%1le:nan(09A_Zaz):0:-1: ++%*1le:nan(09A_Zaz):0:-1: ++%1le:0e0:1:1:0x0: ++%*1le:0e0:0:1: ++%1le:0e+0:1:1:0x0: ++%*1le:0e+0:0:1: ++%1le:2.22507385850720138309023271733240406e-308:1:1:0x1p1: ++%*1le:2.22507385850720138309023271733240406e-308:0:1: ++%1le:2.3441674165664682593913711430784253952e037:1:1:0x1p1: ++%*1le:2.3441674165664682593913711430784253952e037:0:1: ++%1le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1: ++%*1le:2.3441674165664682593913711430784253952e+37:0:1: ++%1le:1.79769313486231570814527423731704357e308:1:1:0x1: ++%*1le:1.79769313486231570814527423731704357e308:0:1: ++%1le:1.79769313486231570814527423731704357e+308:1:1:0x1: ++%*1le:1.79769313486231570814527423731704357e+308:0:1: ++%1le:infinity:0:-1: ++%*1le:infinity:0:-1: ++%1le:+nan():0:-1: ++%*1le:+nan():0:-1: ++%1le:+nan(09A_Zaz):0:-1: ++%*1le:+nan(09A_Zaz):0:-1: ++%1le:+0e0:0:-1: ++%*1le:+0e0:0:-1: ++%1le:+0e+0:0:-1: ++%*1le:+0e+0:0:-1: ++%1le:+2.22507385850720138309023271733240406e-308:0:-1: ++%*1le:+2.22507385850720138309023271733240406e-308:0:-1: ++%1le:+2.3441674165664682593913711430784253952e037:0:-1: ++%*1le:+2.3441674165664682593913711430784253952e037:0:-1: ++%1le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%*1le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%1le:+1.79769313486231570814527423731704357e308:0:-1: ++%*1le:+1.79769313486231570814527423731704357e308:0:-1: ++%1le:+1.79769313486231570814527423731704357e+308:0:-1: ++%*1le:+1.79769313486231570814527423731704357e+308:0:-1: ++%1le:+infinity:0:-1: ++%*1le:+infinity:0:-1: ++%2le::0:-1: ++%*2le::0:-1: ++%2le:-infinity:0:-1: ++%*2le:-infinity:0:-1: ++%2le:-1.79769313486231570814527423731704357e+308:1:2:-0x1: ++%*2le:-1.79769313486231570814527423731704357e+308:0:2: ++%2le:-1.79769313486231570814527423731704357e308:1:2:-0x1: ++%*2le:-1.79769313486231570814527423731704357e308:0:2: ++%2le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1: ++%*2le:-2.3441674165664682593913711430784253952e+37:0:2: ++%2le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1: ++%*2le:-2.3441674165664682593913711430784253952e037:0:2: ++%2le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1: ++%*2le:-2.22507385850720138309023271733240406e-308:0:2: ++%2le:-0e+0:1:2:-0x0: ++%*2le:-0e+0:0:2: ++%2le:-0e0:1:2:-0x0: ++%*2le:-0e0:0:2: ++%2le:-nan(09A_Zaz):0:-1: ++%*2le:-nan(09A_Zaz):0:-1: ++%2le:-nan():0:-1: ++%*2le:-nan():0:-1: ++%2le:nan():0:-1: ++%*2le:nan():0:-1: ++%2le:nan(09A_Zaz):0:-1: ++%*2le:nan(09A_Zaz):0:-1: ++# BZ12701 %2le:0e0:0:-1: ++# BZ12701 %*2le:0e0:0:-1: ++# BZ12701 %2le:0e+0:0:-1: ++# BZ12701 %*2le:0e+0:0:-1: ++%2le:2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2le:2.22507385850720138309023271733240406e-308:0:2: ++%2le:2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2le:2.3441674165664682593913711430784253952e037:0:2: ++%2le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2le:2.3441674165664682593913711430784253952e+37:0:2: ++%2le:1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2le:1.79769313486231570814527423731704357e308:0:2: ++%2le:1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2le:1.79769313486231570814527423731704357e+308:0:2: ++%2le:infinity:0:-1: ++%*2le:infinity:0:-1: ++%2le:+nan():0:-1: ++%*2le:+nan():0:-1: ++%2le:+nan(09A_Zaz):0:-1: ++%*2le:+nan(09A_Zaz):0:-1: ++%2le:+0e0:1:2:0x0: ++%*2le:+0e0:0:2: ++%2le:+0e+0:1:2:0x0: ++%*2le:+0e+0:0:2: ++%2le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2le:+2.22507385850720138309023271733240406e-308:0:2: ++%2le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2le:+2.3441674165664682593913711430784253952e037:0:2: ++%2le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2le:+2.3441674165664682593913711430784253952e+37:0:2: ++%2le:+1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2le:+1.79769313486231570814527423731704357e308:0:2: ++%2le:+1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2le:+1.79769313486231570814527423731704357e+308:0:2: ++%2le:+infinity:0:-1: ++%*2le:+infinity:0:-1: ++%3le::0:-1: ++%*3le::0:-1: ++%3le:-infinity:0:-1: ++%*3le:-infinity:0:-1: ++%3le:-1.79769313486231570814527423731704357e+308:1:3:-0x1: ++%*3le:-1.79769313486231570814527423731704357e+308:0:3: ++%3le:-1.79769313486231570814527423731704357e308:1:3:-0x1: ++%*3le:-1.79769313486231570814527423731704357e308:0:3: ++%3le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1: ++%*3le:-2.3441674165664682593913711430784253952e+37:0:3: ++%3le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1: ++%*3le:-2.3441674165664682593913711430784253952e037:0:3: ++%3le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1: ++%*3le:-2.22507385850720138309023271733240406e-308:0:3: ++# BZ12701 %3le:-0e+0:0:-1: ++# BZ12701 %*3le:-0e+0:0:-1: ++# BZ12701 %3le:-0e0:0:-1: ++# BZ12701 %*3le:-0e0:0:-1: ++%3le:-nan(09A_Zaz):0:-1: ++%*3le:-nan(09A_Zaz):0:-1: ++%3le:-nan():0:-1: ++%*3le:-nan():0:-1: ++%3le:nan():1:3:nan: ++%*3le:nan():0:3: ++%3le:nan(09A_Zaz):1:3:nan: ++%*3le:nan(09A_Zaz):0:3: ++%3le:0e0:1:3:0x0: ++%*3le:0e0:0:3: ++# BZ12701 %3le:0e+0:0:-1: ++# BZ12701 %*3le:0e+0:0:-1: ++%3le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1: ++%*3le:2.22507385850720138309023271733240406e-308:0:3: ++%3le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1: ++%*3le:2.3441674165664682593913711430784253952e037:0:3: ++%3le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1: ++%*3le:2.3441674165664682593913711430784253952e+37:0:3: ++%3le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333: ++%*3le:1.79769313486231570814527423731704357e308:0:3: ++%3le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333: ++%*3le:1.79769313486231570814527423731704357e+308:0:3: ++%3le:infinity:1:3:inf: ++%*3le:infinity:0:3: ++%3le:+nan():0:-1: ++%*3le:+nan():0:-1: ++%3le:+nan(09A_Zaz):0:-1: ++%*3le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3le:+0e0:0:-1: ++# BZ12701 %*3le:+0e0:0:-1: ++# BZ12701 %3le:+0e+0:0:-1: ++# BZ12701 %*3le:+0e+0:0:-1: ++%3le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1: ++%*3le:+2.22507385850720138309023271733240406e-308:0:3: ++%3le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1: ++%*3le:+2.3441674165664682593913711430784253952e037:0:3: ++%3le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1: ++%*3le:+2.3441674165664682593913711430784253952e+37:0:3: ++%3le:+1.79769313486231570814527423731704357e308:1:3:0x1: ++%*3le:+1.79769313486231570814527423731704357e308:0:3: ++%3le:+1.79769313486231570814527423731704357e+308:1:3:0x1: ++%*3le:+1.79769313486231570814527423731704357e+308:0:3: ++%3le:+infinity:0:-1: ++%*3le:+infinity:0:-1: ++%4le::0:-1: ++%*4le::0:-1: ++%4le:-infinity:1:4:-inf: ++%*4le:-infinity:0:4: ++%4le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333: ++%*4le:-1.79769313486231570814527423731704357e+308:0:4: ++%4le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333: ++%*4le:-1.79769313486231570814527423731704357e308:0:4: ++%4le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1: ++%*4le:-2.3441674165664682593913711430784253952e+37:0:4: ++%4le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1: ++%*4le:-2.3441674165664682593913711430784253952e037:0:4: ++%4le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1: ++%*4le:-2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %4le:-0e+0:0:-1: ++# BZ12701 %*4le:-0e+0:0:-1: ++%4le:-0e0:1:4:-0x0: ++%*4le:-0e0:0:4: ++%4le:-nan(09A_Zaz):1:4:-nan: ++%*4le:-nan(09A_Zaz):0:4: ++%4le:-nan():1:4:-nan: ++%*4le:-nan():0:4: ++%4le:nan():0:-1: ++%*4le:nan():0:-1: ++%4le:nan(09A_Zaz):0:-1: ++%*4le:nan(09A_Zaz):0:-1: ++%4le:0e0:1:3:0x0: ++%*4le:0e0:0:3: ++%4le:0e+0:1:4:0x0: ++%*4le:0e+0:0:4: ++%4le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4le:2.22507385850720138309023271733240406e-308:0:4: ++%4le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1: ++%*4le:2.3441674165664682593913711430784253952e037:0:4: ++%4le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1: ++%*4le:2.3441674165664682593913711430784253952e+37:0:4: ++%4le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4: ++%*4le:1.79769313486231570814527423731704357e308:0:4: ++%4le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4: ++%*4le:1.79769313486231570814527423731704357e+308:0:4: ++%4le:infinity:0:-1: ++%*4le:infinity:0:-1: ++%4le:+nan():1:4:nan: ++%*4le:+nan():0:4: ++%4le:+nan(09A_Zaz):1:4:nan: ++%*4le:+nan(09A_Zaz):0:4: ++%4le:+0e0:1:4:0x0: ++%*4le:+0e0:0:4: ++# BZ12701 %4le:+0e+0:0:-1: ++# BZ12701 %*4le:+0e+0:0:-1: ++%4le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*4le:+2.22507385850720138309023271733240406e-308:0:4: ++%4le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*4le:+2.3441674165664682593913711430784253952e037:0:4: ++%4le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*4le:+2.3441674165664682593913711430784253952e+37:0:4: ++%4le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*4le:+1.79769313486231570814527423731704357e308:0:4: ++%4le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*4le:+1.79769313486231570814527423731704357e+308:0:4: ++%4le:+infinity:1:4:inf: ++%*4le:+infinity:0:4: ++%40le::0:-1: ++%*40le::0:-1: ++%40le:-infinity:1:9:-inf: ++%*40le:-infinity:0:9: ++# BZ12701 %40le:-1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40le:-1.79769313486231570814527423731704357e+308:0:-1: ++%40le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10: ++%*40le:-1.79769313486231570814527423731704357e308:0:40: ++%40le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1: ++%*40le:-2.3441674165664682593913711430784253952e+37:0:40: ++%40le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1: ++%*40le:-2.3441674165664682593913711430784253952e037:0:40: ++# BZ12701 %40le:-2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40le:-2.22507385850720138309023271733240406e-308:0:-1: ++%40le:-0e+0:1:5:-0x0: ++%*40le:-0e+0:0:5: ++%40le:-0e0:1:4:-0x0: ++%*40le:-0e0:0:4: ++%40le:-nan(09A_Zaz):1:13:-nan: ++%*40le:-nan(09A_Zaz):0:13: ++%40le:-nan():1:6:-nan: ++%*40le:-nan():0:6: ++%40le:nan():1:5:nan: ++%*40le:nan():0:5: ++%40le:nan(09A_Zaz):1:12:nan: ++%*40le:nan(09A_Zaz):0:12: ++%40le:0e0:1:3:0x0: ++%*40le:0e0:0:3: ++%40le:0e+0:1:4:0x0: ++%*40le:0e+0:0:4: ++%40le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9: ++%*40le:2.22507385850720138309023271733240406e-308:0:40: ++# BZ12701 %40le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %*40le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %40le:2.3441674165664682593913711430784253952e+37:0:-1: ++# BZ12701 %*40le:2.3441674165664682593913711430784253952e+37:0:-1: ++%40le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100: ++%*40le:1.79769313486231570814527423731704357e308:0:40: ++%40le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10: ++%*40le:1.79769313486231570814527423731704357e+308:0:40: ++%40le:infinity:1:8:inf: ++%*40le:infinity:0:8: ++%40le:+nan():1:6:nan: ++%*40le:+nan():0:6: ++%40le:+nan(09A_Zaz):1:13:nan: ++%*40le:+nan(09A_Zaz):0:13: ++%40le:+0e0:1:4:0x0: ++%*40le:+0e0:0:4: ++%40le:+0e+0:1:5:0x0: ++%*40le:+0e+0:0:5: ++# BZ12701 %40le:+2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40le:+2.22507385850720138309023271733240406e-308:0:-1: ++%40le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1: ++%*40le:+2.3441674165664682593913711430784253952e037:0:40: ++%40le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1: ++%*40le:+2.3441674165664682593913711430784253952e+37:0:40: ++%40le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10: ++%*40le:+1.79769313486231570814527423731704357e308:0:40: ++# BZ12701 %40le:+1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40le:+1.79769313486231570814527423731704357e+308:0:-1: ++%40le:+infinity:1:9:inf: ++%*40le:+infinity:0:9: ++%48le::0:-1: ++%*48le::0:-1: ++%48le:-infinity:1:9:-inf: ++%*48le:-infinity:0:9: ++%48le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*48le:-1.79769313486231570814527423731704357e+308:0:43: ++%48le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*48le:-1.79769313486231570814527423731704357e308:0:42: ++%48le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48le:-2.3441674165664682593913711430784253952e+37:0:44: ++%48le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48le:-2.3441674165664682593913711430784253952e037:0:44: ++%48le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*48le:-2.22507385850720138309023271733240406e-308:0:43: ++%48le:-0e+0:1:5:-0x0: ++%*48le:-0e+0:0:5: ++%48le:-0e0:1:4:-0x0: ++%*48le:-0e0:0:4: ++%48le:-nan(09A_Zaz):1:13:-nan: ++%*48le:-nan(09A_Zaz):0:13: ++%48le:-nan():1:6:-nan: ++%*48le:-nan():0:6: ++%48le:nan():1:5:nan: ++%*48le:nan():0:5: ++%48le:nan(09A_Zaz):1:12:nan: ++%*48le:nan(09A_Zaz):0:12: ++%48le:0e0:1:3:0x0: ++%*48le:0e0:0:3: ++%48le:0e+0:1:4:0x0: ++%*48le:0e+0:0:4: ++%48le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*48le:2.22507385850720138309023271733240406e-308:0:42: ++%48le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48le:2.3441674165664682593913711430784253952e037:0:43: ++%48le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48le:2.3441674165664682593913711430784253952e+37:0:43: ++%48le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*48le:1.79769313486231570814527423731704357e308:0:41: ++%48le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*48le:1.79769313486231570814527423731704357e+308:0:42: ++%48le:infinity:1:8:inf: ++%*48le:infinity:0:8: ++%48le:+nan():1:6:nan: ++%*48le:+nan():0:6: ++%48le:+nan(09A_Zaz):1:13:nan: ++%*48le:+nan(09A_Zaz):0:13: ++%48le:+0e0:1:4:0x0: ++%*48le:+0e0:0:4: ++%48le:+0e+0:1:5:0x0: ++%*48le:+0e+0:0:5: ++%48le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48le:+2.22507385850720138309023271733240406e-308:0:43: ++%48le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le:+2.3441674165664682593913711430784253952e037:0:44: ++%48le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le:+2.3441674165664682593913711430784253952e+37:0:44: ++%48le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48le:+1.79769313486231570814527423731704357e308:0:42: ++%48le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48le:+1.79769313486231570814527423731704357e+308:0:43: ++%48le:+infinity:1:9:inf: ++%*48le:+infinity:0:9: ++%3le: :0:-1: ++%*3le: :0:-1: ++%3le: -infinity:0:-1: ++%*3le: -infinity:0:-1: ++%3le: -1.79769313486231570814527423731704357e+308:1:4:-0x1: ++%*3le: -1.79769313486231570814527423731704357e+308:0:4: ++%3le: -1.79769313486231570814527423731704357e308:1:4:-0x1: ++%*3le: -1.79769313486231570814527423731704357e308:0:4: ++%3le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1: ++%*3le: -2.3441674165664682593913711430784253952e+37:0:4: ++%3le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1: ++%*3le: -2.3441674165664682593913711430784253952e037:0:4: ++%3le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1: ++%*3le: -2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %3le: -0e+0:0:-1: ++# BZ12701 %*3le: -0e+0:0:-1: ++# BZ12701 %3le: -0e0:0:-1: ++# BZ12701 %*3le: -0e0:0:-1: ++%3le: -nan(09A_Zaz):0:-1: ++%*3le: -nan(09A_Zaz):0:-1: ++%3le: -nan():0:-1: ++%*3le: -nan():0:-1: ++%3le: nan():1:4:nan: ++%*3le: nan():0:4: ++%3le: nan(09A_Zaz):1:4:nan: ++%*3le: nan(09A_Zaz):0:4: ++%3le: 0e0:1:4:0x0: ++%*3le: 0e0:0:4: ++# BZ12701 %3le: 0e+0:0:-1: ++# BZ12701 %*3le: 0e+0:0:-1: ++%3le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*3le: 2.22507385850720138309023271733240406e-308:0:4: ++%3le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*3le: 2.3441674165664682593913711430784253952e037:0:4: ++%3le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*3le: 2.3441674165664682593913711430784253952e+37:0:4: ++%3le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*3le: 1.79769313486231570814527423731704357e308:0:4: ++%3le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*3le: 1.79769313486231570814527423731704357e+308:0:4: ++%3le: infinity:1:4:inf: ++%*3le: infinity:0:4: ++%3le: +nan():0:-1: ++%*3le: +nan():0:-1: ++%3le: +nan(09A_Zaz):0:-1: ++%*3le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3le: +0e0:0:-1: ++# BZ12701 %*3le: +0e0:0:-1: ++# BZ12701 %3le: +0e+0:0:-1: ++# BZ12701 %*3le: +0e+0:0:-1: ++%3le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1: ++%*3le: +2.22507385850720138309023271733240406e-308:0:4: ++%3le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1: ++%*3le: +2.3441674165664682593913711430784253952e037:0:4: ++%3le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1: ++%*3le: +2.3441674165664682593913711430784253952e+37:0:4: ++%3le: +1.79769313486231570814527423731704357e308:1:4:0x1: ++%*3le: +1.79769313486231570814527423731704357e308:0:4: ++%3le: +1.79769313486231570814527423731704357e+308:1:4:0x1: ++%*3le: +1.79769313486231570814527423731704357e+308:0:4: ++%3le: +infinity:0:-1: ++%*3le: +infinity:0:-1: ++%48le: :0:-1: ++%*48le: :0:-1: ++%48le: -infinity:1:10:-inf: ++%*48le: -infinity:0:10: ++%48le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023: ++%*48le: -1.79769313486231570814527423731704357e+308:0:44: ++%48le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023: ++%*48le: -1.79769313486231570814527423731704357e308:0:43: ++%48le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48le: -2.3441674165664682593913711430784253952e+37:0:45: ++%48le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48le: -2.3441674165664682593913711430784253952e037:0:45: ++%48le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022: ++%*48le: -2.22507385850720138309023271733240406e-308:0:44: ++%48le: -0e+0:1:6:-0x0: ++%*48le: -0e+0:0:6: ++%48le: -0e0:1:5:-0x0: ++%*48le: -0e0:0:5: ++%48le: -nan(09A_Zaz):1:14:-nan: ++%*48le: -nan(09A_Zaz):0:14: ++%48le: -nan():1:7:-nan: ++%*48le: -nan():0:7: ++%48le: nan():1:6:nan: ++%*48le: nan():0:6: ++%48le: nan(09A_Zaz):1:13:nan: ++%*48le: nan(09A_Zaz):0:13: ++%48le: 0e0:1:4:0x0: ++%*48le: 0e0:0:4: ++%48le: 0e+0:1:5:0x0: ++%*48le: 0e+0:0:5: ++%48le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48le: 2.22507385850720138309023271733240406e-308:0:43: ++%48le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le: 2.3441674165664682593913711430784253952e037:0:44: ++%48le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le: 2.3441674165664682593913711430784253952e+37:0:44: ++%48le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48le: 1.79769313486231570814527423731704357e308:0:42: ++%48le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48le: 1.79769313486231570814527423731704357e+308:0:43: ++%48le: infinity:1:9:inf: ++%*48le: infinity:0:9: ++%48le: +nan():1:7:nan: ++%*48le: +nan():0:7: ++%48le: +nan(09A_Zaz):1:14:nan: ++%*48le: +nan(09A_Zaz):0:14: ++%48le: +0e0:1:5:0x0: ++%*48le: +0e0:0:5: ++%48le: +0e+0:1:6:0x0: ++%*48le: +0e+0:0:6: ++%48le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022: ++%*48le: +2.22507385850720138309023271733240406e-308:0:44: ++%48le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48le: +2.3441674165664682593913711430784253952e037:0:45: ++%48le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48le: +2.3441674165664682593913711430784253952e+37:0:45: ++%48le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023: ++%*48le: +1.79769313486231570814527423731704357e308:0:43: ++%48le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023: ++%*48le: +1.79769313486231570814527423731704357e+308:0:44: ++%48le: +infinity:1:10:inf: ++%*48le: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +new file mode 100644 +index 0000000000000000..ba9d5cbb45cfb659 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +@@ -0,0 +1,558 @@ ++%lE::0:-1: ++%*lE::0:-1: ++%lE:-INFINITY:1:9:-inf: ++%*lE:-INFINITY:0:9: ++%lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*lE:-1.79769313486231570814527423731704357E+308:0:43: ++%lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*lE:-1.79769313486231570814527423731704357E308:0:42: ++%lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*lE:-2.3441674165664682593913711430784253952E+37:0:44: ++%lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*lE:-2.3441674165664682593913711430784253952E037:0:44: ++%lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*lE:-2.22507385850720138309023271733240406E-308:0:43: ++%lE:-0E+0:1:5:-0x0: ++%*lE:-0E+0:0:5: ++%lE:-0E0:1:4:-0x0: ++%*lE:-0E0:0:4: ++%lE:-NAN(09A_Zaz):1:13:-nan: ++%*lE:-NAN(09A_Zaz):0:13: ++%lE:-NAN():1:6:-nan: ++%*lE:-NAN():0:6: ++%lE:NAN():1:5:nan: ++%*lE:NAN():0:5: ++%lE:NAN(09A_Zaz):1:12:nan: ++%*lE:NAN(09A_Zaz):0:12: ++%lE:0E0:1:3:0x0: ++%*lE:0E0:0:3: ++%lE:0E+0:1:4:0x0: ++%*lE:0E+0:0:4: ++%lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*lE:2.22507385850720138309023271733240406E-308:0:42: ++%lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*lE:2.3441674165664682593913711430784253952E037:0:43: ++%lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*lE:2.3441674165664682593913711430784253952E+37:0:43: ++%lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*lE:1.79769313486231570814527423731704357E308:0:41: ++%lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*lE:1.79769313486231570814527423731704357E+308:0:42: ++%lE:INFINITY:1:8:inf: ++%*lE:INFINITY:0:8: ++%lE:+NAN():1:6:nan: ++%*lE:+NAN():0:6: ++%lE:+NAN(09A_Zaz):1:13:nan: ++%*lE:+NAN(09A_Zaz):0:13: ++%lE:+0E0:1:4:0x0: ++%*lE:+0E0:0:4: ++%lE:+0E+0:1:5:0x0: ++%*lE:+0E+0:0:5: ++%lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*lE:+2.22507385850720138309023271733240406E-308:0:43: ++%lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*lE:+2.3441674165664682593913711430784253952E037:0:44: ++%lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*lE:+2.3441674165664682593913711430784253952E+37:0:44: ++%lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*lE:+1.79769313486231570814527423731704357E308:0:42: ++%lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*lE:+1.79769313486231570814527423731704357E+308:0:43: ++%lE:+INFINITY:1:9:inf: ++%*lE:+INFINITY:0:9: ++%1lE::0:-1: ++%*1lE::0:-1: ++%1lE:-INFINITY:0:-1: ++%*1lE:-INFINITY:0:-1: ++%1lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%*1lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%1lE:-1.79769313486231570814527423731704357E308:0:-1: ++%*1lE:-1.79769313486231570814527423731704357E308:0:-1: ++%1lE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%*1lE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%1lE:-2.3441674165664682593913711430784253952E037:0:-1: ++%*1lE:-2.3441674165664682593913711430784253952E037:0:-1: ++%1lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%*1lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%1lE:-0E+0:0:-1: ++%*1lE:-0E+0:0:-1: ++%1lE:-0E0:0:-1: ++%*1lE:-0E0:0:-1: ++%1lE:-NAN(09A_Zaz):0:-1: ++%*1lE:-NAN(09A_Zaz):0:-1: ++%1lE:-NAN():0:-1: ++%*1lE:-NAN():0:-1: ++%1lE:NAN():0:-1: ++%*1lE:NAN():0:-1: ++%1lE:NAN(09A_Zaz):0:-1: ++%*1lE:NAN(09A_Zaz):0:-1: ++%1lE:0E0:1:1:0x0: ++%*1lE:0E0:0:1: ++%1lE:0E+0:1:1:0x0: ++%*1lE:0E+0:0:1: ++%1lE:2.22507385850720138309023271733240406E-308:1:1:0x1p1: ++%*1lE:2.22507385850720138309023271733240406E-308:0:1: ++%1lE:2.3441674165664682593913711430784253952E037:1:1:0x1p1: ++%*1lE:2.3441674165664682593913711430784253952E037:0:1: ++%1lE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1: ++%*1lE:2.3441674165664682593913711430784253952E+37:0:1: ++%1lE:1.79769313486231570814527423731704357E308:1:1:0x1: ++%*1lE:1.79769313486231570814527423731704357E308:0:1: ++%1lE:1.79769313486231570814527423731704357E+308:1:1:0x1: ++%*1lE:1.79769313486231570814527423731704357E+308:0:1: ++%1lE:INFINITY:0:-1: ++%*1lE:INFINITY:0:-1: ++%1lE:+NAN():0:-1: ++%*1lE:+NAN():0:-1: ++%1lE:+NAN(09A_Zaz):0:-1: ++%*1lE:+NAN(09A_Zaz):0:-1: ++%1lE:+0E0:0:-1: ++%*1lE:+0E0:0:-1: ++%1lE:+0E+0:0:-1: ++%*1lE:+0E+0:0:-1: ++%1lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%*1lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%1lE:+2.3441674165664682593913711430784253952E037:0:-1: ++%*1lE:+2.3441674165664682593913711430784253952E037:0:-1: ++%1lE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%*1lE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%1lE:+1.79769313486231570814527423731704357E308:0:-1: ++%*1lE:+1.79769313486231570814527423731704357E308:0:-1: ++%1lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%*1lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%1lE:+INFINITY:0:-1: ++%*1lE:+INFINITY:0:-1: ++%2lE::0:-1: ++%*2lE::0:-1: ++%2lE:-INFINITY:0:-1: ++%*2lE:-INFINITY:0:-1: ++%2lE:-1.79769313486231570814527423731704357E+308:1:2:-0x1: ++%*2lE:-1.79769313486231570814527423731704357E+308:0:2: ++%2lE:-1.79769313486231570814527423731704357E308:1:2:-0x1: ++%*2lE:-1.79769313486231570814527423731704357E308:0:2: ++%2lE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1: ++%*2lE:-2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1: ++%*2lE:-2.3441674165664682593913711430784253952E037:0:2: ++%2lE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1: ++%*2lE:-2.22507385850720138309023271733240406E-308:0:2: ++%2lE:-0E+0:1:2:-0x0: ++%*2lE:-0E+0:0:2: ++%2lE:-0E0:1:2:-0x0: ++%*2lE:-0E0:0:2: ++%2lE:-NAN(09A_Zaz):0:-1: ++%*2lE:-NAN(09A_Zaz):0:-1: ++%2lE:-NAN():0:-1: ++%*2lE:-NAN():0:-1: ++%2lE:NAN():0:-1: ++%*2lE:NAN():0:-1: ++%2lE:NAN(09A_Zaz):0:-1: ++%*2lE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lE:0E0:0:-1: ++# BZ12701 %*2lE:0E0:0:-1: ++# BZ12701 %2lE:0E+0:0:-1: ++# BZ12701 %*2lE:0E+0:0:-1: ++%2lE:2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2lE:2.22507385850720138309023271733240406E-308:0:2: ++%2lE:2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2lE:2.3441674165664682593913711430784253952E037:0:2: ++%2lE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2lE:2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2lE:1.79769313486231570814527423731704357E308:0:2: ++%2lE:1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2lE:1.79769313486231570814527423731704357E+308:0:2: ++%2lE:INFINITY:0:-1: ++%*2lE:INFINITY:0:-1: ++%2lE:+NAN():0:-1: ++%*2lE:+NAN():0:-1: ++%2lE:+NAN(09A_Zaz):0:-1: ++%*2lE:+NAN(09A_Zaz):0:-1: ++%2lE:+0E0:1:2:0x0: ++%*2lE:+0E0:0:2: ++%2lE:+0E+0:1:2:0x0: ++%*2lE:+0E+0:0:2: ++%2lE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2lE:+2.22507385850720138309023271733240406E-308:0:2: ++%2lE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2lE:+2.3441674165664682593913711430784253952E037:0:2: ++%2lE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2lE:+2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:+1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2lE:+1.79769313486231570814527423731704357E308:0:2: ++%2lE:+1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2lE:+1.79769313486231570814527423731704357E+308:0:2: ++%2lE:+INFINITY:0:-1: ++%*2lE:+INFINITY:0:-1: ++%3lE::0:-1: ++%*3lE::0:-1: ++%3lE:-INFINITY:0:-1: ++%*3lE:-INFINITY:0:-1: ++%3lE:-1.79769313486231570814527423731704357E+308:1:3:-0x1: ++%*3lE:-1.79769313486231570814527423731704357E+308:0:3: ++%3lE:-1.79769313486231570814527423731704357E308:1:3:-0x1: ++%*3lE:-1.79769313486231570814527423731704357E308:0:3: ++%3lE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1: ++%*3lE:-2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1: ++%*3lE:-2.3441674165664682593913711430784253952E037:0:3: ++%3lE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1: ++%*3lE:-2.22507385850720138309023271733240406E-308:0:3: ++# BZ12701 %3lE:-0E+0:0:-1: ++# BZ12701 %*3lE:-0E+0:0:-1: ++# BZ12701 %3lE:-0E0:0:-1: ++# BZ12701 %*3lE:-0E0:0:-1: ++%3lE:-NAN(09A_Zaz):0:-1: ++%*3lE:-NAN(09A_Zaz):0:-1: ++%3lE:-NAN():0:-1: ++%*3lE:-NAN():0:-1: ++%3lE:NAN():1:3:nan: ++%*3lE:NAN():0:3: ++%3lE:NAN(09A_Zaz):1:3:nan: ++%*3lE:NAN(09A_Zaz):0:3: ++%3lE:0E0:1:3:0x0: ++%*3lE:0E0:0:3: ++# BZ12701 %3lE:0E+0:0:-1: ++# BZ12701 %*3lE:0E+0:0:-1: ++%3lE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1: ++%*3lE:2.22507385850720138309023271733240406E-308:0:3: ++%3lE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1: ++%*3lE:2.3441674165664682593913711430784253952E037:0:3: ++%3lE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1: ++%*3lE:2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333: ++%*3lE:1.79769313486231570814527423731704357E308:0:3: ++%3lE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333: ++%*3lE:1.79769313486231570814527423731704357E+308:0:3: ++%3lE:INFINITY:1:3:inf: ++%*3lE:INFINITY:0:3: ++%3lE:+NAN():0:-1: ++%*3lE:+NAN():0:-1: ++%3lE:+NAN(09A_Zaz):0:-1: ++%*3lE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lE:+0E0:0:-1: ++# BZ12701 %*3lE:+0E0:0:-1: ++# BZ12701 %3lE:+0E+0:0:-1: ++# BZ12701 %*3lE:+0E+0:0:-1: ++%3lE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1: ++%*3lE:+2.22507385850720138309023271733240406E-308:0:3: ++%3lE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1: ++%*3lE:+2.3441674165664682593913711430784253952E037:0:3: ++%3lE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1: ++%*3lE:+2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:+1.79769313486231570814527423731704357E308:1:3:0x1: ++%*3lE:+1.79769313486231570814527423731704357E308:0:3: ++%3lE:+1.79769313486231570814527423731704357E+308:1:3:0x1: ++%*3lE:+1.79769313486231570814527423731704357E+308:0:3: ++%3lE:+INFINITY:0:-1: ++%*3lE:+INFINITY:0:-1: ++%4lE::0:-1: ++%*4lE::0:-1: ++%4lE:-INFINITY:1:4:-inf: ++%*4lE:-INFINITY:0:4: ++%4lE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333: ++%*4lE:-1.79769313486231570814527423731704357E+308:0:4: ++%4lE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333: ++%*4lE:-1.79769313486231570814527423731704357E308:0:4: ++%4lE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1: ++%*4lE:-2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1: ++%*4lE:-2.3441674165664682593913711430784253952E037:0:4: ++%4lE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1: ++%*4lE:-2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %4lE:-0E+0:0:-1: ++# BZ12701 %*4lE:-0E+0:0:-1: ++%4lE:-0E0:1:4:-0x0: ++%*4lE:-0E0:0:4: ++%4lE:-NAN(09A_Zaz):1:4:-nan: ++%*4lE:-NAN(09A_Zaz):0:4: ++%4lE:-NAN():1:4:-nan: ++%*4lE:-NAN():0:4: ++%4lE:NAN():0:-1: ++%*4lE:NAN():0:-1: ++%4lE:NAN(09A_Zaz):0:-1: ++%*4lE:NAN(09A_Zaz):0:-1: ++%4lE:0E0:1:3:0x0: ++%*4lE:0E0:0:3: ++%4lE:0E+0:1:4:0x0: ++%*4lE:0E+0:0:4: ++%4lE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4lE:2.22507385850720138309023271733240406E-308:0:4: ++%4lE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1: ++%*4lE:2.3441674165664682593913711430784253952E037:0:4: ++%4lE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1: ++%*4lE:2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4: ++%*4lE:1.79769313486231570814527423731704357E308:0:4: ++%4lE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4: ++%*4lE:1.79769313486231570814527423731704357E+308:0:4: ++%4lE:INFINITY:0:-1: ++%*4lE:INFINITY:0:-1: ++%4lE:+NAN():1:4:nan: ++%*4lE:+NAN():0:4: ++%4lE:+NAN(09A_Zaz):1:4:nan: ++%*4lE:+NAN(09A_Zaz):0:4: ++%4lE:+0E0:1:4:0x0: ++%*4lE:+0E0:0:4: ++# BZ12701 %4lE:+0E+0:0:-1: ++# BZ12701 %*4lE:+0E+0:0:-1: ++%4lE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*4lE:+2.22507385850720138309023271733240406E-308:0:4: ++%4lE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*4lE:+2.3441674165664682593913711430784253952E037:0:4: ++%4lE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*4lE:+2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*4lE:+1.79769313486231570814527423731704357E308:0:4: ++%4lE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*4lE:+1.79769313486231570814527423731704357E+308:0:4: ++%4lE:+INFINITY:1:4:inf: ++%*4lE:+INFINITY:0:4: ++%40lE::0:-1: ++%*40lE::0:-1: ++%40lE:-INFINITY:1:9:-inf: ++%*40lE:-INFINITY:0:9: ++# BZ12701 %40lE:-1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%40lE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10: ++%*40lE:-1.79769313486231570814527423731704357E308:0:40: ++%40lE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1: ++%*40lE:-2.3441674165664682593913711430784253952E+37:0:40: ++%40lE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1: ++%*40lE:-2.3441674165664682593913711430784253952E037:0:40: ++# BZ12701 %40lE:-2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%40lE:-0E+0:1:5:-0x0: ++%*40lE:-0E+0:0:5: ++%40lE:-0E0:1:4:-0x0: ++%*40lE:-0E0:0:4: ++%40lE:-NAN(09A_Zaz):1:13:-nan: ++%*40lE:-NAN(09A_Zaz):0:13: ++%40lE:-NAN():1:6:-nan: ++%*40lE:-NAN():0:6: ++%40lE:NAN():1:5:nan: ++%*40lE:NAN():0:5: ++%40lE:NAN(09A_Zaz):1:12:nan: ++%*40lE:NAN(09A_Zaz):0:12: ++%40lE:0E0:1:3:0x0: ++%*40lE:0E0:0:3: ++%40lE:0E+0:1:4:0x0: ++%*40lE:0E+0:0:4: ++%40lE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9: ++%*40lE:2.22507385850720138309023271733240406E-308:0:40: ++# BZ12701 %40lE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %*40lE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %40lE:2.3441674165664682593913711430784253952E+37:0:-1: ++# BZ12701 %*40lE:2.3441674165664682593913711430784253952E+37:0:-1: ++%40lE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100: ++%*40lE:1.79769313486231570814527423731704357E308:0:40: ++%40lE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10: ++%*40lE:1.79769313486231570814527423731704357E+308:0:40: ++%40lE:INFINITY:1:8:inf: ++%*40lE:INFINITY:0:8: ++%40lE:+NAN():1:6:nan: ++%*40lE:+NAN():0:6: ++%40lE:+NAN(09A_Zaz):1:13:nan: ++%*40lE:+NAN(09A_Zaz):0:13: ++%40lE:+0E0:1:4:0x0: ++%*40lE:+0E0:0:4: ++%40lE:+0E+0:1:5:0x0: ++%*40lE:+0E+0:0:5: ++# BZ12701 %40lE:+2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%40lE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1: ++%*40lE:+2.3441674165664682593913711430784253952E037:0:40: ++%40lE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1: ++%*40lE:+2.3441674165664682593913711430784253952E+37:0:40: ++%40lE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10: ++%*40lE:+1.79769313486231570814527423731704357E308:0:40: ++# BZ12701 %40lE:+1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%40lE:+INFINITY:1:9:inf: ++%*40lE:+INFINITY:0:9: ++%48lE::0:-1: ++%*48lE::0:-1: ++%48lE:-INFINITY:1:9:-inf: ++%*48lE:-INFINITY:0:9: ++%48lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*48lE:-1.79769313486231570814527423731704357E+308:0:43: ++%48lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*48lE:-1.79769313486231570814527423731704357E308:0:42: ++%48lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48lE:-2.3441674165664682593913711430784253952E+37:0:44: ++%48lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48lE:-2.3441674165664682593913711430784253952E037:0:44: ++%48lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*48lE:-2.22507385850720138309023271733240406E-308:0:43: ++%48lE:-0E+0:1:5:-0x0: ++%*48lE:-0E+0:0:5: ++%48lE:-0E0:1:4:-0x0: ++%*48lE:-0E0:0:4: ++%48lE:-NAN(09A_Zaz):1:13:-nan: ++%*48lE:-NAN(09A_Zaz):0:13: ++%48lE:-NAN():1:6:-nan: ++%*48lE:-NAN():0:6: ++%48lE:NAN():1:5:nan: ++%*48lE:NAN():0:5: ++%48lE:NAN(09A_Zaz):1:12:nan: ++%*48lE:NAN(09A_Zaz):0:12: ++%48lE:0E0:1:3:0x0: ++%*48lE:0E0:0:3: ++%48lE:0E+0:1:4:0x0: ++%*48lE:0E+0:0:4: ++%48lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*48lE:2.22507385850720138309023271733240406E-308:0:42: ++%48lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48lE:2.3441674165664682593913711430784253952E037:0:43: ++%48lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48lE:2.3441674165664682593913711430784253952E+37:0:43: ++%48lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*48lE:1.79769313486231570814527423731704357E308:0:41: ++%48lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*48lE:1.79769313486231570814527423731704357E+308:0:42: ++%48lE:INFINITY:1:8:inf: ++%*48lE:INFINITY:0:8: ++%48lE:+NAN():1:6:nan: ++%*48lE:+NAN():0:6: ++%48lE:+NAN(09A_Zaz):1:13:nan: ++%*48lE:+NAN(09A_Zaz):0:13: ++%48lE:+0E0:1:4:0x0: ++%*48lE:+0E0:0:4: ++%48lE:+0E+0:1:5:0x0: ++%*48lE:+0E+0:0:5: ++%48lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48lE:+2.22507385850720138309023271733240406E-308:0:43: ++%48lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE:+2.3441674165664682593913711430784253952E037:0:44: ++%48lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE:+2.3441674165664682593913711430784253952E+37:0:44: ++%48lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48lE:+1.79769313486231570814527423731704357E308:0:42: ++%48lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48lE:+1.79769313486231570814527423731704357E+308:0:43: ++%48lE:+INFINITY:1:9:inf: ++%*48lE:+INFINITY:0:9: ++%3lE: :0:-1: ++%*3lE: :0:-1: ++%3lE: -INFINITY:0:-1: ++%*3lE: -INFINITY:0:-1: ++%3lE: -1.79769313486231570814527423731704357E+308:1:4:-0x1: ++%*3lE: -1.79769313486231570814527423731704357E+308:0:4: ++%3lE: -1.79769313486231570814527423731704357E308:1:4:-0x1: ++%*3lE: -1.79769313486231570814527423731704357E308:0:4: ++%3lE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1: ++%*3lE: -2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1: ++%*3lE: -2.3441674165664682593913711430784253952E037:0:4: ++%3lE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1: ++%*3lE: -2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %3lE: -0E+0:0:-1: ++# BZ12701 %*3lE: -0E+0:0:-1: ++# BZ12701 %3lE: -0E0:0:-1: ++# BZ12701 %*3lE: -0E0:0:-1: ++%3lE: -NAN(09A_Zaz):0:-1: ++%*3lE: -NAN(09A_Zaz):0:-1: ++%3lE: -NAN():0:-1: ++%*3lE: -NAN():0:-1: ++%3lE: NAN():1:4:nan: ++%*3lE: NAN():0:4: ++%3lE: NAN(09A_Zaz):1:4:nan: ++%*3lE: NAN(09A_Zaz):0:4: ++%3lE: 0E0:1:4:0x0: ++%*3lE: 0E0:0:4: ++# BZ12701 %3lE: 0E+0:0:-1: ++# BZ12701 %*3lE: 0E+0:0:-1: ++%3lE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*3lE: 2.22507385850720138309023271733240406E-308:0:4: ++%3lE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*3lE: 2.3441674165664682593913711430784253952E037:0:4: ++%3lE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*3lE: 2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*3lE: 1.79769313486231570814527423731704357E308:0:4: ++%3lE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*3lE: 1.79769313486231570814527423731704357E+308:0:4: ++%3lE: INFINITY:1:4:inf: ++%*3lE: INFINITY:0:4: ++%3lE: +NAN():0:-1: ++%*3lE: +NAN():0:-1: ++%3lE: +NAN(09A_Zaz):0:-1: ++%*3lE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3lE: +0E0:0:-1: ++# BZ12701 %*3lE: +0E0:0:-1: ++# BZ12701 %3lE: +0E+0:0:-1: ++# BZ12701 %*3lE: +0E+0:0:-1: ++%3lE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1: ++%*3lE: +2.22507385850720138309023271733240406E-308:0:4: ++%3lE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1: ++%*3lE: +2.3441674165664682593913711430784253952E037:0:4: ++%3lE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1: ++%*3lE: +2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: +1.79769313486231570814527423731704357E308:1:4:0x1: ++%*3lE: +1.79769313486231570814527423731704357E308:0:4: ++%3lE: +1.79769313486231570814527423731704357E+308:1:4:0x1: ++%*3lE: +1.79769313486231570814527423731704357E+308:0:4: ++%3lE: +INFINITY:0:-1: ++%*3lE: +INFINITY:0:-1: ++%48lE: :0:-1: ++%*48lE: :0:-1: ++%48lE: -INFINITY:1:10:-inf: ++%*48lE: -INFINITY:0:10: ++%48lE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023: ++%*48lE: -1.79769313486231570814527423731704357E+308:0:44: ++%48lE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023: ++%*48lE: -1.79769313486231570814527423731704357E308:0:43: ++%48lE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48lE: -2.3441674165664682593913711430784253952E+37:0:45: ++%48lE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48lE: -2.3441674165664682593913711430784253952E037:0:45: ++%48lE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022: ++%*48lE: -2.22507385850720138309023271733240406E-308:0:44: ++%48lE: -0E+0:1:6:-0x0: ++%*48lE: -0E+0:0:6: ++%48lE: -0E0:1:5:-0x0: ++%*48lE: -0E0:0:5: ++%48lE: -NAN(09A_Zaz):1:14:-nan: ++%*48lE: -NAN(09A_Zaz):0:14: ++%48lE: -NAN():1:7:-nan: ++%*48lE: -NAN():0:7: ++%48lE: NAN():1:6:nan: ++%*48lE: NAN():0:6: ++%48lE: NAN(09A_Zaz):1:13:nan: ++%*48lE: NAN(09A_Zaz):0:13: ++%48lE: 0E0:1:4:0x0: ++%*48lE: 0E0:0:4: ++%48lE: 0E+0:1:5:0x0: ++%*48lE: 0E+0:0:5: ++%48lE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48lE: 2.22507385850720138309023271733240406E-308:0:43: ++%48lE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE: 2.3441674165664682593913711430784253952E037:0:44: ++%48lE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE: 2.3441674165664682593913711430784253952E+37:0:44: ++%48lE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48lE: 1.79769313486231570814527423731704357E308:0:42: ++%48lE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48lE: 1.79769313486231570814527423731704357E+308:0:43: ++%48lE: INFINITY:1:9:inf: ++%*48lE: INFINITY:0:9: ++%48lE: +NAN():1:7:nan: ++%*48lE: +NAN():0:7: ++%48lE: +NAN(09A_Zaz):1:14:nan: ++%*48lE: +NAN(09A_Zaz):0:14: ++%48lE: +0E0:1:5:0x0: ++%*48lE: +0E0:0:5: ++%48lE: +0E+0:1:6:0x0: ++%*48lE: +0E+0:0:6: ++%48lE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022: ++%*48lE: +2.22507385850720138309023271733240406E-308:0:44: ++%48lE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48lE: +2.3441674165664682593913711430784253952E037:0:45: ++%48lE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48lE: +2.3441674165664682593913711430784253952E+37:0:45: ++%48lE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023: ++%*48lE: +1.79769313486231570814527423731704357E308:0:43: ++%48lE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023: ++%*48lE: +1.79769313486231570814527423731704357E+308:0:44: ++%48lE: +INFINITY:1:10:inf: ++%*48lE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +new file mode 100644 +index 0000000000000000..22b9fdc4f62cfa08 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +@@ -0,0 +1,558 @@ ++%lf::0:-1: ++%*lf::0:-1: ++%lf:-infinity:1:9:-inf: ++%*lf:-infinity:0:9: ++%lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*lf:-023441674165664682593913711430784253952.0:0:42: ++%lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*lf:-23441674165664682593913711430784253952:0:39: ++%lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lf:-0.0:1:4:-0x0: ++%*lf:-0.0:0:4: ++%lf:-0:1:2:-0x0: ++%*lf:-0:0:2: ++%lf:-nan(09A_Zaz):1:13:-nan: ++%*lf:-nan(09A_Zaz):0:13: ++%lf:-nan():1:6:-nan: ++%*lf:-nan():0:6: ++%lf:nan():1:5:nan: ++%*lf:nan():0:5: ++%lf:nan(09A_Zaz):1:12:nan: ++%*lf:nan(09A_Zaz):0:12: ++%lf:0:1:1:0x0: ++%*lf:0:0:1: ++%lf:0.0:1:3:0x0: ++%*lf:0.0:0:3: ++%lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*lf:23441674165664682593913711430784253952:0:38: ++%lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*lf:023441674165664682593913711430784253952.0:0:41: ++%lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%lf:infinity:1:8:inf: ++%*lf:infinity:0:8: ++%lf:+nan():1:6:nan: ++%*lf:+nan():0:6: ++%lf:+nan(09A_Zaz):1:13:nan: ++%*lf:+nan(09A_Zaz):0:13: ++%lf:+0:1:2:0x0: ++%*lf:+0:0:2: ++%lf:+0.0:1:4:0x0: ++%*lf:+0.0:0:4: ++%lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*lf:+23441674165664682593913711430784253952:0:39: ++%lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*lf:+023441674165664682593913711430784253952.0:0:42: ++%lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lf:+infinity:1:9:inf: ++%*lf:+infinity:0:9: ++%1lf::0:-1: ++%*1lf::0:-1: ++%1lf:-infinity:0:-1: ++%*1lf:-infinity:0:-1: ++%1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lf:-023441674165664682593913711430784253952.0:0:-1: ++%*1lf:-023441674165664682593913711430784253952.0:0:-1: ++%1lf:-23441674165664682593913711430784253952:0:-1: ++%*1lf:-23441674165664682593913711430784253952:0:-1: ++%1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lf:-0.0:0:-1: ++%*1lf:-0.0:0:-1: ++%1lf:-0:0:-1: ++%*1lf:-0:0:-1: ++%1lf:-nan(09A_Zaz):0:-1: ++%*1lf:-nan(09A_Zaz):0:-1: ++%1lf:-nan():0:-1: ++%*1lf:-nan():0:-1: ++%1lf:nan():0:-1: ++%*1lf:nan():0:-1: ++%1lf:nan(09A_Zaz):0:-1: ++%*1lf:nan(09A_Zaz):0:-1: ++%1lf:0:1:1:0x0: ++%*1lf:0:0:1: ++%1lf:0.0:1:1:0x0: ++%*1lf:0.0:0:1: ++%1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1lf:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1lf:23441674165664682593913711430784253952:0:1: ++%1lf:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1lf:023441674165664682593913711430784253952.0:0:1: ++%1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1lf:infinity:0:-1: ++%*1lf:infinity:0:-1: ++%1lf:+nan():0:-1: ++%*1lf:+nan():0:-1: ++%1lf:+nan(09A_Zaz):0:-1: ++%*1lf:+nan(09A_Zaz):0:-1: ++%1lf:+0:0:-1: ++%*1lf:+0:0:-1: ++%1lf:+0.0:0:-1: ++%*1lf:+0.0:0:-1: ++%1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lf:+23441674165664682593913711430784253952:0:-1: ++%*1lf:+23441674165664682593913711430784253952:0:-1: ++%1lf:+023441674165664682593913711430784253952.0:0:-1: ++%*1lf:+023441674165664682593913711430784253952.0:0:-1: ++%1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lf:+infinity:0:-1: ++%*1lf:+infinity:0:-1: ++%2lf::0:-1: ++%*2lf::0:-1: ++%2lf:-infinity:0:-1: ++%*2lf:-infinity:0:-1: ++%2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2lf:-023441674165664682593913711430784253952.0:0:2: ++%2lf:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2lf:-23441674165664682593913711430784253952:0:2: ++%2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:-0.0:1:2:-0x0: ++%*2lf:-0.0:0:2: ++%2lf:-0:1:2:-0x0: ++%*2lf:-0:0:2: ++%2lf:-nan(09A_Zaz):0:-1: ++%*2lf:-nan(09A_Zaz):0:-1: ++%2lf:-nan():0:-1: ++%*2lf:-nan():0:-1: ++%2lf:nan():0:-1: ++%*2lf:nan():0:-1: ++%2lf:nan(09A_Zaz):0:-1: ++%*2lf:nan(09A_Zaz):0:-1: ++%2lf:0:1:1:0x0: ++%*2lf:0:0:1: ++%2lf:0.0:1:2:0x0: ++%*2lf:0.0:0:2: ++%2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2lf:23441674165664682593913711430784253952:0:2: ++%2lf:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2lf:023441674165664682593913711430784253952.0:0:2: ++%2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:infinity:0:-1: ++%*2lf:infinity:0:-1: ++%2lf:+nan():0:-1: ++%*2lf:+nan():0:-1: ++%2lf:+nan(09A_Zaz):0:-1: ++%*2lf:+nan(09A_Zaz):0:-1: ++%2lf:+0:1:2:0x0: ++%*2lf:+0:0:2: ++%2lf:+0.0:1:2:0x0: ++%*2lf:+0.0:0:2: ++%2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2lf:+23441674165664682593913711430784253952:0:2: ++%2lf:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2lf:+023441674165664682593913711430784253952.0:0:2: ++%2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:+infinity:0:-1: ++%*2lf:+infinity:0:-1: ++%3lf::0:-1: ++%*3lf::0:-1: ++%3lf:-infinity:0:-1: ++%*3lf:-infinity:0:-1: ++%3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3lf:-023441674165664682593913711430784253952.0:0:3: ++%3lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3lf:-23441674165664682593913711430784253952:0:3: ++%3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:-0.0:1:3:-0x0: ++%*3lf:-0.0:0:3: ++%3lf:-0:1:2:-0x0: ++%*3lf:-0:0:2: ++%3lf:-nan(09A_Zaz):0:-1: ++%*3lf:-nan(09A_Zaz):0:-1: ++%3lf:-nan():0:-1: ++%*3lf:-nan():0:-1: ++%3lf:nan():1:3:nan: ++%*3lf:nan():0:3: ++%3lf:nan(09A_Zaz):1:3:nan: ++%*3lf:nan(09A_Zaz):0:3: ++%3lf:0:1:1:0x0: ++%*3lf:0:0:1: ++%3lf:0.0:1:3:0x0: ++%*3lf:0.0:0:3: ++%3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3lf:23441674165664682593913711430784253952:0:3: ++%3lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3lf:023441674165664682593913711430784253952.0:0:3: ++%3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:infinity:1:3:inf: ++%*3lf:infinity:0:3: ++%3lf:+nan():0:-1: ++%*3lf:+nan():0:-1: ++%3lf:+nan(09A_Zaz):0:-1: ++%*3lf:+nan(09A_Zaz):0:-1: ++%3lf:+0:1:2:0x0: ++%*3lf:+0:0:2: ++%3lf:+0.0:1:3:0x0: ++%*3lf:+0.0:0:3: ++%3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3lf:+23441674165664682593913711430784253952:0:3: ++%3lf:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3lf:+023441674165664682593913711430784253952.0:0:3: ++%3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:+infinity:0:-1: ++%*3lf:+infinity:0:-1: ++%4lf::0:-1: ++%*4lf::0:-1: ++%4lf:-infinity:1:4:-inf: ++%*4lf:-infinity:0:4: ++%4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4lf:-023441674165664682593913711430784253952.0:0:4: ++%4lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4lf:-23441674165664682593913711430784253952:0:4: ++%4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:-0.0:1:4:-0x0: ++%*4lf:-0.0:0:4: ++%4lf:-0:1:2:-0x0: ++%*4lf:-0:0:2: ++%4lf:-nan(09A_Zaz):1:4:-nan: ++%*4lf:-nan(09A_Zaz):0:4: ++%4lf:-nan():1:4:-nan: ++%*4lf:-nan():0:4: ++%4lf:nan():0:-1: ++%*4lf:nan():0:-1: ++%4lf:nan(09A_Zaz):0:-1: ++%*4lf:nan(09A_Zaz):0:-1: ++%4lf:0:1:1:0x0: ++%*4lf:0:0:1: ++%4lf:0.0:1:3:0x0: ++%*4lf:0.0:0:3: ++%4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4lf:23441674165664682593913711430784253952:0:4: ++%4lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4lf:023441674165664682593913711430784253952.0:0:4: ++%4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:infinity:0:-1: ++%*4lf:infinity:0:-1: ++%4lf:+nan():1:4:nan: ++%*4lf:+nan():0:4: ++%4lf:+nan(09A_Zaz):1:4:nan: ++%*4lf:+nan(09A_Zaz):0:4: ++%4lf:+0:1:2:0x0: ++%*4lf:+0:0:2: ++%4lf:+0.0:1:4:0x0: ++%*4lf:+0.0:0:4: ++%4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4lf:+23441674165664682593913711430784253952:0:4: ++%4lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4lf:+023441674165664682593913711430784253952.0:0:4: ++%4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:+infinity:1:4:inf: ++%*4lf:+infinity:0:4: ++%311lf::0:-1: ++%*311lf::0:-1: ++%311lf:-infinity:1:9:-inf: ++%*311lf:-infinity:0:9: ++%311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311lf:-023441674165664682593913711430784253952.0:0:42: ++%311lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311lf:-23441674165664682593913711430784253952:0:39: ++%311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:-0.0:1:4:-0x0: ++%*311lf:-0.0:0:4: ++%311lf:-0:1:2:-0x0: ++%*311lf:-0:0:2: ++%311lf:-nan(09A_Zaz):1:13:-nan: ++%*311lf:-nan(09A_Zaz):0:13: ++%311lf:-nan():1:6:-nan: ++%*311lf:-nan():0:6: ++%311lf:nan():1:5:nan: ++%*311lf:nan():0:5: ++%311lf:nan(09A_Zaz):1:12:nan: ++%*311lf:nan(09A_Zaz):0:12: ++%311lf:0:1:1:0x0: ++%*311lf:0:0:1: ++%311lf:0.0:1:3:0x0: ++%*311lf:0.0:0:3: ++%311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311lf:23441674165664682593913711430784253952:0:38: ++%311lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311lf:023441674165664682593913711430784253952.0:0:41: ++%311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:infinity:1:8:inf: ++%*311lf:infinity:0:8: ++%311lf:+nan():1:6:nan: ++%*311lf:+nan():0:6: ++%311lf:+nan(09A_Zaz):1:13:nan: ++%*311lf:+nan(09A_Zaz):0:13: ++%311lf:+0:1:2:0x0: ++%*311lf:+0:0:2: ++%311lf:+0.0:1:4:0x0: ++%*311lf:+0.0:0:4: ++%311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311lf:+23441674165664682593913711430784253952:0:39: ++%311lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311lf:+023441674165664682593913711430784253952.0:0:42: ++%311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:+infinity:1:9:inf: ++%*311lf:+infinity:0:9: ++%350lf::0:-1: ++%*350lf::0:-1: ++%350lf:-infinity:1:9:-inf: ++%*350lf:-infinity:0:9: ++%350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350lf:-023441674165664682593913711430784253952.0:0:42: ++%350lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350lf:-23441674165664682593913711430784253952:0:39: ++%350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf:-0.0:1:4:-0x0: ++%*350lf:-0.0:0:4: ++%350lf:-0:1:2:-0x0: ++%*350lf:-0:0:2: ++%350lf:-nan(09A_Zaz):1:13:-nan: ++%*350lf:-nan(09A_Zaz):0:13: ++%350lf:-nan():1:6:-nan: ++%*350lf:-nan():0:6: ++%350lf:nan():1:5:nan: ++%*350lf:nan():0:5: ++%350lf:nan(09A_Zaz):1:12:nan: ++%*350lf:nan(09A_Zaz):0:12: ++%350lf:0:1:1:0x0: ++%*350lf:0:0:1: ++%350lf:0.0:1:3:0x0: ++%*350lf:0.0:0:3: ++%350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350lf:23441674165664682593913711430784253952:0:38: ++%350lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350lf:023441674165664682593913711430784253952.0:0:41: ++%350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350lf:infinity:1:8:inf: ++%*350lf:infinity:0:8: ++%350lf:+nan():1:6:nan: ++%*350lf:+nan():0:6: ++%350lf:+nan(09A_Zaz):1:13:nan: ++%*350lf:+nan(09A_Zaz):0:13: ++%350lf:+0:1:2:0x0: ++%*350lf:+0:0:2: ++%350lf:+0.0:1:4:0x0: ++%*350lf:+0.0:0:4: ++%350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lf:+23441674165664682593913711430784253952:0:39: ++%350lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lf:+023441674165664682593913711430784253952.0:0:42: ++%350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf:+infinity:1:9:inf: ++%*350lf:+infinity:0:9: ++%3lf: :0:-1: ++%*3lf: :0:-1: ++%3lf: -infinity:0:-1: ++%*3lf: -infinity:0:-1: ++%3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3lf: -023441674165664682593913711430784253952.0:0:4: ++%3lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3lf: -23441674165664682593913711430784253952:0:4: ++%3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: -0.0:1:4:-0x0: ++%*3lf: -0.0:0:4: ++%3lf: -0:1:3:-0x0: ++%*3lf: -0:0:3: ++%3lf: -nan(09A_Zaz):0:-1: ++%*3lf: -nan(09A_Zaz):0:-1: ++%3lf: -nan():0:-1: ++%*3lf: -nan():0:-1: ++%3lf: nan():1:4:nan: ++%*3lf: nan():0:4: ++%3lf: nan(09A_Zaz):1:4:nan: ++%*3lf: nan(09A_Zaz):0:4: ++%3lf: 0:1:2:0x0: ++%*3lf: 0:0:2: ++%3lf: 0.0:1:4:0x0: ++%*3lf: 0.0:0:4: ++%3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3lf: 23441674165664682593913711430784253952:0:4: ++%3lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3lf: 023441674165664682593913711430784253952.0:0:4: ++%3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: infinity:1:4:inf: ++%*3lf: infinity:0:4: ++%3lf: +nan():0:-1: ++%*3lf: +nan():0:-1: ++%3lf: +nan(09A_Zaz):0:-1: ++%*3lf: +nan(09A_Zaz):0:-1: ++%3lf: +0:1:3:0x0: ++%*3lf: +0:0:3: ++%3lf: +0.0:1:4:0x0: ++%*3lf: +0.0:0:4: ++%3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3lf: +23441674165664682593913711430784253952:0:4: ++%3lf: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3lf: +023441674165664682593913711430784253952.0:0:4: ++%3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: +infinity:0:-1: ++%*3lf: +infinity:0:-1: ++%350lf: :0:-1: ++%*350lf: :0:-1: ++%350lf: -infinity:1:10:-inf: ++%*350lf: -infinity:0:10: ++%350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350lf: -023441674165664682593913711430784253952.0:0:43: ++%350lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350lf: -23441674165664682593913711430784253952:0:40: ++%350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lf: -0.0:1:5:-0x0: ++%*350lf: -0.0:0:5: ++%350lf: -0:1:3:-0x0: ++%*350lf: -0:0:3: ++%350lf: -nan(09A_Zaz):1:14:-nan: ++%*350lf: -nan(09A_Zaz):0:14: ++%350lf: -nan():1:7:-nan: ++%*350lf: -nan():0:7: ++%350lf: nan():1:6:nan: ++%*350lf: nan():0:6: ++%350lf: nan(09A_Zaz):1:13:nan: ++%*350lf: nan(09A_Zaz):0:13: ++%350lf: 0:1:2:0x0: ++%*350lf: 0:0:2: ++%350lf: 0.0:1:4:0x0: ++%*350lf: 0.0:0:4: ++%350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lf: 23441674165664682593913711430784253952:0:39: ++%350lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lf: 023441674165664682593913711430784253952.0:0:42: ++%350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf: infinity:1:9:inf: ++%*350lf: infinity:0:9: ++%350lf: +nan():1:7:nan: ++%*350lf: +nan():0:7: ++%350lf: +nan(09A_Zaz):1:14:nan: ++%*350lf: +nan(09A_Zaz):0:14: ++%350lf: +0:1:3:0x0: ++%*350lf: +0:0:3: ++%350lf: +0.0:1:5:0x0: ++%*350lf: +0.0:0:5: ++%350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350lf: +23441674165664682593913711430784253952:0:40: ++%350lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350lf: +023441674165664682593913711430784253952.0:0:43: ++%350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lf: +infinity:1:10:inf: ++%*350lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +new file mode 100644 +index 0000000000000000..6168884e133d78d3 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +@@ -0,0 +1,558 @@ ++%lF::0:-1: ++%*lF::0:-1: ++%lF:-INFINITY:1:9:-inf: ++%*lF:-INFINITY:0:9: ++%lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*lF:-023441674165664682593913711430784253952.0:0:42: ++%lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*lF:-23441674165664682593913711430784253952:0:39: ++%lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lF:-0.0:1:4:-0x0: ++%*lF:-0.0:0:4: ++%lF:-0:1:2:-0x0: ++%*lF:-0:0:2: ++%lF:-NAN(09A_Zaz):1:13:-nan: ++%*lF:-NAN(09A_Zaz):0:13: ++%lF:-NAN():1:6:-nan: ++%*lF:-NAN():0:6: ++%lF:NAN():1:5:nan: ++%*lF:NAN():0:5: ++%lF:NAN(09A_Zaz):1:12:nan: ++%*lF:NAN(09A_Zaz):0:12: ++%lF:0:1:1:0x0: ++%*lF:0:0:1: ++%lF:0.0:1:3:0x0: ++%*lF:0.0:0:3: ++%lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*lF:23441674165664682593913711430784253952:0:38: ++%lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*lF:023441674165664682593913711430784253952.0:0:41: ++%lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%lF:INFINITY:1:8:inf: ++%*lF:INFINITY:0:8: ++%lF:+NAN():1:6:nan: ++%*lF:+NAN():0:6: ++%lF:+NAN(09A_Zaz):1:13:nan: ++%*lF:+NAN(09A_Zaz):0:13: ++%lF:+0:1:2:0x0: ++%*lF:+0:0:2: ++%lF:+0.0:1:4:0x0: ++%*lF:+0.0:0:4: ++%lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*lF:+23441674165664682593913711430784253952:0:39: ++%lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*lF:+023441674165664682593913711430784253952.0:0:42: ++%lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lF:+INFINITY:1:9:inf: ++%*lF:+INFINITY:0:9: ++%1lF::0:-1: ++%*1lF::0:-1: ++%1lF:-INFINITY:0:-1: ++%*1lF:-INFINITY:0:-1: ++%1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lF:-023441674165664682593913711430784253952.0:0:-1: ++%*1lF:-023441674165664682593913711430784253952.0:0:-1: ++%1lF:-23441674165664682593913711430784253952:0:-1: ++%*1lF:-23441674165664682593913711430784253952:0:-1: ++%1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lF:-0.0:0:-1: ++%*1lF:-0.0:0:-1: ++%1lF:-0:0:-1: ++%*1lF:-0:0:-1: ++%1lF:-NAN(09A_Zaz):0:-1: ++%*1lF:-NAN(09A_Zaz):0:-1: ++%1lF:-NAN():0:-1: ++%*1lF:-NAN():0:-1: ++%1lF:NAN():0:-1: ++%*1lF:NAN():0:-1: ++%1lF:NAN(09A_Zaz):0:-1: ++%*1lF:NAN(09A_Zaz):0:-1: ++%1lF:0:1:1:0x0: ++%*1lF:0:0:1: ++%1lF:0.0:1:1:0x0: ++%*1lF:0.0:0:1: ++%1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1lF:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1lF:23441674165664682593913711430784253952:0:1: ++%1lF:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1lF:023441674165664682593913711430784253952.0:0:1: ++%1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1lF:INFINITY:0:-1: ++%*1lF:INFINITY:0:-1: ++%1lF:+NAN():0:-1: ++%*1lF:+NAN():0:-1: ++%1lF:+NAN(09A_Zaz):0:-1: ++%*1lF:+NAN(09A_Zaz):0:-1: ++%1lF:+0:0:-1: ++%*1lF:+0:0:-1: ++%1lF:+0.0:0:-1: ++%*1lF:+0.0:0:-1: ++%1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lF:+23441674165664682593913711430784253952:0:-1: ++%*1lF:+23441674165664682593913711430784253952:0:-1: ++%1lF:+023441674165664682593913711430784253952.0:0:-1: ++%*1lF:+023441674165664682593913711430784253952.0:0:-1: ++%1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lF:+INFINITY:0:-1: ++%*1lF:+INFINITY:0:-1: ++%2lF::0:-1: ++%*2lF::0:-1: ++%2lF:-INFINITY:0:-1: ++%*2lF:-INFINITY:0:-1: ++%2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2lF:-023441674165664682593913711430784253952.0:0:2: ++%2lF:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2lF:-23441674165664682593913711430784253952:0:2: ++%2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:-0.0:1:2:-0x0: ++%*2lF:-0.0:0:2: ++%2lF:-0:1:2:-0x0: ++%*2lF:-0:0:2: ++%2lF:-NAN(09A_Zaz):0:-1: ++%*2lF:-NAN(09A_Zaz):0:-1: ++%2lF:-NAN():0:-1: ++%*2lF:-NAN():0:-1: ++%2lF:NAN():0:-1: ++%*2lF:NAN():0:-1: ++%2lF:NAN(09A_Zaz):0:-1: ++%*2lF:NAN(09A_Zaz):0:-1: ++%2lF:0:1:1:0x0: ++%*2lF:0:0:1: ++%2lF:0.0:1:2:0x0: ++%*2lF:0.0:0:2: ++%2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2lF:23441674165664682593913711430784253952:0:2: ++%2lF:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2lF:023441674165664682593913711430784253952.0:0:2: ++%2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:INFINITY:0:-1: ++%*2lF:INFINITY:0:-1: ++%2lF:+NAN():0:-1: ++%*2lF:+NAN():0:-1: ++%2lF:+NAN(09A_Zaz):0:-1: ++%*2lF:+NAN(09A_Zaz):0:-1: ++%2lF:+0:1:2:0x0: ++%*2lF:+0:0:2: ++%2lF:+0.0:1:2:0x0: ++%*2lF:+0.0:0:2: ++%2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2lF:+23441674165664682593913711430784253952:0:2: ++%2lF:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2lF:+023441674165664682593913711430784253952.0:0:2: ++%2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:+INFINITY:0:-1: ++%*2lF:+INFINITY:0:-1: ++%3lF::0:-1: ++%*3lF::0:-1: ++%3lF:-INFINITY:0:-1: ++%*3lF:-INFINITY:0:-1: ++%3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3lF:-023441674165664682593913711430784253952.0:0:3: ++%3lF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3lF:-23441674165664682593913711430784253952:0:3: ++%3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:-0.0:1:3:-0x0: ++%*3lF:-0.0:0:3: ++%3lF:-0:1:2:-0x0: ++%*3lF:-0:0:2: ++%3lF:-NAN(09A_Zaz):0:-1: ++%*3lF:-NAN(09A_Zaz):0:-1: ++%3lF:-NAN():0:-1: ++%*3lF:-NAN():0:-1: ++%3lF:NAN():1:3:nan: ++%*3lF:NAN():0:3: ++%3lF:NAN(09A_Zaz):1:3:nan: ++%*3lF:NAN(09A_Zaz):0:3: ++%3lF:0:1:1:0x0: ++%*3lF:0:0:1: ++%3lF:0.0:1:3:0x0: ++%*3lF:0.0:0:3: ++%3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3lF:23441674165664682593913711430784253952:0:3: ++%3lF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3lF:023441674165664682593913711430784253952.0:0:3: ++%3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:INFINITY:1:3:inf: ++%*3lF:INFINITY:0:3: ++%3lF:+NAN():0:-1: ++%*3lF:+NAN():0:-1: ++%3lF:+NAN(09A_Zaz):0:-1: ++%*3lF:+NAN(09A_Zaz):0:-1: ++%3lF:+0:1:2:0x0: ++%*3lF:+0:0:2: ++%3lF:+0.0:1:3:0x0: ++%*3lF:+0.0:0:3: ++%3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3lF:+23441674165664682593913711430784253952:0:3: ++%3lF:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3lF:+023441674165664682593913711430784253952.0:0:3: ++%3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:+INFINITY:0:-1: ++%*3lF:+INFINITY:0:-1: ++%4lF::0:-1: ++%*4lF::0:-1: ++%4lF:-INFINITY:1:4:-inf: ++%*4lF:-INFINITY:0:4: ++%4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4lF:-023441674165664682593913711430784253952.0:0:4: ++%4lF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4lF:-23441674165664682593913711430784253952:0:4: ++%4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:-0.0:1:4:-0x0: ++%*4lF:-0.0:0:4: ++%4lF:-0:1:2:-0x0: ++%*4lF:-0:0:2: ++%4lF:-NAN(09A_Zaz):1:4:-nan: ++%*4lF:-NAN(09A_Zaz):0:4: ++%4lF:-NAN():1:4:-nan: ++%*4lF:-NAN():0:4: ++%4lF:NAN():0:-1: ++%*4lF:NAN():0:-1: ++%4lF:NAN(09A_Zaz):0:-1: ++%*4lF:NAN(09A_Zaz):0:-1: ++%4lF:0:1:1:0x0: ++%*4lF:0:0:1: ++%4lF:0.0:1:3:0x0: ++%*4lF:0.0:0:3: ++%4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4lF:23441674165664682593913711430784253952:0:4: ++%4lF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4lF:023441674165664682593913711430784253952.0:0:4: ++%4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:INFINITY:0:-1: ++%*4lF:INFINITY:0:-1: ++%4lF:+NAN():1:4:nan: ++%*4lF:+NAN():0:4: ++%4lF:+NAN(09A_Zaz):1:4:nan: ++%*4lF:+NAN(09A_Zaz):0:4: ++%4lF:+0:1:2:0x0: ++%*4lF:+0:0:2: ++%4lF:+0.0:1:4:0x0: ++%*4lF:+0.0:0:4: ++%4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4lF:+23441674165664682593913711430784253952:0:4: ++%4lF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4lF:+023441674165664682593913711430784253952.0:0:4: ++%4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:+INFINITY:1:4:inf: ++%*4lF:+INFINITY:0:4: ++%311lF::0:-1: ++%*311lF::0:-1: ++%311lF:-INFINITY:1:9:-inf: ++%*311lF:-INFINITY:0:9: ++%311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311lF:-023441674165664682593913711430784253952.0:0:42: ++%311lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311lF:-23441674165664682593913711430784253952:0:39: ++%311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:-0.0:1:4:-0x0: ++%*311lF:-0.0:0:4: ++%311lF:-0:1:2:-0x0: ++%*311lF:-0:0:2: ++%311lF:-NAN(09A_Zaz):1:13:-nan: ++%*311lF:-NAN(09A_Zaz):0:13: ++%311lF:-NAN():1:6:-nan: ++%*311lF:-NAN():0:6: ++%311lF:NAN():1:5:nan: ++%*311lF:NAN():0:5: ++%311lF:NAN(09A_Zaz):1:12:nan: ++%*311lF:NAN(09A_Zaz):0:12: ++%311lF:0:1:1:0x0: ++%*311lF:0:0:1: ++%311lF:0.0:1:3:0x0: ++%*311lF:0.0:0:3: ++%311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311lF:23441674165664682593913711430784253952:0:38: ++%311lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311lF:023441674165664682593913711430784253952.0:0:41: ++%311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:INFINITY:1:8:inf: ++%*311lF:INFINITY:0:8: ++%311lF:+NAN():1:6:nan: ++%*311lF:+NAN():0:6: ++%311lF:+NAN(09A_Zaz):1:13:nan: ++%*311lF:+NAN(09A_Zaz):0:13: ++%311lF:+0:1:2:0x0: ++%*311lF:+0:0:2: ++%311lF:+0.0:1:4:0x0: ++%*311lF:+0.0:0:4: ++%311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311lF:+23441674165664682593913711430784253952:0:39: ++%311lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311lF:+023441674165664682593913711430784253952.0:0:42: ++%311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:+INFINITY:1:9:inf: ++%*311lF:+INFINITY:0:9: ++%350lF::0:-1: ++%*350lF::0:-1: ++%350lF:-INFINITY:1:9:-inf: ++%*350lF:-INFINITY:0:9: ++%350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350lF:-023441674165664682593913711430784253952.0:0:42: ++%350lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350lF:-23441674165664682593913711430784253952:0:39: ++%350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF:-0.0:1:4:-0x0: ++%*350lF:-0.0:0:4: ++%350lF:-0:1:2:-0x0: ++%*350lF:-0:0:2: ++%350lF:-NAN(09A_Zaz):1:13:-nan: ++%*350lF:-NAN(09A_Zaz):0:13: ++%350lF:-NAN():1:6:-nan: ++%*350lF:-NAN():0:6: ++%350lF:NAN():1:5:nan: ++%*350lF:NAN():0:5: ++%350lF:NAN(09A_Zaz):1:12:nan: ++%*350lF:NAN(09A_Zaz):0:12: ++%350lF:0:1:1:0x0: ++%*350lF:0:0:1: ++%350lF:0.0:1:3:0x0: ++%*350lF:0.0:0:3: ++%350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350lF:23441674165664682593913711430784253952:0:38: ++%350lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350lF:023441674165664682593913711430784253952.0:0:41: ++%350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350lF:INFINITY:1:8:inf: ++%*350lF:INFINITY:0:8: ++%350lF:+NAN():1:6:nan: ++%*350lF:+NAN():0:6: ++%350lF:+NAN(09A_Zaz):1:13:nan: ++%*350lF:+NAN(09A_Zaz):0:13: ++%350lF:+0:1:2:0x0: ++%*350lF:+0:0:2: ++%350lF:+0.0:1:4:0x0: ++%*350lF:+0.0:0:4: ++%350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lF:+23441674165664682593913711430784253952:0:39: ++%350lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lF:+023441674165664682593913711430784253952.0:0:42: ++%350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF:+INFINITY:1:9:inf: ++%*350lF:+INFINITY:0:9: ++%3lF: :0:-1: ++%*3lF: :0:-1: ++%3lF: -INFINITY:0:-1: ++%*3lF: -INFINITY:0:-1: ++%3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3lF: -023441674165664682593913711430784253952.0:0:4: ++%3lF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3lF: -23441674165664682593913711430784253952:0:4: ++%3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: -0.0:1:4:-0x0: ++%*3lF: -0.0:0:4: ++%3lF: -0:1:3:-0x0: ++%*3lF: -0:0:3: ++%3lF: -NAN(09A_Zaz):0:-1: ++%*3lF: -NAN(09A_Zaz):0:-1: ++%3lF: -NAN():0:-1: ++%*3lF: -NAN():0:-1: ++%3lF: NAN():1:4:nan: ++%*3lF: NAN():0:4: ++%3lF: NAN(09A_Zaz):1:4:nan: ++%*3lF: NAN(09A_Zaz):0:4: ++%3lF: 0:1:2:0x0: ++%*3lF: 0:0:2: ++%3lF: 0.0:1:4:0x0: ++%*3lF: 0.0:0:4: ++%3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3lF: 23441674165664682593913711430784253952:0:4: ++%3lF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3lF: 023441674165664682593913711430784253952.0:0:4: ++%3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: INFINITY:1:4:inf: ++%*3lF: INFINITY:0:4: ++%3lF: +NAN():0:-1: ++%*3lF: +NAN():0:-1: ++%3lF: +NAN(09A_Zaz):0:-1: ++%*3lF: +NAN(09A_Zaz):0:-1: ++%3lF: +0:1:3:0x0: ++%*3lF: +0:0:3: ++%3lF: +0.0:1:4:0x0: ++%*3lF: +0.0:0:4: ++%3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3lF: +23441674165664682593913711430784253952:0:4: ++%3lF: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3lF: +023441674165664682593913711430784253952.0:0:4: ++%3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: +INFINITY:0:-1: ++%*3lF: +INFINITY:0:-1: ++%350lF: :0:-1: ++%*350lF: :0:-1: ++%350lF: -INFINITY:1:10:-inf: ++%*350lF: -INFINITY:0:10: ++%350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350lF: -023441674165664682593913711430784253952.0:0:43: ++%350lF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350lF: -23441674165664682593913711430784253952:0:40: ++%350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lF: -0.0:1:5:-0x0: ++%*350lF: -0.0:0:5: ++%350lF: -0:1:3:-0x0: ++%*350lF: -0:0:3: ++%350lF: -NAN(09A_Zaz):1:14:-nan: ++%*350lF: -NAN(09A_Zaz):0:14: ++%350lF: -NAN():1:7:-nan: ++%*350lF: -NAN():0:7: ++%350lF: NAN():1:6:nan: ++%*350lF: NAN():0:6: ++%350lF: NAN(09A_Zaz):1:13:nan: ++%*350lF: NAN(09A_Zaz):0:13: ++%350lF: 0:1:2:0x0: ++%*350lF: 0:0:2: ++%350lF: 0.0:1:4:0x0: ++%*350lF: 0.0:0:4: ++%350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lF: 23441674165664682593913711430784253952:0:39: ++%350lF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lF: 023441674165664682593913711430784253952.0:0:42: ++%350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF: INFINITY:1:9:inf: ++%*350lF: INFINITY:0:9: ++%350lF: +NAN():1:7:nan: ++%*350lF: +NAN():0:7: ++%350lF: +NAN(09A_Zaz):1:14:nan: ++%*350lF: +NAN(09A_Zaz):0:14: ++%350lF: +0:1:3:0x0: ++%*350lF: +0:0:3: ++%350lF: +0.0:1:5:0x0: ++%*350lF: +0.0:0:5: ++%350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350lF: +23441674165664682593913711430784253952:0:40: ++%350lF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350lF: +023441674165664682593913711430784253952.0:0:43: ++%350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lF: +INFINITY:1:10:inf: ++%*350lF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +new file mode 100644 +index 0000000000000000..d499303451083898 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +@@ -0,0 +1,682 @@ ++%lg::0:-1: ++%*lg::0:-1: ++%lg:-infinity:1:9:-inf: ++%*lg:-infinity:0:9: ++%lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*lg:-0xf.ffffffffffff8p+1020:0:24: ++%lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*lg:-0x7.ffffffffffffcp1021:0:23: ++%lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lg:-0x2.3456789abcdfep+123:0:23: ++%lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lg:-0x2.3456789abcdfep0123:0:23: ++%lg:-0x8p-1025:1:10:-0x1p-1022: ++%*lg:-0x8p-1025:0:10: ++%lg:-0x0p+0:1:7:-0x0: ++%*lg:-0x0p+0:0:7: ++%lg:-0x0p0:1:6:-0x0: ++%*lg:-0x0p0:0:6: ++%lg:-nan(09A_Zaz):1:13:-nan: ++%*lg:-nan(09A_Zaz):0:13: ++%lg:-nan():1:6:-nan: ++%*lg:-nan():0:6: ++%lg:nan():1:5:nan: ++%*lg:nan():0:5: ++%lg:nan(09A_Zaz):1:12:nan: ++%*lg:nan(09A_Zaz):0:12: ++%lg:0x0p0:1:5:0x0: ++%*lg:0x0p0:0:5: ++%lg:0x0p+0:1:6:0x0: ++%*lg:0x0p+0:0:6: ++%lg:0x8p-1025:1:9:0x1p-1022: ++%*lg:0x8p-1025:0:9: ++%lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lg:0x2.3456789abcdfep0123:0:22: ++%lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lg:0x2.3456789abcdfep+123:0:22: ++%lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*lg:0x7.ffffffffffffcp1021:0:22: ++%lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*lg:0xf.ffffffffffff8p+1020:0:23: ++%lg:infinity:1:8:inf: ++%*lg:infinity:0:8: ++%lg:+nan():1:6:nan: ++%*lg:+nan():0:6: ++%lg:+nan(09A_Zaz):1:13:nan: ++%*lg:+nan(09A_Zaz):0:13: ++%lg:+0x0p0:1:6:0x0: ++%*lg:+0x0p0:0:6: ++%lg:+0x0p+0:1:7:0x0: ++%*lg:+0x0p+0:0:7: ++%lg:+0x8p-1025:1:10:0x1p-1022: ++%*lg:+0x8p-1025:0:10: ++%lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lg:+0x2.3456789abcdfep0123:0:23: ++%lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lg:+0x2.3456789abcdfep+123:0:23: ++%lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*lg:+0x7.ffffffffffffcp1021:0:23: ++%lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*lg:+0xf.ffffffffffff8p+1020:0:24: ++%lg:+infinity:1:9:inf: ++%*lg:+infinity:0:9: ++%1lg::0:-1: ++%*1lg::0:-1: ++%1lg:-infinity:0:-1: ++%*1lg:-infinity:0:-1: ++%1lg:-0xf.ffffffffffff8p+1020:0:-1: ++%*1lg:-0xf.ffffffffffff8p+1020:0:-1: ++%1lg:-0x7.ffffffffffffcp1021:0:-1: ++%*1lg:-0x7.ffffffffffffcp1021:0:-1: ++%1lg:-0x2.3456789abcdfep+123:0:-1: ++%*1lg:-0x2.3456789abcdfep+123:0:-1: ++%1lg:-0x2.3456789abcdfep0123:0:-1: ++%*1lg:-0x2.3456789abcdfep0123:0:-1: ++%1lg:-0x8p-1025:0:-1: ++%*1lg:-0x8p-1025:0:-1: ++%1lg:-0x0p+0:0:-1: ++%*1lg:-0x0p+0:0:-1: ++%1lg:-0x0p0:0:-1: ++%*1lg:-0x0p0:0:-1: ++%1lg:-nan(09A_Zaz):0:-1: ++%*1lg:-nan(09A_Zaz):0:-1: ++%1lg:-nan():0:-1: ++%*1lg:-nan():0:-1: ++%1lg:nan():0:-1: ++%*1lg:nan():0:-1: ++%1lg:nan(09A_Zaz):0:-1: ++%*1lg:nan(09A_Zaz):0:-1: ++%1lg:0x0p0:1:1:0x0: ++%*1lg:0x0p0:0:1: ++%1lg:0x0p+0:1:1:0x0: ++%*1lg:0x0p+0:0:1: ++%1lg:0x8p-1025:1:1:0x0: ++%*1lg:0x8p-1025:0:1: ++%1lg:0x2.3456789abcdfep0123:1:1:0x0: ++%*1lg:0x2.3456789abcdfep0123:0:1: ++%1lg:0x2.3456789abcdfep+123:1:1:0x0: ++%*1lg:0x2.3456789abcdfep+123:0:1: ++%1lg:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1lg:0x7.ffffffffffffcp1021:0:1: ++%1lg:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1lg:0xf.ffffffffffff8p+1020:0:1: ++%1lg:infinity:0:-1: ++%*1lg:infinity:0:-1: ++%1lg:+nan():0:-1: ++%*1lg:+nan():0:-1: ++%1lg:+nan(09A_Zaz):0:-1: ++%*1lg:+nan(09A_Zaz):0:-1: ++%1lg:+0x0p0:0:-1: ++%*1lg:+0x0p0:0:-1: ++%1lg:+0x0p+0:0:-1: ++%*1lg:+0x0p+0:0:-1: ++%1lg:+0x8p-1025:0:-1: ++%*1lg:+0x8p-1025:0:-1: ++%1lg:+0x2.3456789abcdfep0123:0:-1: ++%*1lg:+0x2.3456789abcdfep0123:0:-1: ++%1lg:+0x2.3456789abcdfep+123:0:-1: ++%*1lg:+0x2.3456789abcdfep+123:0:-1: ++%1lg:+0x7.ffffffffffffcp1021:0:-1: ++%*1lg:+0x7.ffffffffffffcp1021:0:-1: ++%1lg:+0xf.ffffffffffff8p+1020:0:-1: ++%*1lg:+0xf.ffffffffffff8p+1020:0:-1: ++%1lg:+infinity:0:-1: ++%*1lg:+infinity:0:-1: ++%2lg::0:-1: ++%*2lg::0:-1: ++%2lg:-infinity:0:-1: ++%*2lg:-infinity:0:-1: ++%2lg:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2lg:-0xf.ffffffffffff8p+1020:0:2: ++%2lg:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2lg:-0x7.ffffffffffffcp1021:0:2: ++%2lg:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2lg:-0x2.3456789abcdfep+123:0:2: ++%2lg:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2lg:-0x2.3456789abcdfep0123:0:2: ++%2lg:-0x8p-1025:1:2:-0x0: ++%*2lg:-0x8p-1025:0:2: ++%2lg:-0x0p+0:1:2:-0x0: ++%*2lg:-0x0p+0:0:2: ++%2lg:-0x0p0:1:2:-0x0: ++%*2lg:-0x0p0:0:2: ++%2lg:-nan(09A_Zaz):0:-1: ++%*2lg:-nan(09A_Zaz):0:-1: ++%2lg:-nan():0:-1: ++%*2lg:-nan():0:-1: ++%2lg:nan():0:-1: ++%*2lg:nan():0:-1: ++%2lg:nan(09A_Zaz):0:-1: ++%*2lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2lg:0x0p0:0:-1: ++# BZ12701 %*2lg:0x0p0:0:-1: ++# BZ12701 %2lg:0x0p+0:0:-1: ++# BZ12701 %*2lg:0x0p+0:0:-1: ++# BZ12701 %2lg:0x8p-1025:0:-1: ++# BZ12701 %*2lg:0x8p-1025:0:-1: ++# BZ12701 %2lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2lg:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2lg:0xf.ffffffffffff8p+1020:0:-1: ++%2lg:infinity:0:-1: ++%*2lg:infinity:0:-1: ++%2lg:+nan():0:-1: ++%*2lg:+nan():0:-1: ++%2lg:+nan(09A_Zaz):0:-1: ++%*2lg:+nan(09A_Zaz):0:-1: ++%2lg:+0x0p0:1:2:0x0: ++%*2lg:+0x0p0:0:2: ++%2lg:+0x0p+0:1:2:0x0: ++%*2lg:+0x0p+0:0:2: ++%2lg:+0x8p-1025:1:2:0x0: ++%*2lg:+0x8p-1025:0:2: ++%2lg:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2lg:+0x2.3456789abcdfep0123:0:2: ++%2lg:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2lg:+0x2.3456789abcdfep+123:0:2: ++%2lg:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2lg:+0x7.ffffffffffffcp1021:0:2: ++%2lg:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2lg:+0xf.ffffffffffff8p+1020:0:2: ++%2lg:+infinity:0:-1: ++%*2lg:+infinity:0:-1: ++%3lg::0:-1: ++%*3lg::0:-1: ++%3lg:-infinity:0:-1: ++%*3lg:-infinity:0:-1: ++# BZ12701 %3lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3lg:-0x8p-1025:0:-1: ++# BZ12701 %*3lg:-0x8p-1025:0:-1: ++# BZ12701 %3lg:-0x0p+0:0:-1: ++# BZ12701 %*3lg:-0x0p+0:0:-1: ++# BZ12701 %3lg:-0x0p0:0:-1: ++# BZ12701 %*3lg:-0x0p0:0:-1: ++%3lg:-nan(09A_Zaz):0:-1: ++%*3lg:-nan(09A_Zaz):0:-1: ++%3lg:-nan():0:-1: ++%*3lg:-nan():0:-1: ++%3lg:nan():1:3:nan: ++%*3lg:nan():0:3: ++%3lg:nan(09A_Zaz):1:3:nan: ++%*3lg:nan(09A_Zaz):0:3: ++%3lg:0x0p0:1:3:0x0: ++%*3lg:0x0p0:0:3: ++%3lg:0x0p+0:1:3:0x0: ++%*3lg:0x0p+0:0:3: ++%3lg:0x8p-1025:1:3:0x1p3: ++%*3lg:0x8p-1025:0:3: ++%3lg:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3lg:0x2.3456789abcdfep0123:0:3: ++%3lg:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3lg:0x2.3456789abcdfep+123:0:3: ++%3lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3lg:0x7.ffffffffffffcp1021:0:3: ++%3lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3lg:0xf.ffffffffffff8p+1020:0:3: ++%3lg:infinity:1:3:inf: ++%*3lg:infinity:0:3: ++%3lg:+nan():0:-1: ++%*3lg:+nan():0:-1: ++%3lg:+nan(09A_Zaz):0:-1: ++%*3lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3lg:+0x0p0:0:-1: ++# BZ12701 %*3lg:+0x0p0:0:-1: ++# BZ12701 %3lg:+0x0p+0:0:-1: ++# BZ12701 %*3lg:+0x0p+0:0:-1: ++# BZ12701 %3lg:+0x8p-1025:0:-1: ++# BZ12701 %*3lg:+0x8p-1025:0:-1: ++# BZ12701 %3lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3lg:+0xf.ffffffffffff8p+1020:0:-1: ++%3lg:+infinity:0:-1: ++%*3lg:+infinity:0:-1: ++%4lg::0:-1: ++%*4lg::0:-1: ++%4lg:-infinity:1:4:-inf: ++%*4lg:-infinity:0:4: ++%4lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4lg:-0xf.ffffffffffff8p+1020:0:4: ++%4lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4lg:-0x7.ffffffffffffcp1021:0:4: ++%4lg:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4lg:-0x2.3456789abcdfep+123:0:4: ++%4lg:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4lg:-0x2.3456789abcdfep0123:0:4: ++%4lg:-0x8p-1025:1:4:-0x1p3: ++%*4lg:-0x8p-1025:0:4: ++%4lg:-0x0p+0:1:4:-0x0: ++%*4lg:-0x0p+0:0:4: ++%4lg:-0x0p0:1:4:-0x0: ++%*4lg:-0x0p0:0:4: ++%4lg:-nan(09A_Zaz):1:4:-nan: ++%*4lg:-nan(09A_Zaz):0:4: ++%4lg:-nan():1:4:-nan: ++%*4lg:-nan():0:4: ++%4lg:nan():0:-1: ++%*4lg:nan():0:-1: ++%4lg:nan(09A_Zaz):0:-1: ++%*4lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4lg:0x0p0:0:-1: ++# BZ12701 %*4lg:0x0p0:0:-1: ++# BZ12701 %4lg:0x0p+0:0:-1: ++# BZ12701 %*4lg:0x0p+0:0:-1: ++# BZ12701 %4lg:0x8p-1025:0:-1: ++# BZ12701 %*4lg:0x8p-1025:0:-1: ++%4lg:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4lg:0x2.3456789abcdfep0123:0:4: ++%4lg:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4lg:0x2.3456789abcdfep+123:0:4: ++%4lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4lg:0x7.ffffffffffffcp1021:0:4: ++%4lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4lg:0xf.ffffffffffff8p+1020:0:4: ++%4lg:infinity:0:-1: ++%*4lg:infinity:0:-1: ++%4lg:+nan():1:4:nan: ++%*4lg:+nan():0:4: ++%4lg:+nan(09A_Zaz):1:4:nan: ++%*4lg:+nan(09A_Zaz):0:4: ++%4lg:+0x0p0:1:4:0x0: ++%*4lg:+0x0p0:0:4: ++%4lg:+0x0p+0:1:4:0x0: ++%*4lg:+0x0p+0:0:4: ++%4lg:+0x8p-1025:1:4:0x1p3: ++%*4lg:+0x8p-1025:0:4: ++%4lg:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4lg:+0x2.3456789abcdfep0123:0:4: ++%4lg:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4lg:+0x2.3456789abcdfep+123:0:4: ++%4lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4lg:+0x7.ffffffffffffcp1021:0:4: ++%4lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4lg:+0xf.ffffffffffff8p+1020:0:4: ++%4lg:+infinity:1:4:inf: ++%*4lg:+infinity:0:4: ++%5lg::0:-1: ++%*5lg::0:-1: ++%5lg:-infinity:0:-1: ++%*5lg:-infinity:0:-1: ++%5lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5lg:-0xf.ffffffffffff8p+1020:0:5: ++%5lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5lg:-0x7.ffffffffffffcp1021:0:5: ++%5lg:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5lg:-0x2.3456789abcdfep+123:0:5: ++%5lg:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5lg:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5lg:-0x8p-1025:0:-1: ++# BZ12701 %*5lg:-0x8p-1025:0:-1: ++# BZ12701 %5lg:-0x0p+0:0:-1: ++# BZ12701 %*5lg:-0x0p+0:0:-1: ++# BZ12701 %5lg:-0x0p0:0:-1: ++# BZ12701 %*5lg:-0x0p0:0:-1: ++%5lg:-nan(09A_Zaz):0:-1: ++%*5lg:-nan(09A_Zaz):0:-1: ++%5lg:-nan():0:-1: ++%*5lg:-nan():0:-1: ++%5lg:nan():1:5:nan: ++%*5lg:nan():0:5: ++%5lg:nan(09A_Zaz):0:-1: ++%*5lg:nan(09A_Zaz):0:-1: ++%5lg:0x0p0:1:5:0x0: ++%*5lg:0x0p0:0:5: ++# BZ12701 %5lg:0x0p+0:0:-1: ++# BZ12701 %*5lg:0x0p+0:0:-1: ++# BZ12701 %5lg:0x8p-1025:0:-1: ++# BZ12701 %*5lg:0x8p-1025:0:-1: ++%5lg:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5lg:0x2.3456789abcdfep0123:0:5: ++%5lg:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5lg:0x2.3456789abcdfep+123:0:5: ++%5lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5lg:0x7.ffffffffffffcp1021:0:5: ++%5lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5lg:0xf.ffffffffffff8p+1020:0:5: ++%5lg:infinity:0:-1: ++%*5lg:infinity:0:-1: ++%5lg:+nan():0:-1: ++%*5lg:+nan():0:-1: ++%5lg:+nan(09A_Zaz):0:-1: ++%*5lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5lg:+0x0p0:0:-1: ++# BZ12701 %*5lg:+0x0p0:0:-1: ++# BZ12701 %5lg:+0x0p+0:0:-1: ++# BZ12701 %*5lg:+0x0p+0:0:-1: ++# BZ12701 %5lg:+0x8p-1025:0:-1: ++# BZ12701 %*5lg:+0x8p-1025:0:-1: ++%5lg:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5lg:+0x2.3456789abcdfep0123:0:5: ++%5lg:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5lg:+0x2.3456789abcdfep+123:0:5: ++%5lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5lg:+0x7.ffffffffffffcp1021:0:5: ++%5lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5lg:+0xf.ffffffffffff8p+1020:0:5: ++%5lg:+infinity:0:-1: ++%*5lg:+infinity:0:-1: ++%6lg::0:-1: ++%*6lg::0:-1: ++%6lg:-infinity:0:-1: ++%*6lg:-infinity:0:-1: ++%6lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6lg:-0xf.ffffffffffff8p+1020:0:6: ++%6lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6lg:-0x7.ffffffffffffcp1021:0:6: ++%6lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6lg:-0x2.3456789abcdfep+123:0:6: ++%6lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6lg:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6lg:-0x8p-1025:0:-1: ++# BZ12701 %*6lg:-0x8p-1025:0:-1: ++# BZ12701 %6lg:-0x0p+0:0:-1: ++# BZ12701 %*6lg:-0x0p+0:0:-1: ++%6lg:-0x0p0:1:6:-0x0: ++%*6lg:-0x0p0:0:6: ++%6lg:-nan(09A_Zaz):0:-1: ++%*6lg:-nan(09A_Zaz):0:-1: ++%6lg:-nan():1:6:-nan: ++%*6lg:-nan():0:6: ++%6lg:nan():1:5:nan: ++%*6lg:nan():0:5: ++%6lg:nan(09A_Zaz):0:-1: ++%*6lg:nan(09A_Zaz):0:-1: ++%6lg:0x0p0:1:5:0x0: ++%*6lg:0x0p0:0:5: ++%6lg:0x0p+0:1:6:0x0: ++%*6lg:0x0p+0:0:6: ++%6lg:0x8p-1025:1:6:0x1p2: ++%*6lg:0x8p-1025:0:6: ++%6lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6lg:0x2.3456789abcdfep0123:0:6: ++%6lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6lg:0x2.3456789abcdfep+123:0:6: ++%6lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6lg:0x7.ffffffffffffcp1021:0:6: ++%6lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6lg:0xf.ffffffffffff8p+1020:0:6: ++%6lg:infinity:0:-1: ++%*6lg:infinity:0:-1: ++%6lg:+nan():1:6:nan: ++%*6lg:+nan():0:6: ++%6lg:+nan(09A_Zaz):0:-1: ++%*6lg:+nan(09A_Zaz):0:-1: ++%6lg:+0x0p0:1:6:0x0: ++%*6lg:+0x0p0:0:6: ++# BZ12701 %6lg:+0x0p+0:0:-1: ++# BZ12701 %*6lg:+0x0p+0:0:-1: ++# BZ12701 %6lg:+0x8p-1025:0:-1: ++# BZ12701 %*6lg:+0x8p-1025:0:-1: ++%6lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6lg:+0x2.3456789abcdfep0123:0:6: ++%6lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6lg:+0x2.3456789abcdfep+123:0:6: ++%6lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6lg:+0x7.ffffffffffffcp1021:0:6: ++%6lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6lg:+0xf.ffffffffffff8p+1020:0:6: ++%6lg:+infinity:0:-1: ++%*6lg:+infinity:0:-1: ++%20lg::0:-1: ++%*20lg::0:-1: ++%20lg:-infinity:1:9:-inf: ++%*20lg:-infinity:0:9: ++# BZ12701 %20lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20lg:-0xf.ffffffffffff8p+1020:0:-1: ++%20lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20lg:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20lg:-0x2.3456789abcdfep+123:0:-1: ++%20lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lg:-0x2.3456789abcdfep0123:0:20: ++%20lg:-0x8p-1025:1:10:-0x1p-1022: ++%*20lg:-0x8p-1025:0:10: ++%20lg:-0x0p+0:1:7:-0x0: ++%*20lg:-0x0p+0:0:7: ++%20lg:-0x0p0:1:6:-0x0: ++%*20lg:-0x0p0:0:6: ++%20lg:-nan(09A_Zaz):1:13:-nan: ++%*20lg:-nan(09A_Zaz):0:13: ++%20lg:-nan():1:6:-nan: ++%*20lg:-nan():0:6: ++%20lg:nan():1:5:nan: ++%*20lg:nan():0:5: ++%20lg:nan(09A_Zaz):1:12:nan: ++%*20lg:nan(09A_Zaz):0:12: ++%20lg:0x0p0:1:5:0x0: ++%*20lg:0x0p0:0:5: ++%20lg:0x0p+0:1:6:0x0: ++%*20lg:0x0p+0:0:6: ++%20lg:0x8p-1025:1:9:0x1p-1022: ++%*20lg:0x8p-1025:0:9: ++%20lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lg:0x2.3456789abcdfep0123:0:20: ++%20lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lg:0x2.3456789abcdfep+123:0:20: ++%20lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20lg:0x7.ffffffffffffcp1021:0:20: ++%20lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20lg:0xf.ffffffffffff8p+1020:0:20: ++%20lg:infinity:1:8:inf: ++%*20lg:infinity:0:8: ++%20lg:+nan():1:6:nan: ++%*20lg:+nan():0:6: ++%20lg:+nan(09A_Zaz):1:13:nan: ++%*20lg:+nan(09A_Zaz):0:13: ++%20lg:+0x0p0:1:6:0x0: ++%*20lg:+0x0p0:0:6: ++%20lg:+0x0p+0:1:7:0x0: ++%*20lg:+0x0p+0:0:7: ++%20lg:+0x8p-1025:1:10:0x1p-1022: ++%*20lg:+0x8p-1025:0:10: ++%20lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lg:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20lg:+0x2.3456789abcdfep+123:0:-1: ++%20lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20lg:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20lg:+0xf.ffffffffffff8p+1020:0:-1: ++%20lg:+infinity:1:9:inf: ++%*20lg:+infinity:0:9: ++%32lg::0:-1: ++%*32lg::0:-1: ++%32lg:-infinity:1:9:-inf: ++%*32lg:-infinity:0:9: ++%32lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lg:-0xf.ffffffffffff8p+1020:0:24: ++%32lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32lg:-0x7.ffffffffffffcp1021:0:23: ++%32lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lg:-0x2.3456789abcdfep+123:0:23: ++%32lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lg:-0x2.3456789abcdfep0123:0:23: ++%32lg:-0x8p-1025:1:10:-0x1p-1022: ++%*32lg:-0x8p-1025:0:10: ++%32lg:-0x0p+0:1:7:-0x0: ++%*32lg:-0x0p+0:0:7: ++%32lg:-0x0p0:1:6:-0x0: ++%*32lg:-0x0p0:0:6: ++%32lg:-nan(09A_Zaz):1:13:-nan: ++%*32lg:-nan(09A_Zaz):0:13: ++%32lg:-nan():1:6:-nan: ++%*32lg:-nan():0:6: ++%32lg:nan():1:5:nan: ++%*32lg:nan():0:5: ++%32lg:nan(09A_Zaz):1:12:nan: ++%*32lg:nan(09A_Zaz):0:12: ++%32lg:0x0p0:1:5:0x0: ++%*32lg:0x0p0:0:5: ++%32lg:0x0p+0:1:6:0x0: ++%*32lg:0x0p+0:0:6: ++%32lg:0x8p-1025:1:9:0x1p-1022: ++%*32lg:0x8p-1025:0:9: ++%32lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lg:0x2.3456789abcdfep0123:0:22: ++%32lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lg:0x2.3456789abcdfep+123:0:22: ++%32lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32lg:0x7.ffffffffffffcp1021:0:22: ++%32lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32lg:0xf.ffffffffffff8p+1020:0:23: ++%32lg:infinity:1:8:inf: ++%*32lg:infinity:0:8: ++%32lg:+nan():1:6:nan: ++%*32lg:+nan():0:6: ++%32lg:+nan(09A_Zaz):1:13:nan: ++%*32lg:+nan(09A_Zaz):0:13: ++%32lg:+0x0p0:1:6:0x0: ++%*32lg:+0x0p0:0:6: ++%32lg:+0x0p+0:1:7:0x0: ++%*32lg:+0x0p+0:0:7: ++%32lg:+0x8p-1025:1:10:0x1p-1022: ++%*32lg:+0x8p-1025:0:10: ++%32lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg:+0x2.3456789abcdfep0123:0:23: ++%32lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg:+0x2.3456789abcdfep+123:0:23: ++%32lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32lg:+0x7.ffffffffffffcp1021:0:23: ++%32lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32lg:+0xf.ffffffffffff8p+1020:0:24: ++%32lg:+infinity:1:9:inf: ++%*32lg:+infinity:0:9: ++%5lg: :0:-1: ++%*5lg: :0:-1: ++%5lg: -infinity:0:-1: ++%*5lg: -infinity:0:-1: ++%5lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5lg: -0xf.ffffffffffff8p+1020:0:6: ++%5lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5lg: -0x7.ffffffffffffcp1021:0:6: ++%5lg: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5lg: -0x2.3456789abcdfep+123:0:6: ++%5lg: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5lg: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5lg: -0x8p-1025:0:-1: ++# BZ12701 %*5lg: -0x8p-1025:0:-1: ++# BZ12701 %5lg: -0x0p+0:0:-1: ++# BZ12701 %*5lg: -0x0p+0:0:-1: ++# BZ12701 %5lg: -0x0p0:0:-1: ++# BZ12701 %*5lg: -0x0p0:0:-1: ++%5lg: -nan(09A_Zaz):0:-1: ++%*5lg: -nan(09A_Zaz):0:-1: ++%5lg: -nan():0:-1: ++%*5lg: -nan():0:-1: ++%5lg: nan():1:6:nan: ++%*5lg: nan():0:6: ++%5lg: nan(09A_Zaz):0:-1: ++%*5lg: nan(09A_Zaz):0:-1: ++%5lg: 0x0p0:1:6:0x0: ++%*5lg: 0x0p0:0:6: ++# BZ12701 %5lg: 0x0p+0:0:-1: ++# BZ12701 %*5lg: 0x0p+0:0:-1: ++# BZ12701 %5lg: 0x8p-1025:0:-1: ++# BZ12701 %*5lg: 0x8p-1025:0:-1: ++%5lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5lg: 0x2.3456789abcdfep0123:0:6: ++%5lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5lg: 0x2.3456789abcdfep+123:0:6: ++%5lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5lg: 0x7.ffffffffffffcp1021:0:6: ++%5lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5lg: 0xf.ffffffffffff8p+1020:0:6: ++%5lg: infinity:0:-1: ++%*5lg: infinity:0:-1: ++%5lg: +nan():0:-1: ++%*5lg: +nan():0:-1: ++%5lg: +nan(09A_Zaz):0:-1: ++%*5lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5lg: +0x0p0:0:-1: ++# BZ12701 %*5lg: +0x0p0:0:-1: ++# BZ12701 %5lg: +0x0p+0:0:-1: ++# BZ12701 %*5lg: +0x0p+0:0:-1: ++# BZ12701 %5lg: +0x8p-1025:0:-1: ++# BZ12701 %*5lg: +0x8p-1025:0:-1: ++%5lg: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5lg: +0x2.3456789abcdfep0123:0:6: ++%5lg: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5lg: +0x2.3456789abcdfep+123:0:6: ++%5lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5lg: +0x7.ffffffffffffcp1021:0:6: ++%5lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5lg: +0xf.ffffffffffff8p+1020:0:6: ++%5lg: +infinity:0:-1: ++%*5lg: +infinity:0:-1: ++%32lg: :0:-1: ++%*32lg: :0:-1: ++%32lg: -infinity:1:10:-inf: ++%*32lg: -infinity:0:10: ++%32lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lg: -0xf.ffffffffffff8p+1020:0:25: ++%32lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32lg: -0x7.ffffffffffffcp1021:0:24: ++%32lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lg: -0x2.3456789abcdfep+123:0:24: ++%32lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lg: -0x2.3456789abcdfep0123:0:24: ++%32lg: -0x8p-1025:1:11:-0x1p-1022: ++%*32lg: -0x8p-1025:0:11: ++%32lg: -0x0p+0:1:8:-0x0: ++%*32lg: -0x0p+0:0:8: ++%32lg: -0x0p0:1:7:-0x0: ++%*32lg: -0x0p0:0:7: ++%32lg: -nan(09A_Zaz):1:14:-nan: ++%*32lg: -nan(09A_Zaz):0:14: ++%32lg: -nan():1:7:-nan: ++%*32lg: -nan():0:7: ++%32lg: nan():1:6:nan: ++%*32lg: nan():0:6: ++%32lg: nan(09A_Zaz):1:13:nan: ++%*32lg: nan(09A_Zaz):0:13: ++%32lg: 0x0p0:1:6:0x0: ++%*32lg: 0x0p0:0:6: ++%32lg: 0x0p+0:1:7:0x0: ++%*32lg: 0x0p+0:0:7: ++%32lg: 0x8p-1025:1:10:0x1p-1022: ++%*32lg: 0x8p-1025:0:10: ++%32lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg: 0x2.3456789abcdfep0123:0:23: ++%32lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg: 0x2.3456789abcdfep+123:0:23: ++%32lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32lg: 0x7.ffffffffffffcp1021:0:23: ++%32lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32lg: 0xf.ffffffffffff8p+1020:0:24: ++%32lg: infinity:1:9:inf: ++%*32lg: infinity:0:9: ++%32lg: +nan():1:7:nan: ++%*32lg: +nan():0:7: ++%32lg: +nan(09A_Zaz):1:14:nan: ++%*32lg: +nan(09A_Zaz):0:14: ++%32lg: +0x0p0:1:7:0x0: ++%*32lg: +0x0p0:0:7: ++%32lg: +0x0p+0:1:8:0x0: ++%*32lg: +0x0p+0:0:8: ++%32lg: +0x8p-1025:1:11:0x1p-1022: ++%*32lg: +0x8p-1025:0:11: ++%32lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lg: +0x2.3456789abcdfep0123:0:24: ++%32lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lg: +0x2.3456789abcdfep+123:0:24: ++%32lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32lg: +0x7.ffffffffffffcp1021:0:24: ++%32lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32lg: +0xf.ffffffffffff8p+1020:0:25: ++%32lg: +infinity:1:10:inf: ++%*32lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +new file mode 100644 +index 0000000000000000..eb8bb9f48ebddc7c +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +@@ -0,0 +1,682 @@ ++%lG::0:-1: ++%*lG::0:-1: ++%lG:-INFINITY:1:9:-inf: ++%*lG:-INFINITY:0:9: ++%lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*lG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*lG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lG:-0X2.3456789ABCDFEP+123:0:23: ++%lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lG:-0X2.3456789ABCDFEP0123:0:23: ++%lG:-0X8P-1025:1:10:-0x1p-1022: ++%*lG:-0X8P-1025:0:10: ++%lG:-0X0P+0:1:7:-0x0: ++%*lG:-0X0P+0:0:7: ++%lG:-0X0P0:1:6:-0x0: ++%*lG:-0X0P0:0:6: ++%lG:-NAN(09A_Zaz):1:13:-nan: ++%*lG:-NAN(09A_Zaz):0:13: ++%lG:-NAN():1:6:-nan: ++%*lG:-NAN():0:6: ++%lG:NAN():1:5:nan: ++%*lG:NAN():0:5: ++%lG:NAN(09A_Zaz):1:12:nan: ++%*lG:NAN(09A_Zaz):0:12: ++%lG:0X0P0:1:5:0x0: ++%*lG:0X0P0:0:5: ++%lG:0X0P+0:1:6:0x0: ++%*lG:0X0P+0:0:6: ++%lG:0X8P-1025:1:9:0x1p-1022: ++%*lG:0X8P-1025:0:9: ++%lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lG:0X2.3456789ABCDFEP0123:0:22: ++%lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lG:0X2.3456789ABCDFEP+123:0:22: ++%lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*lG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*lG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%lG:INFINITY:1:8:inf: ++%*lG:INFINITY:0:8: ++%lG:+NAN():1:6:nan: ++%*lG:+NAN():0:6: ++%lG:+NAN(09A_Zaz):1:13:nan: ++%*lG:+NAN(09A_Zaz):0:13: ++%lG:+0X0P0:1:6:0x0: ++%*lG:+0X0P0:0:6: ++%lG:+0X0P+0:1:7:0x0: ++%*lG:+0X0P+0:0:7: ++%lG:+0X8P-1025:1:10:0x1p-1022: ++%*lG:+0X8P-1025:0:10: ++%lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lG:+0X2.3456789ABCDFEP0123:0:23: ++%lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lG:+0X2.3456789ABCDFEP+123:0:23: ++%lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*lG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*lG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lG:+INFINITY:1:9:inf: ++%*lG:+INFINITY:0:9: ++%1lG::0:-1: ++%*1lG::0:-1: ++%1lG:-INFINITY:0:-1: ++%*1lG:-INFINITY:0:-1: ++%1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lG:-0X2.3456789ABCDFEP+123:0:-1: ++%*1lG:-0X2.3456789ABCDFEP+123:0:-1: ++%1lG:-0X2.3456789ABCDFEP0123:0:-1: ++%*1lG:-0X2.3456789ABCDFEP0123:0:-1: ++%1lG:-0X8P-1025:0:-1: ++%*1lG:-0X8P-1025:0:-1: ++%1lG:-0X0P+0:0:-1: ++%*1lG:-0X0P+0:0:-1: ++%1lG:-0X0P0:0:-1: ++%*1lG:-0X0P0:0:-1: ++%1lG:-NAN(09A_Zaz):0:-1: ++%*1lG:-NAN(09A_Zaz):0:-1: ++%1lG:-NAN():0:-1: ++%*1lG:-NAN():0:-1: ++%1lG:NAN():0:-1: ++%*1lG:NAN():0:-1: ++%1lG:NAN(09A_Zaz):0:-1: ++%*1lG:NAN(09A_Zaz):0:-1: ++%1lG:0X0P0:1:1:0x0: ++%*1lG:0X0P0:0:1: ++%1lG:0X0P+0:1:1:0x0: ++%*1lG:0X0P+0:0:1: ++%1lG:0X8P-1025:1:1:0x0: ++%*1lG:0X8P-1025:0:1: ++%1lG:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1lG:0X2.3456789ABCDFEP0123:0:1: ++%1lG:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1lG:0X2.3456789ABCDFEP+123:0:1: ++%1lG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1lG:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1lG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1lG:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1lG:INFINITY:0:-1: ++%*1lG:INFINITY:0:-1: ++%1lG:+NAN():0:-1: ++%*1lG:+NAN():0:-1: ++%1lG:+NAN(09A_Zaz):0:-1: ++%*1lG:+NAN(09A_Zaz):0:-1: ++%1lG:+0X0P0:0:-1: ++%*1lG:+0X0P0:0:-1: ++%1lG:+0X0P+0:0:-1: ++%*1lG:+0X0P+0:0:-1: ++%1lG:+0X8P-1025:0:-1: ++%*1lG:+0X8P-1025:0:-1: ++%1lG:+0X2.3456789ABCDFEP0123:0:-1: ++%*1lG:+0X2.3456789ABCDFEP0123:0:-1: ++%1lG:+0X2.3456789ABCDFEP+123:0:-1: ++%*1lG:+0X2.3456789ABCDFEP+123:0:-1: ++%1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lG:+INFINITY:0:-1: ++%*1lG:+INFINITY:0:-1: ++%2lG::0:-1: ++%*2lG::0:-1: ++%2lG:-INFINITY:0:-1: ++%*2lG:-INFINITY:0:-1: ++%2lG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2lG:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2lG:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lG:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2lG:-0X2.3456789ABCDFEP+123:0:2: ++%2lG:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2lG:-0X2.3456789ABCDFEP0123:0:2: ++%2lG:-0X8P-1025:1:2:-0x0: ++%*2lG:-0X8P-1025:0:2: ++%2lG:-0X0P+0:1:2:-0x0: ++%*2lG:-0X0P+0:0:2: ++%2lG:-0X0P0:1:2:-0x0: ++%*2lG:-0X0P0:0:2: ++%2lG:-NAN(09A_Zaz):0:-1: ++%*2lG:-NAN(09A_Zaz):0:-1: ++%2lG:-NAN():0:-1: ++%*2lG:-NAN():0:-1: ++%2lG:NAN():0:-1: ++%*2lG:NAN():0:-1: ++%2lG:NAN(09A_Zaz):0:-1: ++%*2lG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lG:0X0P0:0:-1: ++# BZ12701 %*2lG:0X0P0:0:-1: ++# BZ12701 %2lG:0X0P+0:0:-1: ++# BZ12701 %*2lG:0X0P+0:0:-1: ++# BZ12701 %2lG:0X8P-1025:0:-1: ++# BZ12701 %*2lG:0X8P-1025:0:-1: ++# BZ12701 %2lG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2lG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2lG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2lG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2lG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2lG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2lG:INFINITY:0:-1: ++%*2lG:INFINITY:0:-1: ++%2lG:+NAN():0:-1: ++%*2lG:+NAN():0:-1: ++%2lG:+NAN(09A_Zaz):0:-1: ++%*2lG:+NAN(09A_Zaz):0:-1: ++%2lG:+0X0P0:1:2:0x0: ++%*2lG:+0X0P0:0:2: ++%2lG:+0X0P+0:1:2:0x0: ++%*2lG:+0X0P+0:0:2: ++%2lG:+0X8P-1025:1:2:0x0: ++%*2lG:+0X8P-1025:0:2: ++%2lG:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2lG:+0X2.3456789ABCDFEP0123:0:2: ++%2lG:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2lG:+0X2.3456789ABCDFEP+123:0:2: ++%2lG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2lG:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2lG:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lG:+INFINITY:0:-1: ++%*2lG:+INFINITY:0:-1: ++%3lG::0:-1: ++%*3lG::0:-1: ++%3lG:-INFINITY:0:-1: ++%*3lG:-INFINITY:0:-1: ++# BZ12701 %3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lG:-0X8P-1025:0:-1: ++# BZ12701 %*3lG:-0X8P-1025:0:-1: ++# BZ12701 %3lG:-0X0P+0:0:-1: ++# BZ12701 %*3lG:-0X0P+0:0:-1: ++# BZ12701 %3lG:-0X0P0:0:-1: ++# BZ12701 %*3lG:-0X0P0:0:-1: ++%3lG:-NAN(09A_Zaz):0:-1: ++%*3lG:-NAN(09A_Zaz):0:-1: ++%3lG:-NAN():0:-1: ++%*3lG:-NAN():0:-1: ++%3lG:NAN():1:3:nan: ++%*3lG:NAN():0:3: ++%3lG:NAN(09A_Zaz):1:3:nan: ++%*3lG:NAN(09A_Zaz):0:3: ++%3lG:0X0P0:1:3:0x0: ++%*3lG:0X0P0:0:3: ++%3lG:0X0P+0:1:3:0x0: ++%*3lG:0X0P+0:0:3: ++%3lG:0X8P-1025:1:3:0x1p3: ++%*3lG:0X8P-1025:0:3: ++%3lG:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3lG:0X2.3456789ABCDFEP0123:0:3: ++%3lG:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3lG:0X2.3456789ABCDFEP+123:0:3: ++%3lG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3lG:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3lG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3lG:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3lG:INFINITY:1:3:inf: ++%*3lG:INFINITY:0:3: ++%3lG:+NAN():0:-1: ++%*3lG:+NAN():0:-1: ++%3lG:+NAN(09A_Zaz):0:-1: ++%*3lG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lG:+0X0P0:0:-1: ++# BZ12701 %*3lG:+0X0P0:0:-1: ++# BZ12701 %3lG:+0X0P+0:0:-1: ++# BZ12701 %*3lG:+0X0P+0:0:-1: ++# BZ12701 %3lG:+0X8P-1025:0:-1: ++# BZ12701 %*3lG:+0X8P-1025:0:-1: ++# BZ12701 %3lG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3lG:+INFINITY:0:-1: ++%*3lG:+INFINITY:0:-1: ++%4lG::0:-1: ++%*4lG::0:-1: ++%4lG:-INFINITY:1:4:-inf: ++%*4lG:-INFINITY:0:4: ++%4lG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4lG:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4lG:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4lG:-0X2.3456789ABCDFEP+123:0:4: ++%4lG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4lG:-0X2.3456789ABCDFEP0123:0:4: ++%4lG:-0X8P-1025:1:4:-0x1p3: ++%*4lG:-0X8P-1025:0:4: ++%4lG:-0X0P+0:1:4:-0x0: ++%*4lG:-0X0P+0:0:4: ++%4lG:-0X0P0:1:4:-0x0: ++%*4lG:-0X0P0:0:4: ++%4lG:-NAN(09A_Zaz):1:4:-nan: ++%*4lG:-NAN(09A_Zaz):0:4: ++%4lG:-NAN():1:4:-nan: ++%*4lG:-NAN():0:4: ++%4lG:NAN():0:-1: ++%*4lG:NAN():0:-1: ++%4lG:NAN(09A_Zaz):0:-1: ++%*4lG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4lG:0X0P0:0:-1: ++# BZ12701 %*4lG:0X0P0:0:-1: ++# BZ12701 %4lG:0X0P+0:0:-1: ++# BZ12701 %*4lG:0X0P+0:0:-1: ++# BZ12701 %4lG:0X8P-1025:0:-1: ++# BZ12701 %*4lG:0X8P-1025:0:-1: ++%4lG:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lG:0X2.3456789ABCDFEP0123:0:4: ++%4lG:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lG:0X2.3456789ABCDFEP+123:0:4: ++%4lG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lG:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lG:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:INFINITY:0:-1: ++%*4lG:INFINITY:0:-1: ++%4lG:+NAN():1:4:nan: ++%*4lG:+NAN():0:4: ++%4lG:+NAN(09A_Zaz):1:4:nan: ++%*4lG:+NAN(09A_Zaz):0:4: ++%4lG:+0X0P0:1:4:0x0: ++%*4lG:+0X0P0:0:4: ++%4lG:+0X0P+0:1:4:0x0: ++%*4lG:+0X0P+0:0:4: ++%4lG:+0X8P-1025:1:4:0x1p3: ++%*4lG:+0X8P-1025:0:4: ++%4lG:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lG:+0X2.3456789ABCDFEP0123:0:4: ++%4lG:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lG:+0X2.3456789ABCDFEP+123:0:4: ++%4lG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lG:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lG:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:+INFINITY:1:4:inf: ++%*4lG:+INFINITY:0:4: ++%5lG::0:-1: ++%*5lG::0:-1: ++%5lG:-INFINITY:0:-1: ++%*5lG:-INFINITY:0:-1: ++%5lG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5lG:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5lG:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5lG:-0X2.3456789ABCDFEP+123:0:5: ++%5lG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5lG:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5lG:-0X8P-1025:0:-1: ++# BZ12701 %*5lG:-0X8P-1025:0:-1: ++# BZ12701 %5lG:-0X0P+0:0:-1: ++# BZ12701 %*5lG:-0X0P+0:0:-1: ++# BZ12701 %5lG:-0X0P0:0:-1: ++# BZ12701 %*5lG:-0X0P0:0:-1: ++%5lG:-NAN(09A_Zaz):0:-1: ++%*5lG:-NAN(09A_Zaz):0:-1: ++%5lG:-NAN():0:-1: ++%*5lG:-NAN():0:-1: ++%5lG:NAN():1:5:nan: ++%*5lG:NAN():0:5: ++%5lG:NAN(09A_Zaz):0:-1: ++%*5lG:NAN(09A_Zaz):0:-1: ++%5lG:0X0P0:1:5:0x0: ++%*5lG:0X0P0:0:5: ++# BZ12701 %5lG:0X0P+0:0:-1: ++# BZ12701 %*5lG:0X0P+0:0:-1: ++# BZ12701 %5lG:0X8P-1025:0:-1: ++# BZ12701 %*5lG:0X8P-1025:0:-1: ++%5lG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5lG:0X2.3456789ABCDFEP0123:0:5: ++%5lG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5lG:0X2.3456789ABCDFEP+123:0:5: ++%5lG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5lG:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5lG:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:INFINITY:0:-1: ++%*5lG:INFINITY:0:-1: ++%5lG:+NAN():0:-1: ++%*5lG:+NAN():0:-1: ++%5lG:+NAN(09A_Zaz):0:-1: ++%*5lG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5lG:+0X0P0:0:-1: ++# BZ12701 %*5lG:+0X0P0:0:-1: ++# BZ12701 %5lG:+0X0P+0:0:-1: ++# BZ12701 %*5lG:+0X0P+0:0:-1: ++# BZ12701 %5lG:+0X8P-1025:0:-1: ++# BZ12701 %*5lG:+0X8P-1025:0:-1: ++%5lG:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5lG:+0X2.3456789ABCDFEP0123:0:5: ++%5lG:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5lG:+0X2.3456789ABCDFEP+123:0:5: ++%5lG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5lG:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5lG:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:+INFINITY:0:-1: ++%*5lG:+INFINITY:0:-1: ++%6lG::0:-1: ++%*6lG::0:-1: ++%6lG:-INFINITY:0:-1: ++%*6lG:-INFINITY:0:-1: ++%6lG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6lG:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6lG:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6lG:-0X2.3456789ABCDFEP+123:0:6: ++%6lG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6lG:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6lG:-0X8P-1025:0:-1: ++# BZ12701 %*6lG:-0X8P-1025:0:-1: ++# BZ12701 %6lG:-0X0P+0:0:-1: ++# BZ12701 %*6lG:-0X0P+0:0:-1: ++%6lG:-0X0P0:1:6:-0x0: ++%*6lG:-0X0P0:0:6: ++%6lG:-NAN(09A_Zaz):0:-1: ++%*6lG:-NAN(09A_Zaz):0:-1: ++%6lG:-NAN():1:6:-nan: ++%*6lG:-NAN():0:6: ++%6lG:NAN():1:5:nan: ++%*6lG:NAN():0:5: ++%6lG:NAN(09A_Zaz):0:-1: ++%*6lG:NAN(09A_Zaz):0:-1: ++%6lG:0X0P0:1:5:0x0: ++%*6lG:0X0P0:0:5: ++%6lG:0X0P+0:1:6:0x0: ++%*6lG:0X0P+0:0:6: ++%6lG:0X8P-1025:1:6:0x1p2: ++%*6lG:0X8P-1025:0:6: ++%6lG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6lG:0X2.3456789ABCDFEP0123:0:6: ++%6lG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6lG:0X2.3456789ABCDFEP+123:0:6: ++%6lG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6lG:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6lG:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:INFINITY:0:-1: ++%*6lG:INFINITY:0:-1: ++%6lG:+NAN():1:6:nan: ++%*6lG:+NAN():0:6: ++%6lG:+NAN(09A_Zaz):0:-1: ++%*6lG:+NAN(09A_Zaz):0:-1: ++%6lG:+0X0P0:1:6:0x0: ++%*6lG:+0X0P0:0:6: ++# BZ12701 %6lG:+0X0P+0:0:-1: ++# BZ12701 %*6lG:+0X0P+0:0:-1: ++# BZ12701 %6lG:+0X8P-1025:0:-1: ++# BZ12701 %*6lG:+0X8P-1025:0:-1: ++%6lG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6lG:+0X2.3456789ABCDFEP0123:0:6: ++%6lG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6lG:+0X2.3456789ABCDFEP+123:0:6: ++%6lG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6lG:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6lG:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:+INFINITY:0:-1: ++%*6lG:+INFINITY:0:-1: ++%20lG::0:-1: ++%*20lG::0:-1: ++%20lG:-INFINITY:1:9:-inf: ++%*20lG:-INFINITY:0:9: ++# BZ12701 %20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20lG:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lG:-0X2.3456789ABCDFEP+123:0:-1: ++%20lG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lG:-0X2.3456789ABCDFEP0123:0:20: ++%20lG:-0X8P-1025:1:10:-0x1p-1022: ++%*20lG:-0X8P-1025:0:10: ++%20lG:-0X0P+0:1:7:-0x0: ++%*20lG:-0X0P+0:0:7: ++%20lG:-0X0P0:1:6:-0x0: ++%*20lG:-0X0P0:0:6: ++%20lG:-NAN(09A_Zaz):1:13:-nan: ++%*20lG:-NAN(09A_Zaz):0:13: ++%20lG:-NAN():1:6:-nan: ++%*20lG:-NAN():0:6: ++%20lG:NAN():1:5:nan: ++%*20lG:NAN():0:5: ++%20lG:NAN(09A_Zaz):1:12:nan: ++%*20lG:NAN(09A_Zaz):0:12: ++%20lG:0X0P0:1:5:0x0: ++%*20lG:0X0P0:0:5: ++%20lG:0X0P+0:1:6:0x0: ++%*20lG:0X0P+0:0:6: ++%20lG:0X8P-1025:1:9:0x1p-1022: ++%*20lG:0X8P-1025:0:9: ++%20lG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lG:0X2.3456789ABCDFEP0123:0:20: ++%20lG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lG:0X2.3456789ABCDFEP+123:0:20: ++%20lG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20lG:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20lG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20lG:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20lG:INFINITY:1:8:inf: ++%*20lG:INFINITY:0:8: ++%20lG:+NAN():1:6:nan: ++%*20lG:+NAN():0:6: ++%20lG:+NAN(09A_Zaz):1:13:nan: ++%*20lG:+NAN(09A_Zaz):0:13: ++%20lG:+0X0P0:1:6:0x0: ++%*20lG:+0X0P0:0:6: ++%20lG:+0X0P+0:1:7:0x0: ++%*20lG:+0X0P+0:0:7: ++%20lG:+0X8P-1025:1:10:0x1p-1022: ++%*20lG:+0X8P-1025:0:10: ++%20lG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lG:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lG:+0X2.3456789ABCDFEP+123:0:-1: ++%20lG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20lG:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lG:+INFINITY:1:9:inf: ++%*20lG:+INFINITY:0:9: ++%32lG::0:-1: ++%*32lG::0:-1: ++%32lG:-INFINITY:1:9:-inf: ++%*32lG:-INFINITY:0:9: ++%32lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32lG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lG:-0X2.3456789ABCDFEP+123:0:23: ++%32lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lG:-0X2.3456789ABCDFEP0123:0:23: ++%32lG:-0X8P-1025:1:10:-0x1p-1022: ++%*32lG:-0X8P-1025:0:10: ++%32lG:-0X0P+0:1:7:-0x0: ++%*32lG:-0X0P+0:0:7: ++%32lG:-0X0P0:1:6:-0x0: ++%*32lG:-0X0P0:0:6: ++%32lG:-NAN(09A_Zaz):1:13:-nan: ++%*32lG:-NAN(09A_Zaz):0:13: ++%32lG:-NAN():1:6:-nan: ++%*32lG:-NAN():0:6: ++%32lG:NAN():1:5:nan: ++%*32lG:NAN():0:5: ++%32lG:NAN(09A_Zaz):1:12:nan: ++%*32lG:NAN(09A_Zaz):0:12: ++%32lG:0X0P0:1:5:0x0: ++%*32lG:0X0P0:0:5: ++%32lG:0X0P+0:1:6:0x0: ++%*32lG:0X0P+0:0:6: ++%32lG:0X8P-1025:1:9:0x1p-1022: ++%*32lG:0X8P-1025:0:9: ++%32lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lG:0X2.3456789ABCDFEP0123:0:22: ++%32lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lG:0X2.3456789ABCDFEP+123:0:22: ++%32lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32lG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32lG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32lG:INFINITY:1:8:inf: ++%*32lG:INFINITY:0:8: ++%32lG:+NAN():1:6:nan: ++%*32lG:+NAN():0:6: ++%32lG:+NAN(09A_Zaz):1:13:nan: ++%*32lG:+NAN(09A_Zaz):0:13: ++%32lG:+0X0P0:1:6:0x0: ++%*32lG:+0X0P0:0:6: ++%32lG:+0X0P+0:1:7:0x0: ++%*32lG:+0X0P+0:0:7: ++%32lG:+0X8P-1025:1:10:0x1p-1022: ++%*32lG:+0X8P-1025:0:10: ++%32lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG:+0X2.3456789ABCDFEP0123:0:23: ++%32lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG:+0X2.3456789ABCDFEP+123:0:23: ++%32lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG:+INFINITY:1:9:inf: ++%*32lG:+INFINITY:0:9: ++%5lG: :0:-1: ++%*5lG: :0:-1: ++%5lG: -INFINITY:0:-1: ++%*5lG: -INFINITY:0:-1: ++%5lG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5lG: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5lG: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5lG: -0X2.3456789ABCDFEP+123:0:6: ++%5lG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5lG: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5lG: -0X8P-1025:0:-1: ++# BZ12701 %*5lG: -0X8P-1025:0:-1: ++# BZ12701 %5lG: -0X0P+0:0:-1: ++# BZ12701 %*5lG: -0X0P+0:0:-1: ++# BZ12701 %5lG: -0X0P0:0:-1: ++# BZ12701 %*5lG: -0X0P0:0:-1: ++%5lG: -NAN(09A_Zaz):0:-1: ++%*5lG: -NAN(09A_Zaz):0:-1: ++%5lG: -NAN():0:-1: ++%*5lG: -NAN():0:-1: ++%5lG: NAN():1:6:nan: ++%*5lG: NAN():0:6: ++%5lG: NAN(09A_Zaz):0:-1: ++%*5lG: NAN(09A_Zaz):0:-1: ++%5lG: 0X0P0:1:6:0x0: ++%*5lG: 0X0P0:0:6: ++# BZ12701 %5lG: 0X0P+0:0:-1: ++# BZ12701 %*5lG: 0X0P+0:0:-1: ++# BZ12701 %5lG: 0X8P-1025:0:-1: ++# BZ12701 %*5lG: 0X8P-1025:0:-1: ++%5lG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5lG: 0X2.3456789ABCDFEP0123:0:6: ++%5lG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5lG: 0X2.3456789ABCDFEP+123:0:6: ++%5lG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5lG: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5lG: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: INFINITY:0:-1: ++%*5lG: INFINITY:0:-1: ++%5lG: +NAN():0:-1: ++%*5lG: +NAN():0:-1: ++%5lG: +NAN(09A_Zaz):0:-1: ++%*5lG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5lG: +0X0P0:0:-1: ++# BZ12701 %*5lG: +0X0P0:0:-1: ++# BZ12701 %5lG: +0X0P+0:0:-1: ++# BZ12701 %*5lG: +0X0P+0:0:-1: ++# BZ12701 %5lG: +0X8P-1025:0:-1: ++# BZ12701 %*5lG: +0X8P-1025:0:-1: ++%5lG: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5lG: +0X2.3456789ABCDFEP0123:0:6: ++%5lG: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5lG: +0X2.3456789ABCDFEP+123:0:6: ++%5lG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5lG: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5lG: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: +INFINITY:0:-1: ++%*5lG: +INFINITY:0:-1: ++%32lG: :0:-1: ++%*32lG: :0:-1: ++%32lG: -INFINITY:1:10:-inf: ++%*32lG: -INFINITY:0:10: ++%32lG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lG: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32lG: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lG: -0X2.3456789ABCDFEP+123:0:24: ++%32lG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lG: -0X2.3456789ABCDFEP0123:0:24: ++%32lG: -0X8P-1025:1:11:-0x1p-1022: ++%*32lG: -0X8P-1025:0:11: ++%32lG: -0X0P+0:1:8:-0x0: ++%*32lG: -0X0P+0:0:8: ++%32lG: -0X0P0:1:7:-0x0: ++%*32lG: -0X0P0:0:7: ++%32lG: -NAN(09A_Zaz):1:14:-nan: ++%*32lG: -NAN(09A_Zaz):0:14: ++%32lG: -NAN():1:7:-nan: ++%*32lG: -NAN():0:7: ++%32lG: NAN():1:6:nan: ++%*32lG: NAN():0:6: ++%32lG: NAN(09A_Zaz):1:13:nan: ++%*32lG: NAN(09A_Zaz):0:13: ++%32lG: 0X0P0:1:6:0x0: ++%*32lG: 0X0P0:0:6: ++%32lG: 0X0P+0:1:7:0x0: ++%*32lG: 0X0P+0:0:7: ++%32lG: 0X8P-1025:1:10:0x1p-1022: ++%*32lG: 0X8P-1025:0:10: ++%32lG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG: 0X2.3456789ABCDFEP0123:0:23: ++%32lG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG: 0X2.3456789ABCDFEP+123:0:23: ++%32lG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lG: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lG: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG: INFINITY:1:9:inf: ++%*32lG: INFINITY:0:9: ++%32lG: +NAN():1:7:nan: ++%*32lG: +NAN():0:7: ++%32lG: +NAN(09A_Zaz):1:14:nan: ++%*32lG: +NAN(09A_Zaz):0:14: ++%32lG: +0X0P0:1:7:0x0: ++%*32lG: +0X0P0:0:7: ++%32lG: +0X0P+0:1:8:0x0: ++%*32lG: +0X0P+0:0:8: ++%32lG: +0X8P-1025:1:11:0x1p-1022: ++%*32lG: +0X8P-1025:0:11: ++%32lG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lG: +0X2.3456789ABCDFEP0123:0:24: ++%32lG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lG: +0X2.3456789ABCDFEP+123:0:24: ++%32lG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32lG: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32lG: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lG: +INFINITY:1:10:inf: ++%*32lG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-84306-6.patch b/SOURCES/glibc-RHEL-84306-6.patch new file mode 100644 index 0000000..a328cbc --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-6.patch @@ -0,0 +1,4911 @@ +commit 1890e63c86ceb04a49a914dc2cafa9862e938ef6 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IEEE 754 binary128 format + + Add Makefile infrastructure and `long double' real input data for + targets using the IEEE 754 binary128 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-128/Makefile b/sysdeps/ieee754/ldbl-128/Makefile +index 9cbfc7ff6e8cd6f7..7741f1eef4524b6f 100644 +--- a/sysdeps/ieee754/ldbl-128/Makefile ++++ b/sysdeps/ieee754/ldbl-128/Makefile +@@ -126,3 +126,7 @@ CFLAGS-s_y0l.c += -fno-builtin-y0f64x -fno-builtin-y0f128 + CFLAGS-s_y1l.c += -fno-builtin-y1f64x -fno-builtin-y1f128 + CFLAGS-s_ynl.c += -fno-builtin-ynf64x -fno-builtin-ynf128 + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++endif +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..41fe52ffa0e50613 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*La:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%La:-0x8p-16385:1:11:-0x1p-16382: ++%*La:-0x8p-16385:0:11: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-16385:1:10:0x1p-16382: ++%*La:0x8p-16385:0:10: ++%La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-16385:1:11:0x1p-16382: ++%*La:+0x8p-16385:0:11: ++%La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1La:-0x8p-16385:0:-1: ++%*1La:-0x8p-16385:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-16385:1:1:0x0: ++%*1La:0x8p-16385:0:1: ++%1La:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcdep012345:0:1: ++%1La:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcdep+12345:0:1: ++%1La:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0: ++%*1La:0x7.fffffffffffffffffffffffffffcp16381:0:1: ++%1La:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0: ++%*1La:0xf.fffffffffffffffffffffffffff8p+16380:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-16385:0:-1: ++%*1La:+0x8p-16385:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0: ++%*2La:-0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2La:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0: ++%*2La:-0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2La:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2La:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2La:-0x8p-16385:1:2:-0x0: ++%*2La:-0x8p-16385:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-16385:0:-1: ++# BZ12701 %*2La:0x8p-16385:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-16385:1:2:0x0: ++%*2La:+0x8p-16385:0:2: ++%2La:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2La:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2La:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0: ++%*2La:+0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2La:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0: ++%*2La:+0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3La:-0x8p-16385:0:-1: ++# BZ12701 %*3La:-0x8p-16385:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-16385:1:3:0x1p3: ++%*3La:0x8p-16385:0:3: ++%3La:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcdep012345:0:3: ++%3La:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcdep+12345:0:3: ++%3La:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2: ++%*3La:0x7.fffffffffffffffffffffffffffcp16381:0:3: ++%3La:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3: ++%*3La:0xf.fffffffffffffffffffffffffff8p+16380:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-16385:0:-1: ++# BZ12701 %*3La:+0x8p-16385:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3: ++%*4La:-0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2: ++%*4La:-0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:-0x8p-16385:1:4:-0x1p3: ++%*4La:-0x8p-16385:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-16385:0:-1: ++# BZ12701 %*4La:0x8p-16385:0:-1: ++%4La:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4La:0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4La:0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-16385:1:4:0x1p3: ++%*4La:+0x8p-16385:0:4: ++%4La:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4La:+0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4La:+0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3: ++%*5La:-0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2: ++%*5La:-0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcdep012345:0:5: ++# BZ12701 %5La:-0x8p-16385:0:-1: ++# BZ12701 %*5La:-0x8p-16385:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-16385:0:-1: ++# BZ12701 %*5La:0x8p-16385:0:-1: ++%5La:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5La:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2: ++%*5La:0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3: ++%*5La:0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-16385:0:-1: ++# BZ12701 %*5La:+0x8p-16385:0:-1: ++%5La:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5La:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2: ++%*5La:+0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3: ++%*5La:+0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3: ++%*6La:-0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2: ++%*6La:-0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %6La:-0x8p-16385:0:-1: ++# BZ12701 %*6La:-0x8p-16385:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-16385:1:6:0x1p2: ++%*6La:0x8p-16385:0:6: ++%6La:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6La:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2: ++%*6La:0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3: ++%*6La:0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-16385:0:-1: ++# BZ12701 %*6La:+0x8p-16385:0:-1: ++%6La:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6La:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*6La:+0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*6La:+0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%35La::0:-1: ++%*35La::0:-1: ++%35La:-infinity:1:9:-inf: ++%*35La:-infinity:0:9: ++# BZ12701 %35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35La:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35La:-0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35La:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35La:-0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35La:-0x8p-16385:1:11:-0x1p-16382: ++%*35La:-0x8p-16385:0:11: ++%35La:-0x0p+0:1:7:-0x0: ++%*35La:-0x0p+0:0:7: ++%35La:-0x0p0:1:6:-0x0: ++%*35La:-0x0p0:0:6: ++%35La:-nan(09A_Zaz):1:13:-nan: ++%*35La:-nan(09A_Zaz):0:13: ++%35La:-nan():1:6:-nan: ++%*35La:-nan():0:6: ++%35La:nan():1:5:nan: ++%*35La:nan():0:5: ++%35La:nan(09A_Zaz):1:12:nan: ++%*35La:nan(09A_Zaz):0:12: ++%35La:0x0p0:1:5:0x0: ++%*35La:0x0p0:0:5: ++%35La:0x0p+0:1:6:0x0: ++%*35La:0x0p+0:0:6: ++%35La:0x8p-16385:1:10:0x1p-16382: ++%*35La:0x8p-16385:0:10: ++%35La:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35La:0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35La:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35La:0x2.3456789abcdef0123456789abcdep+12345:0:35: ++%35La:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35La:0x7.fffffffffffffffffffffffffffcp16381:0:35: ++%35La:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35La:0xf.fffffffffffffffffffffffffff8p+16380:0:35: ++%35La:infinity:1:8:inf: ++%*35La:infinity:0:8: ++%35La:+nan():1:6:nan: ++%*35La:+nan():0:6: ++%35La:+nan(09A_Zaz):1:13:nan: ++%*35La:+nan(09A_Zaz):0:13: ++%35La:+0x0p0:1:6:0x0: ++%*35La:+0x0p0:0:6: ++%35La:+0x0p+0:1:7:0x0: ++%*35La:+0x0p+0:0:7: ++%35La:+0x8p-16385:1:11:0x1p-16382: ++%*35La:+0x8p-16385:0:11: ++%35La:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35La:+0x2.3456789abcdef0123456789abcdep012345:0:35: ++# BZ12701 %35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35La:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35La:+0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35La:+infinity:1:9:inf: ++%*35La:+infinity:0:9: ++%53La::0:-1: ++%*53La::0:-1: ++%53La:-infinity:1:9:-inf: ++%*53La:-infinity:0:9: ++%53La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La:-0x8p-16385:1:11:-0x1p-16382: ++%*53La:-0x8p-16385:0:11: ++%53La:-0x0p+0:1:7:-0x0: ++%*53La:-0x0p+0:0:7: ++%53La:-0x0p0:1:6:-0x0: ++%*53La:-0x0p0:0:6: ++%53La:-nan(09A_Zaz):1:13:-nan: ++%*53La:-nan(09A_Zaz):0:13: ++%53La:-nan():1:6:-nan: ++%*53La:-nan():0:6: ++%53La:nan():1:5:nan: ++%*53La:nan():0:5: ++%53La:nan(09A_Zaz):1:12:nan: ++%*53La:nan(09A_Zaz):0:12: ++%53La:0x0p0:1:5:0x0: ++%*53La:0x0p0:0:5: ++%53La:0x0p+0:1:6:0x0: ++%*53La:0x0p+0:0:6: ++%53La:0x8p-16385:1:10:0x1p-16382: ++%*53La:0x8p-16385:0:10: ++%53La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%53La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%53La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%53La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%53La:infinity:1:8:inf: ++%*53La:infinity:0:8: ++%53La:+nan():1:6:nan: ++%*53La:+nan():0:6: ++%53La:+nan(09A_Zaz):1:13:nan: ++%*53La:+nan(09A_Zaz):0:13: ++%53La:+0x0p0:1:6:0x0: ++%*53La:+0x0p0:0:6: ++%53La:+0x0p+0:1:7:0x0: ++%*53La:+0x0p+0:0:7: ++%53La:+0x8p-16385:1:11:0x1p-16382: ++%*53La:+0x8p-16385:0:11: ++%53La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La:+infinity:1:9:inf: ++%*53La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3: ++%*5La: -0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2: ++%*5La: -0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %5La: -0x8p-16385:0:-1: ++# BZ12701 %*5La: -0x8p-16385:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-16385:0:-1: ++# BZ12701 %*5La: 0x8p-16385:0:-1: ++%5La: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5La: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*5La: 0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*5La: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-16385:0:-1: ++# BZ12701 %*5La: +0x8p-16385:0:-1: ++%5La: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5La: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2: ++%*5La: +0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3: ++%*5La: +0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%53La: :0:-1: ++%*53La: :0:-1: ++%53La: -infinity:1:10:-inf: ++%*53La: -infinity:0:10: ++%53La: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: -0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53La: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: -0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53La: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: -0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53La: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: -0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53La: -0x8p-16385:1:12:-0x1p-16382: ++%*53La: -0x8p-16385:0:12: ++%53La: -0x0p+0:1:8:-0x0: ++%*53La: -0x0p+0:0:8: ++%53La: -0x0p0:1:7:-0x0: ++%*53La: -0x0p0:0:7: ++%53La: -nan(09A_Zaz):1:14:-nan: ++%*53La: -nan(09A_Zaz):0:14: ++%53La: -nan():1:7:-nan: ++%*53La: -nan():0:7: ++%53La: nan():1:6:nan: ++%*53La: nan():0:6: ++%53La: nan(09A_Zaz):1:13:nan: ++%*53La: nan(09A_Zaz):0:13: ++%53La: 0x0p0:1:6:0x0: ++%*53La: 0x0p0:0:6: ++%53La: 0x0p+0:1:7:0x0: ++%*53La: 0x0p+0:0:7: ++%53La: 0x8p-16385:1:11:0x1p-16382: ++%*53La: 0x8p-16385:0:11: ++%53La: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: 0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: 0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: 0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La: infinity:1:9:inf: ++%*53La: infinity:0:9: ++%53La: +nan():1:7:nan: ++%*53La: +nan():0:7: ++%53La: +nan(09A_Zaz):1:14:nan: ++%*53La: +nan(09A_Zaz):0:14: ++%53La: +0x0p0:1:7:0x0: ++%*53La: +0x0p0:0:7: ++%53La: +0x0p+0:1:8:0x0: ++%*53La: +0x0p+0:0:8: ++%53La: +0x8p-16385:1:12:0x1p-16382: ++%*53La: +0x8p-16385:0:12: ++%53La: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: +0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53La: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: +0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53La: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: +0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53La: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: +0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53La: +infinity:1:10:inf: ++%*53La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..7208c6e37b10942d +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LA:-0X8P-16385:1:11:-0x1p-16382: ++%*LA:-0X8P-16385:0:11: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-16385:1:10:0x1p-16382: ++%*LA:0X8P-16385:0:10: ++%LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-16385:1:11:0x1p-16382: ++%*LA:+0X8P-16385:0:11: ++%LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LA:-0X8P-16385:0:-1: ++%*1LA:-0X8P-16385:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-16385:1:1:0x0: ++%*1LA:0X8P-16385:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1: ++%1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1: ++%1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-16385:0:-1: ++%*1LA:+0X8P-16385:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LA:-0X8P-16385:1:2:-0x0: ++%*2LA:-0X8P-16385:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-16385:0:-1: ++# BZ12701 %*2LA:0X8P-16385:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-16385:1:2:0x0: ++%*2LA:+0X8P-16385:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LA:-0X8P-16385:0:-1: ++# BZ12701 %*3LA:-0X8P-16385:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-16385:1:3:0x1p3: ++%*3LA:0X8P-16385:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3: ++%3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3: ++%3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-16385:0:-1: ++# BZ12701 %*3LA:+0X8P-16385:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:-0X8P-16385:1:4:-0x1p3: ++%*4LA:-0X8P-16385:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-16385:0:-1: ++# BZ12701 %*4LA:0X8P-16385:0:-1: ++%4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-16385:1:4:0x1p3: ++%*4LA:+0X8P-16385:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++# BZ12701 %5LA:-0X8P-16385:0:-1: ++# BZ12701 %*5LA:-0X8P-16385:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-16385:0:-1: ++# BZ12701 %*5LA:0X8P-16385:0:-1: ++%5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-16385:0:-1: ++# BZ12701 %*5LA:+0X8P-16385:0:-1: ++%5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %6LA:-0X8P-16385:0:-1: ++# BZ12701 %*6LA:-0X8P-16385:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-16385:1:6:0x1p2: ++%*6LA:0X8P-16385:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-16385:0:-1: ++# BZ12701 %*6LA:+0X8P-16385:0:-1: ++%6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%35LA::0:-1: ++%*35LA::0:-1: ++%35LA:-INFINITY:1:9:-inf: ++%*35LA:-INFINITY:0:9: ++# BZ12701 %35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LA:-0X8P-16385:1:11:-0x1p-16382: ++%*35LA:-0X8P-16385:0:11: ++%35LA:-0X0P+0:1:7:-0x0: ++%*35LA:-0X0P+0:0:7: ++%35LA:-0X0P0:1:6:-0x0: ++%*35LA:-0X0P0:0:6: ++%35LA:-NAN(09A_Zaz):1:13:-nan: ++%*35LA:-NAN(09A_Zaz):0:13: ++%35LA:-NAN():1:6:-nan: ++%*35LA:-NAN():0:6: ++%35LA:NAN():1:5:nan: ++%*35LA:NAN():0:5: ++%35LA:NAN(09A_Zaz):1:12:nan: ++%*35LA:NAN(09A_Zaz):0:12: ++%35LA:0X0P0:1:5:0x0: ++%*35LA:0X0P0:0:5: ++%35LA:0X0P+0:1:6:0x0: ++%*35LA:0X0P+0:0:6: ++%35LA:0X8P-16385:1:10:0x1p-16382: ++%*35LA:0X8P-16385:0:10: ++%35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35: ++%35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++%35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: ++%35LA:INFINITY:1:8:inf: ++%*35LA:INFINITY:0:8: ++%35LA:+NAN():1:6:nan: ++%*35LA:+NAN():0:6: ++%35LA:+NAN(09A_Zaz):1:13:nan: ++%*35LA:+NAN(09A_Zaz):0:13: ++%35LA:+0X0P0:1:6:0x0: ++%*35LA:+0X0P0:0:6: ++%35LA:+0X0P+0:1:7:0x0: ++%*35LA:+0X0P+0:0:7: ++%35LA:+0X8P-16385:1:11:0x1p-16382: ++%*35LA:+0X8P-16385:0:11: ++%35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++# BZ12701 %35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LA:+INFINITY:1:9:inf: ++%*35LA:+INFINITY:0:9: ++%53LA::0:-1: ++%*53LA::0:-1: ++%53LA:-INFINITY:1:9:-inf: ++%*53LA:-INFINITY:0:9: ++%53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA:-0X8P-16385:1:11:-0x1p-16382: ++%*53LA:-0X8P-16385:0:11: ++%53LA:-0X0P+0:1:7:-0x0: ++%*53LA:-0X0P+0:0:7: ++%53LA:-0X0P0:1:6:-0x0: ++%*53LA:-0X0P0:0:6: ++%53LA:-NAN(09A_Zaz):1:13:-nan: ++%*53LA:-NAN(09A_Zaz):0:13: ++%53LA:-NAN():1:6:-nan: ++%*53LA:-NAN():0:6: ++%53LA:NAN():1:5:nan: ++%*53LA:NAN():0:5: ++%53LA:NAN(09A_Zaz):1:12:nan: ++%*53LA:NAN(09A_Zaz):0:12: ++%53LA:0X0P0:1:5:0x0: ++%*53LA:0X0P0:0:5: ++%53LA:0X0P+0:1:6:0x0: ++%*53LA:0X0P+0:0:6: ++%53LA:0X8P-16385:1:10:0x1p-16382: ++%*53LA:0X8P-16385:0:10: ++%53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%53LA:INFINITY:1:8:inf: ++%*53LA:INFINITY:0:8: ++%53LA:+NAN():1:6:nan: ++%*53LA:+NAN():0:6: ++%53LA:+NAN(09A_Zaz):1:13:nan: ++%*53LA:+NAN(09A_Zaz):0:13: ++%53LA:+0X0P0:1:6:0x0: ++%*53LA:+0X0P0:0:6: ++%53LA:+0X0P+0:1:7:0x0: ++%*53LA:+0X0P+0:0:7: ++%53LA:+0X8P-16385:1:11:0x1p-16382: ++%*53LA:+0X8P-16385:0:11: ++%53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA:+INFINITY:1:9:inf: ++%*53LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %5LA: -0X8P-16385:0:-1: ++# BZ12701 %*5LA: -0X8P-16385:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-16385:0:-1: ++# BZ12701 %*5LA: 0X8P-16385:0:-1: ++%5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-16385:0:-1: ++# BZ12701 %*5LA: +0X8P-16385:0:-1: ++%5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%53LA: :0:-1: ++%*53LA: :0:-1: ++%53LA: -INFINITY:1:10:-inf: ++%*53LA: -INFINITY:0:10: ++%53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LA: -0X8P-16385:1:12:-0x1p-16382: ++%*53LA: -0X8P-16385:0:12: ++%53LA: -0X0P+0:1:8:-0x0: ++%*53LA: -0X0P+0:0:8: ++%53LA: -0X0P0:1:7:-0x0: ++%*53LA: -0X0P0:0:7: ++%53LA: -NAN(09A_Zaz):1:14:-nan: ++%*53LA: -NAN(09A_Zaz):0:14: ++%53LA: -NAN():1:7:-nan: ++%*53LA: -NAN():0:7: ++%53LA: NAN():1:6:nan: ++%*53LA: NAN():0:6: ++%53LA: NAN(09A_Zaz):1:13:nan: ++%*53LA: NAN(09A_Zaz):0:13: ++%53LA: 0X0P0:1:6:0x0: ++%*53LA: 0X0P0:0:6: ++%53LA: 0X0P+0:1:7:0x0: ++%*53LA: 0X0P+0:0:7: ++%53LA: 0X8P-16385:1:11:0x1p-16382: ++%*53LA: 0X8P-16385:0:11: ++%53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA: INFINITY:1:9:inf: ++%*53LA: INFINITY:0:9: ++%53LA: +NAN():1:7:nan: ++%*53LA: +NAN():0:7: ++%53LA: +NAN(09A_Zaz):1:14:nan: ++%*53LA: +NAN(09A_Zaz):0:14: ++%53LA: +0X0P0:1:7:0x0: ++%*53LA: +0X0P0:0:7: ++%53LA: +0X0P+0:1:8:0x0: ++%*53LA: +0X0P+0:0:8: ++%53LA: +0X8P-16385:1:12:0x1p-16382: ++%*53LA: +0X8P-16385:0:12: ++%53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LA: +INFINITY:1:10:inf: ++%*53LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..0e65a3706cce1ce0 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:-1.18973149535723176508575932662800702e+4932:0:44: ++%Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:-1.18973149535723176508575932662800702e4932:0:43: ++%Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:-3.6190587245056029583909936820055344e+3716:0:43: ++%Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:-3.6190587245056029583909936820055344e03716:0:43: ++%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*Le:3.36210314311209350626267781732175260e-4932:0:43: ++%Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:3.6190587245056029583909936820055344e03716:0:42: ++%Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:3.6190587245056029583909936820055344e+3716:0:42: ++%Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:1.18973149535723176508575932662800702e4932:0:42: ++%Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:1.18973149535723176508575932662800702e+4932:0:43: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:+3.6190587245056029583909936820055344e03716:0:43: ++%Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:+3.6190587245056029583909936820055344e+3716:0:43: ++%Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:+1.18973149535723176508575932662800702e4932:0:43: ++%Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:+1.18973149535723176508575932662800702e+4932:0:44: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%*1Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%1Le:-1.18973149535723176508575932662800702e4932:0:-1: ++%*1Le:-1.18973149535723176508575932662800702e4932:0:-1: ++%1Le:-3.6190587245056029583909936820055344e+3716:0:-1: ++%*1Le:-3.6190587245056029583909936820055344e+3716:0:-1: ++%1Le:-3.6190587245056029583909936820055344e03716:0:-1: ++%*1Le:-3.6190587245056029583909936820055344e03716:0:-1: ++%1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1Le:3.36210314311209350626267781732175260e-4932:0:1: ++%1Le:3.6190587245056029583909936820055344e03716:1:1:0x1.8p1: ++%*1Le:3.6190587245056029583909936820055344e03716:0:1: ++%1Le:3.6190587245056029583909936820055344e+3716:1:1:0x1.8p1: ++%*1Le:3.6190587245056029583909936820055344e+3716:0:1: ++%1Le:1.18973149535723176508575932662800702e4932:1:1:0x1: ++%*1Le:1.18973149535723176508575932662800702e4932:0:1: ++%1Le:1.18973149535723176508575932662800702e+4932:1:1:0x1: ++%*1Le:1.18973149535723176508575932662800702e+4932:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:+3.6190587245056029583909936820055344e03716:0:-1: ++%*1Le:+3.6190587245056029583909936820055344e03716:0:-1: ++%1Le:+3.6190587245056029583909936820055344e+3716:0:-1: ++%*1Le:+3.6190587245056029583909936820055344e+3716:0:-1: ++%1Le:+1.18973149535723176508575932662800702e4932:0:-1: ++%*1Le:+1.18973149535723176508575932662800702e4932:0:-1: ++%1Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%*1Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.18973149535723176508575932662800702e+4932:1:2:-0x1: ++%*2Le:-1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:-1.18973149535723176508575932662800702e4932:1:2:-0x1: ++%*2Le:-1.18973149535723176508575932662800702e4932:0:2: ++%2Le:-3.6190587245056029583909936820055344e+3716:1:2:-0x1.8p1: ++%*2Le:-3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:-3.6190587245056029583909936820055344e03716:1:2:-0x1.8p1: ++%*2Le:-3.6190587245056029583909936820055344e03716:0:2: ++%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2Le:-3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:3.6190587245056029583909936820055344e03716:1:2:0x1.8p1: ++%*2Le:3.6190587245056029583909936820055344e03716:0:2: ++%2Le:3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1: ++%*2Le:3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:1.18973149535723176508575932662800702e4932:1:2:0x1: ++%*2Le:1.18973149535723176508575932662800702e4932:0:2: ++%2Le:1.18973149535723176508575932662800702e+4932:1:2:0x1: ++%*2Le:1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:+3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:+3.6190587245056029583909936820055344e03716:1:2:0x1.8p1: ++%*2Le:+3.6190587245056029583909936820055344e03716:0:2: ++%2Le:+3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1: ++%*2Le:+3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:+1.18973149535723176508575932662800702e4932:1:2:0x1: ++%*2Le:+1.18973149535723176508575932662800702e4932:0:2: ++%2Le:+1.18973149535723176508575932662800702e+4932:1:2:0x1: ++%*2Le:+1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.18973149535723176508575932662800702e+4932:1:3:-0x1: ++%*3Le:-1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:-1.18973149535723176508575932662800702e4932:1:3:-0x1: ++%*3Le:-1.18973149535723176508575932662800702e4932:0:3: ++%3Le:-3.6190587245056029583909936820055344e+3716:1:3:-0x1.8p1: ++%*3Le:-3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:-3.6190587245056029583909936820055344e03716:1:3:-0x1.8p1: ++%*3Le:-3.6190587245056029583909936820055344e03716:0:3: ++%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3Le:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1: ++%*3Le:3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:3.6190587245056029583909936820055344e03716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le:3.6190587245056029583909936820055344e03716:0:3: ++%3Le:3.6190587245056029583909936820055344e+3716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le:3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:1.18973149535723176508575932662800702e4932:1:3:0x1.199999999999999999999999999a: ++%*3Le:1.18973149535723176508575932662800702e4932:0:3: ++%3Le:1.18973149535723176508575932662800702e+4932:1:3:0x1.199999999999999999999999999a: ++%*3Le:1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3Le:+3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:+3.6190587245056029583909936820055344e03716:1:3:0x1.8p1: ++%*3Le:+3.6190587245056029583909936820055344e03716:0:3: ++%3Le:+3.6190587245056029583909936820055344e+3716:1:3:0x1.8p1: ++%*3Le:+3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:+1.18973149535723176508575932662800702e4932:1:3:0x1: ++%*3Le:+1.18973149535723176508575932662800702e4932:0:3: ++%3Le:+1.18973149535723176508575932662800702e+4932:1:3:0x1: ++%*3Le:+1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.18973149535723176508575932662800702e+4932:1:4:-0x1.199999999999999999999999999a: ++%*4Le:-1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:-1.18973149535723176508575932662800702e4932:1:4:-0x1.199999999999999999999999999a: ++%*4Le:-1.18973149535723176508575932662800702e4932:0:4: ++%4Le:-3.6190587245056029583909936820055344e+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:-3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:-3.6190587245056029583909936820055344e03716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:-3.6190587245056029583909936820055344e03716:0:4: ++%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1: ++%*4Le:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1: ++%*4Le:3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:3.6190587245056029583909936820055344e03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4Le:3.6190587245056029583909936820055344e03716:0:4: ++%4Le:3.6190587245056029583909936820055344e+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4Le:3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:1.18973149535723176508575932662800702e4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4Le:1.18973149535723176508575932662800702e4932:0:4: ++%4Le:1.18973149535723176508575932662800702e+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4Le:1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*4Le:+3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:+3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:+3.6190587245056029583909936820055344e03716:0:4: ++%4Le:+3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:+3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:+1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a: ++%*4Le:+1.18973149535723176508575932662800702e4932:0:4: ++%4Le:+1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a: ++%*4Le:+1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++# BZ12701 %*40Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%40Le:-1.18973149535723176508575932662800702e4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:-1.18973149535723176508575932662800702e4932:0:40: ++%40Le:-3.6190587245056029583909936820055344e+3716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40Le:-3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:-3.6190587245056029583909936820055344e03716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40Le:-3.6190587245056029583909936820055344e03716:0:40: ++# BZ12701 %40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12: ++%*40Le:3.36210314311209350626267781732175260e-4932:0:40: ++%40Le:3.6190587245056029583909936820055344e03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40Le:3.6190587245056029583909936820055344e03716:0:40: ++%40Le:3.6190587245056029583909936820055344e+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40Le:3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:1.18973149535723176508575932662800702e4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163: ++%*40Le:1.18973149535723176508575932662800702e4932:0:40: ++%40Le:1.18973149535723176508575932662800702e+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:1.18973149535723176508575932662800702e+4932:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:+3.6190587245056029583909936820055344e03716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40Le:+3.6190587245056029583909936820055344e03716:0:40: ++%40Le:+3.6190587245056029583909936820055344e+3716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40Le:+3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:+1.18973149535723176508575932662800702e4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:+1.18973149535723176508575932662800702e4932:0:40: ++# BZ12701 %40Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++# BZ12701 %*40Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:-1.18973149535723176508575932662800702e+4932:0:44: ++%48Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:-1.18973149535723176508575932662800702e4932:0:43: ++%48Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:-3.6190587245056029583909936820055344e+3716:0:43: ++%48Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:-3.6190587245056029583909936820055344e03716:0:43: ++%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48Le:3.36210314311209350626267781732175260e-4932:0:43: ++%48Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:3.6190587245056029583909936820055344e03716:0:42: ++%48Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:3.6190587245056029583909936820055344e+3716:0:42: ++%48Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:1.18973149535723176508575932662800702e4932:0:42: ++%48Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:1.18973149535723176508575932662800702e+4932:0:43: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:+3.6190587245056029583909936820055344e03716:0:43: ++%48Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:+3.6190587245056029583909936820055344e+3716:0:43: ++%48Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:+1.18973149535723176508575932662800702e4932:0:43: ++%48Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:+1.18973149535723176508575932662800702e+4932:0:44: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.18973149535723176508575932662800702e+4932:1:4:-0x1: ++%*3Le: -1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: -1.18973149535723176508575932662800702e4932:1:4:-0x1: ++%*3Le: -1.18973149535723176508575932662800702e4932:0:4: ++%3Le: -3.6190587245056029583909936820055344e+3716:1:4:-0x1.8p1: ++%*3Le: -3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: -3.6190587245056029583909936820055344e03716:1:4:-0x1.8p1: ++%*3Le: -3.6190587245056029583909936820055344e03716:0:4: ++%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3Le: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*3Le: 3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: 3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le: 3.6190587245056029583909936820055344e03716:0:4: ++%3Le: 3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le: 3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: 1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a: ++%*3Le: 1.18973149535723176508575932662800702e4932:0:4: ++%3Le: 1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a: ++%*3Le: 1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3Le: +3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: +3.6190587245056029583909936820055344e03716:1:4:0x1.8p1: ++%*3Le: +3.6190587245056029583909936820055344e03716:0:4: ++%3Le: +3.6190587245056029583909936820055344e+3716:1:4:0x1.8p1: ++%*3Le: +3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: +1.18973149535723176508575932662800702e4932:1:4:0x1: ++%*3Le: +1.18973149535723176508575932662800702e4932:0:4: ++%3Le: +1.18973149535723176508575932662800702e+4932:1:4:0x1: ++%*3Le: +1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.18973149535723176508575932662800702e+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: -1.18973149535723176508575932662800702e+4932:0:45: ++%48Le: -1.18973149535723176508575932662800702e4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: -1.18973149535723176508575932662800702e4932:0:44: ++%48Le: -3.6190587245056029583909936820055344e+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: -3.6190587245056029583909936820055344e+3716:0:44: ++%48Le: -3.6190587245056029583909936820055344e03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: -3.6190587245056029583909936820055344e03716:0:44: ++%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48Le: -3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le: 3.36210314311209350626267781732175260e-4932:0:44: ++%48Le: 3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: 3.6190587245056029583909936820055344e03716:0:43: ++%48Le: 3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: 3.6190587245056029583909936820055344e+3716:0:43: ++%48Le: 1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: 1.18973149535723176508575932662800702e4932:0:43: ++%48Le: 1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: 1.18973149535723176508575932662800702e+4932:0:44: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48Le: +3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: +3.6190587245056029583909936820055344e03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: +3.6190587245056029583909936820055344e03716:0:44: ++%48Le: +3.6190587245056029583909936820055344e+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: +3.6190587245056029583909936820055344e+3716:0:44: ++%48Le: +1.18973149535723176508575932662800702e4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: +1.18973149535723176508575932662800702e4932:0:44: ++%48Le: +1.18973149535723176508575932662800702e+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: +1.18973149535723176508575932662800702e+4932:0:45: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..8992c73c91384735 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:-1.18973149535723176508575932662800702E+4932:0:44: ++%LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:-1.18973149535723176508575932662800702E4932:0:43: ++%LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:-3.6190587245056029583909936820055344E+3716:0:43: ++%LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:-3.6190587245056029583909936820055344E03716:0:43: ++%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*LE:3.36210314311209350626267781732175260e-4932:0:43: ++%LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:3.6190587245056029583909936820055344E03716:0:42: ++%LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:3.6190587245056029583909936820055344E+3716:0:42: ++%LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:1.18973149535723176508575932662800702E4932:0:42: ++%LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:1.18973149535723176508575932662800702E+4932:0:43: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*LE:+3.36210314311209350626267781732175260e-4932:0:44: ++%LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:+3.6190587245056029583909936820055344E03716:0:43: ++%LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:+3.6190587245056029583909936820055344E+3716:0:43: ++%LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:+1.18973149535723176508575932662800702E4932:0:43: ++%LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:+1.18973149535723176508575932662800702E+4932:0:44: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%*1LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%1LE:-1.18973149535723176508575932662800702E4932:0:-1: ++%*1LE:-1.18973149535723176508575932662800702E4932:0:-1: ++%1LE:-3.6190587245056029583909936820055344E+3716:0:-1: ++%*1LE:-3.6190587245056029583909936820055344E+3716:0:-1: ++%1LE:-3.6190587245056029583909936820055344E03716:0:-1: ++%*1LE:-3.6190587245056029583909936820055344E03716:0:-1: ++%1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1LE:3.36210314311209350626267781732175260e-4932:0:1: ++%1LE:3.6190587245056029583909936820055344E03716:1:1:0x1.8p1: ++%*1LE:3.6190587245056029583909936820055344E03716:0:1: ++%1LE:3.6190587245056029583909936820055344E+3716:1:1:0x1.8p1: ++%*1LE:3.6190587245056029583909936820055344E+3716:0:1: ++%1LE:1.18973149535723176508575932662800702E4932:1:1:0x1: ++%*1LE:1.18973149535723176508575932662800702E4932:0:1: ++%1LE:1.18973149535723176508575932662800702E+4932:1:1:0x1: ++%*1LE:1.18973149535723176508575932662800702E+4932:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:+3.6190587245056029583909936820055344E03716:0:-1: ++%*1LE:+3.6190587245056029583909936820055344E03716:0:-1: ++%1LE:+3.6190587245056029583909936820055344E+3716:0:-1: ++%*1LE:+3.6190587245056029583909936820055344E+3716:0:-1: ++%1LE:+1.18973149535723176508575932662800702E4932:0:-1: ++%*1LE:+1.18973149535723176508575932662800702E4932:0:-1: ++%1LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%*1LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.18973149535723176508575932662800702E+4932:1:2:-0x1: ++%*2LE:-1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:-1.18973149535723176508575932662800702E4932:1:2:-0x1: ++%*2LE:-1.18973149535723176508575932662800702E4932:0:2: ++%2LE:-3.6190587245056029583909936820055344E+3716:1:2:-0x1.8p1: ++%*2LE:-3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:-3.6190587245056029583909936820055344E03716:1:2:-0x1.8p1: ++%*2LE:-3.6190587245056029583909936820055344E03716:0:2: ++%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2LE:-3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2LE:3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:3.6190587245056029583909936820055344E03716:1:2:0x1.8p1: ++%*2LE:3.6190587245056029583909936820055344E03716:0:2: ++%2LE:3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1: ++%*2LE:3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:1.18973149535723176508575932662800702E4932:1:2:0x1: ++%*2LE:1.18973149535723176508575932662800702E4932:0:2: ++%2LE:1.18973149535723176508575932662800702E+4932:1:2:0x1: ++%*2LE:1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2LE:+3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:+3.6190587245056029583909936820055344E03716:1:2:0x1.8p1: ++%*2LE:+3.6190587245056029583909936820055344E03716:0:2: ++%2LE:+3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1: ++%*2LE:+3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:+1.18973149535723176508575932662800702E4932:1:2:0x1: ++%*2LE:+1.18973149535723176508575932662800702E4932:0:2: ++%2LE:+1.18973149535723176508575932662800702E+4932:1:2:0x1: ++%*2LE:+1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.18973149535723176508575932662800702E+4932:1:3:-0x1: ++%*3LE:-1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:-1.18973149535723176508575932662800702E4932:1:3:-0x1: ++%*3LE:-1.18973149535723176508575932662800702E4932:0:3: ++%3LE:-3.6190587245056029583909936820055344E+3716:1:3:-0x1.8p1: ++%*3LE:-3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:-3.6190587245056029583909936820055344E03716:1:3:-0x1.8p1: ++%*3LE:-3.6190587245056029583909936820055344E03716:0:3: ++%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3LE:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1: ++%*3LE:3.36210314311209350626267781732175260e-4932:0:3: ++%3LE:3.6190587245056029583909936820055344E03716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE:3.6190587245056029583909936820055344E03716:0:3: ++%3LE:3.6190587245056029583909936820055344E+3716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE:3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:1.18973149535723176508575932662800702E4932:1:3:0x1.199999999999999999999999999a: ++%*3LE:1.18973149535723176508575932662800702E4932:0:3: ++%3LE:1.18973149535723176508575932662800702E+4932:1:3:0x1.199999999999999999999999999a: ++%*3LE:1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3LE:+3.36210314311209350626267781732175260e-4932:0:3: ++%3LE:+3.6190587245056029583909936820055344E03716:1:3:0x1.8p1: ++%*3LE:+3.6190587245056029583909936820055344E03716:0:3: ++%3LE:+3.6190587245056029583909936820055344E+3716:1:3:0x1.8p1: ++%*3LE:+3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:+1.18973149535723176508575932662800702E4932:1:3:0x1: ++%*3LE:+1.18973149535723176508575932662800702E4932:0:3: ++%3LE:+1.18973149535723176508575932662800702E+4932:1:3:0x1: ++%*3LE:+1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.18973149535723176508575932662800702E+4932:1:4:-0x1.199999999999999999999999999a: ++%*4LE:-1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:-1.18973149535723176508575932662800702E4932:1:4:-0x1.199999999999999999999999999a: ++%*4LE:-1.18973149535723176508575932662800702E4932:0:4: ++%4LE:-3.6190587245056029583909936820055344E+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:-3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:-3.6190587245056029583909936820055344E03716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:-3.6190587245056029583909936820055344E03716:0:4: ++%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1: ++%*4LE:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1: ++%*4LE:3.36210314311209350626267781732175260e-4932:0:4: ++%4LE:3.6190587245056029583909936820055344E03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4LE:3.6190587245056029583909936820055344E03716:0:4: ++%4LE:3.6190587245056029583909936820055344E+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4LE:3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:1.18973149535723176508575932662800702E4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4LE:1.18973149535723176508575932662800702E4932:0:4: ++%4LE:1.18973149535723176508575932662800702E+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4LE:1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*4LE:+3.36210314311209350626267781732175260e-4932:0:4: ++%4LE:+3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:+3.6190587245056029583909936820055344E03716:0:4: ++%4LE:+3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:+3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:+1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a: ++%*4LE:+1.18973149535723176508575932662800702E4932:0:4: ++%4LE:+1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a: ++%*4LE:+1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++# BZ12701 %*40LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%40LE:-1.18973149535723176508575932662800702E4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:-1.18973149535723176508575932662800702E4932:0:40: ++%40LE:-3.6190587245056029583909936820055344E+3716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40LE:-3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:-3.6190587245056029583909936820055344E03716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40LE:-3.6190587245056029583909936820055344E03716:0:40: ++# BZ12701 %40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12: ++%*40LE:3.36210314311209350626267781732175260e-4932:0:40: ++%40LE:3.6190587245056029583909936820055344E03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40LE:3.6190587245056029583909936820055344E03716:0:40: ++%40LE:3.6190587245056029583909936820055344E+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40LE:3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:1.18973149535723176508575932662800702E4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163: ++%*40LE:1.18973149535723176508575932662800702E4932:0:40: ++%40LE:1.18973149535723176508575932662800702E+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:1.18973149535723176508575932662800702E+4932:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:+3.6190587245056029583909936820055344E03716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40LE:+3.6190587245056029583909936820055344E03716:0:40: ++%40LE:+3.6190587245056029583909936820055344E+3716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40LE:+3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:+1.18973149535723176508575932662800702E4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:+1.18973149535723176508575932662800702E4932:0:40: ++# BZ12701 %40LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++# BZ12701 %*40LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:-1.18973149535723176508575932662800702E+4932:0:44: ++%48LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:-1.18973149535723176508575932662800702E4932:0:43: ++%48LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:-3.6190587245056029583909936820055344E+3716:0:43: ++%48LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:-3.6190587245056029583909936820055344E03716:0:43: ++%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48LE:3.36210314311209350626267781732175260e-4932:0:43: ++%48LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:3.6190587245056029583909936820055344E03716:0:42: ++%48LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:3.6190587245056029583909936820055344E+3716:0:42: ++%48LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:1.18973149535723176508575932662800702E4932:0:42: ++%48LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:1.18973149535723176508575932662800702E+4932:0:43: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48LE:+3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:+3.6190587245056029583909936820055344E03716:0:43: ++%48LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:+3.6190587245056029583909936820055344E+3716:0:43: ++%48LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:+1.18973149535723176508575932662800702E4932:0:43: ++%48LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:+1.18973149535723176508575932662800702E+4932:0:44: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.18973149535723176508575932662800702E+4932:1:4:-0x1: ++%*3LE: -1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: -1.18973149535723176508575932662800702E4932:1:4:-0x1: ++%*3LE: -1.18973149535723176508575932662800702E4932:0:4: ++%3LE: -3.6190587245056029583909936820055344E+3716:1:4:-0x1.8p1: ++%*3LE: -3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: -3.6190587245056029583909936820055344E03716:1:4:-0x1.8p1: ++%*3LE: -3.6190587245056029583909936820055344E03716:0:4: ++%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3LE: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*3LE: 3.36210314311209350626267781732175260e-4932:0:4: ++%3LE: 3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE: 3.6190587245056029583909936820055344E03716:0:4: ++%3LE: 3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE: 3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: 1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a: ++%*3LE: 1.18973149535723176508575932662800702E4932:0:4: ++%3LE: 1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a: ++%*3LE: 1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3LE: +3.36210314311209350626267781732175260e-4932:0:4: ++%3LE: +3.6190587245056029583909936820055344E03716:1:4:0x1.8p1: ++%*3LE: +3.6190587245056029583909936820055344E03716:0:4: ++%3LE: +3.6190587245056029583909936820055344E+3716:1:4:0x1.8p1: ++%*3LE: +3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: +1.18973149535723176508575932662800702E4932:1:4:0x1: ++%*3LE: +1.18973149535723176508575932662800702E4932:0:4: ++%3LE: +1.18973149535723176508575932662800702E+4932:1:4:0x1: ++%*3LE: +1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.18973149535723176508575932662800702E+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: -1.18973149535723176508575932662800702E+4932:0:45: ++%48LE: -1.18973149535723176508575932662800702E4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: -1.18973149535723176508575932662800702E4932:0:44: ++%48LE: -3.6190587245056029583909936820055344E+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: -3.6190587245056029583909936820055344E+3716:0:44: ++%48LE: -3.6190587245056029583909936820055344E03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: -3.6190587245056029583909936820055344E03716:0:44: ++%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48LE: -3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48LE: 3.36210314311209350626267781732175260e-4932:0:44: ++%48LE: 3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: 3.6190587245056029583909936820055344E03716:0:43: ++%48LE: 3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: 3.6190587245056029583909936820055344E+3716:0:43: ++%48LE: 1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: 1.18973149535723176508575932662800702E4932:0:43: ++%48LE: 1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: 1.18973149535723176508575932662800702E+4932:0:44: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48LE: +3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: +3.6190587245056029583909936820055344E03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: +3.6190587245056029583909936820055344E03716:0:44: ++%48LE: +3.6190587245056029583909936820055344E+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: +3.6190587245056029583909936820055344E+3716:0:44: ++%48LE: +1.18973149535723176508575932662800702E4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: +1.18973149535723176508575932662800702E4932:0:44: ++%48LE: +1.18973149535723176508575932662800702E+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: +1.18973149535723176508575932662800702E+4932:0:45: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..955ef173eb417670 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1: ++%*1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1: ++%1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0: ++%*1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1: ++%1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1: ++%*1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1: ++%1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0: ++%*1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0: ++%*2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1: ++%*2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0: ++%*2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1: ++%*2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5: ++%*2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1: ++%*2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3: ++%*2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1: ++%*2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1: ++%*2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0: ++%*2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1: ++%*2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0: ++%*2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1: ++%*3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3: ++%*3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1: ++%*3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5: ++%*3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8: ++%*3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5: ++%*3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6: ++%*3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3: ++%*3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5: ++%*3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1: ++%*3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3: ++%*3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1: ++%*3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4935Lf::0:-1: ++%*4935Lf::0:-1: ++%4935Lf:-infinity:1:9:-inf: ++%*4935Lf:-infinity:0:9: ++%4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:-0.0:1:4:-0x0: ++%*4935Lf:-0.0:0:4: ++%4935Lf:-0:1:2:-0x0: ++%*4935Lf:-0:0:2: ++%4935Lf:-nan(09A_Zaz):1:13:-nan: ++%*4935Lf:-nan(09A_Zaz):0:13: ++%4935Lf:-nan():1:6:-nan: ++%*4935Lf:-nan():0:6: ++%4935Lf:nan():1:5:nan: ++%*4935Lf:nan():0:5: ++%4935Lf:nan(09A_Zaz):1:12:nan: ++%*4935Lf:nan(09A_Zaz):0:12: ++%4935Lf:0:1:1:0x0: ++%*4935Lf:0:0:1: ++%4935Lf:0.0:1:3:0x0: ++%*4935Lf:0.0:0:3: ++%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383: ++%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:infinity:1:8:inf: ++%*4935Lf:infinity:0:8: ++%4935Lf:+nan():1:6:nan: ++%*4935Lf:+nan():0:6: ++%4935Lf:+nan(09A_Zaz):1:13:nan: ++%*4935Lf:+nan(09A_Zaz):0:13: ++%4935Lf:+0:1:2:0x0: ++%*4935Lf:+0:0:2: ++%4935Lf:+0.0:1:4:0x0: ++%*4935Lf:+0.0:0:4: ++%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:+infinity:1:9:inf: ++%*4935Lf:+infinity:0:9: ++%5000Lf::0:-1: ++%*5000Lf::0:-1: ++%5000Lf:-infinity:1:9:-inf: ++%*5000Lf:-infinity:0:9: ++%5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:-0.0:1:4:-0x0: ++%*5000Lf:-0.0:0:4: ++%5000Lf:-0:1:2:-0x0: ++%*5000Lf:-0:0:2: ++%5000Lf:-nan(09A_Zaz):1:13:-nan: ++%*5000Lf:-nan(09A_Zaz):0:13: ++%5000Lf:-nan():1:6:-nan: ++%*5000Lf:-nan():0:6: ++%5000Lf:nan():1:5:nan: ++%*5000Lf:nan():0:5: ++%5000Lf:nan(09A_Zaz):1:12:nan: ++%*5000Lf:nan(09A_Zaz):0:12: ++%5000Lf:0:1:1:0x0: ++%*5000Lf:0:0:1: ++%5000Lf:0.0:1:3:0x0: ++%*5000Lf:0.0:0:3: ++%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%5000Lf:infinity:1:8:inf: ++%*5000Lf:infinity:0:8: ++%5000Lf:+nan():1:6:nan: ++%*5000Lf:+nan():0:6: ++%5000Lf:+nan(09A_Zaz):1:13:nan: ++%*5000Lf:+nan(09A_Zaz):0:13: ++%5000Lf:+0:1:2:0x0: ++%*5000Lf:+0:0:2: ++%5000Lf:+0.0:1:4:0x0: ++%*5000Lf:+0.0:0:4: ++%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf:+infinity:1:9:inf: ++%*5000Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1: ++%*3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3: ++%*3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1: ++%*3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5: ++%*3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8: ++%*3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5: ++%*3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6: ++%*3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3: ++%*3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5: ++%*3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1: ++%*3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3: ++%*3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1: ++%*3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%5000Lf: :0:-1: ++%*5000Lf: :0:-1: ++%5000Lf: -infinity:1:10:-inf: ++%*5000Lf: -infinity:0:10: ++%5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: -0.0:1:5:-0x0: ++%*5000Lf: -0.0:0:5: ++%5000Lf: -0:1:3:-0x0: ++%*5000Lf: -0:0:3: ++%5000Lf: -nan(09A_Zaz):1:14:-nan: ++%*5000Lf: -nan(09A_Zaz):0:14: ++%5000Lf: -nan():1:7:-nan: ++%*5000Lf: -nan():0:7: ++%5000Lf: nan():1:6:nan: ++%*5000Lf: nan():0:6: ++%5000Lf: nan(09A_Zaz):1:13:nan: ++%*5000Lf: nan(09A_Zaz):0:13: ++%5000Lf: 0:1:2:0x0: ++%*5000Lf: 0:0:2: ++%5000Lf: 0.0:1:4:0x0: ++%*5000Lf: 0.0:0:4: ++%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf: infinity:1:9:inf: ++%*5000Lf: infinity:0:9: ++%5000Lf: +nan():1:7:nan: ++%*5000Lf: +nan():0:7: ++%5000Lf: +nan(09A_Zaz):1:14:nan: ++%*5000Lf: +nan(09A_Zaz):0:14: ++%5000Lf: +0:1:3:0x0: ++%*5000Lf: +0:0:3: ++%5000Lf: +0.0:1:5:0x0: ++%*5000Lf: +0.0:0:5: ++%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000Lf: +infinity:1:10:inf: ++%*5000Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..b3e73df5d359fca7 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1: ++%*1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1: ++%1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0: ++%*1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1: ++%1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1: ++%*1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1: ++%1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0: ++%*1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0: ++%*2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1: ++%*2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0: ++%*2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1: ++%*2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5: ++%*2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1: ++%*2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3: ++%*2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1: ++%*2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1: ++%*2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0: ++%*2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1: ++%*2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0: ++%*2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1: ++%*3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3: ++%*3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1: ++%*3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5: ++%*3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8: ++%*3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5: ++%*3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6: ++%*3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3: ++%*3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5: ++%*3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1: ++%*3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3: ++%*3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1: ++%*3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4935LF::0:-1: ++%*4935LF::0:-1: ++%4935LF:-INFINITY:1:9:-inf: ++%*4935LF:-INFINITY:0:9: ++%4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:-0.0:1:4:-0x0: ++%*4935LF:-0.0:0:4: ++%4935LF:-0:1:2:-0x0: ++%*4935LF:-0:0:2: ++%4935LF:-NAN(09A_Zaz):1:13:-nan: ++%*4935LF:-NAN(09A_Zaz):0:13: ++%4935LF:-NAN():1:6:-nan: ++%*4935LF:-NAN():0:6: ++%4935LF:NAN():1:5:nan: ++%*4935LF:NAN():0:5: ++%4935LF:NAN(09A_Zaz):1:12:nan: ++%*4935LF:NAN(09A_Zaz):0:12: ++%4935LF:0:1:1:0x0: ++%*4935LF:0:0:1: ++%4935LF:0.0:1:3:0x0: ++%*4935LF:0.0:0:3: ++%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383: ++%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:INFINITY:1:8:inf: ++%*4935LF:INFINITY:0:8: ++%4935LF:+NAN():1:6:nan: ++%*4935LF:+NAN():0:6: ++%4935LF:+NAN(09A_Zaz):1:13:nan: ++%*4935LF:+NAN(09A_Zaz):0:13: ++%4935LF:+0:1:2:0x0: ++%*4935LF:+0:0:2: ++%4935LF:+0.0:1:4:0x0: ++%*4935LF:+0.0:0:4: ++%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:+INFINITY:1:9:inf: ++%*4935LF:+INFINITY:0:9: ++%5000LF::0:-1: ++%*5000LF::0:-1: ++%5000LF:-INFINITY:1:9:-inf: ++%*5000LF:-INFINITY:0:9: ++%5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:-0.0:1:4:-0x0: ++%*5000LF:-0.0:0:4: ++%5000LF:-0:1:2:-0x0: ++%*5000LF:-0:0:2: ++%5000LF:-NAN(09A_Zaz):1:13:-nan: ++%*5000LF:-NAN(09A_Zaz):0:13: ++%5000LF:-NAN():1:6:-nan: ++%*5000LF:-NAN():0:6: ++%5000LF:NAN():1:5:nan: ++%*5000LF:NAN():0:5: ++%5000LF:NAN(09A_Zaz):1:12:nan: ++%*5000LF:NAN(09A_Zaz):0:12: ++%5000LF:0:1:1:0x0: ++%*5000LF:0:0:1: ++%5000LF:0.0:1:3:0x0: ++%*5000LF:0.0:0:3: ++%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%5000LF:INFINITY:1:8:inf: ++%*5000LF:INFINITY:0:8: ++%5000LF:+NAN():1:6:nan: ++%*5000LF:+NAN():0:6: ++%5000LF:+NAN(09A_Zaz):1:13:nan: ++%*5000LF:+NAN(09A_Zaz):0:13: ++%5000LF:+0:1:2:0x0: ++%*5000LF:+0:0:2: ++%5000LF:+0.0:1:4:0x0: ++%*5000LF:+0.0:0:4: ++%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF:+INFINITY:1:9:inf: ++%*5000LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1: ++%*3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3: ++%*3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1: ++%*3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5: ++%*3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8: ++%*3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5: ++%*3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6: ++%*3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3: ++%*3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5: ++%*3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1: ++%*3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3: ++%*3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1: ++%*3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%5000LF: :0:-1: ++%*5000LF: :0:-1: ++%5000LF: -INFINITY:1:10:-inf: ++%*5000LF: -INFINITY:0:10: ++%5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: -0.0:1:5:-0x0: ++%*5000LF: -0.0:0:5: ++%5000LF: -0:1:3:-0x0: ++%*5000LF: -0:0:3: ++%5000LF: -NAN(09A_Zaz):1:14:-nan: ++%*5000LF: -NAN(09A_Zaz):0:14: ++%5000LF: -NAN():1:7:-nan: ++%*5000LF: -NAN():0:7: ++%5000LF: NAN():1:6:nan: ++%*5000LF: NAN():0:6: ++%5000LF: NAN(09A_Zaz):1:13:nan: ++%*5000LF: NAN(09A_Zaz):0:13: ++%5000LF: 0:1:2:0x0: ++%*5000LF: 0:0:2: ++%5000LF: 0.0:1:4:0x0: ++%*5000LF: 0.0:0:4: ++%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF: INFINITY:1:9:inf: ++%*5000LF: INFINITY:0:9: ++%5000LF: +NAN():1:7:nan: ++%*5000LF: +NAN():0:7: ++%5000LF: +NAN(09A_Zaz):1:14:nan: ++%*5000LF: +NAN(09A_Zaz):0:14: ++%5000LF: +0:1:3:0x0: ++%*5000LF: +0:0:3: ++%5000LF: +0.0:1:5:0x0: ++%*5000LF: +0.0:0:5: ++%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000LF: +INFINITY:1:10:inf: ++%*5000LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..64560b8b9900015b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*Lg:-0x8p-16385:0:11: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-16385:1:10:0x1p-16382: ++%*Lg:0x8p-16385:0:10: ++%Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-16385:1:11:0x1p-16382: ++%*Lg:+0x8p-16385:0:11: ++%Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1Lg:-0x8p-16385:0:-1: ++%*1Lg:-0x8p-16385:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-16385:1:1:0x0: ++%*1Lg:0x8p-16385:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcdep012345:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcdep+12345:0:1: ++%1Lg:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0: ++%*1Lg:0x7.fffffffffffffffffffffffffffcp16381:0:1: ++%1Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0: ++%*1Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-16385:0:-1: ++%*1Lg:+0x8p-16385:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0: ++%*2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0: ++%*2Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2Lg:-0x8p-16385:1:2:-0x0: ++%*2Lg:-0x8p-16385:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-16385:0:-1: ++# BZ12701 %*2Lg:0x8p-16385:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-16385:1:2:0x0: ++%*2Lg:+0x8p-16385:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0: ++%*2Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0: ++%*2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3Lg:-0x8p-16385:0:-1: ++# BZ12701 %*3Lg:-0x8p-16385:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-16385:1:3:0x1p3: ++%*3Lg:0x8p-16385:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcdep012345:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcdep+12345:0:3: ++%3Lg:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2: ++%*3Lg:0x7.fffffffffffffffffffffffffffcp16381:0:3: ++%3Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3: ++%*3Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-16385:0:-1: ++# BZ12701 %*3Lg:+0x8p-16385:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3: ++%*4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2: ++%*4Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:-0x8p-16385:1:4:-0x1p3: ++%*4Lg:-0x8p-16385:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-16385:0:-1: ++# BZ12701 %*4Lg:0x8p-16385:0:-1: ++%4Lg:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4Lg:0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-16385:1:4:0x1p3: ++%*4Lg:+0x8p-16385:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3: ++%*5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2: ++%*5Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcdep012345:0:5: ++# BZ12701 %5Lg:-0x8p-16385:0:-1: ++# BZ12701 %*5Lg:-0x8p-16385:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-16385:0:-1: ++# BZ12701 %*5Lg:0x8p-16385:0:-1: ++%5Lg:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5Lg:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2: ++%*5Lg:0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3: ++%*5Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-16385:0:-1: ++# BZ12701 %*5Lg:+0x8p-16385:0:-1: ++%5Lg:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2: ++%*5Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3: ++%*5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3: ++%*6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2: ++%*6Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %6Lg:-0x8p-16385:0:-1: ++# BZ12701 %*6Lg:-0x8p-16385:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-16385:1:6:0x1p2: ++%*6Lg:0x8p-16385:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2: ++%*6Lg:0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3: ++%*6Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-16385:0:-1: ++# BZ12701 %*6Lg:+0x8p-16385:0:-1: ++%6Lg:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*6Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%35Lg::0:-1: ++%*35Lg::0:-1: ++%35Lg:-infinity:1:9:-inf: ++%*35Lg:-infinity:0:9: ++# BZ12701 %35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35Lg:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35Lg:-0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*35Lg:-0x8p-16385:0:11: ++%35Lg:-0x0p+0:1:7:-0x0: ++%*35Lg:-0x0p+0:0:7: ++%35Lg:-0x0p0:1:6:-0x0: ++%*35Lg:-0x0p0:0:6: ++%35Lg:-nan(09A_Zaz):1:13:-nan: ++%*35Lg:-nan(09A_Zaz):0:13: ++%35Lg:-nan():1:6:-nan: ++%*35Lg:-nan():0:6: ++%35Lg:nan():1:5:nan: ++%*35Lg:nan():0:5: ++%35Lg:nan(09A_Zaz):1:12:nan: ++%*35Lg:nan(09A_Zaz):0:12: ++%35Lg:0x0p0:1:5:0x0: ++%*35Lg:0x0p0:0:5: ++%35Lg:0x0p+0:1:6:0x0: ++%*35Lg:0x0p+0:0:6: ++%35Lg:0x8p-16385:1:10:0x1p-16382: ++%*35Lg:0x8p-16385:0:10: ++%35Lg:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35Lg:0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35Lg:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35Lg:0x2.3456789abcdef0123456789abcdep+12345:0:35: ++%35Lg:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35Lg:0x7.fffffffffffffffffffffffffffcp16381:0:35: ++%35Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:35: ++%35Lg:infinity:1:8:inf: ++%*35Lg:infinity:0:8: ++%35Lg:+nan():1:6:nan: ++%*35Lg:+nan():0:6: ++%35Lg:+nan(09A_Zaz):1:13:nan: ++%*35Lg:+nan(09A_Zaz):0:13: ++%35Lg:+0x0p0:1:6:0x0: ++%*35Lg:+0x0p0:0:6: ++%35Lg:+0x0p+0:1:7:0x0: ++%*35Lg:+0x0p+0:0:7: ++%35Lg:+0x8p-16385:1:11:0x1p-16382: ++%*35Lg:+0x8p-16385:0:11: ++%35Lg:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35Lg:+0x2.3456789abcdef0123456789abcdep012345:0:35: ++# BZ12701 %35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35Lg:+infinity:1:9:inf: ++%*35Lg:+infinity:0:9: ++%53Lg::0:-1: ++%*53Lg::0:-1: ++%53Lg:-infinity:1:9:-inf: ++%*53Lg:-infinity:0:9: ++%53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*53Lg:-0x8p-16385:0:11: ++%53Lg:-0x0p+0:1:7:-0x0: ++%*53Lg:-0x0p+0:0:7: ++%53Lg:-0x0p0:1:6:-0x0: ++%*53Lg:-0x0p0:0:6: ++%53Lg:-nan(09A_Zaz):1:13:-nan: ++%*53Lg:-nan(09A_Zaz):0:13: ++%53Lg:-nan():1:6:-nan: ++%*53Lg:-nan():0:6: ++%53Lg:nan():1:5:nan: ++%*53Lg:nan():0:5: ++%53Lg:nan(09A_Zaz):1:12:nan: ++%*53Lg:nan(09A_Zaz):0:12: ++%53Lg:0x0p0:1:5:0x0: ++%*53Lg:0x0p0:0:5: ++%53Lg:0x0p+0:1:6:0x0: ++%*53Lg:0x0p+0:0:6: ++%53Lg:0x8p-16385:1:10:0x1p-16382: ++%*53Lg:0x8p-16385:0:10: ++%53Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%53Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%53Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%53Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%53Lg:infinity:1:8:inf: ++%*53Lg:infinity:0:8: ++%53Lg:+nan():1:6:nan: ++%*53Lg:+nan():0:6: ++%53Lg:+nan(09A_Zaz):1:13:nan: ++%*53Lg:+nan(09A_Zaz):0:13: ++%53Lg:+0x0p0:1:6:0x0: ++%*53Lg:+0x0p0:0:6: ++%53Lg:+0x0p+0:1:7:0x0: ++%*53Lg:+0x0p+0:0:7: ++%53Lg:+0x8p-16385:1:11:0x1p-16382: ++%*53Lg:+0x8p-16385:0:11: ++%53Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg:+infinity:1:9:inf: ++%*53Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3: ++%*5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2: ++%*5Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %5Lg: -0x8p-16385:0:-1: ++# BZ12701 %*5Lg: -0x8p-16385:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-16385:0:-1: ++# BZ12701 %*5Lg: 0x8p-16385:0:-1: ++%5Lg: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*5Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-16385:0:-1: ++# BZ12701 %*5Lg: +0x8p-16385:0:-1: ++%5Lg: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2: ++%*5Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3: ++%*5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%53Lg: :0:-1: ++%*53Lg: :0:-1: ++%53Lg: -infinity:1:10:-inf: ++%*53Lg: -infinity:0:10: ++%53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53Lg: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: -0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53Lg: -0x8p-16385:1:12:-0x1p-16382: ++%*53Lg: -0x8p-16385:0:12: ++%53Lg: -0x0p+0:1:8:-0x0: ++%*53Lg: -0x0p+0:0:8: ++%53Lg: -0x0p0:1:7:-0x0: ++%*53Lg: -0x0p0:0:7: ++%53Lg: -nan(09A_Zaz):1:14:-nan: ++%*53Lg: -nan(09A_Zaz):0:14: ++%53Lg: -nan():1:7:-nan: ++%*53Lg: -nan():0:7: ++%53Lg: nan():1:6:nan: ++%*53Lg: nan():0:6: ++%53Lg: nan(09A_Zaz):1:13:nan: ++%*53Lg: nan(09A_Zaz):0:13: ++%53Lg: 0x0p0:1:6:0x0: ++%*53Lg: 0x0p0:0:6: ++%53Lg: 0x0p+0:1:7:0x0: ++%*53Lg: 0x0p+0:0:7: ++%53Lg: 0x8p-16385:1:11:0x1p-16382: ++%*53Lg: 0x8p-16385:0:11: ++%53Lg: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: 0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg: infinity:1:9:inf: ++%*53Lg: infinity:0:9: ++%53Lg: +nan():1:7:nan: ++%*53Lg: +nan():0:7: ++%53Lg: +nan(09A_Zaz):1:14:nan: ++%*53Lg: +nan(09A_Zaz):0:14: ++%53Lg: +0x0p0:1:7:0x0: ++%*53Lg: +0x0p0:0:7: ++%53Lg: +0x0p+0:1:8:0x0: ++%*53Lg: +0x0p+0:0:8: ++%53Lg: +0x8p-16385:1:12:0x1p-16382: ++%*53Lg: +0x8p-16385:0:12: ++%53Lg: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: +0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53Lg: +infinity:1:10:inf: ++%*53Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..7b370c54a727857a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LG:-0X8P-16385:1:11:-0x1p-16382: ++%*LG:-0X8P-16385:0:11: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-16385:1:10:0x1p-16382: ++%*LG:0X8P-16385:0:10: ++%LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-16385:1:11:0x1p-16382: ++%*LG:+0X8P-16385:0:11: ++%LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LG:-0X8P-16385:0:-1: ++%*1LG:-0X8P-16385:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-16385:1:1:0x0: ++%*1LG:0X8P-16385:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1: ++%1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1: ++%1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-16385:0:-1: ++%*1LG:+0X8P-16385:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LG:-0X8P-16385:1:2:-0x0: ++%*2LG:-0X8P-16385:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-16385:0:-1: ++# BZ12701 %*2LG:0X8P-16385:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-16385:1:2:0x0: ++%*2LG:+0X8P-16385:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LG:-0X8P-16385:0:-1: ++# BZ12701 %*3LG:-0X8P-16385:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-16385:1:3:0x1p3: ++%*3LG:0X8P-16385:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3: ++%3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3: ++%3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-16385:0:-1: ++# BZ12701 %*3LG:+0X8P-16385:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:-0X8P-16385:1:4:-0x1p3: ++%*4LG:-0X8P-16385:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-16385:0:-1: ++# BZ12701 %*4LG:0X8P-16385:0:-1: ++%4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-16385:1:4:0x1p3: ++%*4LG:+0X8P-16385:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++# BZ12701 %5LG:-0X8P-16385:0:-1: ++# BZ12701 %*5LG:-0X8P-16385:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-16385:0:-1: ++# BZ12701 %*5LG:0X8P-16385:0:-1: ++%5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-16385:0:-1: ++# BZ12701 %*5LG:+0X8P-16385:0:-1: ++%5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %6LG:-0X8P-16385:0:-1: ++# BZ12701 %*6LG:-0X8P-16385:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-16385:1:6:0x1p2: ++%*6LG:0X8P-16385:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-16385:0:-1: ++# BZ12701 %*6LG:+0X8P-16385:0:-1: ++%6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%35LG::0:-1: ++%*35LG::0:-1: ++%35LG:-INFINITY:1:9:-inf: ++%*35LG:-INFINITY:0:9: ++# BZ12701 %35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LG:-0X8P-16385:1:11:-0x1p-16382: ++%*35LG:-0X8P-16385:0:11: ++%35LG:-0X0P+0:1:7:-0x0: ++%*35LG:-0X0P+0:0:7: ++%35LG:-0X0P0:1:6:-0x0: ++%*35LG:-0X0P0:0:6: ++%35LG:-NAN(09A_Zaz):1:13:-nan: ++%*35LG:-NAN(09A_Zaz):0:13: ++%35LG:-NAN():1:6:-nan: ++%*35LG:-NAN():0:6: ++%35LG:NAN():1:5:nan: ++%*35LG:NAN():0:5: ++%35LG:NAN(09A_Zaz):1:12:nan: ++%*35LG:NAN(09A_Zaz):0:12: ++%35LG:0X0P0:1:5:0x0: ++%*35LG:0X0P0:0:5: ++%35LG:0X0P+0:1:6:0x0: ++%*35LG:0X0P+0:0:6: ++%35LG:0X8P-16385:1:10:0x1p-16382: ++%*35LG:0X8P-16385:0:10: ++%35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35: ++%35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++%35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: ++%35LG:INFINITY:1:8:inf: ++%*35LG:INFINITY:0:8: ++%35LG:+NAN():1:6:nan: ++%*35LG:+NAN():0:6: ++%35LG:+NAN(09A_Zaz):1:13:nan: ++%*35LG:+NAN(09A_Zaz):0:13: ++%35LG:+0X0P0:1:6:0x0: ++%*35LG:+0X0P0:0:6: ++%35LG:+0X0P+0:1:7:0x0: ++%*35LG:+0X0P+0:0:7: ++%35LG:+0X8P-16385:1:11:0x1p-16382: ++%*35LG:+0X8P-16385:0:11: ++%35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++# BZ12701 %35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LG:+INFINITY:1:9:inf: ++%*35LG:+INFINITY:0:9: ++%53LG::0:-1: ++%*53LG::0:-1: ++%53LG:-INFINITY:1:9:-inf: ++%*53LG:-INFINITY:0:9: ++%53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG:-0X8P-16385:1:11:-0x1p-16382: ++%*53LG:-0X8P-16385:0:11: ++%53LG:-0X0P+0:1:7:-0x0: ++%*53LG:-0X0P+0:0:7: ++%53LG:-0X0P0:1:6:-0x0: ++%*53LG:-0X0P0:0:6: ++%53LG:-NAN(09A_Zaz):1:13:-nan: ++%*53LG:-NAN(09A_Zaz):0:13: ++%53LG:-NAN():1:6:-nan: ++%*53LG:-NAN():0:6: ++%53LG:NAN():1:5:nan: ++%*53LG:NAN():0:5: ++%53LG:NAN(09A_Zaz):1:12:nan: ++%*53LG:NAN(09A_Zaz):0:12: ++%53LG:0X0P0:1:5:0x0: ++%*53LG:0X0P0:0:5: ++%53LG:0X0P+0:1:6:0x0: ++%*53LG:0X0P+0:0:6: ++%53LG:0X8P-16385:1:10:0x1p-16382: ++%*53LG:0X8P-16385:0:10: ++%53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%53LG:INFINITY:1:8:inf: ++%*53LG:INFINITY:0:8: ++%53LG:+NAN():1:6:nan: ++%*53LG:+NAN():0:6: ++%53LG:+NAN(09A_Zaz):1:13:nan: ++%*53LG:+NAN(09A_Zaz):0:13: ++%53LG:+0X0P0:1:6:0x0: ++%*53LG:+0X0P0:0:6: ++%53LG:+0X0P+0:1:7:0x0: ++%*53LG:+0X0P+0:0:7: ++%53LG:+0X8P-16385:1:11:0x1p-16382: ++%*53LG:+0X8P-16385:0:11: ++%53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG:+INFINITY:1:9:inf: ++%*53LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %5LG: -0X8P-16385:0:-1: ++# BZ12701 %*5LG: -0X8P-16385:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-16385:0:-1: ++# BZ12701 %*5LG: 0X8P-16385:0:-1: ++%5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-16385:0:-1: ++# BZ12701 %*5LG: +0X8P-16385:0:-1: ++%5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%53LG: :0:-1: ++%*53LG: :0:-1: ++%53LG: -INFINITY:1:10:-inf: ++%*53LG: -INFINITY:0:10: ++%53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LG: -0X8P-16385:1:12:-0x1p-16382: ++%*53LG: -0X8P-16385:0:12: ++%53LG: -0X0P+0:1:8:-0x0: ++%*53LG: -0X0P+0:0:8: ++%53LG: -0X0P0:1:7:-0x0: ++%*53LG: -0X0P0:0:7: ++%53LG: -NAN(09A_Zaz):1:14:-nan: ++%*53LG: -NAN(09A_Zaz):0:14: ++%53LG: -NAN():1:7:-nan: ++%*53LG: -NAN():0:7: ++%53LG: NAN():1:6:nan: ++%*53LG: NAN():0:6: ++%53LG: NAN(09A_Zaz):1:13:nan: ++%*53LG: NAN(09A_Zaz):0:13: ++%53LG: 0X0P0:1:6:0x0: ++%*53LG: 0X0P0:0:6: ++%53LG: 0X0P+0:1:7:0x0: ++%*53LG: 0X0P+0:0:7: ++%53LG: 0X8P-16385:1:11:0x1p-16382: ++%*53LG: 0X8P-16385:0:11: ++%53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG: INFINITY:1:9:inf: ++%*53LG: INFINITY:0:9: ++%53LG: +NAN():1:7:nan: ++%*53LG: +NAN():0:7: ++%53LG: +NAN(09A_Zaz):1:14:nan: ++%*53LG: +NAN(09A_Zaz):0:14: ++%53LG: +0X0P0:1:7:0x0: ++%*53LG: +0X0P0:0:7: ++%53LG: +0X0P+0:1:8:0x0: ++%*53LG: +0X0P+0:0:8: ++%53LG: +0X8P-16385:1:12:0x1p-16382: ++%*53LG: +0X8P-16385:0:12: ++%53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LG: +INFINITY:1:10:inf: ++%*53LG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-84306-7.patch b/SOURCES/glibc-RHEL-84306-7.patch new file mode 100644 index 0000000..6af0c9e --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-7.patch @@ -0,0 +1,5116 @@ +commit 771cda3c9cbbfc33a1a337d964e7749b245dec38 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IEEE 754 binary64 format + + Add Makefile infrastructure and 64-bit `long double' real input data for + targets switching between the IEEE 754 binary64 and IEEE 754 binary128 + formats with `-mlong-double-64' and `-mlong-double-128'. Use modified + output file names for the IEEE 754 binary64 format so as not to clash + with the names used for IEEE 754 binary128 format tests made with common + rules for the 'long double' data type. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/ieee754/ldbl-opt/Makefile + (missing tests downstream for C2x scanf binary handling + commit dee2bea048b688b643a9a3b44b, and missing fortify + exclusions commit 20c894d21eb64153abf7c7f96e6) + +diff --git a/sysdeps/ieee754/ldbl-64-128/Makefile b/sysdeps/ieee754/ldbl-64-128/Makefile +new file mode 100644 +index 0000000000000000..7a37fa179f41002f +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-64-128/Makefile +@@ -0,0 +1,14 @@ ++ifeq ($(subdir),stdio-common) ++ifeq ($(run-built-tests),yes) ++# Put long double IEEE binary128 format inputs in sysdeps/ieee754/ldbl-128 ++# first in vpath. Otherwise the ordering of sysdeps would cause long double ++# IEEE binary64 format inputs in sysdeps/ieee754/ldbl-opt to be used instead ++# for the common rules requested in sysdeps/ieee754/ldbl-128 with targets ++# using the dual -mlong-double-128/-mlong-double-64 arrangement. ++define tst-scanf-format-64-128-vpath ++vpath tst-scanf-format-ldouble-$(1).input ../sysdeps/ieee754/ldbl-128 ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(eval $(call tst-scanf-format-64-128-vpath,$(f)))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common +diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile +index 4e41a27e80c5e1b0..15b0ae3e83d7ccff 100644 +--- a/sysdeps/ieee754/ldbl-opt/Makefile ++++ b/sysdeps/ieee754/ldbl-opt/Makefile +@@ -207,3 +207,58 @@ $(objpfx)tst-nldbl-error.c: tst-ldbl-error.c + CFLAGS-tst-nldbl-warn.c += -mlong-double-64 + CFLAGS-tst-nldbl-error.c += -mlong-double-64 + endif ++ ++ifeq ($(subdir), stdio-common) ++# We already have the long double conversion defined with our common rules ++# for the IEEE binary128 format, so define these special rules to build ++# and run extra executables for the IEEE binary64 format, reusing the same ++# sources. ++define tst-scanf-format-64-tests ++test-srcs += \ ++ tst-scanf-format-$(1)-ldouble-64 \ ++ # test-srcs ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64.o: \ ++ tst-scanf-format-$(1)-ldouble.c $$(before-compile) ++ $$(compile-command.c) ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64: $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-64-tests,$(p)))) ++ ++# Use the IEEE binary64 format for long double scanf format tests. ++$(foreach suf,$(all-object-suffixes), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(objpfx)tst-scanf-format-$(p)-ldouble-64$(suf))): \ ++ sysdep-CFLAGS += -mlong-double-64 ++ ++ifeq ($(run-built-tests),yes) ++define tst-scanf-format-64-rule ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out \ ++ # tests-special ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out: \ ++ ../sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-$(2).input \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64 ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \ ++ # tests-special ++ ++generated += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).mtrace \ ++ # generated ++endif ++endif ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-64-rule,$(p),$(f))))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..42a1ffa84a834f8d +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*La:-0xf.ffffffffffff8p+1020:0:24: ++%La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*La:-0x7.ffffffffffffcp1021:0:23: ++%La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*La:-0x2.3456789abcdfep+123:0:23: ++%La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*La:-0x2.3456789abcdfep0123:0:23: ++%La:-0x8p-1025:1:10:-0x1p-1022: ++%*La:-0x8p-1025:0:10: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-1025:1:9:0x1p-1022: ++%*La:0x8p-1025:0:9: ++%La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*La:0x2.3456789abcdfep0123:0:22: ++%La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*La:0x2.3456789abcdfep+123:0:22: ++%La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*La:0x7.ffffffffffffcp1021:0:22: ++%La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*La:0xf.ffffffffffff8p+1020:0:23: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-1025:1:10:0x1p-1022: ++%*La:+0x8p-1025:0:10: ++%La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*La:+0x2.3456789abcdfep0123:0:23: ++%La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*La:+0x2.3456789abcdfep+123:0:23: ++%La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*La:+0x7.ffffffffffffcp1021:0:23: ++%La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*La:+0xf.ffffffffffff8p+1020:0:24: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.ffffffffffff8p+1020:0:-1: ++%*1La:-0xf.ffffffffffff8p+1020:0:-1: ++%1La:-0x7.ffffffffffffcp1021:0:-1: ++%*1La:-0x7.ffffffffffffcp1021:0:-1: ++%1La:-0x2.3456789abcdfep+123:0:-1: ++%*1La:-0x2.3456789abcdfep+123:0:-1: ++%1La:-0x2.3456789abcdfep0123:0:-1: ++%*1La:-0x2.3456789abcdfep0123:0:-1: ++%1La:-0x8p-1025:0:-1: ++%*1La:-0x8p-1025:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-1025:1:1:0x0: ++%*1La:0x8p-1025:0:1: ++%1La:0x2.3456789abcdfep0123:1:1:0x0: ++%*1La:0x2.3456789abcdfep0123:0:1: ++%1La:0x2.3456789abcdfep+123:1:1:0x0: ++%*1La:0x2.3456789abcdfep+123:0:1: ++%1La:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1La:0x7.ffffffffffffcp1021:0:1: ++%1La:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1La:0xf.ffffffffffff8p+1020:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-1025:0:-1: ++%*1La:+0x8p-1025:0:-1: ++%1La:+0x2.3456789abcdfep0123:0:-1: ++%*1La:+0x2.3456789abcdfep0123:0:-1: ++%1La:+0x2.3456789abcdfep+123:0:-1: ++%*1La:+0x2.3456789abcdfep+123:0:-1: ++%1La:+0x7.ffffffffffffcp1021:0:-1: ++%*1La:+0x7.ffffffffffffcp1021:0:-1: ++%1La:+0xf.ffffffffffff8p+1020:0:-1: ++%*1La:+0xf.ffffffffffff8p+1020:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2La:-0xf.ffffffffffff8p+1020:0:2: ++%2La:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2La:-0x7.ffffffffffffcp1021:0:2: ++%2La:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2La:-0x2.3456789abcdfep+123:0:2: ++%2La:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2La:-0x2.3456789abcdfep0123:0:2: ++%2La:-0x8p-1025:1:2:-0x0: ++%*2La:-0x8p-1025:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-1025:0:-1: ++# BZ12701 %*2La:0x8p-1025:0:-1: ++# BZ12701 %2La:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2La:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2La:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2La:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2La:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2La:0xf.ffffffffffff8p+1020:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-1025:1:2:0x0: ++%*2La:+0x8p-1025:0:2: ++%2La:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2La:+0x2.3456789abcdfep0123:0:2: ++%2La:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2La:+0x2.3456789abcdfep+123:0:2: ++%2La:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2La:+0x7.ffffffffffffcp1021:0:2: ++%2La:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2La:+0xf.ffffffffffff8p+1020:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3La:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3La:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3La:-0x8p-1025:0:-1: ++# BZ12701 %*3La:-0x8p-1025:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-1025:1:3:0x1p3: ++%*3La:0x8p-1025:0:3: ++%3La:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3La:0x2.3456789abcdfep0123:0:3: ++%3La:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3La:0x2.3456789abcdfep+123:0:3: ++%3La:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3La:0x7.ffffffffffffcp1021:0:3: ++%3La:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3La:0xf.ffffffffffff8p+1020:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-1025:0:-1: ++# BZ12701 %*3La:+0x8p-1025:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3La:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3La:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3La:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3La:+0xf.ffffffffffff8p+1020:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4La:-0xf.ffffffffffff8p+1020:0:4: ++%4La:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4La:-0x7.ffffffffffffcp1021:0:4: ++%4La:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdfep+123:0:4: ++%4La:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdfep0123:0:4: ++%4La:-0x8p-1025:1:4:-0x1p3: ++%*4La:-0x8p-1025:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-1025:0:-1: ++# BZ12701 %*4La:0x8p-1025:0:-1: ++%4La:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4La:0x2.3456789abcdfep0123:0:4: ++%4La:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4La:0x2.3456789abcdfep+123:0:4: ++%4La:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4La:0x7.ffffffffffffcp1021:0:4: ++%4La:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4La:0xf.ffffffffffff8p+1020:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-1025:1:4:0x1p3: ++%*4La:+0x8p-1025:0:4: ++%4La:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdfep0123:0:4: ++%4La:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdfep+123:0:4: ++%4La:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4La:+0x7.ffffffffffffcp1021:0:4: ++%4La:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4La:+0xf.ffffffffffff8p+1020:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5La:-0xf.ffffffffffff8p+1020:0:5: ++%5La:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5La:-0x7.ffffffffffffcp1021:0:5: ++%5La:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdfep+123:0:5: ++%5La:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5La:-0x8p-1025:0:-1: ++# BZ12701 %*5La:-0x8p-1025:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-1025:0:-1: ++# BZ12701 %*5La:0x8p-1025:0:-1: ++%5La:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdfep0123:0:5: ++%5La:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdfep+123:0:5: ++%5La:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5La:0x7.ffffffffffffcp1021:0:5: ++%5La:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5La:0xf.ffffffffffff8p+1020:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-1025:0:-1: ++# BZ12701 %*5La:+0x8p-1025:0:-1: ++%5La:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdfep0123:0:5: ++%5La:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdfep+123:0:5: ++%5La:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5La:+0x7.ffffffffffffcp1021:0:5: ++%5La:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5La:+0xf.ffffffffffff8p+1020:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6La:-0xf.ffffffffffff8p+1020:0:6: ++%6La:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6La:-0x7.ffffffffffffcp1021:0:6: ++%6La:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdfep+123:0:6: ++%6La:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6La:-0x8p-1025:0:-1: ++# BZ12701 %*6La:-0x8p-1025:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-1025:1:6:0x1p2: ++%*6La:0x8p-1025:0:6: ++%6La:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdfep0123:0:6: ++%6La:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdfep+123:0:6: ++%6La:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6La:0x7.ffffffffffffcp1021:0:6: ++%6La:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6La:0xf.ffffffffffff8p+1020:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-1025:0:-1: ++# BZ12701 %*6La:+0x8p-1025:0:-1: ++%6La:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdfep0123:0:6: ++%6La:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdfep+123:0:6: ++%6La:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6La:+0x7.ffffffffffffcp1021:0:6: ++%6La:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6La:+0xf.ffffffffffff8p+1020:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%20La::0:-1: ++%*20La::0:-1: ++%20La:-infinity:1:9:-inf: ++%*20La:-infinity:0:9: ++# BZ12701 %20La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20La:-0xf.ffffffffffff8p+1020:0:-1: ++%20La:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20La:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20La:-0x2.3456789abcdfep+123:0:-1: ++%20La:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20La:-0x2.3456789abcdfep0123:0:20: ++%20La:-0x8p-1025:1:10:-0x1p-1022: ++%*20La:-0x8p-1025:0:10: ++%20La:-0x0p+0:1:7:-0x0: ++%*20La:-0x0p+0:0:7: ++%20La:-0x0p0:1:6:-0x0: ++%*20La:-0x0p0:0:6: ++%20La:-nan(09A_Zaz):1:13:-nan: ++%*20La:-nan(09A_Zaz):0:13: ++%20La:-nan():1:6:-nan: ++%*20La:-nan():0:6: ++%20La:nan():1:5:nan: ++%*20La:nan():0:5: ++%20La:nan(09A_Zaz):1:12:nan: ++%*20La:nan(09A_Zaz):0:12: ++%20La:0x0p0:1:5:0x0: ++%*20La:0x0p0:0:5: ++%20La:0x0p+0:1:6:0x0: ++%*20La:0x0p+0:0:6: ++%20La:0x8p-1025:1:9:0x1p-1022: ++%*20La:0x8p-1025:0:9: ++%20La:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20La:0x2.3456789abcdfep0123:0:20: ++%20La:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20La:0x2.3456789abcdfep+123:0:20: ++%20La:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20La:0x7.ffffffffffffcp1021:0:20: ++%20La:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20La:0xf.ffffffffffff8p+1020:0:20: ++%20La:infinity:1:8:inf: ++%*20La:infinity:0:8: ++%20La:+nan():1:6:nan: ++%*20La:+nan():0:6: ++%20La:+nan(09A_Zaz):1:13:nan: ++%*20La:+nan(09A_Zaz):0:13: ++%20La:+0x0p0:1:6:0x0: ++%*20La:+0x0p0:0:6: ++%20La:+0x0p+0:1:7:0x0: ++%*20La:+0x0p+0:0:7: ++%20La:+0x8p-1025:1:10:0x1p-1022: ++%*20La:+0x8p-1025:0:10: ++%20La:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20La:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20La:+0x2.3456789abcdfep+123:0:-1: ++%20La:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20La:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20La:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20La:+0xf.ffffffffffff8p+1020:0:-1: ++%20La:+infinity:1:9:inf: ++%*20La:+infinity:0:9: ++%32La::0:-1: ++%*32La::0:-1: ++%32La:-infinity:1:9:-inf: ++%*32La:-infinity:0:9: ++%32La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32La:-0xf.ffffffffffff8p+1020:0:24: ++%32La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32La:-0x7.ffffffffffffcp1021:0:23: ++%32La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32La:-0x2.3456789abcdfep+123:0:23: ++%32La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32La:-0x2.3456789abcdfep0123:0:23: ++%32La:-0x8p-1025:1:10:-0x1p-1022: ++%*32La:-0x8p-1025:0:10: ++%32La:-0x0p+0:1:7:-0x0: ++%*32La:-0x0p+0:0:7: ++%32La:-0x0p0:1:6:-0x0: ++%*32La:-0x0p0:0:6: ++%32La:-nan(09A_Zaz):1:13:-nan: ++%*32La:-nan(09A_Zaz):0:13: ++%32La:-nan():1:6:-nan: ++%*32La:-nan():0:6: ++%32La:nan():1:5:nan: ++%*32La:nan():0:5: ++%32La:nan(09A_Zaz):1:12:nan: ++%*32La:nan(09A_Zaz):0:12: ++%32La:0x0p0:1:5:0x0: ++%*32La:0x0p0:0:5: ++%32La:0x0p+0:1:6:0x0: ++%*32La:0x0p+0:0:6: ++%32La:0x8p-1025:1:9:0x1p-1022: ++%*32La:0x8p-1025:0:9: ++%32La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32La:0x2.3456789abcdfep0123:0:22: ++%32La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32La:0x2.3456789abcdfep+123:0:22: ++%32La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32La:0x7.ffffffffffffcp1021:0:22: ++%32La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32La:0xf.ffffffffffff8p+1020:0:23: ++%32La:infinity:1:8:inf: ++%*32La:infinity:0:8: ++%32La:+nan():1:6:nan: ++%*32La:+nan():0:6: ++%32La:+nan(09A_Zaz):1:13:nan: ++%*32La:+nan(09A_Zaz):0:13: ++%32La:+0x0p0:1:6:0x0: ++%*32La:+0x0p0:0:6: ++%32La:+0x0p+0:1:7:0x0: ++%*32La:+0x0p+0:0:7: ++%32La:+0x8p-1025:1:10:0x1p-1022: ++%*32La:+0x8p-1025:0:10: ++%32La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La:+0x2.3456789abcdfep0123:0:23: ++%32La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La:+0x2.3456789abcdfep+123:0:23: ++%32La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32La:+0x7.ffffffffffffcp1021:0:23: ++%32La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32La:+0xf.ffffffffffff8p+1020:0:24: ++%32La:+infinity:1:9:inf: ++%*32La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5La: -0xf.ffffffffffff8p+1020:0:6: ++%5La: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5La: -0x7.ffffffffffffcp1021:0:6: ++%5La: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdfep+123:0:6: ++%5La: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5La: -0x8p-1025:0:-1: ++# BZ12701 %*5La: -0x8p-1025:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-1025:0:-1: ++# BZ12701 %*5La: 0x8p-1025:0:-1: ++%5La: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdfep0123:0:6: ++%5La: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdfep+123:0:6: ++%5La: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5La: 0x7.ffffffffffffcp1021:0:6: ++%5La: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5La: 0xf.ffffffffffff8p+1020:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-1025:0:-1: ++# BZ12701 %*5La: +0x8p-1025:0:-1: ++%5La: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdfep0123:0:6: ++%5La: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdfep+123:0:6: ++%5La: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5La: +0x7.ffffffffffffcp1021:0:6: ++%5La: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5La: +0xf.ffffffffffff8p+1020:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%32La: :0:-1: ++%*32La: :0:-1: ++%32La: -infinity:1:10:-inf: ++%*32La: -infinity:0:10: ++%32La: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32La: -0xf.ffffffffffff8p+1020:0:25: ++%32La: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32La: -0x7.ffffffffffffcp1021:0:24: ++%32La: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32La: -0x2.3456789abcdfep+123:0:24: ++%32La: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32La: -0x2.3456789abcdfep0123:0:24: ++%32La: -0x8p-1025:1:11:-0x1p-1022: ++%*32La: -0x8p-1025:0:11: ++%32La: -0x0p+0:1:8:-0x0: ++%*32La: -0x0p+0:0:8: ++%32La: -0x0p0:1:7:-0x0: ++%*32La: -0x0p0:0:7: ++%32La: -nan(09A_Zaz):1:14:-nan: ++%*32La: -nan(09A_Zaz):0:14: ++%32La: -nan():1:7:-nan: ++%*32La: -nan():0:7: ++%32La: nan():1:6:nan: ++%*32La: nan():0:6: ++%32La: nan(09A_Zaz):1:13:nan: ++%*32La: nan(09A_Zaz):0:13: ++%32La: 0x0p0:1:6:0x0: ++%*32La: 0x0p0:0:6: ++%32La: 0x0p+0:1:7:0x0: ++%*32La: 0x0p+0:0:7: ++%32La: 0x8p-1025:1:10:0x1p-1022: ++%*32La: 0x8p-1025:0:10: ++%32La: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La: 0x2.3456789abcdfep0123:0:23: ++%32La: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La: 0x2.3456789abcdfep+123:0:23: ++%32La: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32La: 0x7.ffffffffffffcp1021:0:23: ++%32La: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32La: 0xf.ffffffffffff8p+1020:0:24: ++%32La: infinity:1:9:inf: ++%*32La: infinity:0:9: ++%32La: +nan():1:7:nan: ++%*32La: +nan():0:7: ++%32La: +nan(09A_Zaz):1:14:nan: ++%*32La: +nan(09A_Zaz):0:14: ++%32La: +0x0p0:1:7:0x0: ++%*32La: +0x0p0:0:7: ++%32La: +0x0p+0:1:8:0x0: ++%*32La: +0x0p+0:0:8: ++%32La: +0x8p-1025:1:11:0x1p-1022: ++%*32La: +0x8p-1025:0:11: ++%32La: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32La: +0x2.3456789abcdfep0123:0:24: ++%32La: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32La: +0x2.3456789abcdfep+123:0:24: ++%32La: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32La: +0x7.ffffffffffffcp1021:0:24: ++%32La: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32La: +0xf.ffffffffffff8p+1020:0:25: ++%32La: +infinity:1:10:inf: ++%*32La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..8a0e6005e3a86bc8 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*LA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*LA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LA:-0X2.3456789ABCDFEP+123:0:23: ++%LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LA:-0X2.3456789ABCDFEP0123:0:23: ++%LA:-0X8P-1025:1:10:-0x1p-1022: ++%*LA:-0X8P-1025:0:10: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-1025:1:9:0x1p-1022: ++%*LA:0X8P-1025:0:9: ++%LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LA:0X2.3456789ABCDFEP0123:0:22: ++%LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LA:0X2.3456789ABCDFEP+123:0:22: ++%LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*LA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*LA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-1025:1:10:0x1p-1022: ++%*LA:+0X8P-1025:0:10: ++%LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LA:+0X2.3456789ABCDFEP0123:0:23: ++%LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LA:+0X2.3456789ABCDFEP+123:0:23: ++%LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*LA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*LA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LA:-0X2.3456789ABCDFEP+123:0:-1: ++%*1LA:-0X2.3456789ABCDFEP+123:0:-1: ++%1LA:-0X2.3456789ABCDFEP0123:0:-1: ++%*1LA:-0X2.3456789ABCDFEP0123:0:-1: ++%1LA:-0X8P-1025:0:-1: ++%*1LA:-0X8P-1025:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-1025:1:1:0x0: ++%*1LA:0X8P-1025:0:1: ++%1LA:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1LA:0X2.3456789ABCDFEP0123:0:1: ++%1LA:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1LA:0X2.3456789ABCDFEP+123:0:1: ++%1LA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1LA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-1025:0:-1: ++%*1LA:+0X8P-1025:0:-1: ++%1LA:+0X2.3456789ABCDFEP0123:0:-1: ++%*1LA:+0X2.3456789ABCDFEP0123:0:-1: ++%1LA:+0X2.3456789ABCDFEP+123:0:-1: ++%*1LA:+0X2.3456789ABCDFEP+123:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LA:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDFEP+123:0:2: ++%2LA:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDFEP0123:0:2: ++%2LA:-0X8P-1025:1:2:-0x0: ++%*2LA:-0X8P-1025:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-1025:0:-1: ++# BZ12701 %*2LA:0X8P-1025:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-1025:1:2:0x0: ++%*2LA:+0X8P-1025:0:2: ++%2LA:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDFEP0123:0:2: ++%2LA:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDFEP+123:0:2: ++%2LA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LA:-0X8P-1025:0:-1: ++# BZ12701 %*3LA:-0X8P-1025:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-1025:1:3:0x1p3: ++%*3LA:0X8P-1025:0:3: ++%3LA:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDFEP0123:0:3: ++%3LA:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDFEP+123:0:3: ++%3LA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3LA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-1025:0:-1: ++# BZ12701 %*3LA:+0X8P-1025:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDFEP+123:0:4: ++%4LA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDFEP0123:0:4: ++%4LA:-0X8P-1025:1:4:-0x1p3: ++%*4LA:-0X8P-1025:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-1025:0:-1: ++# BZ12701 %*4LA:0X8P-1025:0:-1: ++%4LA:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDFEP0123:0:4: ++%4LA:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDFEP+123:0:4: ++%4LA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-1025:1:4:0x1p3: ++%*4LA:+0X8P-1025:0:4: ++%4LA:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDFEP0123:0:4: ++%4LA:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDFEP+123:0:4: ++%4LA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDFEP+123:0:5: ++%5LA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5LA:-0X8P-1025:0:-1: ++# BZ12701 %*5LA:-0X8P-1025:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-1025:0:-1: ++# BZ12701 %*5LA:0X8P-1025:0:-1: ++%5LA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDFEP0123:0:5: ++%5LA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDFEP+123:0:5: ++%5LA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-1025:0:-1: ++# BZ12701 %*5LA:+0X8P-1025:0:-1: ++%5LA:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDFEP0123:0:5: ++%5LA:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDFEP+123:0:5: ++%5LA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDFEP+123:0:6: ++%6LA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6LA:-0X8P-1025:0:-1: ++# BZ12701 %*6LA:-0X8P-1025:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-1025:1:6:0x1p2: ++%*6LA:0X8P-1025:0:6: ++%6LA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDFEP0123:0:6: ++%6LA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDFEP+123:0:6: ++%6LA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-1025:0:-1: ++# BZ12701 %*6LA:+0X8P-1025:0:-1: ++%6LA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDFEP0123:0:6: ++%6LA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDFEP+123:0:6: ++%6LA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%20LA::0:-1: ++%*20LA::0:-1: ++%20LA:-INFINITY:1:9:-inf: ++%*20LA:-INFINITY:0:9: ++# BZ12701 %20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20LA:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LA:-0X2.3456789ABCDFEP+123:0:-1: ++%20LA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20LA:-0X2.3456789ABCDFEP0123:0:20: ++%20LA:-0X8P-1025:1:10:-0x1p-1022: ++%*20LA:-0X8P-1025:0:10: ++%20LA:-0X0P+0:1:7:-0x0: ++%*20LA:-0X0P+0:0:7: ++%20LA:-0X0P0:1:6:-0x0: ++%*20LA:-0X0P0:0:6: ++%20LA:-NAN(09A_Zaz):1:13:-nan: ++%*20LA:-NAN(09A_Zaz):0:13: ++%20LA:-NAN():1:6:-nan: ++%*20LA:-NAN():0:6: ++%20LA:NAN():1:5:nan: ++%*20LA:NAN():0:5: ++%20LA:NAN(09A_Zaz):1:12:nan: ++%*20LA:NAN(09A_Zaz):0:12: ++%20LA:0X0P0:1:5:0x0: ++%*20LA:0X0P0:0:5: ++%20LA:0X0P+0:1:6:0x0: ++%*20LA:0X0P+0:0:6: ++%20LA:0X8P-1025:1:9:0x1p-1022: ++%*20LA:0X8P-1025:0:9: ++%20LA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LA:0X2.3456789ABCDFEP0123:0:20: ++%20LA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LA:0X2.3456789ABCDFEP+123:0:20: ++%20LA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20LA:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20LA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20LA:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20LA:INFINITY:1:8:inf: ++%*20LA:INFINITY:0:8: ++%20LA:+NAN():1:6:nan: ++%*20LA:+NAN():0:6: ++%20LA:+NAN(09A_Zaz):1:13:nan: ++%*20LA:+NAN(09A_Zaz):0:13: ++%20LA:+0X0P0:1:6:0x0: ++%*20LA:+0X0P0:0:6: ++%20LA:+0X0P+0:1:7:0x0: ++%*20LA:+0X0P+0:0:7: ++%20LA:+0X8P-1025:1:10:0x1p-1022: ++%*20LA:+0X8P-1025:0:10: ++%20LA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20LA:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LA:+0X2.3456789ABCDFEP+123:0:-1: ++%20LA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20LA:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LA:+INFINITY:1:9:inf: ++%*20LA:+INFINITY:0:9: ++%32LA::0:-1: ++%*32LA::0:-1: ++%32LA:-INFINITY:1:9:-inf: ++%*32LA:-INFINITY:0:9: ++%32LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32LA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32LA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LA:-0X2.3456789ABCDFEP+123:0:23: ++%32LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LA:-0X2.3456789ABCDFEP0123:0:23: ++%32LA:-0X8P-1025:1:10:-0x1p-1022: ++%*32LA:-0X8P-1025:0:10: ++%32LA:-0X0P+0:1:7:-0x0: ++%*32LA:-0X0P+0:0:7: ++%32LA:-0X0P0:1:6:-0x0: ++%*32LA:-0X0P0:0:6: ++%32LA:-NAN(09A_Zaz):1:13:-nan: ++%*32LA:-NAN(09A_Zaz):0:13: ++%32LA:-NAN():1:6:-nan: ++%*32LA:-NAN():0:6: ++%32LA:NAN():1:5:nan: ++%*32LA:NAN():0:5: ++%32LA:NAN(09A_Zaz):1:12:nan: ++%*32LA:NAN(09A_Zaz):0:12: ++%32LA:0X0P0:1:5:0x0: ++%*32LA:0X0P0:0:5: ++%32LA:0X0P+0:1:6:0x0: ++%*32LA:0X0P+0:0:6: ++%32LA:0X8P-1025:1:9:0x1p-1022: ++%*32LA:0X8P-1025:0:9: ++%32LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LA:0X2.3456789ABCDFEP0123:0:22: ++%32LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LA:0X2.3456789ABCDFEP+123:0:22: ++%32LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32LA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32LA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32LA:INFINITY:1:8:inf: ++%*32LA:INFINITY:0:8: ++%32LA:+NAN():1:6:nan: ++%*32LA:+NAN():0:6: ++%32LA:+NAN(09A_Zaz):1:13:nan: ++%*32LA:+NAN(09A_Zaz):0:13: ++%32LA:+0X0P0:1:6:0x0: ++%*32LA:+0X0P0:0:6: ++%32LA:+0X0P+0:1:7:0x0: ++%*32LA:+0X0P+0:0:7: ++%32LA:+0X8P-1025:1:10:0x1p-1022: ++%*32LA:+0X8P-1025:0:10: ++%32LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA:+0X2.3456789ABCDFEP0123:0:23: ++%32LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA:+0X2.3456789ABCDFEP+123:0:23: ++%32LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA:+INFINITY:1:9:inf: ++%*32LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDFEP+123:0:6: ++%5LA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5LA: -0X8P-1025:0:-1: ++# BZ12701 %*5LA: -0X8P-1025:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-1025:0:-1: ++# BZ12701 %*5LA: 0X8P-1025:0:-1: ++%5LA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDFEP0123:0:6: ++%5LA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDFEP+123:0:6: ++%5LA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-1025:0:-1: ++# BZ12701 %*5LA: +0X8P-1025:0:-1: ++%5LA: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDFEP0123:0:6: ++%5LA: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDFEP+123:0:6: ++%5LA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%32LA: :0:-1: ++%*32LA: :0:-1: ++%32LA: -INFINITY:1:10:-inf: ++%*32LA: -INFINITY:0:10: ++%32LA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32LA: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32LA: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LA: -0X2.3456789ABCDFEP+123:0:24: ++%32LA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LA: -0X2.3456789ABCDFEP0123:0:24: ++%32LA: -0X8P-1025:1:11:-0x1p-1022: ++%*32LA: -0X8P-1025:0:11: ++%32LA: -0X0P+0:1:8:-0x0: ++%*32LA: -0X0P+0:0:8: ++%32LA: -0X0P0:1:7:-0x0: ++%*32LA: -0X0P0:0:7: ++%32LA: -NAN(09A_Zaz):1:14:-nan: ++%*32LA: -NAN(09A_Zaz):0:14: ++%32LA: -NAN():1:7:-nan: ++%*32LA: -NAN():0:7: ++%32LA: NAN():1:6:nan: ++%*32LA: NAN():0:6: ++%32LA: NAN(09A_Zaz):1:13:nan: ++%*32LA: NAN(09A_Zaz):0:13: ++%32LA: 0X0P0:1:6:0x0: ++%*32LA: 0X0P0:0:6: ++%32LA: 0X0P+0:1:7:0x0: ++%*32LA: 0X0P+0:0:7: ++%32LA: 0X8P-1025:1:10:0x1p-1022: ++%*32LA: 0X8P-1025:0:10: ++%32LA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA: 0X2.3456789ABCDFEP0123:0:23: ++%32LA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA: 0X2.3456789ABCDFEP+123:0:23: ++%32LA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LA: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LA: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA: INFINITY:1:9:inf: ++%*32LA: INFINITY:0:9: ++%32LA: +NAN():1:7:nan: ++%*32LA: +NAN():0:7: ++%32LA: +NAN(09A_Zaz):1:14:nan: ++%*32LA: +NAN(09A_Zaz):0:14: ++%32LA: +0X0P0:1:7:0x0: ++%*32LA: +0X0P0:0:7: ++%32LA: +0X0P+0:1:8:0x0: ++%*32LA: +0X0P+0:0:8: ++%32LA: +0X8P-1025:1:11:0x1p-1022: ++%*32LA: +0X8P-1025:0:11: ++%32LA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LA: +0X2.3456789ABCDFEP0123:0:24: ++%32LA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LA: +0X2.3456789ABCDFEP+123:0:24: ++%32LA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32LA: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32LA: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LA: +INFINITY:1:10:inf: ++%*32LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..c510f086919bd135 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*Le:-1.79769313486231570814527423731704357e+308:0:43: ++%Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*Le:-1.79769313486231570814527423731704357e308:0:42: ++%Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*Le:-2.3441674165664682593913711430784253952e+37:0:44: ++%Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*Le:-2.3441674165664682593913711430784253952e037:0:44: ++%Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*Le:-2.22507385850720138309023271733240406e-308:0:43: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*Le:2.22507385850720138309023271733240406e-308:0:42: ++%Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*Le:2.3441674165664682593913711430784253952e037:0:43: ++%Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*Le:2.3441674165664682593913711430784253952e+37:0:43: ++%Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*Le:1.79769313486231570814527423731704357e308:0:41: ++%Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*Le:1.79769313486231570814527423731704357e+308:0:42: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*Le:+2.22507385850720138309023271733240406e-308:0:43: ++%Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*Le:+2.3441674165664682593913711430784253952e037:0:44: ++%Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*Le:+2.3441674165664682593913711430784253952e+37:0:44: ++%Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*Le:+1.79769313486231570814527423731704357e308:0:42: ++%Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*Le:+1.79769313486231570814527423731704357e+308:0:43: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%*1Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%1Le:-1.79769313486231570814527423731704357e308:0:-1: ++%*1Le:-1.79769313486231570814527423731704357e308:0:-1: ++%1Le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%*1Le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%1Le:-2.3441674165664682593913711430784253952e037:0:-1: ++%*1Le:-2.3441674165664682593913711430784253952e037:0:-1: ++%1Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%*1Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:2.22507385850720138309023271733240406e-308:1:1:0x1p1: ++%*1Le:2.22507385850720138309023271733240406e-308:0:1: ++%1Le:2.3441674165664682593913711430784253952e037:1:1:0x1p1: ++%*1Le:2.3441674165664682593913711430784253952e037:0:1: ++%1Le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1: ++%*1Le:2.3441674165664682593913711430784253952e+37:0:1: ++%1Le:1.79769313486231570814527423731704357e308:1:1:0x1: ++%*1Le:1.79769313486231570814527423731704357e308:0:1: ++%1Le:1.79769313486231570814527423731704357e+308:1:1:0x1: ++%*1Le:1.79769313486231570814527423731704357e+308:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%*1Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%1Le:+2.3441674165664682593913711430784253952e037:0:-1: ++%*1Le:+2.3441674165664682593913711430784253952e037:0:-1: ++%1Le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%*1Le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%1Le:+1.79769313486231570814527423731704357e308:0:-1: ++%*1Le:+1.79769313486231570814527423731704357e308:0:-1: ++%1Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%*1Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.79769313486231570814527423731704357e+308:1:2:-0x1: ++%*2Le:-1.79769313486231570814527423731704357e+308:0:2: ++%2Le:-1.79769313486231570814527423731704357e308:1:2:-0x1: ++%*2Le:-1.79769313486231570814527423731704357e308:0:2: ++%2Le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1: ++%*2Le:-2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1: ++%*2Le:-2.3441674165664682593913711430784253952e037:0:2: ++%2Le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1: ++%*2Le:-2.22507385850720138309023271733240406e-308:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2Le:2.22507385850720138309023271733240406e-308:0:2: ++%2Le:2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2Le:2.3441674165664682593913711430784253952e037:0:2: ++%2Le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2Le:2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2Le:1.79769313486231570814527423731704357e308:0:2: ++%2Le:1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2Le:1.79769313486231570814527423731704357e+308:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2Le:+2.22507385850720138309023271733240406e-308:0:2: ++%2Le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2Le:+2.3441674165664682593913711430784253952e037:0:2: ++%2Le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2Le:+2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:+1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2Le:+1.79769313486231570814527423731704357e308:0:2: ++%2Le:+1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2Le:+1.79769313486231570814527423731704357e+308:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.79769313486231570814527423731704357e+308:1:3:-0x1: ++%*3Le:-1.79769313486231570814527423731704357e+308:0:3: ++%3Le:-1.79769313486231570814527423731704357e308:1:3:-0x1: ++%*3Le:-1.79769313486231570814527423731704357e308:0:3: ++%3Le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1: ++%*3Le:-2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1: ++%*3Le:-2.3441674165664682593913711430784253952e037:0:3: ++%3Le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1: ++%*3Le:-2.22507385850720138309023271733240406e-308:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1: ++%*3Le:2.22507385850720138309023271733240406e-308:0:3: ++%3Le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1: ++%*3Le:2.3441674165664682593913711430784253952e037:0:3: ++%3Le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1: ++%*3Le:2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333: ++%*3Le:1.79769313486231570814527423731704357e308:0:3: ++%3Le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333: ++%*3Le:1.79769313486231570814527423731704357e+308:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1: ++%*3Le:+2.22507385850720138309023271733240406e-308:0:3: ++%3Le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1: ++%*3Le:+2.3441674165664682593913711430784253952e037:0:3: ++%3Le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1: ++%*3Le:+2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:+1.79769313486231570814527423731704357e308:1:3:0x1: ++%*3Le:+1.79769313486231570814527423731704357e308:0:3: ++%3Le:+1.79769313486231570814527423731704357e+308:1:3:0x1: ++%*3Le:+1.79769313486231570814527423731704357e+308:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333: ++%*4Le:-1.79769313486231570814527423731704357e+308:0:4: ++%4Le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333: ++%*4Le:-1.79769313486231570814527423731704357e308:0:4: ++%4Le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1: ++%*4Le:-2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1: ++%*4Le:-2.3441674165664682593913711430784253952e037:0:4: ++%4Le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1: ++%*4Le:-2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4Le:2.22507385850720138309023271733240406e-308:0:4: ++%4Le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1: ++%*4Le:2.3441674165664682593913711430784253952e037:0:4: ++%4Le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1: ++%*4Le:2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4: ++%*4Le:1.79769313486231570814527423731704357e308:0:4: ++%4Le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4: ++%*4Le:1.79769313486231570814527423731704357e+308:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*4Le:+2.22507385850720138309023271733240406e-308:0:4: ++%4Le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*4Le:+2.3441674165664682593913711430784253952e037:0:4: ++%4Le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*4Le:+2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*4Le:+1.79769313486231570814527423731704357e308:0:4: ++%4Le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*4Le:+1.79769313486231570814527423731704357e+308:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%40Le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10: ++%*40Le:-1.79769313486231570814527423731704357e308:0:40: ++%40Le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1: ++%*40Le:-2.3441674165664682593913711430784253952e+37:0:40: ++%40Le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1: ++%*40Le:-2.3441674165664682593913711430784253952e037:0:40: ++# BZ12701 %40Le:-2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9: ++%*40Le:2.22507385850720138309023271733240406e-308:0:40: ++# BZ12701 %40Le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %*40Le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %40Le:2.3441674165664682593913711430784253952e+37:0:-1: ++# BZ12701 %*40Le:2.3441674165664682593913711430784253952e+37:0:-1: ++%40Le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100: ++%*40Le:1.79769313486231570814527423731704357e308:0:40: ++%40Le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10: ++%*40Le:1.79769313486231570814527423731704357e+308:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%40Le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1: ++%*40Le:+2.3441674165664682593913711430784253952e037:0:40: ++%40Le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1: ++%*40Le:+2.3441674165664682593913711430784253952e+37:0:40: ++%40Le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10: ++%*40Le:+1.79769313486231570814527423731704357e308:0:40: ++# BZ12701 %40Le:+1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*48Le:-1.79769313486231570814527423731704357e+308:0:43: ++%48Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*48Le:-1.79769313486231570814527423731704357e308:0:42: ++%48Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48Le:-2.3441674165664682593913711430784253952e+37:0:44: ++%48Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48Le:-2.3441674165664682593913711430784253952e037:0:44: ++%48Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*48Le:-2.22507385850720138309023271733240406e-308:0:43: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*48Le:2.22507385850720138309023271733240406e-308:0:42: ++%48Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48Le:2.3441674165664682593913711430784253952e037:0:43: ++%48Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48Le:2.3441674165664682593913711430784253952e+37:0:43: ++%48Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*48Le:1.79769313486231570814527423731704357e308:0:41: ++%48Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*48Le:1.79769313486231570814527423731704357e+308:0:42: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48Le:+2.22507385850720138309023271733240406e-308:0:43: ++%48Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le:+2.3441674165664682593913711430784253952e037:0:44: ++%48Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le:+2.3441674165664682593913711430784253952e+37:0:44: ++%48Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48Le:+1.79769313486231570814527423731704357e308:0:42: ++%48Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48Le:+1.79769313486231570814527423731704357e+308:0:43: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.79769313486231570814527423731704357e+308:1:4:-0x1: ++%*3Le: -1.79769313486231570814527423731704357e+308:0:4: ++%3Le: -1.79769313486231570814527423731704357e308:1:4:-0x1: ++%*3Le: -1.79769313486231570814527423731704357e308:0:4: ++%3Le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1: ++%*3Le: -2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1: ++%*3Le: -2.3441674165664682593913711430784253952e037:0:4: ++%3Le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1: ++%*3Le: -2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*3Le: 2.22507385850720138309023271733240406e-308:0:4: ++%3Le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*3Le: 2.3441674165664682593913711430784253952e037:0:4: ++%3Le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*3Le: 2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*3Le: 1.79769313486231570814527423731704357e308:0:4: ++%3Le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*3Le: 1.79769313486231570814527423731704357e+308:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1: ++%*3Le: +2.22507385850720138309023271733240406e-308:0:4: ++%3Le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1: ++%*3Le: +2.3441674165664682593913711430784253952e037:0:4: ++%3Le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1: ++%*3Le: +2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: +1.79769313486231570814527423731704357e308:1:4:0x1: ++%*3Le: +1.79769313486231570814527423731704357e308:0:4: ++%3Le: +1.79769313486231570814527423731704357e+308:1:4:0x1: ++%*3Le: +1.79769313486231570814527423731704357e+308:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023: ++%*48Le: -1.79769313486231570814527423731704357e+308:0:44: ++%48Le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023: ++%*48Le: -1.79769313486231570814527423731704357e308:0:43: ++%48Le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48Le: -2.3441674165664682593913711430784253952e+37:0:45: ++%48Le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48Le: -2.3441674165664682593913711430784253952e037:0:45: ++%48Le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022: ++%*48Le: -2.22507385850720138309023271733240406e-308:0:44: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48Le: 2.22507385850720138309023271733240406e-308:0:43: ++%48Le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le: 2.3441674165664682593913711430784253952e037:0:44: ++%48Le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le: 2.3441674165664682593913711430784253952e+37:0:44: ++%48Le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48Le: 1.79769313486231570814527423731704357e308:0:42: ++%48Le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48Le: 1.79769313486231570814527423731704357e+308:0:43: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022: ++%*48Le: +2.22507385850720138309023271733240406e-308:0:44: ++%48Le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48Le: +2.3441674165664682593913711430784253952e037:0:45: ++%48Le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48Le: +2.3441674165664682593913711430784253952e+37:0:45: ++%48Le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023: ++%*48Le: +1.79769313486231570814527423731704357e308:0:43: ++%48Le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023: ++%*48Le: +1.79769313486231570814527423731704357e+308:0:44: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..6fb575513e9e3379 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*LE:-1.79769313486231570814527423731704357E+308:0:43: ++%LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*LE:-1.79769313486231570814527423731704357E308:0:42: ++%LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*LE:-2.3441674165664682593913711430784253952E+37:0:44: ++%LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*LE:-2.3441674165664682593913711430784253952E037:0:44: ++%LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*LE:-2.22507385850720138309023271733240406E-308:0:43: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*LE:2.22507385850720138309023271733240406E-308:0:42: ++%LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*LE:2.3441674165664682593913711430784253952E037:0:43: ++%LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*LE:2.3441674165664682593913711430784253952E+37:0:43: ++%LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*LE:1.79769313486231570814527423731704357E308:0:41: ++%LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*LE:1.79769313486231570814527423731704357E+308:0:42: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*LE:+2.22507385850720138309023271733240406E-308:0:43: ++%LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*LE:+2.3441674165664682593913711430784253952E037:0:44: ++%LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*LE:+2.3441674165664682593913711430784253952E+37:0:44: ++%LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*LE:+1.79769313486231570814527423731704357E308:0:42: ++%LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*LE:+1.79769313486231570814527423731704357E+308:0:43: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%*1LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%1LE:-1.79769313486231570814527423731704357E308:0:-1: ++%*1LE:-1.79769313486231570814527423731704357E308:0:-1: ++%1LE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%*1LE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%1LE:-2.3441674165664682593913711430784253952E037:0:-1: ++%*1LE:-2.3441674165664682593913711430784253952E037:0:-1: ++%1LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%*1LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:2.22507385850720138309023271733240406E-308:1:1:0x1p1: ++%*1LE:2.22507385850720138309023271733240406E-308:0:1: ++%1LE:2.3441674165664682593913711430784253952E037:1:1:0x1p1: ++%*1LE:2.3441674165664682593913711430784253952E037:0:1: ++%1LE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1: ++%*1LE:2.3441674165664682593913711430784253952E+37:0:1: ++%1LE:1.79769313486231570814527423731704357E308:1:1:0x1: ++%*1LE:1.79769313486231570814527423731704357E308:0:1: ++%1LE:1.79769313486231570814527423731704357E+308:1:1:0x1: ++%*1LE:1.79769313486231570814527423731704357E+308:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%*1LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%1LE:+2.3441674165664682593913711430784253952E037:0:-1: ++%*1LE:+2.3441674165664682593913711430784253952E037:0:-1: ++%1LE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%*1LE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%1LE:+1.79769313486231570814527423731704357E308:0:-1: ++%*1LE:+1.79769313486231570814527423731704357E308:0:-1: ++%1LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%*1LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.79769313486231570814527423731704357E+308:1:2:-0x1: ++%*2LE:-1.79769313486231570814527423731704357E+308:0:2: ++%2LE:-1.79769313486231570814527423731704357E308:1:2:-0x1: ++%*2LE:-1.79769313486231570814527423731704357E308:0:2: ++%2LE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1: ++%*2LE:-2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1: ++%*2LE:-2.3441674165664682593913711430784253952E037:0:2: ++%2LE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1: ++%*2LE:-2.22507385850720138309023271733240406E-308:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2LE:2.22507385850720138309023271733240406E-308:0:2: ++%2LE:2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2LE:2.3441674165664682593913711430784253952E037:0:2: ++%2LE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2LE:2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2LE:1.79769313486231570814527423731704357E308:0:2: ++%2LE:1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2LE:1.79769313486231570814527423731704357E+308:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2LE:+2.22507385850720138309023271733240406E-308:0:2: ++%2LE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2LE:+2.3441674165664682593913711430784253952E037:0:2: ++%2LE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2LE:+2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:+1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2LE:+1.79769313486231570814527423731704357E308:0:2: ++%2LE:+1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2LE:+1.79769313486231570814527423731704357E+308:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.79769313486231570814527423731704357E+308:1:3:-0x1: ++%*3LE:-1.79769313486231570814527423731704357E+308:0:3: ++%3LE:-1.79769313486231570814527423731704357E308:1:3:-0x1: ++%*3LE:-1.79769313486231570814527423731704357E308:0:3: ++%3LE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1: ++%*3LE:-2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1: ++%*3LE:-2.3441674165664682593913711430784253952E037:0:3: ++%3LE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1: ++%*3LE:-2.22507385850720138309023271733240406E-308:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1: ++%*3LE:2.22507385850720138309023271733240406E-308:0:3: ++%3LE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1: ++%*3LE:2.3441674165664682593913711430784253952E037:0:3: ++%3LE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1: ++%*3LE:2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333: ++%*3LE:1.79769313486231570814527423731704357E308:0:3: ++%3LE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333: ++%*3LE:1.79769313486231570814527423731704357E+308:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1: ++%*3LE:+2.22507385850720138309023271733240406E-308:0:3: ++%3LE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1: ++%*3LE:+2.3441674165664682593913711430784253952E037:0:3: ++%3LE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1: ++%*3LE:+2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:+1.79769313486231570814527423731704357E308:1:3:0x1: ++%*3LE:+1.79769313486231570814527423731704357E308:0:3: ++%3LE:+1.79769313486231570814527423731704357E+308:1:3:0x1: ++%*3LE:+1.79769313486231570814527423731704357E+308:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333: ++%*4LE:-1.79769313486231570814527423731704357E+308:0:4: ++%4LE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333: ++%*4LE:-1.79769313486231570814527423731704357E308:0:4: ++%4LE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1: ++%*4LE:-2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1: ++%*4LE:-2.3441674165664682593913711430784253952E037:0:4: ++%4LE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1: ++%*4LE:-2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4LE:2.22507385850720138309023271733240406E-308:0:4: ++%4LE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1: ++%*4LE:2.3441674165664682593913711430784253952E037:0:4: ++%4LE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1: ++%*4LE:2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4: ++%*4LE:1.79769313486231570814527423731704357E308:0:4: ++%4LE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4: ++%*4LE:1.79769313486231570814527423731704357E+308:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*4LE:+2.22507385850720138309023271733240406E-308:0:4: ++%4LE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*4LE:+2.3441674165664682593913711430784253952E037:0:4: ++%4LE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*4LE:+2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*4LE:+1.79769313486231570814527423731704357E308:0:4: ++%4LE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*4LE:+1.79769313486231570814527423731704357E+308:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%40LE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10: ++%*40LE:-1.79769313486231570814527423731704357E308:0:40: ++%40LE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1: ++%*40LE:-2.3441674165664682593913711430784253952E+37:0:40: ++%40LE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1: ++%*40LE:-2.3441674165664682593913711430784253952E037:0:40: ++# BZ12701 %40LE:-2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9: ++%*40LE:2.22507385850720138309023271733240406E-308:0:40: ++# BZ12701 %40LE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %*40LE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %40LE:2.3441674165664682593913711430784253952E+37:0:-1: ++# BZ12701 %*40LE:2.3441674165664682593913711430784253952E+37:0:-1: ++%40LE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100: ++%*40LE:1.79769313486231570814527423731704357E308:0:40: ++%40LE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10: ++%*40LE:1.79769313486231570814527423731704357E+308:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%40LE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1: ++%*40LE:+2.3441674165664682593913711430784253952E037:0:40: ++%40LE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1: ++%*40LE:+2.3441674165664682593913711430784253952E+37:0:40: ++%40LE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10: ++%*40LE:+1.79769313486231570814527423731704357E308:0:40: ++# BZ12701 %40LE:+1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*48LE:-1.79769313486231570814527423731704357E+308:0:43: ++%48LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*48LE:-1.79769313486231570814527423731704357E308:0:42: ++%48LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48LE:-2.3441674165664682593913711430784253952E+37:0:44: ++%48LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48LE:-2.3441674165664682593913711430784253952E037:0:44: ++%48LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*48LE:-2.22507385850720138309023271733240406E-308:0:43: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*48LE:2.22507385850720138309023271733240406E-308:0:42: ++%48LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48LE:2.3441674165664682593913711430784253952E037:0:43: ++%48LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48LE:2.3441674165664682593913711430784253952E+37:0:43: ++%48LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*48LE:1.79769313486231570814527423731704357E308:0:41: ++%48LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*48LE:1.79769313486231570814527423731704357E+308:0:42: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48LE:+2.22507385850720138309023271733240406E-308:0:43: ++%48LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE:+2.3441674165664682593913711430784253952E037:0:44: ++%48LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE:+2.3441674165664682593913711430784253952E+37:0:44: ++%48LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48LE:+1.79769313486231570814527423731704357E308:0:42: ++%48LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48LE:+1.79769313486231570814527423731704357E+308:0:43: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.79769313486231570814527423731704357E+308:1:4:-0x1: ++%*3LE: -1.79769313486231570814527423731704357E+308:0:4: ++%3LE: -1.79769313486231570814527423731704357E308:1:4:-0x1: ++%*3LE: -1.79769313486231570814527423731704357E308:0:4: ++%3LE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1: ++%*3LE: -2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1: ++%*3LE: -2.3441674165664682593913711430784253952E037:0:4: ++%3LE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1: ++%*3LE: -2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*3LE: 2.22507385850720138309023271733240406E-308:0:4: ++%3LE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*3LE: 2.3441674165664682593913711430784253952E037:0:4: ++%3LE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*3LE: 2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*3LE: 1.79769313486231570814527423731704357E308:0:4: ++%3LE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*3LE: 1.79769313486231570814527423731704357E+308:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1: ++%*3LE: +2.22507385850720138309023271733240406E-308:0:4: ++%3LE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1: ++%*3LE: +2.3441674165664682593913711430784253952E037:0:4: ++%3LE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1: ++%*3LE: +2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: +1.79769313486231570814527423731704357E308:1:4:0x1: ++%*3LE: +1.79769313486231570814527423731704357E308:0:4: ++%3LE: +1.79769313486231570814527423731704357E+308:1:4:0x1: ++%*3LE: +1.79769313486231570814527423731704357E+308:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023: ++%*48LE: -1.79769313486231570814527423731704357E+308:0:44: ++%48LE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023: ++%*48LE: -1.79769313486231570814527423731704357E308:0:43: ++%48LE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48LE: -2.3441674165664682593913711430784253952E+37:0:45: ++%48LE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48LE: -2.3441674165664682593913711430784253952E037:0:45: ++%48LE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022: ++%*48LE: -2.22507385850720138309023271733240406E-308:0:44: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48LE: 2.22507385850720138309023271733240406E-308:0:43: ++%48LE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE: 2.3441674165664682593913711430784253952E037:0:44: ++%48LE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE: 2.3441674165664682593913711430784253952E+37:0:44: ++%48LE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48LE: 1.79769313486231570814527423731704357E308:0:42: ++%48LE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48LE: 1.79769313486231570814527423731704357E+308:0:43: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022: ++%*48LE: +2.22507385850720138309023271733240406E-308:0:44: ++%48LE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48LE: +2.3441674165664682593913711430784253952E037:0:45: ++%48LE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48LE: +2.3441674165664682593913711430784253952E+37:0:45: ++%48LE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023: ++%*48LE: +1.79769313486231570814527423731704357E308:0:43: ++%48LE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023: ++%*48LE: +1.79769313486231570814527423731704357E+308:0:44: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..a506658d25fff3a5 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,558 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*Lf:-023441674165664682593913711430784253952.0:0:42: ++%Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*Lf:-23441674165664682593913711430784253952:0:39: ++%Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*Lf:23441674165664682593913711430784253952:0:38: ++%Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*Lf:023441674165664682593913711430784253952.0:0:41: ++%Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*Lf:+23441674165664682593913711430784253952:0:39: ++%Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*Lf:+023441674165664682593913711430784253952.0:0:42: ++%Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1Lf:-023441674165664682593913711430784253952.0:0:-1: ++%*1Lf:-023441674165664682593913711430784253952.0:0:-1: ++%1Lf:-23441674165664682593913711430784253952:0:-1: ++%*1Lf:-23441674165664682593913711430784253952:0:-1: ++%1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1Lf:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1Lf:23441674165664682593913711430784253952:0:1: ++%1Lf:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1Lf:023441674165664682593913711430784253952.0:0:1: ++%1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1Lf:+23441674165664682593913711430784253952:0:-1: ++%*1Lf:+23441674165664682593913711430784253952:0:-1: ++%1Lf:+023441674165664682593913711430784253952.0:0:-1: ++%*1Lf:+023441674165664682593913711430784253952.0:0:-1: ++%1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2Lf:-023441674165664682593913711430784253952.0:0:2: ++%2Lf:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2Lf:-23441674165664682593913711430784253952:0:2: ++%2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2Lf:23441674165664682593913711430784253952:0:2: ++%2Lf:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2Lf:023441674165664682593913711430784253952.0:0:2: ++%2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2Lf:+23441674165664682593913711430784253952:0:2: ++%2Lf:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2Lf:+023441674165664682593913711430784253952.0:0:2: ++%2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3Lf:-023441674165664682593913711430784253952.0:0:3: ++%3Lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3Lf:-23441674165664682593913711430784253952:0:3: ++%3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3Lf:23441674165664682593913711430784253952:0:3: ++%3Lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3Lf:023441674165664682593913711430784253952.0:0:3: ++%3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3Lf:+23441674165664682593913711430784253952:0:3: ++%3Lf:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3Lf:+023441674165664682593913711430784253952.0:0:3: ++%3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4Lf::0:-1: ++%*4Lf::0:-1: ++%4Lf:-infinity:1:4:-inf: ++%*4Lf:-infinity:0:4: ++%4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4Lf:-023441674165664682593913711430784253952.0:0:4: ++%4Lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4Lf:-23441674165664682593913711430784253952:0:4: ++%4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:-0.0:1:4:-0x0: ++%*4Lf:-0.0:0:4: ++%4Lf:-0:1:2:-0x0: ++%*4Lf:-0:0:2: ++%4Lf:-nan(09A_Zaz):1:4:-nan: ++%*4Lf:-nan(09A_Zaz):0:4: ++%4Lf:-nan():1:4:-nan: ++%*4Lf:-nan():0:4: ++%4Lf:nan():0:-1: ++%*4Lf:nan():0:-1: ++%4Lf:nan(09A_Zaz):0:-1: ++%*4Lf:nan(09A_Zaz):0:-1: ++%4Lf:0:1:1:0x0: ++%*4Lf:0:0:1: ++%4Lf:0.0:1:3:0x0: ++%*4Lf:0.0:0:3: ++%4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4Lf:23441674165664682593913711430784253952:0:4: ++%4Lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4Lf:023441674165664682593913711430784253952.0:0:4: ++%4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:infinity:0:-1: ++%*4Lf:infinity:0:-1: ++%4Lf:+nan():1:4:nan: ++%*4Lf:+nan():0:4: ++%4Lf:+nan(09A_Zaz):1:4:nan: ++%*4Lf:+nan(09A_Zaz):0:4: ++%4Lf:+0:1:2:0x0: ++%*4Lf:+0:0:2: ++%4Lf:+0.0:1:4:0x0: ++%*4Lf:+0.0:0:4: ++%4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4Lf:+23441674165664682593913711430784253952:0:4: ++%4Lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4Lf:+023441674165664682593913711430784253952.0:0:4: ++%4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:+infinity:1:4:inf: ++%*4Lf:+infinity:0:4: ++%311Lf::0:-1: ++%*311Lf::0:-1: ++%311Lf:-infinity:1:9:-inf: ++%*311Lf:-infinity:0:9: ++%311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311Lf:-023441674165664682593913711430784253952.0:0:42: ++%311Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311Lf:-23441674165664682593913711430784253952:0:39: ++%311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:-0.0:1:4:-0x0: ++%*311Lf:-0.0:0:4: ++%311Lf:-0:1:2:-0x0: ++%*311Lf:-0:0:2: ++%311Lf:-nan(09A_Zaz):1:13:-nan: ++%*311Lf:-nan(09A_Zaz):0:13: ++%311Lf:-nan():1:6:-nan: ++%*311Lf:-nan():0:6: ++%311Lf:nan():1:5:nan: ++%*311Lf:nan():0:5: ++%311Lf:nan(09A_Zaz):1:12:nan: ++%*311Lf:nan(09A_Zaz):0:12: ++%311Lf:0:1:1:0x0: ++%*311Lf:0:0:1: ++%311Lf:0.0:1:3:0x0: ++%*311Lf:0.0:0:3: ++%311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:23441674165664682593913711430784253952:0:38: ++%311Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:023441674165664682593913711430784253952.0:0:41: ++%311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:infinity:1:8:inf: ++%*311Lf:infinity:0:8: ++%311Lf:+nan():1:6:nan: ++%*311Lf:+nan():0:6: ++%311Lf:+nan(09A_Zaz):1:13:nan: ++%*311Lf:+nan(09A_Zaz):0:13: ++%311Lf:+0:1:2:0x0: ++%*311Lf:+0:0:2: ++%311Lf:+0.0:1:4:0x0: ++%*311Lf:+0.0:0:4: ++%311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:+23441674165664682593913711430784253952:0:39: ++%311Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:+023441674165664682593913711430784253952.0:0:42: ++%311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:+infinity:1:9:inf: ++%*311Lf:+infinity:0:9: ++%350Lf::0:-1: ++%*350Lf::0:-1: ++%350Lf:-infinity:1:9:-inf: ++%*350Lf:-infinity:0:9: ++%350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf:-023441674165664682593913711430784253952.0:0:42: ++%350Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf:-23441674165664682593913711430784253952:0:39: ++%350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf:-0.0:1:4:-0x0: ++%*350Lf:-0.0:0:4: ++%350Lf:-0:1:2:-0x0: ++%*350Lf:-0:0:2: ++%350Lf:-nan(09A_Zaz):1:13:-nan: ++%*350Lf:-nan(09A_Zaz):0:13: ++%350Lf:-nan():1:6:-nan: ++%*350Lf:-nan():0:6: ++%350Lf:nan():1:5:nan: ++%*350Lf:nan():0:5: ++%350Lf:nan(09A_Zaz):1:12:nan: ++%*350Lf:nan(09A_Zaz):0:12: ++%350Lf:0:1:1:0x0: ++%*350Lf:0:0:1: ++%350Lf:0.0:1:3:0x0: ++%*350Lf:0.0:0:3: ++%350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:23441674165664682593913711430784253952:0:38: ++%350Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:023441674165664682593913711430784253952.0:0:41: ++%350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350Lf:infinity:1:8:inf: ++%*350Lf:infinity:0:8: ++%350Lf:+nan():1:6:nan: ++%*350Lf:+nan():0:6: ++%350Lf:+nan(09A_Zaz):1:13:nan: ++%*350Lf:+nan(09A_Zaz):0:13: ++%350Lf:+0:1:2:0x0: ++%*350Lf:+0:0:2: ++%350Lf:+0.0:1:4:0x0: ++%*350Lf:+0.0:0:4: ++%350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:+23441674165664682593913711430784253952:0:39: ++%350Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:+023441674165664682593913711430784253952.0:0:42: ++%350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf:+infinity:1:9:inf: ++%*350Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3Lf: -023441674165664682593913711430784253952.0:0:4: ++%3Lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3Lf: -23441674165664682593913711430784253952:0:4: ++%3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3Lf: 23441674165664682593913711430784253952:0:4: ++%3Lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3Lf: 023441674165664682593913711430784253952.0:0:4: ++%3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3Lf: +23441674165664682593913711430784253952:0:4: ++%3Lf: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3Lf: +023441674165664682593913711430784253952.0:0:4: ++%3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%350Lf: :0:-1: ++%*350Lf: :0:-1: ++%350Lf: -infinity:1:10:-inf: ++%*350Lf: -infinity:0:10: ++%350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350Lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf: -023441674165664682593913711430784253952.0:0:43: ++%350Lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf: -23441674165664682593913711430784253952:0:40: ++%350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350Lf: -0.0:1:5:-0x0: ++%*350Lf: -0.0:0:5: ++%350Lf: -0:1:3:-0x0: ++%*350Lf: -0:0:3: ++%350Lf: -nan(09A_Zaz):1:14:-nan: ++%*350Lf: -nan(09A_Zaz):0:14: ++%350Lf: -nan():1:7:-nan: ++%*350Lf: -nan():0:7: ++%350Lf: nan():1:6:nan: ++%*350Lf: nan():0:6: ++%350Lf: nan(09A_Zaz):1:13:nan: ++%*350Lf: nan(09A_Zaz):0:13: ++%350Lf: 0:1:2:0x0: ++%*350Lf: 0:0:2: ++%350Lf: 0.0:1:4:0x0: ++%*350Lf: 0.0:0:4: ++%350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: 23441674165664682593913711430784253952:0:39: ++%350Lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: 023441674165664682593913711430784253952.0:0:42: ++%350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf: infinity:1:9:inf: ++%*350Lf: infinity:0:9: ++%350Lf: +nan():1:7:nan: ++%*350Lf: +nan():0:7: ++%350Lf: +nan(09A_Zaz):1:14:nan: ++%*350Lf: +nan(09A_Zaz):0:14: ++%350Lf: +0:1:3:0x0: ++%*350Lf: +0:0:3: ++%350Lf: +0.0:1:5:0x0: ++%*350Lf: +0.0:0:5: ++%350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350Lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: +23441674165664682593913711430784253952:0:40: ++%350Lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: +023441674165664682593913711430784253952.0:0:43: ++%350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350Lf: +infinity:1:10:inf: ++%*350Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..03dedfca801bf8ca +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,558 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*LF:-023441674165664682593913711430784253952.0:0:42: ++%LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*LF:-23441674165664682593913711430784253952:0:39: ++%LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*LF:23441674165664682593913711430784253952:0:38: ++%LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*LF:023441674165664682593913711430784253952.0:0:41: ++%LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*LF:+23441674165664682593913711430784253952:0:39: ++%LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*LF:+023441674165664682593913711430784253952.0:0:42: ++%LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1LF:-023441674165664682593913711430784253952.0:0:-1: ++%*1LF:-023441674165664682593913711430784253952.0:0:-1: ++%1LF:-23441674165664682593913711430784253952:0:-1: ++%*1LF:-23441674165664682593913711430784253952:0:-1: ++%1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1LF:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1LF:23441674165664682593913711430784253952:0:1: ++%1LF:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1LF:023441674165664682593913711430784253952.0:0:1: ++%1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1LF:+23441674165664682593913711430784253952:0:-1: ++%*1LF:+23441674165664682593913711430784253952:0:-1: ++%1LF:+023441674165664682593913711430784253952.0:0:-1: ++%*1LF:+023441674165664682593913711430784253952.0:0:-1: ++%1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2LF:-023441674165664682593913711430784253952.0:0:2: ++%2LF:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2LF:-23441674165664682593913711430784253952:0:2: ++%2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2LF:23441674165664682593913711430784253952:0:2: ++%2LF:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2LF:023441674165664682593913711430784253952.0:0:2: ++%2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2LF:+23441674165664682593913711430784253952:0:2: ++%2LF:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2LF:+023441674165664682593913711430784253952.0:0:2: ++%2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3LF:-023441674165664682593913711430784253952.0:0:3: ++%3LF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3LF:-23441674165664682593913711430784253952:0:3: ++%3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3LF:23441674165664682593913711430784253952:0:3: ++%3LF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3LF:023441674165664682593913711430784253952.0:0:3: ++%3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3LF:+23441674165664682593913711430784253952:0:3: ++%3LF:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3LF:+023441674165664682593913711430784253952.0:0:3: ++%3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4LF::0:-1: ++%*4LF::0:-1: ++%4LF:-INFINITY:1:4:-inf: ++%*4LF:-INFINITY:0:4: ++%4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4LF:-023441674165664682593913711430784253952.0:0:4: ++%4LF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4LF:-23441674165664682593913711430784253952:0:4: ++%4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:-0.0:1:4:-0x0: ++%*4LF:-0.0:0:4: ++%4LF:-0:1:2:-0x0: ++%*4LF:-0:0:2: ++%4LF:-NAN(09A_Zaz):1:4:-nan: ++%*4LF:-NAN(09A_Zaz):0:4: ++%4LF:-NAN():1:4:-nan: ++%*4LF:-NAN():0:4: ++%4LF:NAN():0:-1: ++%*4LF:NAN():0:-1: ++%4LF:NAN(09A_Zaz):0:-1: ++%*4LF:NAN(09A_Zaz):0:-1: ++%4LF:0:1:1:0x0: ++%*4LF:0:0:1: ++%4LF:0.0:1:3:0x0: ++%*4LF:0.0:0:3: ++%4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4LF:23441674165664682593913711430784253952:0:4: ++%4LF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4LF:023441674165664682593913711430784253952.0:0:4: ++%4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:INFINITY:0:-1: ++%*4LF:INFINITY:0:-1: ++%4LF:+NAN():1:4:nan: ++%*4LF:+NAN():0:4: ++%4LF:+NAN(09A_Zaz):1:4:nan: ++%*4LF:+NAN(09A_Zaz):0:4: ++%4LF:+0:1:2:0x0: ++%*4LF:+0:0:2: ++%4LF:+0.0:1:4:0x0: ++%*4LF:+0.0:0:4: ++%4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4LF:+23441674165664682593913711430784253952:0:4: ++%4LF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4LF:+023441674165664682593913711430784253952.0:0:4: ++%4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:+INFINITY:1:4:inf: ++%*4LF:+INFINITY:0:4: ++%311LF::0:-1: ++%*311LF::0:-1: ++%311LF:-INFINITY:1:9:-inf: ++%*311LF:-INFINITY:0:9: ++%311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311LF:-023441674165664682593913711430784253952.0:0:42: ++%311LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311LF:-23441674165664682593913711430784253952:0:39: ++%311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:-0.0:1:4:-0x0: ++%*311LF:-0.0:0:4: ++%311LF:-0:1:2:-0x0: ++%*311LF:-0:0:2: ++%311LF:-NAN(09A_Zaz):1:13:-nan: ++%*311LF:-NAN(09A_Zaz):0:13: ++%311LF:-NAN():1:6:-nan: ++%*311LF:-NAN():0:6: ++%311LF:NAN():1:5:nan: ++%*311LF:NAN():0:5: ++%311LF:NAN(09A_Zaz):1:12:nan: ++%*311LF:NAN(09A_Zaz):0:12: ++%311LF:0:1:1:0x0: ++%*311LF:0:0:1: ++%311LF:0.0:1:3:0x0: ++%*311LF:0.0:0:3: ++%311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311LF:23441674165664682593913711430784253952:0:38: ++%311LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311LF:023441674165664682593913711430784253952.0:0:41: ++%311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:INFINITY:1:8:inf: ++%*311LF:INFINITY:0:8: ++%311LF:+NAN():1:6:nan: ++%*311LF:+NAN():0:6: ++%311LF:+NAN(09A_Zaz):1:13:nan: ++%*311LF:+NAN(09A_Zaz):0:13: ++%311LF:+0:1:2:0x0: ++%*311LF:+0:0:2: ++%311LF:+0.0:1:4:0x0: ++%*311LF:+0.0:0:4: ++%311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311LF:+23441674165664682593913711430784253952:0:39: ++%311LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311LF:+023441674165664682593913711430784253952.0:0:42: ++%311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:+INFINITY:1:9:inf: ++%*311LF:+INFINITY:0:9: ++%350LF::0:-1: ++%*350LF::0:-1: ++%350LF:-INFINITY:1:9:-inf: ++%*350LF:-INFINITY:0:9: ++%350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350LF:-023441674165664682593913711430784253952.0:0:42: ++%350LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350LF:-23441674165664682593913711430784253952:0:39: ++%350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF:-0.0:1:4:-0x0: ++%*350LF:-0.0:0:4: ++%350LF:-0:1:2:-0x0: ++%*350LF:-0:0:2: ++%350LF:-NAN(09A_Zaz):1:13:-nan: ++%*350LF:-NAN(09A_Zaz):0:13: ++%350LF:-NAN():1:6:-nan: ++%*350LF:-NAN():0:6: ++%350LF:NAN():1:5:nan: ++%*350LF:NAN():0:5: ++%350LF:NAN(09A_Zaz):1:12:nan: ++%*350LF:NAN(09A_Zaz):0:12: ++%350LF:0:1:1:0x0: ++%*350LF:0:0:1: ++%350LF:0.0:1:3:0x0: ++%*350LF:0.0:0:3: ++%350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350LF:23441674165664682593913711430784253952:0:38: ++%350LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350LF:023441674165664682593913711430784253952.0:0:41: ++%350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350LF:INFINITY:1:8:inf: ++%*350LF:INFINITY:0:8: ++%350LF:+NAN():1:6:nan: ++%*350LF:+NAN():0:6: ++%350LF:+NAN(09A_Zaz):1:13:nan: ++%*350LF:+NAN(09A_Zaz):0:13: ++%350LF:+0:1:2:0x0: ++%*350LF:+0:0:2: ++%350LF:+0.0:1:4:0x0: ++%*350LF:+0.0:0:4: ++%350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350LF:+23441674165664682593913711430784253952:0:39: ++%350LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350LF:+023441674165664682593913711430784253952.0:0:42: ++%350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF:+INFINITY:1:9:inf: ++%*350LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3LF: -023441674165664682593913711430784253952.0:0:4: ++%3LF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3LF: -23441674165664682593913711430784253952:0:4: ++%3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3LF: 23441674165664682593913711430784253952:0:4: ++%3LF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3LF: 023441674165664682593913711430784253952.0:0:4: ++%3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3LF: +23441674165664682593913711430784253952:0:4: ++%3LF: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3LF: +023441674165664682593913711430784253952.0:0:4: ++%3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%350LF: :0:-1: ++%*350LF: :0:-1: ++%350LF: -INFINITY:1:10:-inf: ++%*350LF: -INFINITY:0:10: ++%350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350LF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350LF: -023441674165664682593913711430784253952.0:0:43: ++%350LF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350LF: -23441674165664682593913711430784253952:0:40: ++%350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350LF: -0.0:1:5:-0x0: ++%*350LF: -0.0:0:5: ++%350LF: -0:1:3:-0x0: ++%*350LF: -0:0:3: ++%350LF: -NAN(09A_Zaz):1:14:-nan: ++%*350LF: -NAN(09A_Zaz):0:14: ++%350LF: -NAN():1:7:-nan: ++%*350LF: -NAN():0:7: ++%350LF: NAN():1:6:nan: ++%*350LF: NAN():0:6: ++%350LF: NAN(09A_Zaz):1:13:nan: ++%*350LF: NAN(09A_Zaz):0:13: ++%350LF: 0:1:2:0x0: ++%*350LF: 0:0:2: ++%350LF: 0.0:1:4:0x0: ++%*350LF: 0.0:0:4: ++%350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350LF: 23441674165664682593913711430784253952:0:39: ++%350LF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350LF: 023441674165664682593913711430784253952.0:0:42: ++%350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF: INFINITY:1:9:inf: ++%*350LF: INFINITY:0:9: ++%350LF: +NAN():1:7:nan: ++%*350LF: +NAN():0:7: ++%350LF: +NAN(09A_Zaz):1:14:nan: ++%*350LF: +NAN(09A_Zaz):0:14: ++%350LF: +0:1:3:0x0: ++%*350LF: +0:0:3: ++%350LF: +0.0:1:5:0x0: ++%*350LF: +0.0:0:5: ++%350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350LF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350LF: +23441674165664682593913711430784253952:0:40: ++%350LF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350LF: +023441674165664682593913711430784253952.0:0:43: ++%350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350LF: +INFINITY:1:10:inf: ++%*350LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..ed8aac9247f36c61 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*Lg:-0xf.ffffffffffff8p+1020:0:24: ++%Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*Lg:-0x7.ffffffffffffcp1021:0:23: ++%Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*Lg:-0x2.3456789abcdfep+123:0:23: ++%Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*Lg:-0x2.3456789abcdfep0123:0:23: ++%Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*Lg:-0x8p-1025:0:10: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-1025:1:9:0x1p-1022: ++%*Lg:0x8p-1025:0:9: ++%Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*Lg:0x2.3456789abcdfep0123:0:22: ++%Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*Lg:0x2.3456789abcdfep+123:0:22: ++%Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*Lg:0x7.ffffffffffffcp1021:0:22: ++%Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*Lg:0xf.ffffffffffff8p+1020:0:23: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-1025:1:10:0x1p-1022: ++%*Lg:+0x8p-1025:0:10: ++%Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*Lg:+0x2.3456789abcdfep0123:0:23: ++%Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*Lg:+0x2.3456789abcdfep+123:0:23: ++%Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*Lg:+0x7.ffffffffffffcp1021:0:23: ++%Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*Lg:+0xf.ffffffffffff8p+1020:0:24: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%*1Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%1Lg:-0x7.ffffffffffffcp1021:0:-1: ++%*1Lg:-0x7.ffffffffffffcp1021:0:-1: ++%1Lg:-0x2.3456789abcdfep+123:0:-1: ++%*1Lg:-0x2.3456789abcdfep+123:0:-1: ++%1Lg:-0x2.3456789abcdfep0123:0:-1: ++%*1Lg:-0x2.3456789abcdfep0123:0:-1: ++%1Lg:-0x8p-1025:0:-1: ++%*1Lg:-0x8p-1025:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-1025:1:1:0x0: ++%*1Lg:0x8p-1025:0:1: ++%1Lg:0x2.3456789abcdfep0123:1:1:0x0: ++%*1Lg:0x2.3456789abcdfep0123:0:1: ++%1Lg:0x2.3456789abcdfep+123:1:1:0x0: ++%*1Lg:0x2.3456789abcdfep+123:0:1: ++%1Lg:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1Lg:0x7.ffffffffffffcp1021:0:1: ++%1Lg:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1Lg:0xf.ffffffffffff8p+1020:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-1025:0:-1: ++%*1Lg:+0x8p-1025:0:-1: ++%1Lg:+0x2.3456789abcdfep0123:0:-1: ++%*1Lg:+0x2.3456789abcdfep0123:0:-1: ++%1Lg:+0x2.3456789abcdfep+123:0:-1: ++%*1Lg:+0x2.3456789abcdfep+123:0:-1: ++%1Lg:+0x7.ffffffffffffcp1021:0:-1: ++%*1Lg:+0x7.ffffffffffffcp1021:0:-1: ++%1Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%*1Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2Lg:-0xf.ffffffffffff8p+1020:0:2: ++%2Lg:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2Lg:-0x7.ffffffffffffcp1021:0:2: ++%2Lg:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdfep+123:0:2: ++%2Lg:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdfep0123:0:2: ++%2Lg:-0x8p-1025:1:2:-0x0: ++%*2Lg:-0x8p-1025:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-1025:0:-1: ++# BZ12701 %*2Lg:0x8p-1025:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2Lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2Lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2Lg:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2Lg:0xf.ffffffffffff8p+1020:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-1025:1:2:0x0: ++%*2Lg:+0x8p-1025:0:2: ++%2Lg:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdfep0123:0:2: ++%2Lg:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdfep+123:0:2: ++%2Lg:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2Lg:+0x7.ffffffffffffcp1021:0:2: ++%2Lg:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2Lg:+0xf.ffffffffffff8p+1020:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3Lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3Lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3Lg:-0x8p-1025:0:-1: ++# BZ12701 %*3Lg:-0x8p-1025:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-1025:1:3:0x1p3: ++%*3Lg:0x8p-1025:0:3: ++%3Lg:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdfep0123:0:3: ++%3Lg:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdfep+123:0:3: ++%3Lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3Lg:0x7.ffffffffffffcp1021:0:3: ++%3Lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3Lg:0xf.ffffffffffff8p+1020:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-1025:0:-1: ++# BZ12701 %*3Lg:+0x8p-1025:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3Lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3Lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3Lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4Lg:-0xf.ffffffffffff8p+1020:0:4: ++%4Lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4Lg:-0x7.ffffffffffffcp1021:0:4: ++%4Lg:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdfep+123:0:4: ++%4Lg:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdfep0123:0:4: ++%4Lg:-0x8p-1025:1:4:-0x1p3: ++%*4Lg:-0x8p-1025:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-1025:0:-1: ++# BZ12701 %*4Lg:0x8p-1025:0:-1: ++%4Lg:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdfep0123:0:4: ++%4Lg:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdfep+123:0:4: ++%4Lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4Lg:0x7.ffffffffffffcp1021:0:4: ++%4Lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4Lg:0xf.ffffffffffff8p+1020:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-1025:1:4:0x1p3: ++%*4Lg:+0x8p-1025:0:4: ++%4Lg:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdfep0123:0:4: ++%4Lg:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdfep+123:0:4: ++%4Lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4Lg:+0x7.ffffffffffffcp1021:0:4: ++%4Lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4Lg:+0xf.ffffffffffff8p+1020:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5Lg:-0xf.ffffffffffff8p+1020:0:5: ++%5Lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5Lg:-0x7.ffffffffffffcp1021:0:5: ++%5Lg:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdfep+123:0:5: ++%5Lg:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5Lg:-0x8p-1025:0:-1: ++# BZ12701 %*5Lg:-0x8p-1025:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-1025:0:-1: ++# BZ12701 %*5Lg:0x8p-1025:0:-1: ++%5Lg:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdfep0123:0:5: ++%5Lg:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdfep+123:0:5: ++%5Lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5Lg:0x7.ffffffffffffcp1021:0:5: ++%5Lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5Lg:0xf.ffffffffffff8p+1020:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-1025:0:-1: ++# BZ12701 %*5Lg:+0x8p-1025:0:-1: ++%5Lg:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdfep0123:0:5: ++%5Lg:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdfep+123:0:5: ++%5Lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5Lg:+0x7.ffffffffffffcp1021:0:5: ++%5Lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5Lg:+0xf.ffffffffffff8p+1020:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6Lg:-0xf.ffffffffffff8p+1020:0:6: ++%6Lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6Lg:-0x7.ffffffffffffcp1021:0:6: ++%6Lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdfep+123:0:6: ++%6Lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6Lg:-0x8p-1025:0:-1: ++# BZ12701 %*6Lg:-0x8p-1025:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-1025:1:6:0x1p2: ++%*6Lg:0x8p-1025:0:6: ++%6Lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdfep0123:0:6: ++%6Lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdfep+123:0:6: ++%6Lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6Lg:0x7.ffffffffffffcp1021:0:6: ++%6Lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6Lg:0xf.ffffffffffff8p+1020:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-1025:0:-1: ++# BZ12701 %*6Lg:+0x8p-1025:0:-1: ++%6Lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdfep0123:0:6: ++%6Lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdfep+123:0:6: ++%6Lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6Lg:+0x7.ffffffffffffcp1021:0:6: ++%6Lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6Lg:+0xf.ffffffffffff8p+1020:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%20Lg::0:-1: ++%*20Lg::0:-1: ++%20Lg:-infinity:1:9:-inf: ++%*20Lg:-infinity:0:9: ++# BZ12701 %20Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%20Lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20Lg:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20Lg:-0x2.3456789abcdfep+123:0:-1: ++%20Lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20Lg:-0x2.3456789abcdfep0123:0:20: ++%20Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*20Lg:-0x8p-1025:0:10: ++%20Lg:-0x0p+0:1:7:-0x0: ++%*20Lg:-0x0p+0:0:7: ++%20Lg:-0x0p0:1:6:-0x0: ++%*20Lg:-0x0p0:0:6: ++%20Lg:-nan(09A_Zaz):1:13:-nan: ++%*20Lg:-nan(09A_Zaz):0:13: ++%20Lg:-nan():1:6:-nan: ++%*20Lg:-nan():0:6: ++%20Lg:nan():1:5:nan: ++%*20Lg:nan():0:5: ++%20Lg:nan(09A_Zaz):1:12:nan: ++%*20Lg:nan(09A_Zaz):0:12: ++%20Lg:0x0p0:1:5:0x0: ++%*20Lg:0x0p0:0:5: ++%20Lg:0x0p+0:1:6:0x0: ++%*20Lg:0x0p+0:0:6: ++%20Lg:0x8p-1025:1:9:0x1p-1022: ++%*20Lg:0x8p-1025:0:9: ++%20Lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20Lg:0x2.3456789abcdfep0123:0:20: ++%20Lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20Lg:0x2.3456789abcdfep+123:0:20: ++%20Lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20Lg:0x7.ffffffffffffcp1021:0:20: ++%20Lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20Lg:0xf.ffffffffffff8p+1020:0:20: ++%20Lg:infinity:1:8:inf: ++%*20Lg:infinity:0:8: ++%20Lg:+nan():1:6:nan: ++%*20Lg:+nan():0:6: ++%20Lg:+nan(09A_Zaz):1:13:nan: ++%*20Lg:+nan(09A_Zaz):0:13: ++%20Lg:+0x0p0:1:6:0x0: ++%*20Lg:+0x0p0:0:6: ++%20Lg:+0x0p+0:1:7:0x0: ++%*20Lg:+0x0p+0:0:7: ++%20Lg:+0x8p-1025:1:10:0x1p-1022: ++%*20Lg:+0x8p-1025:0:10: ++%20Lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20Lg:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20Lg:+0x2.3456789abcdfep+123:0:-1: ++%20Lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20Lg:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20Lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%20Lg:+infinity:1:9:inf: ++%*20Lg:+infinity:0:9: ++%32Lg::0:-1: ++%*32Lg::0:-1: ++%32Lg:-infinity:1:9:-inf: ++%*32Lg:-infinity:0:9: ++%32Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32Lg:-0xf.ffffffffffff8p+1020:0:24: ++%32Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32Lg:-0x7.ffffffffffffcp1021:0:23: ++%32Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg:-0x2.3456789abcdfep+123:0:23: ++%32Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg:-0x2.3456789abcdfep0123:0:23: ++%32Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*32Lg:-0x8p-1025:0:10: ++%32Lg:-0x0p+0:1:7:-0x0: ++%*32Lg:-0x0p+0:0:7: ++%32Lg:-0x0p0:1:6:-0x0: ++%*32Lg:-0x0p0:0:6: ++%32Lg:-nan(09A_Zaz):1:13:-nan: ++%*32Lg:-nan(09A_Zaz):0:13: ++%32Lg:-nan():1:6:-nan: ++%*32Lg:-nan():0:6: ++%32Lg:nan():1:5:nan: ++%*32Lg:nan():0:5: ++%32Lg:nan(09A_Zaz):1:12:nan: ++%*32Lg:nan(09A_Zaz):0:12: ++%32Lg:0x0p0:1:5:0x0: ++%*32Lg:0x0p0:0:5: ++%32Lg:0x0p+0:1:6:0x0: ++%*32Lg:0x0p+0:0:6: ++%32Lg:0x8p-1025:1:9:0x1p-1022: ++%*32Lg:0x8p-1025:0:9: ++%32Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:0x2.3456789abcdfep0123:0:22: ++%32Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:0x2.3456789abcdfep+123:0:22: ++%32Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32Lg:0x7.ffffffffffffcp1021:0:22: ++%32Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32Lg:0xf.ffffffffffff8p+1020:0:23: ++%32Lg:infinity:1:8:inf: ++%*32Lg:infinity:0:8: ++%32Lg:+nan():1:6:nan: ++%*32Lg:+nan():0:6: ++%32Lg:+nan(09A_Zaz):1:13:nan: ++%*32Lg:+nan(09A_Zaz):0:13: ++%32Lg:+0x0p0:1:6:0x0: ++%*32Lg:+0x0p0:0:6: ++%32Lg:+0x0p+0:1:7:0x0: ++%*32Lg:+0x0p+0:0:7: ++%32Lg:+0x8p-1025:1:10:0x1p-1022: ++%*32Lg:+0x8p-1025:0:10: ++%32Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:+0x2.3456789abcdfep0123:0:23: ++%32Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:+0x2.3456789abcdfep+123:0:23: ++%32Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32Lg:+0x7.ffffffffffffcp1021:0:23: ++%32Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32Lg:+0xf.ffffffffffff8p+1020:0:24: ++%32Lg:+infinity:1:9:inf: ++%*32Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5Lg: -0xf.ffffffffffff8p+1020:0:6: ++%5Lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5Lg: -0x7.ffffffffffffcp1021:0:6: ++%5Lg: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdfep+123:0:6: ++%5Lg: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5Lg: -0x8p-1025:0:-1: ++# BZ12701 %*5Lg: -0x8p-1025:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-1025:0:-1: ++# BZ12701 %*5Lg: 0x8p-1025:0:-1: ++%5Lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdfep0123:0:6: ++%5Lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdfep+123:0:6: ++%5Lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5Lg: 0x7.ffffffffffffcp1021:0:6: ++%5Lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5Lg: 0xf.ffffffffffff8p+1020:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-1025:0:-1: ++# BZ12701 %*5Lg: +0x8p-1025:0:-1: ++%5Lg: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdfep0123:0:6: ++%5Lg: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdfep+123:0:6: ++%5Lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5Lg: +0x7.ffffffffffffcp1021:0:6: ++%5Lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5Lg: +0xf.ffffffffffff8p+1020:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%32Lg: :0:-1: ++%*32Lg: :0:-1: ++%32Lg: -infinity:1:10:-inf: ++%*32Lg: -infinity:0:10: ++%32Lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32Lg: -0xf.ffffffffffff8p+1020:0:25: ++%32Lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32Lg: -0x7.ffffffffffffcp1021:0:24: ++%32Lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg: -0x2.3456789abcdfep+123:0:24: ++%32Lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg: -0x2.3456789abcdfep0123:0:24: ++%32Lg: -0x8p-1025:1:11:-0x1p-1022: ++%*32Lg: -0x8p-1025:0:11: ++%32Lg: -0x0p+0:1:8:-0x0: ++%*32Lg: -0x0p+0:0:8: ++%32Lg: -0x0p0:1:7:-0x0: ++%*32Lg: -0x0p0:0:7: ++%32Lg: -nan(09A_Zaz):1:14:-nan: ++%*32Lg: -nan(09A_Zaz):0:14: ++%32Lg: -nan():1:7:-nan: ++%*32Lg: -nan():0:7: ++%32Lg: nan():1:6:nan: ++%*32Lg: nan():0:6: ++%32Lg: nan(09A_Zaz):1:13:nan: ++%*32Lg: nan(09A_Zaz):0:13: ++%32Lg: 0x0p0:1:6:0x0: ++%*32Lg: 0x0p0:0:6: ++%32Lg: 0x0p+0:1:7:0x0: ++%*32Lg: 0x0p+0:0:7: ++%32Lg: 0x8p-1025:1:10:0x1p-1022: ++%*32Lg: 0x8p-1025:0:10: ++%32Lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: 0x2.3456789abcdfep0123:0:23: ++%32Lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: 0x2.3456789abcdfep+123:0:23: ++%32Lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32Lg: 0x7.ffffffffffffcp1021:0:23: ++%32Lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32Lg: 0xf.ffffffffffff8p+1020:0:24: ++%32Lg: infinity:1:9:inf: ++%*32Lg: infinity:0:9: ++%32Lg: +nan():1:7:nan: ++%*32Lg: +nan():0:7: ++%32Lg: +nan(09A_Zaz):1:14:nan: ++%*32Lg: +nan(09A_Zaz):0:14: ++%32Lg: +0x0p0:1:7:0x0: ++%*32Lg: +0x0p0:0:7: ++%32Lg: +0x0p+0:1:8:0x0: ++%*32Lg: +0x0p+0:0:8: ++%32Lg: +0x8p-1025:1:11:0x1p-1022: ++%*32Lg: +0x8p-1025:0:11: ++%32Lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: +0x2.3456789abcdfep0123:0:24: ++%32Lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: +0x2.3456789abcdfep+123:0:24: ++%32Lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32Lg: +0x7.ffffffffffffcp1021:0:24: ++%32Lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32Lg: +0xf.ffffffffffff8p+1020:0:25: ++%32Lg: +infinity:1:10:inf: ++%*32Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..08684574e561f1c1 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*LG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*LG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LG:-0X2.3456789ABCDFEP+123:0:23: ++%LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LG:-0X2.3456789ABCDFEP0123:0:23: ++%LG:-0X8P-1025:1:10:-0x1p-1022: ++%*LG:-0X8P-1025:0:10: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-1025:1:9:0x1p-1022: ++%*LG:0X8P-1025:0:9: ++%LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LG:0X2.3456789ABCDFEP0123:0:22: ++%LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LG:0X2.3456789ABCDFEP+123:0:22: ++%LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*LG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*LG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-1025:1:10:0x1p-1022: ++%*LG:+0X8P-1025:0:10: ++%LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LG:+0X2.3456789ABCDFEP0123:0:23: ++%LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LG:+0X2.3456789ABCDFEP+123:0:23: ++%LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*LG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*LG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LG:-0X2.3456789ABCDFEP+123:0:-1: ++%*1LG:-0X2.3456789ABCDFEP+123:0:-1: ++%1LG:-0X2.3456789ABCDFEP0123:0:-1: ++%*1LG:-0X2.3456789ABCDFEP0123:0:-1: ++%1LG:-0X8P-1025:0:-1: ++%*1LG:-0X8P-1025:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-1025:1:1:0x0: ++%*1LG:0X8P-1025:0:1: ++%1LG:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1LG:0X2.3456789ABCDFEP0123:0:1: ++%1LG:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1LG:0X2.3456789ABCDFEP+123:0:1: ++%1LG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1LG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-1025:0:-1: ++%*1LG:+0X8P-1025:0:-1: ++%1LG:+0X2.3456789ABCDFEP0123:0:-1: ++%*1LG:+0X2.3456789ABCDFEP0123:0:-1: ++%1LG:+0X2.3456789ABCDFEP+123:0:-1: ++%*1LG:+0X2.3456789ABCDFEP+123:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LG:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDFEP+123:0:2: ++%2LG:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDFEP0123:0:2: ++%2LG:-0X8P-1025:1:2:-0x0: ++%*2LG:-0X8P-1025:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-1025:0:-1: ++# BZ12701 %*2LG:0X8P-1025:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-1025:1:2:0x0: ++%*2LG:+0X8P-1025:0:2: ++%2LG:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDFEP0123:0:2: ++%2LG:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDFEP+123:0:2: ++%2LG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LG:-0X8P-1025:0:-1: ++# BZ12701 %*3LG:-0X8P-1025:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-1025:1:3:0x1p3: ++%*3LG:0X8P-1025:0:3: ++%3LG:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDFEP0123:0:3: ++%3LG:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDFEP+123:0:3: ++%3LG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3LG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-1025:0:-1: ++# BZ12701 %*3LG:+0X8P-1025:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDFEP+123:0:4: ++%4LG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDFEP0123:0:4: ++%4LG:-0X8P-1025:1:4:-0x1p3: ++%*4LG:-0X8P-1025:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-1025:0:-1: ++# BZ12701 %*4LG:0X8P-1025:0:-1: ++%4LG:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDFEP0123:0:4: ++%4LG:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDFEP+123:0:4: ++%4LG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-1025:1:4:0x1p3: ++%*4LG:+0X8P-1025:0:4: ++%4LG:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDFEP0123:0:4: ++%4LG:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDFEP+123:0:4: ++%4LG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDFEP+123:0:5: ++%5LG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5LG:-0X8P-1025:0:-1: ++# BZ12701 %*5LG:-0X8P-1025:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-1025:0:-1: ++# BZ12701 %*5LG:0X8P-1025:0:-1: ++%5LG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDFEP0123:0:5: ++%5LG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDFEP+123:0:5: ++%5LG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-1025:0:-1: ++# BZ12701 %*5LG:+0X8P-1025:0:-1: ++%5LG:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDFEP0123:0:5: ++%5LG:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDFEP+123:0:5: ++%5LG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDFEP+123:0:6: ++%6LG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6LG:-0X8P-1025:0:-1: ++# BZ12701 %*6LG:-0X8P-1025:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-1025:1:6:0x1p2: ++%*6LG:0X8P-1025:0:6: ++%6LG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDFEP0123:0:6: ++%6LG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDFEP+123:0:6: ++%6LG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-1025:0:-1: ++# BZ12701 %*6LG:+0X8P-1025:0:-1: ++%6LG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDFEP0123:0:6: ++%6LG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDFEP+123:0:6: ++%6LG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%20LG::0:-1: ++%*20LG::0:-1: ++%20LG:-INFINITY:1:9:-inf: ++%*20LG:-INFINITY:0:9: ++# BZ12701 %20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20LG:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LG:-0X2.3456789ABCDFEP+123:0:-1: ++%20LG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20LG:-0X2.3456789ABCDFEP0123:0:20: ++%20LG:-0X8P-1025:1:10:-0x1p-1022: ++%*20LG:-0X8P-1025:0:10: ++%20LG:-0X0P+0:1:7:-0x0: ++%*20LG:-0X0P+0:0:7: ++%20LG:-0X0P0:1:6:-0x0: ++%*20LG:-0X0P0:0:6: ++%20LG:-NAN(09A_Zaz):1:13:-nan: ++%*20LG:-NAN(09A_Zaz):0:13: ++%20LG:-NAN():1:6:-nan: ++%*20LG:-NAN():0:6: ++%20LG:NAN():1:5:nan: ++%*20LG:NAN():0:5: ++%20LG:NAN(09A_Zaz):1:12:nan: ++%*20LG:NAN(09A_Zaz):0:12: ++%20LG:0X0P0:1:5:0x0: ++%*20LG:0X0P0:0:5: ++%20LG:0X0P+0:1:6:0x0: ++%*20LG:0X0P+0:0:6: ++%20LG:0X8P-1025:1:9:0x1p-1022: ++%*20LG:0X8P-1025:0:9: ++%20LG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LG:0X2.3456789ABCDFEP0123:0:20: ++%20LG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LG:0X2.3456789ABCDFEP+123:0:20: ++%20LG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20LG:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20LG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20LG:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20LG:INFINITY:1:8:inf: ++%*20LG:INFINITY:0:8: ++%20LG:+NAN():1:6:nan: ++%*20LG:+NAN():0:6: ++%20LG:+NAN(09A_Zaz):1:13:nan: ++%*20LG:+NAN(09A_Zaz):0:13: ++%20LG:+0X0P0:1:6:0x0: ++%*20LG:+0X0P0:0:6: ++%20LG:+0X0P+0:1:7:0x0: ++%*20LG:+0X0P+0:0:7: ++%20LG:+0X8P-1025:1:10:0x1p-1022: ++%*20LG:+0X8P-1025:0:10: ++%20LG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20LG:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LG:+0X2.3456789ABCDFEP+123:0:-1: ++%20LG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20LG:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LG:+INFINITY:1:9:inf: ++%*20LG:+INFINITY:0:9: ++%32LG::0:-1: ++%*32LG::0:-1: ++%32LG:-INFINITY:1:9:-inf: ++%*32LG:-INFINITY:0:9: ++%32LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32LG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32LG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LG:-0X2.3456789ABCDFEP+123:0:23: ++%32LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LG:-0X2.3456789ABCDFEP0123:0:23: ++%32LG:-0X8P-1025:1:10:-0x1p-1022: ++%*32LG:-0X8P-1025:0:10: ++%32LG:-0X0P+0:1:7:-0x0: ++%*32LG:-0X0P+0:0:7: ++%32LG:-0X0P0:1:6:-0x0: ++%*32LG:-0X0P0:0:6: ++%32LG:-NAN(09A_Zaz):1:13:-nan: ++%*32LG:-NAN(09A_Zaz):0:13: ++%32LG:-NAN():1:6:-nan: ++%*32LG:-NAN():0:6: ++%32LG:NAN():1:5:nan: ++%*32LG:NAN():0:5: ++%32LG:NAN(09A_Zaz):1:12:nan: ++%*32LG:NAN(09A_Zaz):0:12: ++%32LG:0X0P0:1:5:0x0: ++%*32LG:0X0P0:0:5: ++%32LG:0X0P+0:1:6:0x0: ++%*32LG:0X0P+0:0:6: ++%32LG:0X8P-1025:1:9:0x1p-1022: ++%*32LG:0X8P-1025:0:9: ++%32LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LG:0X2.3456789ABCDFEP0123:0:22: ++%32LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LG:0X2.3456789ABCDFEP+123:0:22: ++%32LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32LG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32LG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32LG:INFINITY:1:8:inf: ++%*32LG:INFINITY:0:8: ++%32LG:+NAN():1:6:nan: ++%*32LG:+NAN():0:6: ++%32LG:+NAN(09A_Zaz):1:13:nan: ++%*32LG:+NAN(09A_Zaz):0:13: ++%32LG:+0X0P0:1:6:0x0: ++%*32LG:+0X0P0:0:6: ++%32LG:+0X0P+0:1:7:0x0: ++%*32LG:+0X0P+0:0:7: ++%32LG:+0X8P-1025:1:10:0x1p-1022: ++%*32LG:+0X8P-1025:0:10: ++%32LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG:+0X2.3456789ABCDFEP0123:0:23: ++%32LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG:+0X2.3456789ABCDFEP+123:0:23: ++%32LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG:+INFINITY:1:9:inf: ++%*32LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDFEP+123:0:6: ++%5LG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5LG: -0X8P-1025:0:-1: ++# BZ12701 %*5LG: -0X8P-1025:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-1025:0:-1: ++# BZ12701 %*5LG: 0X8P-1025:0:-1: ++%5LG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDFEP0123:0:6: ++%5LG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDFEP+123:0:6: ++%5LG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-1025:0:-1: ++# BZ12701 %*5LG: +0X8P-1025:0:-1: ++%5LG: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDFEP0123:0:6: ++%5LG: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDFEP+123:0:6: ++%5LG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%32LG: :0:-1: ++%*32LG: :0:-1: ++%32LG: -INFINITY:1:10:-inf: ++%*32LG: -INFINITY:0:10: ++%32LG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32LG: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32LG: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LG: -0X2.3456789ABCDFEP+123:0:24: ++%32LG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LG: -0X2.3456789ABCDFEP0123:0:24: ++%32LG: -0X8P-1025:1:11:-0x1p-1022: ++%*32LG: -0X8P-1025:0:11: ++%32LG: -0X0P+0:1:8:-0x0: ++%*32LG: -0X0P+0:0:8: ++%32LG: -0X0P0:1:7:-0x0: ++%*32LG: -0X0P0:0:7: ++%32LG: -NAN(09A_Zaz):1:14:-nan: ++%*32LG: -NAN(09A_Zaz):0:14: ++%32LG: -NAN():1:7:-nan: ++%*32LG: -NAN():0:7: ++%32LG: NAN():1:6:nan: ++%*32LG: NAN():0:6: ++%32LG: NAN(09A_Zaz):1:13:nan: ++%*32LG: NAN(09A_Zaz):0:13: ++%32LG: 0X0P0:1:6:0x0: ++%*32LG: 0X0P0:0:6: ++%32LG: 0X0P+0:1:7:0x0: ++%*32LG: 0X0P+0:0:7: ++%32LG: 0X8P-1025:1:10:0x1p-1022: ++%*32LG: 0X8P-1025:0:10: ++%32LG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG: 0X2.3456789ABCDFEP0123:0:23: ++%32LG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG: 0X2.3456789ABCDFEP+123:0:23: ++%32LG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LG: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LG: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG: INFINITY:1:9:inf: ++%*32LG: INFINITY:0:9: ++%32LG: +NAN():1:7:nan: ++%*32LG: +NAN():0:7: ++%32LG: +NAN(09A_Zaz):1:14:nan: ++%*32LG: +NAN(09A_Zaz):0:14: ++%32LG: +0X0P0:1:7:0x0: ++%*32LG: +0X0P0:0:7: ++%32LG: +0X0P+0:1:8:0x0: ++%*32LG: +0X0P+0:0:8: ++%32LG: +0X8P-1025:1:11:0x1p-1022: ++%*32LG: +0X8P-1025:0:11: ++%32LG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LG: +0X2.3456789ABCDFEP0123:0:24: ++%32LG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LG: +0X2.3456789ABCDFEP+123:0:24: ++%32LG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32LG: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32LG: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LG: +INFINITY:1:10:inf: ++%*32LG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-84306-8.patch b/SOURCES/glibc-RHEL-84306-8.patch new file mode 100644 index 0000000..9afc529 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-8.patch @@ -0,0 +1,4984 @@ +commit 4bea073069e9e457258d082786297a867593d05b +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IBM 128-bit format + + Add Makefile infrastructure and IBM 128-bit 'long double' real input for + targets switching between the IEEE 754 binary128 and IBM 128-bit formats + with '-mabi=ieeelongdouble' and '-mabi=ibmlongdouble'. Reuse IEEE 754 + binary128 input data but with modified output file names so as not to + clash with the names used for IBM 128-bit format tests made with common + rules for the 'long double' data type. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +index 67d476383ab4fd4a..e6dded999e4c1011 100644 +--- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile ++++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +@@ -66,6 +66,55 @@ CFLAGS-vfwprintf-internal.c += -mfloat128 -mabi=ibmlongdouble + CFLAGS-vfscanf-internal.c += -mfloat128 -mabi=ibmlongdouble + CFLAGS-vfwscanf-internal.c += -mfloat128 -mabi=ibmlongdouble + ++ifeq ($(subdir),stdio-common) ++# We already have the long double conversion defined with our common rules ++# for the IBM format, so define these special rules to build and run extra ++# executables for the IEEE binary128 format, reusing the same sources and ++# inputs. ++define tst-scanf-format-128ibm-compat-tests ++test-srcs += \ ++ tst-scanf-format-$(1)-ldouble-128ibm-compat \ ++ # test-srcs ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat.o: \ ++ tst-scanf-format-$(1)-ldouble.c $$(before-compile) ++ $$(compile-command.c) ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat: $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-128ibm-compat-tests,$(p)))) ++ ++ifeq ($(run-built-tests),yes) ++define tst-scanf-format-128ibm-compat-rule ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out \ ++ # tests-special ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out: \ ++ ../sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-$(2).input \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \ ++ # tests-special ++ ++generated += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).mtrace \ ++ # generated ++endif ++endif ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-128ibm-compat-rule,$(p),$(f))))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common ++ + # Basic tests for the implementation of long double with IEEE binary128 + # format and for the related redirections in installed headers. + tests-internal += test-printf-ieee128 test-printf-ibm128 +diff --git a/sysdeps/ieee754/ldbl-128ibm/Makefile b/sysdeps/ieee754/ldbl-128ibm/Makefile +index c38d4f6ac203fb8e..4dfe44032eb6f9d3 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/Makefile ++++ b/sysdeps/ieee754/ldbl-128ibm/Makefile +@@ -17,6 +17,16 @@ ifeq ($(subdir),math) + tests += $(ldbl-tests) + endif + ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++ ++# Use the IBM format for long double scanf format tests. ++$(foreach suf,$(all-object-suffixes), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(objpfx)tst-scanf-format-$(p)-ldouble$(suf))): \ ++ sysdep-CFLAGS += $(type-ldouble-CFLAGS) ++endif ++ + # Long double files may need extra CFLAGS. + ldbl-128ibm-routines = s_nexttoward s_nexttowardf \ + $(type-ldouble-routines) \ +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..a7377d55575f2d75 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%La:-0x8p-972:1:9:-0x1p-969: ++%*La:-0x8p-972:0:9: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-972:1:8:0x1p-969: ++%*La:0x8p-972:0:8: ++%La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:0x2.3456789abcdef0123456789abcp0123:0:35: ++%La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:0x2.3456789abcdef0123456789abcp+123:0:35: ++%La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-972:1:9:0x1p-969: ++%*La:+0x8p-972:0:9: ++%La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1La:-0x8p-972:0:-1: ++%*1La:-0x8p-972:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-972:1:1:0x0: ++%*1La:0x8p-972:0:1: ++%1La:0x2.3456789abcdef0123456789abcp0123:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcp0123:0:1: ++%1La:0x2.3456789abcdef0123456789abcp+123:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcp+123:0:1: ++%1La:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0: ++%*1La:0x7.ffffffffffffdffffffffffffep1021:0:1: ++%1La:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0: ++%*1La:0xf.ffffffffffffbffffffffffffcp+1020:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-972:0:-1: ++%*1La:+0x8p-972:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0: ++%*2La:-0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2La:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0: ++%*2La:-0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2La:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcp+123:0:2: ++%2La:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcp0123:0:2: ++%2La:-0x8p-972:1:2:-0x0: ++%*2La:-0x8p-972:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-972:0:-1: ++# BZ12701 %*2La:0x8p-972:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %2La:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*2La:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-972:1:2:0x0: ++%*2La:+0x8p-972:0:2: ++%2La:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcp0123:0:2: ++%2La:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcp+123:0:2: ++%2La:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0: ++%*2La:+0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2La:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0: ++%*2La:+0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3La:-0x8p-972:0:-1: ++# BZ12701 %*3La:-0x8p-972:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-972:1:3:0x1p3: ++%*3La:0x8p-972:0:3: ++%3La:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcp0123:0:3: ++%3La:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcp+123:0:3: ++%3La:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2: ++%*3La:0x7.ffffffffffffdffffffffffffep1021:0:3: ++%3La:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3: ++%*3La:0xf.ffffffffffffbffffffffffffcp+1020:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-972:0:-1: ++# BZ12701 %*3La:+0x8p-972:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3: ++%*4La:-0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2: ++%*4La:-0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:-0x8p-972:1:4:-0x1p3: ++%*4La:-0x8p-972:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-972:0:-1: ++# BZ12701 %*4La:0x8p-972:0:-1: ++%4La:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4La:0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4La:0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-972:1:4:0x1p3: ++%*4La:+0x8p-972:0:4: ++%4La:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4La:+0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4La:+0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3: ++%*5La:-0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2: ++%*5La:-0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcp0123:0:5: ++# BZ12701 %5La:-0x8p-972:0:-1: ++# BZ12701 %*5La:-0x8p-972:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-972:0:-1: ++# BZ12701 %*5La:0x8p-972:0:-1: ++%5La:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcp0123:0:5: ++%5La:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2: ++%*5La:0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3: ++%*5La:0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-972:0:-1: ++# BZ12701 %*5La:+0x8p-972:0:-1: ++%5La:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcp0123:0:5: ++%5La:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2: ++%*5La:+0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3: ++%*5La:+0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3: ++%*6La:-0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2: ++%*6La:-0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %6La:-0x8p-972:0:-1: ++# BZ12701 %*6La:-0x8p-972:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-972:1:6:0x1p-6: ++%*6La:0x8p-972:0:6: ++%6La:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcp0123:0:6: ++%6La:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2: ++%*6La:0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3: ++%*6La:0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-972:0:-1: ++# BZ12701 %*6La:+0x8p-972:0:-1: ++%6La:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcp0123:0:6: ++%6La:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*6La:+0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*6La:+0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%33La::0:-1: ++%*33La::0:-1: ++%33La:-infinity:1:9:-inf: ++%*33La:-infinity:0:9: ++# BZ12701 %33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33La:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33La:-0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33La:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33La:-0x2.3456789abcdef0123456789abcp0123:0:33: ++%33La:-0x8p-972:1:9:-0x1p-969: ++%*33La:-0x8p-972:0:9: ++%33La:-0x0p+0:1:7:-0x0: ++%*33La:-0x0p+0:0:7: ++%33La:-0x0p0:1:6:-0x0: ++%*33La:-0x0p0:0:6: ++%33La:-nan(09A_Zaz):1:13:-nan: ++%*33La:-nan(09A_Zaz):0:13: ++%33La:-nan():1:6:-nan: ++%*33La:-nan():0:6: ++%33La:nan():1:5:nan: ++%*33La:nan():0:5: ++%33La:nan(09A_Zaz):1:12:nan: ++%*33La:nan(09A_Zaz):0:12: ++%33La:0x0p0:1:5:0x0: ++%*33La:0x0p0:0:5: ++%33La:0x0p+0:1:6:0x0: ++%*33La:0x0p+0:0:6: ++%33La:0x8p-972:1:8:0x1p-969: ++%*33La:0x8p-972:0:8: ++%33La:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33La:0x2.3456789abcdef0123456789abcp0123:0:33: ++%33La:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33La:0x2.3456789abcdef0123456789abcp+123:0:33: ++%33La:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33La:0x7.ffffffffffffdffffffffffffep1021:0:33: ++%33La:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33La:0xf.ffffffffffffbffffffffffffcp+1020:0:33: ++%33La:infinity:1:8:inf: ++%*33La:infinity:0:8: ++%33La:+nan():1:6:nan: ++%*33La:+nan():0:6: ++%33La:+nan(09A_Zaz):1:13:nan: ++%*33La:+nan(09A_Zaz):0:13: ++%33La:+0x0p0:1:6:0x0: ++%*33La:+0x0p0:0:6: ++%33La:+0x0p+0:1:7:0x0: ++%*33La:+0x0p+0:0:7: ++%33La:+0x8p-972:1:9:0x1p-969: ++%*33La:+0x8p-972:0:9: ++%33La:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33La:+0x2.3456789abcdef0123456789abcp0123:0:33: ++# BZ12701 %33La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33La:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33La:+0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33La:+infinity:1:9:inf: ++%*33La:+infinity:0:9: ++%50La::0:-1: ++%*50La::0:-1: ++%50La:-infinity:1:9:-inf: ++%*50La:-infinity:0:9: ++%50La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La:-0x8p-972:1:9:-0x1p-969: ++%*50La:-0x8p-972:0:9: ++%50La:-0x0p+0:1:7:-0x0: ++%*50La:-0x0p+0:0:7: ++%50La:-0x0p0:1:6:-0x0: ++%*50La:-0x0p0:0:6: ++%50La:-nan(09A_Zaz):1:13:-nan: ++%*50La:-nan(09A_Zaz):0:13: ++%50La:-nan():1:6:-nan: ++%*50La:-nan():0:6: ++%50La:nan():1:5:nan: ++%*50La:nan():0:5: ++%50La:nan(09A_Zaz):1:12:nan: ++%*50La:nan(09A_Zaz):0:12: ++%50La:0x0p0:1:5:0x0: ++%*50La:0x0p0:0:5: ++%50La:0x0p+0:1:6:0x0: ++%*50La:0x0p+0:0:6: ++%50La:0x8p-972:1:8:0x1p-969: ++%*50La:0x8p-972:0:8: ++%50La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:0x2.3456789abcdef0123456789abcp0123:0:35: ++%50La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:0x2.3456789abcdef0123456789abcp+123:0:35: ++%50La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%50La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%50La:infinity:1:8:inf: ++%*50La:infinity:0:8: ++%50La:+nan():1:6:nan: ++%*50La:+nan():0:6: ++%50La:+nan(09A_Zaz):1:13:nan: ++%*50La:+nan(09A_Zaz):0:13: ++%50La:+0x0p0:1:6:0x0: ++%*50La:+0x0p0:0:6: ++%50La:+0x0p+0:1:7:0x0: ++%*50La:+0x0p+0:0:7: ++%50La:+0x8p-972:1:9:0x1p-969: ++%*50La:+0x8p-972:0:9: ++%50La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La:+infinity:1:9:inf: ++%*50La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3: ++%*5La: -0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2: ++%*5La: -0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %5La: -0x8p-972:0:-1: ++# BZ12701 %*5La: -0x8p-972:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-972:0:-1: ++# BZ12701 %*5La: 0x8p-972:0:-1: ++%5La: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcp0123:0:6: ++%5La: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*5La: 0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*5La: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-972:0:-1: ++# BZ12701 %*5La: +0x8p-972:0:-1: ++%5La: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcp0123:0:6: ++%5La: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2: ++%*5La: +0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3: ++%*5La: +0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%50La: :0:-1: ++%*50La: :0:-1: ++%50La: -infinity:1:10:-inf: ++%*50La: -infinity:0:10: ++%50La: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: -0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50La: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: -0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50La: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: -0x2.3456789abcdef0123456789abcp+123:0:37: ++%50La: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: -0x2.3456789abcdef0123456789abcp0123:0:37: ++%50La: -0x8p-972:1:10:-0x1p-969: ++%*50La: -0x8p-972:0:10: ++%50La: -0x0p+0:1:8:-0x0: ++%*50La: -0x0p+0:0:8: ++%50La: -0x0p0:1:7:-0x0: ++%*50La: -0x0p0:0:7: ++%50La: -nan(09A_Zaz):1:14:-nan: ++%*50La: -nan(09A_Zaz):0:14: ++%50La: -nan():1:7:-nan: ++%*50La: -nan():0:7: ++%50La: nan():1:6:nan: ++%*50La: nan():0:6: ++%50La: nan(09A_Zaz):1:13:nan: ++%*50La: nan(09A_Zaz):0:13: ++%50La: 0x0p0:1:6:0x0: ++%*50La: 0x0p0:0:6: ++%50La: 0x0p+0:1:7:0x0: ++%*50La: 0x0p+0:0:7: ++%50La: 0x8p-972:1:9:0x1p-969: ++%*50La: 0x8p-972:0:9: ++%50La: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: 0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: 0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: 0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La: infinity:1:9:inf: ++%*50La: infinity:0:9: ++%50La: +nan():1:7:nan: ++%*50La: +nan():0:7: ++%50La: +nan(09A_Zaz):1:14:nan: ++%*50La: +nan(09A_Zaz):0:14: ++%50La: +0x0p0:1:7:0x0: ++%*50La: +0x0p0:0:7: ++%50La: +0x0p+0:1:8:0x0: ++%*50La: +0x0p+0:0:8: ++%50La: +0x8p-972:1:10:0x1p-969: ++%*50La: +0x8p-972:0:10: ++%50La: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: +0x2.3456789abcdef0123456789abcp0123:0:37: ++%50La: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: +0x2.3456789abcdef0123456789abcp+123:0:37: ++%50La: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: +0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50La: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: +0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50La: +infinity:1:10:inf: ++%*50La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..1dc2c558ced97273 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LA:-0X8P-972:1:9:-0x1p-969: ++%*LA:-0X8P-972:0:9: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-972:1:8:0x1p-969: ++%*LA:0X8P-972:0:8: ++%LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-972:1:9:0x1p-969: ++%*LA:+0X8P-972:0:9: ++%LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LA:-0X8P-972:0:-1: ++%*1LA:-0X8P-972:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-972:1:1:0x0: ++%*1LA:0X8P-972:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCP0123:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCP+123:0:1: ++%1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1: ++%1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-972:0:-1: ++%*1LA:+0X8P-972:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LA:-0X8P-972:1:2:-0x0: ++%*2LA:-0X8P-972:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-972:0:-1: ++# BZ12701 %*2LA:0X8P-972:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-972:1:2:0x0: ++%*2LA:+0X8P-972:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LA:-0X8P-972:0:-1: ++# BZ12701 %*3LA:-0X8P-972:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-972:1:3:0x1p3: ++%*3LA:0X8P-972:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCP0123:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCP+123:0:3: ++%3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3: ++%3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-972:0:-1: ++# BZ12701 %*3LA:+0X8P-972:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:-0X8P-972:1:4:-0x1p3: ++%*4LA:-0X8P-972:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-972:0:-1: ++# BZ12701 %*4LA:0X8P-972:0:-1: ++%4LA:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-972:1:4:0x1p3: ++%*4LA:+0X8P-972:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++# BZ12701 %5LA:-0X8P-972:0:-1: ++# BZ12701 %*5LA:-0X8P-972:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-972:0:-1: ++# BZ12701 %*5LA:0X8P-972:0:-1: ++%5LA:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LA:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-972:0:-1: ++# BZ12701 %*5LA:+0X8P-972:0:-1: ++%5LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %6LA:-0X8P-972:0:-1: ++# BZ12701 %*6LA:-0X8P-972:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-972:1:6:0x1p-6: ++%*6LA:0X8P-972:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-972:0:-1: ++# BZ12701 %*6LA:+0X8P-972:0:-1: ++%6LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%33LA::0:-1: ++%*33LA::0:-1: ++%33LA:-INFINITY:1:9:-inf: ++%*33LA:-INFINITY:0:9: ++# BZ12701 %33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LA:-0X8P-972:1:9:-0x1p-969: ++%*33LA:-0X8P-972:0:9: ++%33LA:-0X0P+0:1:7:-0x0: ++%*33LA:-0X0P+0:0:7: ++%33LA:-0X0P0:1:6:-0x0: ++%*33LA:-0X0P0:0:6: ++%33LA:-NAN(09A_Zaz):1:13:-nan: ++%*33LA:-NAN(09A_Zaz):0:13: ++%33LA:-NAN():1:6:-nan: ++%*33LA:-NAN():0:6: ++%33LA:NAN():1:5:nan: ++%*33LA:NAN():0:5: ++%33LA:NAN(09A_Zaz):1:12:nan: ++%*33LA:NAN(09A_Zaz):0:12: ++%33LA:0X0P0:1:5:0x0: ++%*33LA:0X0P0:0:5: ++%33LA:0X0P+0:1:6:0x0: ++%*33LA:0X0P+0:0:6: ++%33LA:0X8P-972:1:8:0x1p-969: ++%*33LA:0X8P-972:0:8: ++%33LA:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LA:0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LA:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LA:0X2.3456789ABCDEF0123456789ABCP+123:0:33: ++%33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++%33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: ++%33LA:INFINITY:1:8:inf: ++%*33LA:INFINITY:0:8: ++%33LA:+NAN():1:6:nan: ++%*33LA:+NAN():0:6: ++%33LA:+NAN(09A_Zaz):1:13:nan: ++%*33LA:+NAN(09A_Zaz):0:13: ++%33LA:+0X0P0:1:6:0x0: ++%*33LA:+0X0P0:0:6: ++%33LA:+0X0P+0:1:7:0x0: ++%*33LA:+0X0P+0:0:7: ++%33LA:+0X8P-972:1:9:0x1p-969: ++%*33LA:+0X8P-972:0:9: ++%33LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++# BZ12701 %33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LA:+INFINITY:1:9:inf: ++%*33LA:+INFINITY:0:9: ++%50LA::0:-1: ++%*50LA::0:-1: ++%50LA:-INFINITY:1:9:-inf: ++%*50LA:-INFINITY:0:9: ++%50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA:-0X8P-972:1:9:-0x1p-969: ++%*50LA:-0X8P-972:0:9: ++%50LA:-0X0P+0:1:7:-0x0: ++%*50LA:-0X0P+0:0:7: ++%50LA:-0X0P0:1:6:-0x0: ++%*50LA:-0X0P0:0:6: ++%50LA:-NAN(09A_Zaz):1:13:-nan: ++%*50LA:-NAN(09A_Zaz):0:13: ++%50LA:-NAN():1:6:-nan: ++%*50LA:-NAN():0:6: ++%50LA:NAN():1:5:nan: ++%*50LA:NAN():0:5: ++%50LA:NAN(09A_Zaz):1:12:nan: ++%*50LA:NAN(09A_Zaz):0:12: ++%50LA:0X0P0:1:5:0x0: ++%*50LA:0X0P0:0:5: ++%50LA:0X0P+0:1:6:0x0: ++%*50LA:0X0P+0:0:6: ++%50LA:0X8P-972:1:8:0x1p-969: ++%*50LA:0X8P-972:0:8: ++%50LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%50LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%50LA:INFINITY:1:8:inf: ++%*50LA:INFINITY:0:8: ++%50LA:+NAN():1:6:nan: ++%*50LA:+NAN():0:6: ++%50LA:+NAN(09A_Zaz):1:13:nan: ++%*50LA:+NAN(09A_Zaz):0:13: ++%50LA:+0X0P0:1:6:0x0: ++%*50LA:+0X0P0:0:6: ++%50LA:+0X0P+0:1:7:0x0: ++%*50LA:+0X0P+0:0:7: ++%50LA:+0X8P-972:1:9:0x1p-969: ++%*50LA:+0X8P-972:0:9: ++%50LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA:+INFINITY:1:9:inf: ++%*50LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %5LA: -0X8P-972:0:-1: ++# BZ12701 %*5LA: -0X8P-972:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-972:0:-1: ++# BZ12701 %*5LA: 0X8P-972:0:-1: ++%5LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-972:0:-1: ++# BZ12701 %*5LA: +0X8P-972:0:-1: ++%5LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%50LA: :0:-1: ++%*50LA: :0:-1: ++%50LA: -INFINITY:1:10:-inf: ++%*50LA: -INFINITY:0:10: ++%50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LA: -0X8P-972:1:10:-0x1p-969: ++%*50LA: -0X8P-972:0:10: ++%50LA: -0X0P+0:1:8:-0x0: ++%*50LA: -0X0P+0:0:8: ++%50LA: -0X0P0:1:7:-0x0: ++%*50LA: -0X0P0:0:7: ++%50LA: -NAN(09A_Zaz):1:14:-nan: ++%*50LA: -NAN(09A_Zaz):0:14: ++%50LA: -NAN():1:7:-nan: ++%*50LA: -NAN():0:7: ++%50LA: NAN():1:6:nan: ++%*50LA: NAN():0:6: ++%50LA: NAN(09A_Zaz):1:13:nan: ++%*50LA: NAN(09A_Zaz):0:13: ++%50LA: 0X0P0:1:6:0x0: ++%*50LA: 0X0P0:0:6: ++%50LA: 0X0P+0:1:7:0x0: ++%*50LA: 0X0P+0:0:7: ++%50LA: 0X8P-972:1:9:0x1p-969: ++%*50LA: 0X8P-972:0:9: ++%50LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA: INFINITY:1:9:inf: ++%*50LA: INFINITY:0:9: ++%50LA: +NAN():1:7:nan: ++%*50LA: +NAN():0:7: ++%50LA: +NAN(09A_Zaz):1:14:nan: ++%*50LA: +NAN(09A_Zaz):0:14: ++%50LA: +0X0P0:1:7:0x0: ++%*50LA: +0X0P0:0:7: ++%50LA: +0X0P+0:1:8:0x0: ++%*50LA: +0X0P+0:0:8: ++%50LA: +0X8P-972:1:10:0x1p-969: ++%*50LA: +0X8P-972:0:10: ++%50LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LA: +INFINITY:1:10:inf: ++%*50LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..f61b0d0fd382c113 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:-1.79769313486231580793728971405301199e+308:0:43: ++%Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:-1.79769313486231580793728971405301199e308:0:42: ++%Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:-2.3441674165664647186659237648155017216e+37:0:44: ++%Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:-2.3441674165664647186659237648155017216e037:0:44: ++%Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969: ++%*Le:-2.00416836000897277799610805135016205e-292:0:43: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969: ++%*Le:2.00416836000897277799610805135016205e-292:0:42: ++%Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:2.3441674165664647186659237648155017216e037:0:43: ++%Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:2.3441674165664647186659237648155017216e+37:0:43: ++%Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:1.79769313486231580793728971405301199e308:0:41: ++%Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:1.79769313486231580793728971405301199e+308:0:42: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*Le:+2.00416836000897277799610805135016205e-292:0:43: ++%Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:+2.3441674165664647186659237648155017216e037:0:44: ++%Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:+2.3441674165664647186659237648155017216e+37:0:44: ++%Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:+1.79769313486231580793728971405301199e308:0:42: ++%Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:+1.79769313486231580793728971405301199e+308:0:43: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%*1Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%1Le:-1.79769313486231580793728971405301199e308:0:-1: ++%*1Le:-1.79769313486231580793728971405301199e308:0:-1: ++%1Le:-2.3441674165664647186659237648155017216e+37:0:-1: ++%*1Le:-2.3441674165664647186659237648155017216e+37:0:-1: ++%1Le:-2.3441674165664647186659237648155017216e037:0:-1: ++%*1Le:-2.3441674165664647186659237648155017216e037:0:-1: ++%1Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%*1Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:2.00416836000897277799610805135016205e-292:1:1:0x1p1: ++%*1Le:2.00416836000897277799610805135016205e-292:0:1: ++%1Le:2.3441674165664647186659237648155017216e037:1:1:0x1p1: ++%*1Le:2.3441674165664647186659237648155017216e037:0:1: ++%1Le:2.3441674165664647186659237648155017216e+37:1:1:0x1p1: ++%*1Le:2.3441674165664647186659237648155017216e+37:0:1: ++%1Le:1.79769313486231580793728971405301199e308:1:1:0x1: ++%*1Le:1.79769313486231580793728971405301199e308:0:1: ++%1Le:1.79769313486231580793728971405301199e+308:1:1:0x1: ++%*1Le:1.79769313486231580793728971405301199e+308:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%*1Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%1Le:+2.3441674165664647186659237648155017216e037:0:-1: ++%*1Le:+2.3441674165664647186659237648155017216e037:0:-1: ++%1Le:+2.3441674165664647186659237648155017216e+37:0:-1: ++%*1Le:+2.3441674165664647186659237648155017216e+37:0:-1: ++%1Le:+1.79769313486231580793728971405301199e308:0:-1: ++%*1Le:+1.79769313486231580793728971405301199e308:0:-1: ++%1Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%*1Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.79769313486231580793728971405301199e+308:1:2:-0x1: ++%*2Le:-1.79769313486231580793728971405301199e+308:0:2: ++%2Le:-1.79769313486231580793728971405301199e308:1:2:-0x1: ++%*2Le:-1.79769313486231580793728971405301199e308:0:2: ++%2Le:-2.3441674165664647186659237648155017216e+37:1:2:-0x1p1: ++%*2Le:-2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:-2.3441674165664647186659237648155017216e037:1:2:-0x1p1: ++%*2Le:-2.3441674165664647186659237648155017216e037:0:2: ++%2Le:-2.00416836000897277799610805135016205e-292:1:2:-0x1p1: ++%*2Le:-2.00416836000897277799610805135016205e-292:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:2.00416836000897277799610805135016205e-292:1:2:0x1p1: ++%*2Le:2.00416836000897277799610805135016205e-292:0:2: ++%2Le:2.3441674165664647186659237648155017216e037:1:2:0x1p1: ++%*2Le:2.3441674165664647186659237648155017216e037:0:2: ++%2Le:2.3441674165664647186659237648155017216e+37:1:2:0x1p1: ++%*2Le:2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:1.79769313486231580793728971405301199e308:1:2:0x1: ++%*2Le:1.79769313486231580793728971405301199e308:0:2: ++%2Le:1.79769313486231580793728971405301199e+308:1:2:0x1: ++%*2Le:1.79769313486231580793728971405301199e+308:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+2.00416836000897277799610805135016205e-292:1:2:0x1p1: ++%*2Le:+2.00416836000897277799610805135016205e-292:0:2: ++%2Le:+2.3441674165664647186659237648155017216e037:1:2:0x1p1: ++%*2Le:+2.3441674165664647186659237648155017216e037:0:2: ++%2Le:+2.3441674165664647186659237648155017216e+37:1:2:0x1p1: ++%*2Le:+2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:+1.79769313486231580793728971405301199e308:1:2:0x1: ++%*2Le:+1.79769313486231580793728971405301199e308:0:2: ++%2Le:+1.79769313486231580793728971405301199e+308:1:2:0x1: ++%*2Le:+1.79769313486231580793728971405301199e+308:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.79769313486231580793728971405301199e+308:1:3:-0x1: ++%*3Le:-1.79769313486231580793728971405301199e+308:0:3: ++%3Le:-1.79769313486231580793728971405301199e308:1:3:-0x1: ++%*3Le:-1.79769313486231580793728971405301199e308:0:3: ++%3Le:-2.3441674165664647186659237648155017216e+37:1:3:-0x1p1: ++%*3Le:-2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:-2.3441674165664647186659237648155017216e037:1:3:-0x1p1: ++%*3Le:-2.3441674165664647186659237648155017216e037:0:3: ++%3Le:-2.00416836000897277799610805135016205e-292:1:3:-0x1p1: ++%*3Le:-2.00416836000897277799610805135016205e-292:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:2.00416836000897277799610805135016205e-292:1:3:0x1p1: ++%*3Le:2.00416836000897277799610805135016205e-292:0:3: ++%3Le:2.3441674165664647186659237648155017216e037:1:3:0x1.266666666666666666666666668p1: ++%*3Le:2.3441674165664647186659237648155017216e037:0:3: ++%3Le:2.3441674165664647186659237648155017216e+37:1:3:0x1.266666666666666666666666668p1: ++%*3Le:2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:1.79769313486231580793728971405301199e308:1:3:0x1.b3333333333333333333333333: ++%*3Le:1.79769313486231580793728971405301199e308:0:3: ++%3Le:1.79769313486231580793728971405301199e+308:1:3:0x1.b3333333333333333333333333: ++%*3Le:1.79769313486231580793728971405301199e+308:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+2.00416836000897277799610805135016205e-292:1:3:0x1p1: ++%*3Le:+2.00416836000897277799610805135016205e-292:0:3: ++%3Le:+2.3441674165664647186659237648155017216e037:1:3:0x1p1: ++%*3Le:+2.3441674165664647186659237648155017216e037:0:3: ++%3Le:+2.3441674165664647186659237648155017216e+37:1:3:0x1p1: ++%*3Le:+2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:+1.79769313486231580793728971405301199e308:1:3:0x1: ++%*3Le:+1.79769313486231580793728971405301199e308:0:3: ++%3Le:+1.79769313486231580793728971405301199e+308:1:3:0x1: ++%*3Le:+1.79769313486231580793728971405301199e+308:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.79769313486231580793728971405301199e+308:1:4:-0x1.b3333333333333333333333333: ++%*4Le:-1.79769313486231580793728971405301199e+308:0:4: ++%4Le:-1.79769313486231580793728971405301199e308:1:4:-0x1.b3333333333333333333333333: ++%*4Le:-1.79769313486231580793728971405301199e308:0:4: ++%4Le:-2.3441674165664647186659237648155017216e+37:1:4:-0x1.266666666666666666666666668p1: ++%*4Le:-2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:-2.3441674165664647186659237648155017216e037:1:4:-0x1.266666666666666666666666668p1: ++%*4Le:-2.3441674165664647186659237648155017216e037:0:4: ++%4Le:-2.00416836000897277799610805135016205e-292:1:4:-0x1p1: ++%*4Le:-2.00416836000897277799610805135016205e-292:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*4Le:2.00416836000897277799610805135016205e-292:0:4: ++%4Le:2.3441674165664647186659237648155017216e037:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4Le:2.3441674165664647186659237648155017216e037:0:4: ++%4Le:2.3441674165664647186659237648155017216e+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4Le:2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:1.79769313486231580793728971405301199e308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4Le:1.79769313486231580793728971405301199e308:0:4: ++%4Le:1.79769313486231580793728971405301199e+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4Le:1.79769313486231580793728971405301199e+308:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*4Le:+2.00416836000897277799610805135016205e-292:0:4: ++%4Le:+2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1: ++%*4Le:+2.3441674165664647186659237648155017216e037:0:4: ++%4Le:+2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1: ++%*4Le:+2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:+1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333: ++%*4Le:+1.79769313486231580793728971405301199e308:0:4: ++%4Le:+1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333: ++%*4Le:+1.79769313486231580793728971405301199e+308:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.79769313486231580793728971405301199e+308:0:-1: ++# BZ12701 %*40Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%40Le:-1.79769313486231580793728971405301199e308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:-1.79769313486231580793728971405301199e308:0:40: ++%40Le:-2.3441674165664647186659237648155017216e+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:-2.3441674165664647186659237648155017216e+37:0:40: ++%40Le:-2.3441674165664647186659237648155017216e037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:-2.3441674165664647186659237648155017216e037:0:40: ++# BZ12701 %40Le:-2.00416836000897277799610805135016205e-292:0:-1: ++# BZ12701 %*40Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:2.00416836000897277799610805135016205e-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6: ++%*40Le:2.00416836000897277799610805135016205e-292:0:40: ++# BZ12701 %40Le:2.3441674165664647186659237648155017216e037:0:-1: ++# BZ12701 %*40Le:2.3441674165664647186659237648155017216e037:0:-1: ++# BZ12701 %40Le:2.3441674165664647186659237648155017216e+37:0:-1: ++# BZ12701 %*40Le:2.3441674165664647186659237648155017216e+37:0:-1: ++%40Le:1.79769313486231580793728971405301199e308:1:40:0x1.6b0a8e891ffff0af2d6def985p100: ++%*40Le:1.79769313486231580793728971405301199e308:0:40: ++%40Le:1.79769313486231580793728971405301199e+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:1.79769313486231580793728971405301199e+308:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+2.00416836000897277799610805135016205e-292:0:-1: ++# BZ12701 %*40Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%40Le:+2.3441674165664647186659237648155017216e037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:+2.3441674165664647186659237648155017216e037:0:40: ++%40Le:+2.3441674165664647186659237648155017216e+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:+2.3441674165664647186659237648155017216e+37:0:40: ++%40Le:+1.79769313486231580793728971405301199e308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:+1.79769313486231580793728971405301199e308:0:40: ++# BZ12701 %40Le:+1.79769313486231580793728971405301199e+308:0:-1: ++# BZ12701 %*40Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:-1.79769313486231580793728971405301199e+308:0:43: ++%48Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:-1.79769313486231580793728971405301199e308:0:42: ++%48Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:-2.3441674165664647186659237648155017216e+37:0:44: ++%48Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:-2.3441674165664647186659237648155017216e037:0:44: ++%48Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969: ++%*48Le:-2.00416836000897277799610805135016205e-292:0:43: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969: ++%*48Le:2.00416836000897277799610805135016205e-292:0:42: ++%48Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:2.3441674165664647186659237648155017216e037:0:43: ++%48Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:2.3441674165664647186659237648155017216e+37:0:43: ++%48Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:1.79769313486231580793728971405301199e308:0:41: ++%48Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:1.79769313486231580793728971405301199e+308:0:42: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*48Le:+2.00416836000897277799610805135016205e-292:0:43: ++%48Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:+2.3441674165664647186659237648155017216e037:0:44: ++%48Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:+2.3441674165664647186659237648155017216e+37:0:44: ++%48Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:+1.79769313486231580793728971405301199e308:0:42: ++%48Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:+1.79769313486231580793728971405301199e+308:0:43: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.79769313486231580793728971405301199e+308:1:4:-0x1: ++%*3Le: -1.79769313486231580793728971405301199e+308:0:4: ++%3Le: -1.79769313486231580793728971405301199e308:1:4:-0x1: ++%*3Le: -1.79769313486231580793728971405301199e308:0:4: ++%3Le: -2.3441674165664647186659237648155017216e+37:1:4:-0x1p1: ++%*3Le: -2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: -2.3441674165664647186659237648155017216e037:1:4:-0x1p1: ++%*3Le: -2.3441674165664647186659237648155017216e037:0:4: ++%3Le: -2.00416836000897277799610805135016205e-292:1:4:-0x1p1: ++%*3Le: -2.00416836000897277799610805135016205e-292:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*3Le: 2.00416836000897277799610805135016205e-292:0:4: ++%3Le: 2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1: ++%*3Le: 2.3441674165664647186659237648155017216e037:0:4: ++%3Le: 2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1: ++%*3Le: 2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: 1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333: ++%*3Le: 1.79769313486231580793728971405301199e308:0:4: ++%3Le: 1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333: ++%*3Le: 1.79769313486231580793728971405301199e+308:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*3Le: +2.00416836000897277799610805135016205e-292:0:4: ++%3Le: +2.3441674165664647186659237648155017216e037:1:4:0x1p1: ++%*3Le: +2.3441674165664647186659237648155017216e037:0:4: ++%3Le: +2.3441674165664647186659237648155017216e+37:1:4:0x1p1: ++%*3Le: +2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: +1.79769313486231580793728971405301199e308:1:4:0x1: ++%*3Le: +1.79769313486231580793728971405301199e308:0:4: ++%3Le: +1.79769313486231580793728971405301199e+308:1:4:0x1: ++%*3Le: +1.79769313486231580793728971405301199e+308:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.79769313486231580793728971405301199e+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: -1.79769313486231580793728971405301199e+308:0:44: ++%48Le: -1.79769313486231580793728971405301199e308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: -1.79769313486231580793728971405301199e308:0:43: ++%48Le: -2.3441674165664647186659237648155017216e+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: -2.3441674165664647186659237648155017216e+37:0:45: ++%48Le: -2.3441674165664647186659237648155017216e037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: -2.3441674165664647186659237648155017216e037:0:45: ++%48Le: -2.00416836000897277799610805135016205e-292:1:44:-0x1p-969: ++%*48Le: -2.00416836000897277799610805135016205e-292:0:44: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*48Le: 2.00416836000897277799610805135016205e-292:0:43: ++%48Le: 2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: 2.3441674165664647186659237648155017216e037:0:44: ++%48Le: 2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: 2.3441674165664647186659237648155017216e+37:0:44: ++%48Le: 1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: 1.79769313486231580793728971405301199e308:0:42: ++%48Le: 1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: 1.79769313486231580793728971405301199e+308:0:43: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +2.00416836000897277799610805135016205e-292:1:44:0x1p-969: ++%*48Le: +2.00416836000897277799610805135016205e-292:0:44: ++%48Le: +2.3441674165664647186659237648155017216e037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: +2.3441674165664647186659237648155017216e037:0:45: ++%48Le: +2.3441674165664647186659237648155017216e+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: +2.3441674165664647186659237648155017216e+37:0:45: ++%48Le: +1.79769313486231580793728971405301199e308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: +1.79769313486231580793728971405301199e308:0:43: ++%48Le: +1.79769313486231580793728971405301199e+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: +1.79769313486231580793728971405301199e+308:0:44: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..3a543bc5366ba403 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:-1.79769313486231580793728971405301199E+308:0:43: ++%LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:-1.79769313486231580793728971405301199E308:0:42: ++%LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:-2.3441674165664647186659237648155017216E+37:0:44: ++%LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:-2.3441674165664647186659237648155017216E037:0:44: ++%LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969: ++%*LE:-2.00416836000897277799610805135016205E-292:0:43: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969: ++%*LE:2.00416836000897277799610805135016205E-292:0:42: ++%LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:2.3441674165664647186659237648155017216E037:0:43: ++%LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:2.3441674165664647186659237648155017216E+37:0:43: ++%LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:1.79769313486231580793728971405301199E308:0:41: ++%LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:1.79769313486231580793728971405301199E+308:0:42: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*LE:+2.00416836000897277799610805135016205E-292:0:43: ++%LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:+2.3441674165664647186659237648155017216E037:0:44: ++%LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:+2.3441674165664647186659237648155017216E+37:0:44: ++%LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:+1.79769313486231580793728971405301199E308:0:42: ++%LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:+1.79769313486231580793728971405301199E+308:0:43: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%*1LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%1LE:-1.79769313486231580793728971405301199E308:0:-1: ++%*1LE:-1.79769313486231580793728971405301199E308:0:-1: ++%1LE:-2.3441674165664647186659237648155017216E+37:0:-1: ++%*1LE:-2.3441674165664647186659237648155017216E+37:0:-1: ++%1LE:-2.3441674165664647186659237648155017216E037:0:-1: ++%*1LE:-2.3441674165664647186659237648155017216E037:0:-1: ++%1LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%*1LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:2.00416836000897277799610805135016205E-292:1:1:0x1p1: ++%*1LE:2.00416836000897277799610805135016205E-292:0:1: ++%1LE:2.3441674165664647186659237648155017216E037:1:1:0x1p1: ++%*1LE:2.3441674165664647186659237648155017216E037:0:1: ++%1LE:2.3441674165664647186659237648155017216E+37:1:1:0x1p1: ++%*1LE:2.3441674165664647186659237648155017216E+37:0:1: ++%1LE:1.79769313486231580793728971405301199E308:1:1:0x1: ++%*1LE:1.79769313486231580793728971405301199E308:0:1: ++%1LE:1.79769313486231580793728971405301199E+308:1:1:0x1: ++%*1LE:1.79769313486231580793728971405301199E+308:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%*1LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%1LE:+2.3441674165664647186659237648155017216E037:0:-1: ++%*1LE:+2.3441674165664647186659237648155017216E037:0:-1: ++%1LE:+2.3441674165664647186659237648155017216E+37:0:-1: ++%*1LE:+2.3441674165664647186659237648155017216E+37:0:-1: ++%1LE:+1.79769313486231580793728971405301199E308:0:-1: ++%*1LE:+1.79769313486231580793728971405301199E308:0:-1: ++%1LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%*1LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.79769313486231580793728971405301199E+308:1:2:-0x1: ++%*2LE:-1.79769313486231580793728971405301199E+308:0:2: ++%2LE:-1.79769313486231580793728971405301199E308:1:2:-0x1: ++%*2LE:-1.79769313486231580793728971405301199E308:0:2: ++%2LE:-2.3441674165664647186659237648155017216E+37:1:2:-0x1p1: ++%*2LE:-2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:-2.3441674165664647186659237648155017216E037:1:2:-0x1p1: ++%*2LE:-2.3441674165664647186659237648155017216E037:0:2: ++%2LE:-2.00416836000897277799610805135016205E-292:1:2:-0x1p1: ++%*2LE:-2.00416836000897277799610805135016205E-292:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:2.00416836000897277799610805135016205E-292:1:2:0x1p1: ++%*2LE:2.00416836000897277799610805135016205E-292:0:2: ++%2LE:2.3441674165664647186659237648155017216E037:1:2:0x1p1: ++%*2LE:2.3441674165664647186659237648155017216E037:0:2: ++%2LE:2.3441674165664647186659237648155017216E+37:1:2:0x1p1: ++%*2LE:2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:1.79769313486231580793728971405301199E308:1:2:0x1: ++%*2LE:1.79769313486231580793728971405301199E308:0:2: ++%2LE:1.79769313486231580793728971405301199E+308:1:2:0x1: ++%*2LE:1.79769313486231580793728971405301199E+308:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+2.00416836000897277799610805135016205E-292:1:2:0x1p1: ++%*2LE:+2.00416836000897277799610805135016205E-292:0:2: ++%2LE:+2.3441674165664647186659237648155017216E037:1:2:0x1p1: ++%*2LE:+2.3441674165664647186659237648155017216E037:0:2: ++%2LE:+2.3441674165664647186659237648155017216E+37:1:2:0x1p1: ++%*2LE:+2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:+1.79769313486231580793728971405301199E308:1:2:0x1: ++%*2LE:+1.79769313486231580793728971405301199E308:0:2: ++%2LE:+1.79769313486231580793728971405301199E+308:1:2:0x1: ++%*2LE:+1.79769313486231580793728971405301199E+308:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.79769313486231580793728971405301199E+308:1:3:-0x1: ++%*3LE:-1.79769313486231580793728971405301199E+308:0:3: ++%3LE:-1.79769313486231580793728971405301199E308:1:3:-0x1: ++%*3LE:-1.79769313486231580793728971405301199E308:0:3: ++%3LE:-2.3441674165664647186659237648155017216E+37:1:3:-0x1p1: ++%*3LE:-2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:-2.3441674165664647186659237648155017216E037:1:3:-0x1p1: ++%*3LE:-2.3441674165664647186659237648155017216E037:0:3: ++%3LE:-2.00416836000897277799610805135016205E-292:1:3:-0x1p1: ++%*3LE:-2.00416836000897277799610805135016205E-292:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:2.00416836000897277799610805135016205E-292:1:3:0x1p1: ++%*3LE:2.00416836000897277799610805135016205E-292:0:3: ++%3LE:2.3441674165664647186659237648155017216E037:1:3:0x1.266666666666666666666666668p1: ++%*3LE:2.3441674165664647186659237648155017216E037:0:3: ++%3LE:2.3441674165664647186659237648155017216E+37:1:3:0x1.266666666666666666666666668p1: ++%*3LE:2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:1.79769313486231580793728971405301199E308:1:3:0x1.b3333333333333333333333333: ++%*3LE:1.79769313486231580793728971405301199E308:0:3: ++%3LE:1.79769313486231580793728971405301199E+308:1:3:0x1.b3333333333333333333333333: ++%*3LE:1.79769313486231580793728971405301199E+308:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+2.00416836000897277799610805135016205E-292:1:3:0x1p1: ++%*3LE:+2.00416836000897277799610805135016205E-292:0:3: ++%3LE:+2.3441674165664647186659237648155017216E037:1:3:0x1p1: ++%*3LE:+2.3441674165664647186659237648155017216E037:0:3: ++%3LE:+2.3441674165664647186659237648155017216E+37:1:3:0x1p1: ++%*3LE:+2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:+1.79769313486231580793728971405301199E308:1:3:0x1: ++%*3LE:+1.79769313486231580793728971405301199E308:0:3: ++%3LE:+1.79769313486231580793728971405301199E+308:1:3:0x1: ++%*3LE:+1.79769313486231580793728971405301199E+308:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.79769313486231580793728971405301199E+308:1:4:-0x1.b3333333333333333333333333: ++%*4LE:-1.79769313486231580793728971405301199E+308:0:4: ++%4LE:-1.79769313486231580793728971405301199E308:1:4:-0x1.b3333333333333333333333333: ++%*4LE:-1.79769313486231580793728971405301199E308:0:4: ++%4LE:-2.3441674165664647186659237648155017216E+37:1:4:-0x1.266666666666666666666666668p1: ++%*4LE:-2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:-2.3441674165664647186659237648155017216E037:1:4:-0x1.266666666666666666666666668p1: ++%*4LE:-2.3441674165664647186659237648155017216E037:0:4: ++%4LE:-2.00416836000897277799610805135016205E-292:1:4:-0x1p1: ++%*4LE:-2.00416836000897277799610805135016205E-292:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*4LE:2.00416836000897277799610805135016205E-292:0:4: ++%4LE:2.3441674165664647186659237648155017216E037:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4LE:2.3441674165664647186659237648155017216E037:0:4: ++%4LE:2.3441674165664647186659237648155017216E+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4LE:2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:1.79769313486231580793728971405301199E308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4LE:1.79769313486231580793728971405301199E308:0:4: ++%4LE:1.79769313486231580793728971405301199E+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4LE:1.79769313486231580793728971405301199E+308:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*4LE:+2.00416836000897277799610805135016205E-292:0:4: ++%4LE:+2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1: ++%*4LE:+2.3441674165664647186659237648155017216E037:0:4: ++%4LE:+2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1: ++%*4LE:+2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:+1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333: ++%*4LE:+1.79769313486231580793728971405301199E308:0:4: ++%4LE:+1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333: ++%*4LE:+1.79769313486231580793728971405301199E+308:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.79769313486231580793728971405301199E+308:0:-1: ++# BZ12701 %*40LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%40LE:-1.79769313486231580793728971405301199E308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:-1.79769313486231580793728971405301199E308:0:40: ++%40LE:-2.3441674165664647186659237648155017216E+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:-2.3441674165664647186659237648155017216E+37:0:40: ++%40LE:-2.3441674165664647186659237648155017216E037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:-2.3441674165664647186659237648155017216E037:0:40: ++# BZ12701 %40LE:-2.00416836000897277799610805135016205E-292:0:-1: ++# BZ12701 %*40LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:2.00416836000897277799610805135016205E-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6: ++%*40LE:2.00416836000897277799610805135016205E-292:0:40: ++# BZ12701 %40LE:2.3441674165664647186659237648155017216E037:0:-1: ++# BZ12701 %*40LE:2.3441674165664647186659237648155017216E037:0:-1: ++# BZ12701 %40LE:2.3441674165664647186659237648155017216E+37:0:-1: ++# BZ12701 %*40LE:2.3441674165664647186659237648155017216E+37:0:-1: ++%40LE:1.79769313486231580793728971405301199E308:1:40:0x1.6b0a8e891ffff0af2d6def985p100: ++%*40LE:1.79769313486231580793728971405301199E308:0:40: ++%40LE:1.79769313486231580793728971405301199E+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:1.79769313486231580793728971405301199E+308:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+2.00416836000897277799610805135016205E-292:0:-1: ++# BZ12701 %*40LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%40LE:+2.3441674165664647186659237648155017216E037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:+2.3441674165664647186659237648155017216E037:0:40: ++%40LE:+2.3441674165664647186659237648155017216E+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:+2.3441674165664647186659237648155017216E+37:0:40: ++%40LE:+1.79769313486231580793728971405301199E308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:+1.79769313486231580793728971405301199E308:0:40: ++# BZ12701 %40LE:+1.79769313486231580793728971405301199E+308:0:-1: ++# BZ12701 %*40LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:-1.79769313486231580793728971405301199E+308:0:43: ++%48LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:-1.79769313486231580793728971405301199E308:0:42: ++%48LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:-2.3441674165664647186659237648155017216E+37:0:44: ++%48LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:-2.3441674165664647186659237648155017216E037:0:44: ++%48LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969: ++%*48LE:-2.00416836000897277799610805135016205E-292:0:43: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969: ++%*48LE:2.00416836000897277799610805135016205E-292:0:42: ++%48LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:2.3441674165664647186659237648155017216E037:0:43: ++%48LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:2.3441674165664647186659237648155017216E+37:0:43: ++%48LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:1.79769313486231580793728971405301199E308:0:41: ++%48LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:1.79769313486231580793728971405301199E+308:0:42: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*48LE:+2.00416836000897277799610805135016205E-292:0:43: ++%48LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:+2.3441674165664647186659237648155017216E037:0:44: ++%48LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:+2.3441674165664647186659237648155017216E+37:0:44: ++%48LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:+1.79769313486231580793728971405301199E308:0:42: ++%48LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:+1.79769313486231580793728971405301199E+308:0:43: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.79769313486231580793728971405301199E+308:1:4:-0x1: ++%*3LE: -1.79769313486231580793728971405301199E+308:0:4: ++%3LE: -1.79769313486231580793728971405301199E308:1:4:-0x1: ++%*3LE: -1.79769313486231580793728971405301199E308:0:4: ++%3LE: -2.3441674165664647186659237648155017216E+37:1:4:-0x1p1: ++%*3LE: -2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: -2.3441674165664647186659237648155017216E037:1:4:-0x1p1: ++%*3LE: -2.3441674165664647186659237648155017216E037:0:4: ++%3LE: -2.00416836000897277799610805135016205E-292:1:4:-0x1p1: ++%*3LE: -2.00416836000897277799610805135016205E-292:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*3LE: 2.00416836000897277799610805135016205E-292:0:4: ++%3LE: 2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1: ++%*3LE: 2.3441674165664647186659237648155017216E037:0:4: ++%3LE: 2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1: ++%*3LE: 2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: 1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333: ++%*3LE: 1.79769313486231580793728971405301199E308:0:4: ++%3LE: 1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333: ++%*3LE: 1.79769313486231580793728971405301199E+308:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*3LE: +2.00416836000897277799610805135016205E-292:0:4: ++%3LE: +2.3441674165664647186659237648155017216E037:1:4:0x1p1: ++%*3LE: +2.3441674165664647186659237648155017216E037:0:4: ++%3LE: +2.3441674165664647186659237648155017216E+37:1:4:0x1p1: ++%*3LE: +2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: +1.79769313486231580793728971405301199E308:1:4:0x1: ++%*3LE: +1.79769313486231580793728971405301199E308:0:4: ++%3LE: +1.79769313486231580793728971405301199E+308:1:4:0x1: ++%*3LE: +1.79769313486231580793728971405301199E+308:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.79769313486231580793728971405301199E+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: -1.79769313486231580793728971405301199E+308:0:44: ++%48LE: -1.79769313486231580793728971405301199E308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: -1.79769313486231580793728971405301199E308:0:43: ++%48LE: -2.3441674165664647186659237648155017216E+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: -2.3441674165664647186659237648155017216E+37:0:45: ++%48LE: -2.3441674165664647186659237648155017216E037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: -2.3441674165664647186659237648155017216E037:0:45: ++%48LE: -2.00416836000897277799610805135016205E-292:1:44:-0x1p-969: ++%*48LE: -2.00416836000897277799610805135016205E-292:0:44: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*48LE: 2.00416836000897277799610805135016205E-292:0:43: ++%48LE: 2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: 2.3441674165664647186659237648155017216E037:0:44: ++%48LE: 2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: 2.3441674165664647186659237648155017216E+37:0:44: ++%48LE: 1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: 1.79769313486231580793728971405301199E308:0:42: ++%48LE: 1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: 1.79769313486231580793728971405301199E+308:0:43: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +2.00416836000897277799610805135016205E-292:1:44:0x1p-969: ++%*48LE: +2.00416836000897277799610805135016205E-292:0:44: ++%48LE: +2.3441674165664647186659237648155017216E037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: +2.3441674165664647186659237648155017216E037:0:45: ++%48LE: +2.3441674165664647186659237648155017216E+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: +2.3441674165664647186659237648155017216E+37:0:45: ++%48LE: +1.79769313486231580793728971405301199E308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: +1.79769313486231580793728971405301199E308:0:43: ++%48LE: +1.79769313486231580793728971405301199E+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: +1.79769313486231580793728971405301199E+308:0:44: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..9d4fd75fd0250a93 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:-023441674165664647186659237648155017216.0:0:42: ++%Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:-23441674165664647186659237648155017216:0:39: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:23441674165664647186659237648155017216:0:38: ++%Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:023441674165664647186659237648155017216.0:0:41: ++%Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:+23441674165664647186659237648155017216:0:39: ++%Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:+023441674165664647186659237648155017216.0:0:42: ++%Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1Lf:-023441674165664647186659237648155017216.0:0:-1: ++%*1Lf:-023441674165664647186659237648155017216.0:0:-1: ++%1Lf:-23441674165664647186659237648155017216:0:-1: ++%*1Lf:-23441674165664647186659237648155017216:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1: ++%1Lf:23441674165664647186659237648155017216:1:1:0x1p1: ++%*1Lf:23441674165664647186659237648155017216:0:1: ++%1Lf:023441674165664647186659237648155017216.0:1:1:0x0: ++%*1Lf:023441674165664647186659237648155017216.0:0:1: ++%1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1: ++%*1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1: ++%1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0: ++%*1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1Lf:+23441674165664647186659237648155017216:0:-1: ++%*1Lf:+23441674165664647186659237648155017216:0:-1: ++%1Lf:+023441674165664647186659237648155017216.0:0:-1: ++%*1Lf:+023441674165664647186659237648155017216.0:0:-1: ++%1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0: ++%*2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1: ++%*2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:-023441674165664647186659237648155017216.0:1:2:-0x0: ++%*2Lf:-023441674165664647186659237648155017216.0:0:2: ++%2Lf:-23441674165664647186659237648155017216:1:2:-0x1p1: ++%*2Lf:-23441674165664647186659237648155017216:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:23441674165664647186659237648155017216:1:2:0x1.7p4: ++%*2Lf:23441674165664647186659237648155017216:0:2: ++%2Lf:023441674165664647186659237648155017216.0:1:2:0x1p1: ++%*2Lf:023441674165664647186659237648155017216.0:0:2: ++%2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4: ++%*2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1: ++%*2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:+23441674165664647186659237648155017216:1:2:0x1p1: ++%*2Lf:+23441674165664647186659237648155017216:0:2: ++%2Lf:+023441674165664647186659237648155017216.0:1:2:0x0: ++%*2Lf:+023441674165664647186659237648155017216.0:0:2: ++%2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1: ++%*2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0: ++%*2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1: ++%*3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4: ++%*3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:-023441674165664647186659237648155017216.0:1:3:-0x1p1: ++%*3Lf:-023441674165664647186659237648155017216.0:0:3: ++%3Lf:-23441674165664647186659237648155017216:1:3:-0x1.7p4: ++%*3Lf:-23441674165664647186659237648155017216:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:23441674165664647186659237648155017216:1:3:0x1.d4p7: ++%*3Lf:23441674165664647186659237648155017216:0:3: ++%3Lf:023441674165664647186659237648155017216.0:1:3:0x1.7p4: ++%*3Lf:023441674165664647186659237648155017216.0:0:3: ++%3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7: ++%*3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4: ++%*3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:+23441674165664647186659237648155017216:1:3:0x1.7p4: ++%*3Lf:+23441674165664647186659237648155017216:0:3: ++%3Lf:+023441674165664647186659237648155017216.0:1:3:0x1p1: ++%*3Lf:+023441674165664647186659237648155017216.0:0:3: ++%3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4: ++%*3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1: ++%*3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%295Lf::0:-1: ++%*295Lf::0:-1: ++%295Lf:-infinity:1:9:-inf: ++%*295Lf:-infinity:0:9: ++%295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:-023441674165664647186659237648155017216.0:0:42: ++%295Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:-23441674165664647186659237648155017216:0:39: ++%295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:-0.0:1:4:-0x0: ++%*295Lf:-0.0:0:4: ++%295Lf:-0:1:2:-0x0: ++%*295Lf:-0:0:2: ++%295Lf:-nan(09A_Zaz):1:13:-nan: ++%*295Lf:-nan(09A_Zaz):0:13: ++%295Lf:-nan():1:6:-nan: ++%*295Lf:-nan():0:6: ++%295Lf:nan():1:5:nan: ++%*295Lf:nan():0:5: ++%295Lf:nan(09A_Zaz):1:12:nan: ++%*295Lf:nan(09A_Zaz):0:12: ++%295Lf:0:1:1:0x0: ++%*295Lf:0:0:1: ++%295Lf:0.0:1:3:0x0: ++%*295Lf:0.0:0:3: ++%295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:23441674165664647186659237648155017216:0:38: ++%295Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:023441674165664647186659237648155017216.0:0:41: ++%295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977: ++%*295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:infinity:1:8:inf: ++%*295Lf:infinity:0:8: ++%295Lf:+nan():1:6:nan: ++%*295Lf:+nan():0:6: ++%295Lf:+nan(09A_Zaz):1:13:nan: ++%*295Lf:+nan(09A_Zaz):0:13: ++%295Lf:+0:1:2:0x0: ++%*295Lf:+0:0:2: ++%295Lf:+0.0:1:4:0x0: ++%*295Lf:+0.0:0:4: ++%295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:+23441674165664647186659237648155017216:0:39: ++%295Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:+023441674165664647186659237648155017216.0:0:42: ++%295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:+infinity:1:9:inf: ++%*295Lf:+infinity:0:9: ++%340Lf::0:-1: ++%*340Lf::0:-1: ++%340Lf:-infinity:1:9:-inf: ++%*340Lf:-infinity:0:9: ++%340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:-023441674165664647186659237648155017216.0:0:42: ++%340Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:-23441674165664647186659237648155017216:0:39: ++%340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf:-0.0:1:4:-0x0: ++%*340Lf:-0.0:0:4: ++%340Lf:-0:1:2:-0x0: ++%*340Lf:-0:0:2: ++%340Lf:-nan(09A_Zaz):1:13:-nan: ++%*340Lf:-nan(09A_Zaz):0:13: ++%340Lf:-nan():1:6:-nan: ++%*340Lf:-nan():0:6: ++%340Lf:nan():1:5:nan: ++%*340Lf:nan():0:5: ++%340Lf:nan(09A_Zaz):1:12:nan: ++%*340Lf:nan(09A_Zaz):0:12: ++%340Lf:0:1:1:0x0: ++%*340Lf:0:0:1: ++%340Lf:0.0:1:3:0x0: ++%*340Lf:0.0:0:3: ++%340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%340Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:23441674165664647186659237648155017216:0:38: ++%340Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:023441674165664647186659237648155017216.0:0:41: ++%340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%340Lf:infinity:1:8:inf: ++%*340Lf:infinity:0:8: ++%340Lf:+nan():1:6:nan: ++%*340Lf:+nan():0:6: ++%340Lf:+nan(09A_Zaz):1:13:nan: ++%*340Lf:+nan(09A_Zaz):0:13: ++%340Lf:+0:1:2:0x0: ++%*340Lf:+0:0:2: ++%340Lf:+0.0:1:4:0x0: ++%*340Lf:+0.0:0:4: ++%340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:+23441674165664647186659237648155017216:0:39: ++%340Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:+023441674165664647186659237648155017216.0:0:42: ++%340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf:+infinity:1:9:inf: ++%*340Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1: ++%*3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4: ++%*3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: -023441674165664647186659237648155017216.0:1:4:-0x1p1: ++%*3Lf: -023441674165664647186659237648155017216.0:0:4: ++%3Lf: -23441674165664647186659237648155017216:1:4:-0x1.7p4: ++%*3Lf: -23441674165664647186659237648155017216:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: 23441674165664647186659237648155017216:1:4:0x1.d4p7: ++%*3Lf: 23441674165664647186659237648155017216:0:4: ++%3Lf: 023441674165664647186659237648155017216.0:1:4:0x1.7p4: ++%*3Lf: 023441674165664647186659237648155017216.0:0:4: ++%3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7: ++%*3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4: ++%*3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: +23441674165664647186659237648155017216:1:4:0x1.7p4: ++%*3Lf: +23441674165664647186659237648155017216:0:4: ++%3Lf: +023441674165664647186659237648155017216.0:1:4:0x1p1: ++%*3Lf: +023441674165664647186659237648155017216.0:0:4: ++%3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4: ++%*3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1: ++%*3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%340Lf: :0:-1: ++%*340Lf: :0:-1: ++%340Lf: -infinity:1:10:-inf: ++%*340Lf: -infinity:0:10: ++%340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340Lf: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: -023441674165664647186659237648155017216.0:0:43: ++%340Lf: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: -23441674165664647186659237648155017216:0:40: ++%340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969: ++%*340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340Lf: -0.0:1:5:-0x0: ++%*340Lf: -0.0:0:5: ++%340Lf: -0:1:3:-0x0: ++%*340Lf: -0:0:3: ++%340Lf: -nan(09A_Zaz):1:14:-nan: ++%*340Lf: -nan(09A_Zaz):0:14: ++%340Lf: -nan():1:7:-nan: ++%*340Lf: -nan():0:7: ++%340Lf: nan():1:6:nan: ++%*340Lf: nan():0:6: ++%340Lf: nan(09A_Zaz):1:13:nan: ++%*340Lf: nan(09A_Zaz):0:13: ++%340Lf: 0:1:2:0x0: ++%*340Lf: 0:0:2: ++%340Lf: 0.0:1:4:0x0: ++%*340Lf: 0.0:0:4: ++%340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: 23441674165664647186659237648155017216:0:39: ++%340Lf: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: 023441674165664647186659237648155017216.0:0:42: ++%340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf: infinity:1:9:inf: ++%*340Lf: infinity:0:9: ++%340Lf: +nan():1:7:nan: ++%*340Lf: +nan():0:7: ++%340Lf: +nan(09A_Zaz):1:14:nan: ++%*340Lf: +nan(09A_Zaz):0:14: ++%340Lf: +0:1:3:0x0: ++%*340Lf: +0:0:3: ++%340Lf: +0.0:1:5:0x0: ++%*340Lf: +0.0:0:5: ++%340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969: ++%*340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340Lf: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: +23441674165664647186659237648155017216:0:40: ++%340Lf: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: +023441674165664647186659237648155017216.0:0:43: ++%340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340Lf: +infinity:1:10:inf: ++%*340Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..bb7098a00dd383b3 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:-023441674165664647186659237648155017216.0:0:42: ++%LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:-23441674165664647186659237648155017216:0:39: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:23441674165664647186659237648155017216:0:38: ++%LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:023441674165664647186659237648155017216.0:0:41: ++%LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:+23441674165664647186659237648155017216:0:39: ++%LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:+023441674165664647186659237648155017216.0:0:42: ++%LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1LF:-023441674165664647186659237648155017216.0:0:-1: ++%*1LF:-023441674165664647186659237648155017216.0:0:-1: ++%1LF:-23441674165664647186659237648155017216:0:-1: ++%*1LF:-23441674165664647186659237648155017216:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1: ++%1LF:23441674165664647186659237648155017216:1:1:0x1p1: ++%*1LF:23441674165664647186659237648155017216:0:1: ++%1LF:023441674165664647186659237648155017216.0:1:1:0x0: ++%*1LF:023441674165664647186659237648155017216.0:0:1: ++%1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1: ++%*1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1: ++%1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0: ++%*1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1LF:+23441674165664647186659237648155017216:0:-1: ++%*1LF:+23441674165664647186659237648155017216:0:-1: ++%1LF:+023441674165664647186659237648155017216.0:0:-1: ++%*1LF:+023441674165664647186659237648155017216.0:0:-1: ++%1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0: ++%*2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1: ++%*2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:-023441674165664647186659237648155017216.0:1:2:-0x0: ++%*2LF:-023441674165664647186659237648155017216.0:0:2: ++%2LF:-23441674165664647186659237648155017216:1:2:-0x1p1: ++%*2LF:-23441674165664647186659237648155017216:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:23441674165664647186659237648155017216:1:2:0x1.7p4: ++%*2LF:23441674165664647186659237648155017216:0:2: ++%2LF:023441674165664647186659237648155017216.0:1:2:0x1p1: ++%*2LF:023441674165664647186659237648155017216.0:0:2: ++%2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4: ++%*2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1: ++%*2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:+23441674165664647186659237648155017216:1:2:0x1p1: ++%*2LF:+23441674165664647186659237648155017216:0:2: ++%2LF:+023441674165664647186659237648155017216.0:1:2:0x0: ++%*2LF:+023441674165664647186659237648155017216.0:0:2: ++%2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1: ++%*2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0: ++%*2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1: ++%*3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4: ++%*3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:-023441674165664647186659237648155017216.0:1:3:-0x1p1: ++%*3LF:-023441674165664647186659237648155017216.0:0:3: ++%3LF:-23441674165664647186659237648155017216:1:3:-0x1.7p4: ++%*3LF:-23441674165664647186659237648155017216:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:23441674165664647186659237648155017216:1:3:0x1.d4p7: ++%*3LF:23441674165664647186659237648155017216:0:3: ++%3LF:023441674165664647186659237648155017216.0:1:3:0x1.7p4: ++%*3LF:023441674165664647186659237648155017216.0:0:3: ++%3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7: ++%*3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4: ++%*3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:+23441674165664647186659237648155017216:1:3:0x1.7p4: ++%*3LF:+23441674165664647186659237648155017216:0:3: ++%3LF:+023441674165664647186659237648155017216.0:1:3:0x1p1: ++%*3LF:+023441674165664647186659237648155017216.0:0:3: ++%3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4: ++%*3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1: ++%*3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%295LF::0:-1: ++%*295LF::0:-1: ++%295LF:-INFINITY:1:9:-inf: ++%*295LF:-INFINITY:0:9: ++%295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974: ++%*295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:-023441674165664647186659237648155017216.0:0:42: ++%295LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:-23441674165664647186659237648155017216:0:39: ++%295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:-0.0:1:4:-0x0: ++%*295LF:-0.0:0:4: ++%295LF:-0:1:2:-0x0: ++%*295LF:-0:0:2: ++%295LF:-NAN(09A_Zaz):1:13:-nan: ++%*295LF:-NAN(09A_Zaz):0:13: ++%295LF:-NAN():1:6:-nan: ++%*295LF:-NAN():0:6: ++%295LF:NAN():1:5:nan: ++%*295LF:NAN():0:5: ++%295LF:NAN(09A_Zaz):1:12:nan: ++%*295LF:NAN(09A_Zaz):0:12: ++%295LF:0:1:1:0x0: ++%*295LF:0:0:1: ++%295LF:0.0:1:3:0x0: ++%*295LF:0.0:0:3: ++%295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:23441674165664647186659237648155017216:0:38: ++%295LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:023441674165664647186659237648155017216.0:0:41: ++%295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977: ++%*295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:INFINITY:1:8:inf: ++%*295LF:INFINITY:0:8: ++%295LF:+NAN():1:6:nan: ++%*295LF:+NAN():0:6: ++%295LF:+NAN(09A_Zaz):1:13:nan: ++%*295LF:+NAN(09A_Zaz):0:13: ++%295LF:+0:1:2:0x0: ++%*295LF:+0:0:2: ++%295LF:+0.0:1:4:0x0: ++%*295LF:+0.0:0:4: ++%295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:+23441674165664647186659237648155017216:0:39: ++%295LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:+023441674165664647186659237648155017216.0:0:42: ++%295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:+INFINITY:1:9:inf: ++%*295LF:+INFINITY:0:9: ++%340LF::0:-1: ++%*340LF::0:-1: ++%340LF:-INFINITY:1:9:-inf: ++%*340LF:-INFINITY:0:9: ++%340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:-023441674165664647186659237648155017216.0:0:42: ++%340LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:-23441674165664647186659237648155017216:0:39: ++%340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF:-0.0:1:4:-0x0: ++%*340LF:-0.0:0:4: ++%340LF:-0:1:2:-0x0: ++%*340LF:-0:0:2: ++%340LF:-NAN(09A_Zaz):1:13:-nan: ++%*340LF:-NAN(09A_Zaz):0:13: ++%340LF:-NAN():1:6:-nan: ++%*340LF:-NAN():0:6: ++%340LF:NAN():1:5:nan: ++%*340LF:NAN():0:5: ++%340LF:NAN(09A_Zaz):1:12:nan: ++%*340LF:NAN(09A_Zaz):0:12: ++%340LF:0:1:1:0x0: ++%*340LF:0:0:1: ++%340LF:0.0:1:3:0x0: ++%*340LF:0.0:0:3: ++%340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%340LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:23441674165664647186659237648155017216:0:38: ++%340LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:023441674165664647186659237648155017216.0:0:41: ++%340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%340LF:INFINITY:1:8:inf: ++%*340LF:INFINITY:0:8: ++%340LF:+NAN():1:6:nan: ++%*340LF:+NAN():0:6: ++%340LF:+NAN(09A_Zaz):1:13:nan: ++%*340LF:+NAN(09A_Zaz):0:13: ++%340LF:+0:1:2:0x0: ++%*340LF:+0:0:2: ++%340LF:+0.0:1:4:0x0: ++%*340LF:+0.0:0:4: ++%340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:+23441674165664647186659237648155017216:0:39: ++%340LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:+023441674165664647186659237648155017216.0:0:42: ++%340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF:+INFINITY:1:9:inf: ++%*340LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1: ++%*3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4: ++%*3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: -023441674165664647186659237648155017216.0:1:4:-0x1p1: ++%*3LF: -023441674165664647186659237648155017216.0:0:4: ++%3LF: -23441674165664647186659237648155017216:1:4:-0x1.7p4: ++%*3LF: -23441674165664647186659237648155017216:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: 23441674165664647186659237648155017216:1:4:0x1.d4p7: ++%*3LF: 23441674165664647186659237648155017216:0:4: ++%3LF: 023441674165664647186659237648155017216.0:1:4:0x1.7p4: ++%*3LF: 023441674165664647186659237648155017216.0:0:4: ++%3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7: ++%*3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4: ++%*3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: +23441674165664647186659237648155017216:1:4:0x1.7p4: ++%*3LF: +23441674165664647186659237648155017216:0:4: ++%3LF: +023441674165664647186659237648155017216.0:1:4:0x1p1: ++%*3LF: +023441674165664647186659237648155017216.0:0:4: ++%3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4: ++%*3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1: ++%*3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%340LF: :0:-1: ++%*340LF: :0:-1: ++%340LF: -INFINITY:1:10:-inf: ++%*340LF: -INFINITY:0:10: ++%340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340LF: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: -023441674165664647186659237648155017216.0:0:43: ++%340LF: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: -23441674165664647186659237648155017216:0:40: ++%340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969: ++%*340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340LF: -0.0:1:5:-0x0: ++%*340LF: -0.0:0:5: ++%340LF: -0:1:3:-0x0: ++%*340LF: -0:0:3: ++%340LF: -NAN(09A_Zaz):1:14:-nan: ++%*340LF: -NAN(09A_Zaz):0:14: ++%340LF: -NAN():1:7:-nan: ++%*340LF: -NAN():0:7: ++%340LF: NAN():1:6:nan: ++%*340LF: NAN():0:6: ++%340LF: NAN(09A_Zaz):1:13:nan: ++%*340LF: NAN(09A_Zaz):0:13: ++%340LF: 0:1:2:0x0: ++%*340LF: 0:0:2: ++%340LF: 0.0:1:4:0x0: ++%*340LF: 0.0:0:4: ++%340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: 23441674165664647186659237648155017216:0:39: ++%340LF: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: 023441674165664647186659237648155017216.0:0:42: ++%340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF: INFINITY:1:9:inf: ++%*340LF: INFINITY:0:9: ++%340LF: +NAN():1:7:nan: ++%*340LF: +NAN():0:7: ++%340LF: +NAN(09A_Zaz):1:14:nan: ++%*340LF: +NAN(09A_Zaz):0:14: ++%340LF: +0:1:3:0x0: ++%*340LF: +0:0:3: ++%340LF: +0.0:1:5:0x0: ++%*340LF: +0.0:0:5: ++%340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969: ++%*340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340LF: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: +23441674165664647186659237648155017216:0:40: ++%340LF: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: +023441674165664647186659237648155017216.0:0:43: ++%340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340LF: +INFINITY:1:10:inf: ++%*340LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..c500aa8d012c5c89 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%Lg:-0x8p-972:1:9:-0x1p-969: ++%*Lg:-0x8p-972:0:9: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-972:1:8:0x1p-969: ++%*Lg:0x8p-972:0:8: ++%Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:0x2.3456789abcdef0123456789abcp0123:0:35: ++%Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:0x2.3456789abcdef0123456789abcp+123:0:35: ++%Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-972:1:9:0x1p-969: ++%*Lg:+0x8p-972:0:9: ++%Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1Lg:-0x8p-972:0:-1: ++%*1Lg:-0x8p-972:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-972:1:1:0x0: ++%*1Lg:0x8p-972:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcp0123:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcp0123:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcp+123:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcp+123:0:1: ++%1Lg:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0: ++%*1Lg:0x7.ffffffffffffdffffffffffffep1021:0:1: ++%1Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0: ++%*1Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-972:0:-1: ++%*1Lg:+0x8p-972:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0: ++%*2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2Lg:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0: ++%*2Lg:-0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcp+123:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcp0123:0:2: ++%2Lg:-0x8p-972:1:2:-0x0: ++%*2Lg:-0x8p-972:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-972:0:-1: ++# BZ12701 %*2Lg:0x8p-972:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-972:1:2:0x0: ++%*2Lg:+0x8p-972:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcp0123:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcp+123:0:2: ++%2Lg:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0: ++%*2Lg:+0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0: ++%*2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3Lg:-0x8p-972:0:-1: ++# BZ12701 %*3Lg:-0x8p-972:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-972:1:3:0x1p3: ++%*3Lg:0x8p-972:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcp0123:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcp+123:0:3: ++%3Lg:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2: ++%*3Lg:0x7.ffffffffffffdffffffffffffep1021:0:3: ++%3Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3: ++%*3Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-972:0:-1: ++# BZ12701 %*3Lg:+0x8p-972:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3: ++%*4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2: ++%*4Lg:-0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:-0x8p-972:1:4:-0x1p3: ++%*4Lg:-0x8p-972:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-972:0:-1: ++# BZ12701 %*4Lg:0x8p-972:0:-1: ++%4Lg:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4Lg:0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-972:1:4:0x1p3: ++%*4Lg:+0x8p-972:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4Lg:+0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3: ++%*5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2: ++%*5Lg:-0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcp0123:0:5: ++# BZ12701 %5Lg:-0x8p-972:0:-1: ++# BZ12701 %*5Lg:-0x8p-972:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-972:0:-1: ++# BZ12701 %*5Lg:0x8p-972:0:-1: ++%5Lg:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcp0123:0:5: ++%5Lg:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2: ++%*5Lg:0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3: ++%*5Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-972:0:-1: ++# BZ12701 %*5Lg:+0x8p-972:0:-1: ++%5Lg:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcp0123:0:5: ++%5Lg:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2: ++%*5Lg:+0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3: ++%*5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3: ++%*6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2: ++%*6Lg:-0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %6Lg:-0x8p-972:0:-1: ++# BZ12701 %*6Lg:-0x8p-972:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-972:1:6:0x1p-6: ++%*6Lg:0x8p-972:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcp0123:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2: ++%*6Lg:0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3: ++%*6Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-972:0:-1: ++# BZ12701 %*6Lg:+0x8p-972:0:-1: ++%6Lg:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcp0123:0:6: ++%6Lg:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*6Lg:+0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%33Lg::0:-1: ++%*33Lg::0:-1: ++%33Lg:-infinity:1:9:-inf: ++%*33Lg:-infinity:0:9: ++# BZ12701 %33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33Lg:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33Lg:-0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33Lg:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33Lg:-0x2.3456789abcdef0123456789abcp0123:0:33: ++%33Lg:-0x8p-972:1:9:-0x1p-969: ++%*33Lg:-0x8p-972:0:9: ++%33Lg:-0x0p+0:1:7:-0x0: ++%*33Lg:-0x0p+0:0:7: ++%33Lg:-0x0p0:1:6:-0x0: ++%*33Lg:-0x0p0:0:6: ++%33Lg:-nan(09A_Zaz):1:13:-nan: ++%*33Lg:-nan(09A_Zaz):0:13: ++%33Lg:-nan():1:6:-nan: ++%*33Lg:-nan():0:6: ++%33Lg:nan():1:5:nan: ++%*33Lg:nan():0:5: ++%33Lg:nan(09A_Zaz):1:12:nan: ++%*33Lg:nan(09A_Zaz):0:12: ++%33Lg:0x0p0:1:5:0x0: ++%*33Lg:0x0p0:0:5: ++%33Lg:0x0p+0:1:6:0x0: ++%*33Lg:0x0p+0:0:6: ++%33Lg:0x8p-972:1:8:0x1p-969: ++%*33Lg:0x8p-972:0:8: ++%33Lg:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33Lg:0x2.3456789abcdef0123456789abcp0123:0:33: ++%33Lg:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33Lg:0x2.3456789abcdef0123456789abcp+123:0:33: ++%33Lg:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33Lg:0x7.ffffffffffffdffffffffffffep1021:0:33: ++%33Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:33: ++%33Lg:infinity:1:8:inf: ++%*33Lg:infinity:0:8: ++%33Lg:+nan():1:6:nan: ++%*33Lg:+nan():0:6: ++%33Lg:+nan(09A_Zaz):1:13:nan: ++%*33Lg:+nan(09A_Zaz):0:13: ++%33Lg:+0x0p0:1:6:0x0: ++%*33Lg:+0x0p0:0:6: ++%33Lg:+0x0p+0:1:7:0x0: ++%*33Lg:+0x0p+0:0:7: ++%33Lg:+0x8p-972:1:9:0x1p-969: ++%*33Lg:+0x8p-972:0:9: ++%33Lg:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33Lg:+0x2.3456789abcdef0123456789abcp0123:0:33: ++# BZ12701 %33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33Lg:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33Lg:+0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33Lg:+infinity:1:9:inf: ++%*33Lg:+infinity:0:9: ++%50Lg::0:-1: ++%*50Lg::0:-1: ++%50Lg:-infinity:1:9:-inf: ++%*50Lg:-infinity:0:9: ++%50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg:-0x8p-972:1:9:-0x1p-969: ++%*50Lg:-0x8p-972:0:9: ++%50Lg:-0x0p+0:1:7:-0x0: ++%*50Lg:-0x0p+0:0:7: ++%50Lg:-0x0p0:1:6:-0x0: ++%*50Lg:-0x0p0:0:6: ++%50Lg:-nan(09A_Zaz):1:13:-nan: ++%*50Lg:-nan(09A_Zaz):0:13: ++%50Lg:-nan():1:6:-nan: ++%*50Lg:-nan():0:6: ++%50Lg:nan():1:5:nan: ++%*50Lg:nan():0:5: ++%50Lg:nan(09A_Zaz):1:12:nan: ++%*50Lg:nan(09A_Zaz):0:12: ++%50Lg:0x0p0:1:5:0x0: ++%*50Lg:0x0p0:0:5: ++%50Lg:0x0p+0:1:6:0x0: ++%*50Lg:0x0p+0:0:6: ++%50Lg:0x8p-972:1:8:0x1p-969: ++%*50Lg:0x8p-972:0:8: ++%50Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:0x2.3456789abcdef0123456789abcp0123:0:35: ++%50Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:0x2.3456789abcdef0123456789abcp+123:0:35: ++%50Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%50Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%50Lg:infinity:1:8:inf: ++%*50Lg:infinity:0:8: ++%50Lg:+nan():1:6:nan: ++%*50Lg:+nan():0:6: ++%50Lg:+nan(09A_Zaz):1:13:nan: ++%*50Lg:+nan(09A_Zaz):0:13: ++%50Lg:+0x0p0:1:6:0x0: ++%*50Lg:+0x0p0:0:6: ++%50Lg:+0x0p+0:1:7:0x0: ++%*50Lg:+0x0p+0:0:7: ++%50Lg:+0x8p-972:1:9:0x1p-969: ++%*50Lg:+0x8p-972:0:9: ++%50Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg:+infinity:1:9:inf: ++%*50Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3: ++%*5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2: ++%*5Lg: -0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %5Lg: -0x8p-972:0:-1: ++# BZ12701 %*5Lg: -0x8p-972:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-972:0:-1: ++# BZ12701 %*5Lg: 0x8p-972:0:-1: ++%5Lg: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcp0123:0:6: ++%5Lg: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*5Lg: 0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-972:0:-1: ++# BZ12701 %*5Lg: +0x8p-972:0:-1: ++%5Lg: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcp0123:0:6: ++%5Lg: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2: ++%*5Lg: +0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3: ++%*5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%50Lg: :0:-1: ++%*50Lg: :0:-1: ++%50Lg: -infinity:1:10:-inf: ++%*50Lg: -infinity:0:10: ++%50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50Lg: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: -0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50Lg: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: -0x2.3456789abcdef0123456789abcp+123:0:37: ++%50Lg: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: -0x2.3456789abcdef0123456789abcp0123:0:37: ++%50Lg: -0x8p-972:1:10:-0x1p-969: ++%*50Lg: -0x8p-972:0:10: ++%50Lg: -0x0p+0:1:8:-0x0: ++%*50Lg: -0x0p+0:0:8: ++%50Lg: -0x0p0:1:7:-0x0: ++%*50Lg: -0x0p0:0:7: ++%50Lg: -nan(09A_Zaz):1:14:-nan: ++%*50Lg: -nan(09A_Zaz):0:14: ++%50Lg: -nan():1:7:-nan: ++%*50Lg: -nan():0:7: ++%50Lg: nan():1:6:nan: ++%*50Lg: nan():0:6: ++%50Lg: nan(09A_Zaz):1:13:nan: ++%*50Lg: nan(09A_Zaz):0:13: ++%50Lg: 0x0p0:1:6:0x0: ++%*50Lg: 0x0p0:0:6: ++%50Lg: 0x0p+0:1:7:0x0: ++%*50Lg: 0x0p+0:0:7: ++%50Lg: 0x8p-972:1:9:0x1p-969: ++%*50Lg: 0x8p-972:0:9: ++%50Lg: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: 0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: 0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: 0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg: infinity:1:9:inf: ++%*50Lg: infinity:0:9: ++%50Lg: +nan():1:7:nan: ++%*50Lg: +nan():0:7: ++%50Lg: +nan(09A_Zaz):1:14:nan: ++%*50Lg: +nan(09A_Zaz):0:14: ++%50Lg: +0x0p0:1:7:0x0: ++%*50Lg: +0x0p0:0:7: ++%50Lg: +0x0p+0:1:8:0x0: ++%*50Lg: +0x0p+0:0:8: ++%50Lg: +0x8p-972:1:10:0x1p-969: ++%*50Lg: +0x8p-972:0:10: ++%50Lg: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: +0x2.3456789abcdef0123456789abcp0123:0:37: ++%50Lg: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: +0x2.3456789abcdef0123456789abcp+123:0:37: ++%50Lg: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: +0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50Lg: +infinity:1:10:inf: ++%*50Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..00e8a241e240fa13 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LG:-0X8P-972:1:9:-0x1p-969: ++%*LG:-0X8P-972:0:9: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-972:1:8:0x1p-969: ++%*LG:0X8P-972:0:8: ++%LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-972:1:9:0x1p-969: ++%*LG:+0X8P-972:0:9: ++%LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LG:-0X8P-972:0:-1: ++%*1LG:-0X8P-972:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-972:1:1:0x0: ++%*1LG:0X8P-972:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCP0123:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCP+123:0:1: ++%1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1: ++%1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-972:0:-1: ++%*1LG:+0X8P-972:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LG:-0X8P-972:1:2:-0x0: ++%*2LG:-0X8P-972:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-972:0:-1: ++# BZ12701 %*2LG:0X8P-972:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-972:1:2:0x0: ++%*2LG:+0X8P-972:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LG:-0X8P-972:0:-1: ++# BZ12701 %*3LG:-0X8P-972:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-972:1:3:0x1p3: ++%*3LG:0X8P-972:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCP0123:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCP+123:0:3: ++%3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3: ++%3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-972:0:-1: ++# BZ12701 %*3LG:+0X8P-972:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:-0X8P-972:1:4:-0x1p3: ++%*4LG:-0X8P-972:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-972:0:-1: ++# BZ12701 %*4LG:0X8P-972:0:-1: ++%4LG:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-972:1:4:0x1p3: ++%*4LG:+0X8P-972:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++# BZ12701 %5LG:-0X8P-972:0:-1: ++# BZ12701 %*5LG:-0X8P-972:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-972:0:-1: ++# BZ12701 %*5LG:0X8P-972:0:-1: ++%5LG:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LG:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-972:0:-1: ++# BZ12701 %*5LG:+0X8P-972:0:-1: ++%5LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %6LG:-0X8P-972:0:-1: ++# BZ12701 %*6LG:-0X8P-972:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-972:1:6:0x1p-6: ++%*6LG:0X8P-972:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-972:0:-1: ++# BZ12701 %*6LG:+0X8P-972:0:-1: ++%6LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%33LG::0:-1: ++%*33LG::0:-1: ++%33LG:-INFINITY:1:9:-inf: ++%*33LG:-INFINITY:0:9: ++# BZ12701 %33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LG:-0X8P-972:1:9:-0x1p-969: ++%*33LG:-0X8P-972:0:9: ++%33LG:-0X0P+0:1:7:-0x0: ++%*33LG:-0X0P+0:0:7: ++%33LG:-0X0P0:1:6:-0x0: ++%*33LG:-0X0P0:0:6: ++%33LG:-NAN(09A_Zaz):1:13:-nan: ++%*33LG:-NAN(09A_Zaz):0:13: ++%33LG:-NAN():1:6:-nan: ++%*33LG:-NAN():0:6: ++%33LG:NAN():1:5:nan: ++%*33LG:NAN():0:5: ++%33LG:NAN(09A_Zaz):1:12:nan: ++%*33LG:NAN(09A_Zaz):0:12: ++%33LG:0X0P0:1:5:0x0: ++%*33LG:0X0P0:0:5: ++%33LG:0X0P+0:1:6:0x0: ++%*33LG:0X0P+0:0:6: ++%33LG:0X8P-972:1:8:0x1p-969: ++%*33LG:0X8P-972:0:8: ++%33LG:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LG:0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LG:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LG:0X2.3456789ABCDEF0123456789ABCP+123:0:33: ++%33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++%33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: ++%33LG:INFINITY:1:8:inf: ++%*33LG:INFINITY:0:8: ++%33LG:+NAN():1:6:nan: ++%*33LG:+NAN():0:6: ++%33LG:+NAN(09A_Zaz):1:13:nan: ++%*33LG:+NAN(09A_Zaz):0:13: ++%33LG:+0X0P0:1:6:0x0: ++%*33LG:+0X0P0:0:6: ++%33LG:+0X0P+0:1:7:0x0: ++%*33LG:+0X0P+0:0:7: ++%33LG:+0X8P-972:1:9:0x1p-969: ++%*33LG:+0X8P-972:0:9: ++%33LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++# BZ12701 %33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LG:+INFINITY:1:9:inf: ++%*33LG:+INFINITY:0:9: ++%50LG::0:-1: ++%*50LG::0:-1: ++%50LG:-INFINITY:1:9:-inf: ++%*50LG:-INFINITY:0:9: ++%50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG:-0X8P-972:1:9:-0x1p-969: ++%*50LG:-0X8P-972:0:9: ++%50LG:-0X0P+0:1:7:-0x0: ++%*50LG:-0X0P+0:0:7: ++%50LG:-0X0P0:1:6:-0x0: ++%*50LG:-0X0P0:0:6: ++%50LG:-NAN(09A_Zaz):1:13:-nan: ++%*50LG:-NAN(09A_Zaz):0:13: ++%50LG:-NAN():1:6:-nan: ++%*50LG:-NAN():0:6: ++%50LG:NAN():1:5:nan: ++%*50LG:NAN():0:5: ++%50LG:NAN(09A_Zaz):1:12:nan: ++%*50LG:NAN(09A_Zaz):0:12: ++%50LG:0X0P0:1:5:0x0: ++%*50LG:0X0P0:0:5: ++%50LG:0X0P+0:1:6:0x0: ++%*50LG:0X0P+0:0:6: ++%50LG:0X8P-972:1:8:0x1p-969: ++%*50LG:0X8P-972:0:8: ++%50LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%50LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%50LG:INFINITY:1:8:inf: ++%*50LG:INFINITY:0:8: ++%50LG:+NAN():1:6:nan: ++%*50LG:+NAN():0:6: ++%50LG:+NAN(09A_Zaz):1:13:nan: ++%*50LG:+NAN(09A_Zaz):0:13: ++%50LG:+0X0P0:1:6:0x0: ++%*50LG:+0X0P0:0:6: ++%50LG:+0X0P+0:1:7:0x0: ++%*50LG:+0X0P+0:0:7: ++%50LG:+0X8P-972:1:9:0x1p-969: ++%*50LG:+0X8P-972:0:9: ++%50LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG:+INFINITY:1:9:inf: ++%*50LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %5LG: -0X8P-972:0:-1: ++# BZ12701 %*5LG: -0X8P-972:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-972:0:-1: ++# BZ12701 %*5LG: 0X8P-972:0:-1: ++%5LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-972:0:-1: ++# BZ12701 %*5LG: +0X8P-972:0:-1: ++%5LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%50LG: :0:-1: ++%*50LG: :0:-1: ++%50LG: -INFINITY:1:10:-inf: ++%*50LG: -INFINITY:0:10: ++%50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LG: -0X8P-972:1:10:-0x1p-969: ++%*50LG: -0X8P-972:0:10: ++%50LG: -0X0P+0:1:8:-0x0: ++%*50LG: -0X0P+0:0:8: ++%50LG: -0X0P0:1:7:-0x0: ++%*50LG: -0X0P0:0:7: ++%50LG: -NAN(09A_Zaz):1:14:-nan: ++%*50LG: -NAN(09A_Zaz):0:14: ++%50LG: -NAN():1:7:-nan: ++%*50LG: -NAN():0:7: ++%50LG: NAN():1:6:nan: ++%*50LG: NAN():0:6: ++%50LG: NAN(09A_Zaz):1:13:nan: ++%*50LG: NAN(09A_Zaz):0:13: ++%50LG: 0X0P0:1:6:0x0: ++%*50LG: 0X0P0:0:6: ++%50LG: 0X0P+0:1:7:0x0: ++%*50LG: 0X0P+0:0:7: ++%50LG: 0X8P-972:1:9:0x1p-969: ++%*50LG: 0X8P-972:0:9: ++%50LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG: INFINITY:1:9:inf: ++%*50LG: INFINITY:0:9: ++%50LG: +NAN():1:7:nan: ++%*50LG: +NAN():0:7: ++%50LG: +NAN(09A_Zaz):1:14:nan: ++%*50LG: +NAN(09A_Zaz):0:14: ++%50LG: +0X0P0:1:7:0x0: ++%*50LG: +0X0P0:0:7: ++%50LG: +0X0P+0:1:8:0x0: ++%*50LG: +0X0P+0:0:8: ++%50LG: +0X8P-972:1:10:0x1p-969: ++%*50LG: +0X8P-972:0:10: ++%50LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LG: +INFINITY:1:10:inf: ++%*50LG: +INFINITY:0:10: diff --git a/SOURCES/glibc-RHEL-84306-9.patch b/SOURCES/glibc-RHEL-84306-9.patch new file mode 100644 index 0000000..90f97a7 --- /dev/null +++ b/SOURCES/glibc-RHEL-84306-9.patch @@ -0,0 +1,4953 @@ +commit d527f34cb1d487a4788fe88278a9ad832c53c3ee +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add scanf long double data for Intel/Motorola 80-bit format + + Add Makefile infrastructure, a format-specific test skeleton providing a + data comparison implementation that ignores bits of data representation + in memory that do not participate in holding floating-point data, and + `long double' real input data for targets using the Intel/Motorola + 80-bit format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile +index f28f91fa6a1e61a7..5c41195070d6f77c 100644 +--- a/sysdeps/ieee754/ldbl-96/Makefile ++++ b/sysdeps/ieee754/ldbl-96/Makefile +@@ -148,3 +148,7 @@ CFLAGS-s_y1l.c += -fno-builtin-y1f64x + CFLAGS-s_ynl.c += -fno-builtin-ynf64x + + endif # $(subdir) == math ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++endif +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..0ed781ea87fb4b4a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*La:-0xf.fffffffffffffffp+16380:0:27: ++%La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*La:-0x7.fffffffffffffff8p16381:0:27: ++%La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*La:-0x2.3456789abcdef01p+12345:0:27: ++%La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*La:-0x2.3456789abcdef01p012345:0:27: ++%La:-0x8p-16385:1:11:-0x1p-16382: ++%*La:-0x8p-16385:0:11: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-16385:1:10:0x1p-16382: ++%*La:0x8p-16385:0:10: ++%La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*La:0x2.3456789abcdef01p012345:0:26: ++%La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*La:0x2.3456789abcdef01p+12345:0:26: ++%La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*La:0x7.fffffffffffffff8p16381:0:26: ++%La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*La:0xf.fffffffffffffffp+16380:0:26: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-16385:1:11:0x1p-16382: ++%*La:+0x8p-16385:0:11: ++%La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*La:+0x2.3456789abcdef01p012345:0:27: ++%La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*La:+0x2.3456789abcdef01p+12345:0:27: ++%La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*La:+0x7.fffffffffffffff8p16381:0:27: ++%La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*La:+0xf.fffffffffffffffp+16380:0:27: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.fffffffffffffffp+16380:0:-1: ++%*1La:-0xf.fffffffffffffffp+16380:0:-1: ++%1La:-0x7.fffffffffffffff8p16381:0:-1: ++%*1La:-0x7.fffffffffffffff8p16381:0:-1: ++%1La:-0x2.3456789abcdef01p+12345:0:-1: ++%*1La:-0x2.3456789abcdef01p+12345:0:-1: ++%1La:-0x2.3456789abcdef01p012345:0:-1: ++%*1La:-0x2.3456789abcdef01p012345:0:-1: ++%1La:-0x8p-16385:0:-1: ++%*1La:-0x8p-16385:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-16385:1:1:0x0: ++%*1La:0x8p-16385:0:1: ++%1La:0x2.3456789abcdef01p012345:1:1:0x0: ++%*1La:0x2.3456789abcdef01p012345:0:1: ++%1La:0x2.3456789abcdef01p+12345:1:1:0x0: ++%*1La:0x2.3456789abcdef01p+12345:0:1: ++%1La:0x7.fffffffffffffff8p16381:1:1:0x0: ++%*1La:0x7.fffffffffffffff8p16381:0:1: ++%1La:0xf.fffffffffffffffp+16380:1:1:0x0: ++%*1La:0xf.fffffffffffffffp+16380:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-16385:0:-1: ++%*1La:+0x8p-16385:0:-1: ++%1La:+0x2.3456789abcdef01p012345:0:-1: ++%*1La:+0x2.3456789abcdef01p012345:0:-1: ++%1La:+0x2.3456789abcdef01p+12345:0:-1: ++%*1La:+0x2.3456789abcdef01p+12345:0:-1: ++%1La:+0x7.fffffffffffffff8p16381:0:-1: ++%*1La:+0x7.fffffffffffffff8p16381:0:-1: ++%1La:+0xf.fffffffffffffffp+16380:0:-1: ++%*1La:+0xf.fffffffffffffffp+16380:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.fffffffffffffffp+16380:1:2:-0x0: ++%*2La:-0xf.fffffffffffffffp+16380:0:2: ++%2La:-0x7.fffffffffffffff8p16381:1:2:-0x0: ++%*2La:-0x7.fffffffffffffff8p16381:0:2: ++%2La:-0x2.3456789abcdef01p+12345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef01p+12345:0:2: ++%2La:-0x2.3456789abcdef01p012345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef01p012345:0:2: ++%2La:-0x8p-16385:1:2:-0x0: ++%*2La:-0x8p-16385:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-16385:0:-1: ++# BZ12701 %*2La:0x8p-16385:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %2La:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*2La:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %2La:0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*2La:0xf.fffffffffffffffp+16380:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-16385:1:2:0x0: ++%*2La:+0x8p-16385:0:2: ++%2La:+0x2.3456789abcdef01p012345:1:2:0x0: ++%*2La:+0x2.3456789abcdef01p012345:0:2: ++%2La:+0x2.3456789abcdef01p+12345:1:2:0x0: ++%*2La:+0x2.3456789abcdef01p+12345:0:2: ++%2La:+0x7.fffffffffffffff8p16381:1:2:0x0: ++%*2La:+0x7.fffffffffffffff8p16381:0:2: ++%2La:+0xf.fffffffffffffffp+16380:1:2:0x0: ++%*2La:+0xf.fffffffffffffffp+16380:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %3La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3La:-0x8p-16385:0:-1: ++# BZ12701 %*3La:-0x8p-16385:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-16385:1:3:0x1p3: ++%*3La:0x8p-16385:0:3: ++%3La:0x2.3456789abcdef01p012345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef01p012345:0:3: ++%3La:0x2.3456789abcdef01p+12345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef01p+12345:0:3: ++%3La:0x7.fffffffffffffff8p16381:1:3:0x1.cp2: ++%*3La:0x7.fffffffffffffff8p16381:0:3: ++%3La:0xf.fffffffffffffffp+16380:1:3:0x1.ep3: ++%*3La:0xf.fffffffffffffffp+16380:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-16385:0:-1: ++# BZ12701 %*3La:+0x8p-16385:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3La:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3La:+0xf.fffffffffffffffp+16380:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3: ++%*4La:-0xf.fffffffffffffffp+16380:0:4: ++%4La:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2: ++%*4La:-0x7.fffffffffffffff8p16381:0:4: ++%4La:-0x2.3456789abcdef01p+12345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef01p+12345:0:4: ++%4La:-0x2.3456789abcdef01p012345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef01p012345:0:4: ++%4La:-0x8p-16385:1:4:-0x1p3: ++%*4La:-0x8p-16385:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-16385:0:-1: ++# BZ12701 %*4La:0x8p-16385:0:-1: ++%4La:0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef01p012345:0:4: ++%4La:0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef01p+12345:0:4: ++%4La:0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4La:0x7.fffffffffffffff8p16381:0:4: ++%4La:0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4La:0xf.fffffffffffffffp+16380:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-16385:1:4:0x1p3: ++%*4La:+0x8p-16385:0:4: ++%4La:+0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef01p012345:0:4: ++%4La:+0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef01p+12345:0:4: ++%4La:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4La:+0x7.fffffffffffffff8p16381:0:4: ++%4La:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4La:+0xf.fffffffffffffffp+16380:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3: ++%*5La:-0xf.fffffffffffffffp+16380:0:5: ++%5La:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2: ++%*5La:-0x7.fffffffffffffff8p16381:0:5: ++%5La:-0x2.3456789abcdef01p+12345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef01p+12345:0:5: ++%5La:-0x2.3456789abcdef01p012345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef01p012345:0:5: ++# BZ12701 %5La:-0x8p-16385:0:-1: ++# BZ12701 %*5La:-0x8p-16385:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-16385:0:-1: ++# BZ12701 %*5La:0x8p-16385:0:-1: ++%5La:0x2.3456789abcdef01p012345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef01p012345:0:5: ++%5La:0x2.3456789abcdef01p+12345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef01p+12345:0:5: ++%5La:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2: ++%*5La:0x7.fffffffffffffff8p16381:0:5: ++%5La:0xf.fffffffffffffffp+16380:1:5:0x1.fep3: ++%*5La:0xf.fffffffffffffffp+16380:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-16385:0:-1: ++# BZ12701 %*5La:+0x8p-16385:0:-1: ++%5La:+0x2.3456789abcdef01p012345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef01p012345:0:5: ++%5La:+0x2.3456789abcdef01p+12345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef01p+12345:0:5: ++%5La:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2: ++%*5La:+0x7.fffffffffffffff8p16381:0:5: ++%5La:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3: ++%*5La:+0xf.fffffffffffffffp+16380:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3: ++%*6La:-0xf.fffffffffffffffp+16380:0:6: ++%6La:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2: ++%*6La:-0x7.fffffffffffffff8p16381:0:6: ++%6La:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef01p+12345:0:6: ++%6La:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %6La:-0x8p-16385:0:-1: ++# BZ12701 %*6La:-0x8p-16385:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-16385:1:6:0x1p2: ++%*6La:0x8p-16385:0:6: ++%6La:0x2.3456789abcdef01p012345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef01p012345:0:6: ++%6La:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef01p+12345:0:6: ++%6La:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2: ++%*6La:0x7.fffffffffffffff8p16381:0:6: ++%6La:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3: ++%*6La:0xf.fffffffffffffffp+16380:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-16385:0:-1: ++# BZ12701 %*6La:+0x8p-16385:0:-1: ++%6La:+0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef01p012345:0:6: ++%6La:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef01p+12345:0:6: ++%6La:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*6La:+0x7.fffffffffffffff8p16381:0:6: ++%6La:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*6La:+0xf.fffffffffffffffp+16380:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%22La::0:-1: ++%*22La::0:-1: ++%22La:-infinity:1:9:-inf: ++%*22La:-infinity:0:9: ++# BZ12701 %22La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %22La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22La:-0x2.3456789abcdef01p+12345:0:-1: ++%22La:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22La:-0x2.3456789abcdef01p012345:0:22: ++%22La:-0x8p-16385:1:11:-0x1p-16382: ++%*22La:-0x8p-16385:0:11: ++%22La:-0x0p+0:1:7:-0x0: ++%*22La:-0x0p+0:0:7: ++%22La:-0x0p0:1:6:-0x0: ++%*22La:-0x0p0:0:6: ++%22La:-nan(09A_Zaz):1:13:-nan: ++%*22La:-nan(09A_Zaz):0:13: ++%22La:-nan():1:6:-nan: ++%*22La:-nan():0:6: ++%22La:nan():1:5:nan: ++%*22La:nan():0:5: ++%22La:nan(09A_Zaz):1:12:nan: ++%*22La:nan(09A_Zaz):0:12: ++%22La:0x0p0:1:5:0x0: ++%*22La:0x0p0:0:5: ++%22La:0x0p+0:1:6:0x0: ++%*22La:0x0p+0:0:6: ++%22La:0x8p-16385:1:10:0x1p-16382: ++%*22La:0x8p-16385:0:10: ++%22La:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22La:0x2.3456789abcdef01p012345:0:22: ++%22La:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22La:0x2.3456789abcdef01p+12345:0:22: ++%22La:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3: ++%*22La:0x7.fffffffffffffff8p16381:0:22: ++%22La:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4: ++%*22La:0xf.fffffffffffffffp+16380:0:22: ++%22La:infinity:1:8:inf: ++%*22La:infinity:0:8: ++%22La:+nan():1:6:nan: ++%*22La:+nan():0:6: ++%22La:+nan(09A_Zaz):1:13:nan: ++%*22La:+nan(09A_Zaz):0:13: ++%22La:+0x0p0:1:6:0x0: ++%*22La:+0x0p0:0:6: ++%22La:+0x0p+0:1:7:0x0: ++%*22La:+0x0p+0:0:7: ++%22La:+0x8p-16385:1:11:0x1p-16382: ++%*22La:+0x8p-16385:0:11: ++%22La:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22La:+0x2.3456789abcdef01p012345:0:22: ++# BZ12701 %22La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %22La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22La:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22La:+0xf.fffffffffffffffp+16380:0:-1: ++%22La:+infinity:1:9:inf: ++%*22La:+infinity:0:9: ++%37La::0:-1: ++%*37La::0:-1: ++%37La:-infinity:1:9:-inf: ++%*37La:-infinity:0:9: ++%37La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37La:-0xf.fffffffffffffffp+16380:0:27: ++%37La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*37La:-0x7.fffffffffffffff8p16381:0:27: ++%37La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La:-0x2.3456789abcdef01p+12345:0:27: ++%37La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La:-0x2.3456789abcdef01p012345:0:27: ++%37La:-0x8p-16385:1:11:-0x1p-16382: ++%*37La:-0x8p-16385:0:11: ++%37La:-0x0p+0:1:7:-0x0: ++%*37La:-0x0p+0:0:7: ++%37La:-0x0p0:1:6:-0x0: ++%*37La:-0x0p0:0:6: ++%37La:-nan(09A_Zaz):1:13:-nan: ++%*37La:-nan(09A_Zaz):0:13: ++%37La:-nan():1:6:-nan: ++%*37La:-nan():0:6: ++%37La:nan():1:5:nan: ++%*37La:nan():0:5: ++%37La:nan(09A_Zaz):1:12:nan: ++%*37La:nan(09A_Zaz):0:12: ++%37La:0x0p0:1:5:0x0: ++%*37La:0x0p0:0:5: ++%37La:0x0p+0:1:6:0x0: ++%*37La:0x0p+0:0:6: ++%37La:0x8p-16385:1:10:0x1p-16382: ++%*37La:0x8p-16385:0:10: ++%37La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:0x2.3456789abcdef01p012345:0:26: ++%37La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:0x2.3456789abcdef01p+12345:0:26: ++%37La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*37La:0x7.fffffffffffffff8p16381:0:26: ++%37La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*37La:0xf.fffffffffffffffp+16380:0:26: ++%37La:infinity:1:8:inf: ++%*37La:infinity:0:8: ++%37La:+nan():1:6:nan: ++%*37La:+nan():0:6: ++%37La:+nan(09A_Zaz):1:13:nan: ++%*37La:+nan(09A_Zaz):0:13: ++%37La:+0x0p0:1:6:0x0: ++%*37La:+0x0p0:0:6: ++%37La:+0x0p+0:1:7:0x0: ++%*37La:+0x0p+0:0:7: ++%37La:+0x8p-16385:1:11:0x1p-16382: ++%*37La:+0x8p-16385:0:11: ++%37La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:+0x2.3456789abcdef01p012345:0:27: ++%37La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:+0x2.3456789abcdef01p+12345:0:27: ++%37La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37La:+0x7.fffffffffffffff8p16381:0:27: ++%37La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37La:+0xf.fffffffffffffffp+16380:0:27: ++%37La:+infinity:1:9:inf: ++%*37La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3: ++%*5La: -0xf.fffffffffffffffp+16380:0:6: ++%5La: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2: ++%*5La: -0x7.fffffffffffffff8p16381:0:6: ++%5La: -0x2.3456789abcdef01p+12345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef01p+12345:0:6: ++%5La: -0x2.3456789abcdef01p012345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %5La: -0x8p-16385:0:-1: ++# BZ12701 %*5La: -0x8p-16385:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-16385:0:-1: ++# BZ12701 %*5La: 0x8p-16385:0:-1: ++%5La: 0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef01p012345:0:6: ++%5La: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef01p+12345:0:6: ++%5La: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*5La: 0x7.fffffffffffffff8p16381:0:6: ++%5La: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*5La: 0xf.fffffffffffffffp+16380:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-16385:0:-1: ++# BZ12701 %*5La: +0x8p-16385:0:-1: ++%5La: +0x2.3456789abcdef01p012345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef01p012345:0:6: ++%5La: +0x2.3456789abcdef01p+12345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef01p+12345:0:6: ++%5La: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2: ++%*5La: +0x7.fffffffffffffff8p16381:0:6: ++%5La: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3: ++%*5La: +0xf.fffffffffffffffp+16380:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%37La: :0:-1: ++%*37La: :0:-1: ++%37La: -infinity:1:10:-inf: ++%*37La: -infinity:0:10: ++%37La: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37La: -0xf.fffffffffffffffp+16380:0:28: ++%37La: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383: ++%*37La: -0x7.fffffffffffffff8p16381:0:28: ++%37La: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La: -0x2.3456789abcdef01p+12345:0:28: ++%37La: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La: -0x2.3456789abcdef01p012345:0:28: ++%37La: -0x8p-16385:1:12:-0x1p-16382: ++%*37La: -0x8p-16385:0:12: ++%37La: -0x0p+0:1:8:-0x0: ++%*37La: -0x0p+0:0:8: ++%37La: -0x0p0:1:7:-0x0: ++%*37La: -0x0p0:0:7: ++%37La: -nan(09A_Zaz):1:14:-nan: ++%*37La: -nan(09A_Zaz):0:14: ++%37La: -nan():1:7:-nan: ++%*37La: -nan():0:7: ++%37La: nan():1:6:nan: ++%*37La: nan():0:6: ++%37La: nan(09A_Zaz):1:13:nan: ++%*37La: nan(09A_Zaz):0:13: ++%37La: 0x0p0:1:6:0x0: ++%*37La: 0x0p0:0:6: ++%37La: 0x0p+0:1:7:0x0: ++%*37La: 0x0p+0:0:7: ++%37La: 0x8p-16385:1:11:0x1p-16382: ++%*37La: 0x8p-16385:0:11: ++%37La: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: 0x2.3456789abcdef01p012345:0:27: ++%37La: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: 0x2.3456789abcdef01p+12345:0:27: ++%37La: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37La: 0x7.fffffffffffffff8p16381:0:27: ++%37La: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37La: 0xf.fffffffffffffffp+16380:0:27: ++%37La: infinity:1:9:inf: ++%*37La: infinity:0:9: ++%37La: +nan():1:7:nan: ++%*37La: +nan():0:7: ++%37La: +nan(09A_Zaz):1:14:nan: ++%*37La: +nan(09A_Zaz):0:14: ++%37La: +0x0p0:1:7:0x0: ++%*37La: +0x0p0:0:7: ++%37La: +0x0p+0:1:8:0x0: ++%*37La: +0x0p+0:0:8: ++%37La: +0x8p-16385:1:12:0x1p-16382: ++%*37La: +0x8p-16385:0:12: ++%37La: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: +0x2.3456789abcdef01p012345:0:28: ++%37La: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: +0x2.3456789abcdef01p+12345:0:28: ++%37La: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383: ++%*37La: +0x7.fffffffffffffff8p16381:0:28: ++%37La: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383: ++%*37La: +0xf.fffffffffffffffp+16380:0:28: ++%37La: +infinity:1:10:inf: ++%*37La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..231fc78d225363d5 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LA:-0X2.3456789ABCDEF01P+12345:0:27: ++%LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LA:-0X2.3456789ABCDEF01P012345:0:27: ++%LA:-0X8P-16385:1:11:-0x1p-16382: ++%*LA:-0X8P-16385:0:11: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-16385:1:10:0x1p-16382: ++%*LA:0X8P-16385:0:10: ++%LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:0X2.3456789ABCDEF01P012345:0:26: ++%LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:0X2.3456789ABCDEF01P+12345:0:26: ++%LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-16385:1:11:0x1p-16382: ++%*LA:+0X8P-16385:0:11: ++%LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:+0X2.3456789ABCDEF01P012345:0:27: ++%LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:+0X2.3456789ABCDEF01P+12345:0:27: ++%LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%1LA:-0X2.3456789ABCDEF01P012345:0:-1: ++%*1LA:-0X2.3456789ABCDEF01P012345:0:-1: ++%1LA:-0X8P-16385:0:-1: ++%*1LA:-0X8P-16385:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-16385:1:1:0x0: ++%*1LA:0X8P-16385:0:1: ++%1LA:0X2.3456789ABCDEF01P012345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF01P012345:0:1: ++%1LA:0X2.3456789ABCDEF01P+12345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF01P+12345:0:1: ++%1LA:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFFFF8P16381:0:1: ++%1LA:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFFFFP+16380:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-16385:0:-1: ++%*1LA:+0X8P-16385:0:-1: ++%1LA:+0X2.3456789ABCDEF01P012345:0:-1: ++%*1LA:+0X2.3456789ABCDEF01P012345:0:-1: ++%1LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LA:-0X2.3456789ABCDEF01P+12345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF01P+12345:0:2: ++%2LA:-0X2.3456789ABCDEF01P012345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF01P012345:0:2: ++%2LA:-0X8P-16385:1:2:-0x0: ++%*2LA:-0X8P-16385:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-16385:0:-1: ++# BZ12701 %*2LA:0X8P-16385:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-16385:1:2:0x0: ++%*2LA:+0X8P-16385:0:2: ++%2LA:+0X2.3456789ABCDEF01P012345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF01P012345:0:2: ++%2LA:+0X2.3456789ABCDEF01P+12345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF01P+12345:0:2: ++%2LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LA:-0X8P-16385:0:-1: ++# BZ12701 %*3LA:-0X8P-16385:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-16385:1:3:0x1p3: ++%*3LA:0X8P-16385:0:3: ++%3LA:0X2.3456789ABCDEF01P012345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF01P012345:0:3: ++%3LA:0X2.3456789ABCDEF01P+12345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF01P+12345:0:3: ++%3LA:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFFFF8P16381:0:3: ++%3LA:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFFFFP+16380:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-16385:0:-1: ++# BZ12701 %*3LA:+0X8P-16385:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF01P012345:0:4: ++%4LA:-0X8P-16385:1:4:-0x1p3: ++%*4LA:-0X8P-16385:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-16385:0:-1: ++# BZ12701 %*4LA:0X8P-16385:0:-1: ++%4LA:0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF01P012345:0:4: ++%4LA:0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-16385:1:4:0x1p3: ++%*4LA:+0X8P-16385:0:4: ++%4LA:+0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF01P012345:0:4: ++%4LA:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF01P012345:0:5: ++# BZ12701 %5LA:-0X8P-16385:0:-1: ++# BZ12701 %*5LA:-0X8P-16385:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-16385:0:-1: ++# BZ12701 %*5LA:0X8P-16385:0:-1: ++%5LA:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF01P012345:0:5: ++%5LA:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-16385:0:-1: ++# BZ12701 %*5LA:+0X8P-16385:0:-1: ++%5LA:+0X2.3456789ABCDEF01P012345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF01P012345:0:5: ++%5LA:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %6LA:-0X8P-16385:0:-1: ++# BZ12701 %*6LA:-0X8P-16385:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-16385:1:6:0x1p2: ++%*6LA:0X8P-16385:0:6: ++%6LA:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF01P012345:0:6: ++%6LA:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-16385:0:-1: ++# BZ12701 %*6LA:+0X8P-16385:0:-1: ++%6LA:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF01P012345:0:6: ++%6LA:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%22LA::0:-1: ++%*22LA::0:-1: ++%22LA:-INFINITY:1:9:-inf: ++%*22LA:-INFINITY:0:9: ++# BZ12701 %22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%22LA:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22LA:-0X2.3456789ABCDEF01P012345:0:22: ++%22LA:-0X8P-16385:1:11:-0x1p-16382: ++%*22LA:-0X8P-16385:0:11: ++%22LA:-0X0P+0:1:7:-0x0: ++%*22LA:-0X0P+0:0:7: ++%22LA:-0X0P0:1:6:-0x0: ++%*22LA:-0X0P0:0:6: ++%22LA:-NAN(09A_Zaz):1:13:-nan: ++%*22LA:-NAN(09A_Zaz):0:13: ++%22LA:-NAN():1:6:-nan: ++%*22LA:-NAN():0:6: ++%22LA:NAN():1:5:nan: ++%*22LA:NAN():0:5: ++%22LA:NAN(09A_Zaz):1:12:nan: ++%*22LA:NAN(09A_Zaz):0:12: ++%22LA:0X0P0:1:5:0x0: ++%*22LA:0X0P0:0:5: ++%22LA:0X0P+0:1:6:0x0: ++%*22LA:0X0P+0:0:6: ++%22LA:0X8P-16385:1:10:0x1p-16382: ++%*22LA:0X8P-16385:0:10: ++%22LA:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LA:0X2.3456789ABCDEF01P012345:0:22: ++%22LA:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LA:0X2.3456789ABCDEF01P+12345:0:22: ++%22LA:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3: ++%*22LA:0X7.FFFFFFFFFFFFFFF8P16381:0:22: ++%22LA:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4: ++%*22LA:0XF.FFFFFFFFFFFFFFFP+16380:0:22: ++%22LA:INFINITY:1:8:inf: ++%*22LA:INFINITY:0:8: ++%22LA:+NAN():1:6:nan: ++%*22LA:+NAN():0:6: ++%22LA:+NAN(09A_Zaz):1:13:nan: ++%*22LA:+NAN(09A_Zaz):0:13: ++%22LA:+0X0P0:1:6:0x0: ++%*22LA:+0X0P0:0:6: ++%22LA:+0X0P+0:1:7:0x0: ++%*22LA:+0X0P+0:0:7: ++%22LA:+0X8P-16385:1:11:0x1p-16382: ++%*22LA:+0X8P-16385:0:11: ++%22LA:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22LA:+0X2.3456789ABCDEF01P012345:0:22: ++# BZ12701 %22LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%22LA:+INFINITY:1:9:inf: ++%*22LA:+INFINITY:0:9: ++%37LA::0:-1: ++%*37LA::0:-1: ++%37LA:-INFINITY:1:9:-inf: ++%*37LA:-INFINITY:0:9: ++%37LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*37LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:-0X2.3456789ABCDEF01P+12345:0:27: ++%37LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:-0X2.3456789ABCDEF01P012345:0:27: ++%37LA:-0X8P-16385:1:11:-0x1p-16382: ++%*37LA:-0X8P-16385:0:11: ++%37LA:-0X0P+0:1:7:-0x0: ++%*37LA:-0X0P+0:0:7: ++%37LA:-0X0P0:1:6:-0x0: ++%*37LA:-0X0P0:0:6: ++%37LA:-NAN(09A_Zaz):1:13:-nan: ++%*37LA:-NAN(09A_Zaz):0:13: ++%37LA:-NAN():1:6:-nan: ++%*37LA:-NAN():0:6: ++%37LA:NAN():1:5:nan: ++%*37LA:NAN():0:5: ++%37LA:NAN(09A_Zaz):1:12:nan: ++%*37LA:NAN(09A_Zaz):0:12: ++%37LA:0X0P0:1:5:0x0: ++%*37LA:0X0P0:0:5: ++%37LA:0X0P+0:1:6:0x0: ++%*37LA:0X0P+0:0:6: ++%37LA:0X8P-16385:1:10:0x1p-16382: ++%*37LA:0X8P-16385:0:10: ++%37LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:0X2.3456789ABCDEF01P012345:0:26: ++%37LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:0X2.3456789ABCDEF01P+12345:0:26: ++%37LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*37LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%37LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*37LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%37LA:INFINITY:1:8:inf: ++%*37LA:INFINITY:0:8: ++%37LA:+NAN():1:6:nan: ++%*37LA:+NAN():0:6: ++%37LA:+NAN(09A_Zaz):1:13:nan: ++%*37LA:+NAN(09A_Zaz):0:13: ++%37LA:+0X0P0:1:6:0x0: ++%*37LA:+0X0P0:0:6: ++%37LA:+0X0P+0:1:7:0x0: ++%*37LA:+0X0P+0:0:7: ++%37LA:+0X8P-16385:1:11:0x1p-16382: ++%*37LA:+0X8P-16385:0:11: ++%37LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:+0X2.3456789ABCDEF01P012345:0:27: ++%37LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:+0X2.3456789ABCDEF01P+12345:0:27: ++%37LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA:+INFINITY:1:9:inf: ++%*37LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %5LA: -0X8P-16385:0:-1: ++# BZ12701 %*5LA: -0X8P-16385:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-16385:0:-1: ++# BZ12701 %*5LA: 0X8P-16385:0:-1: ++%5LA: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF01P012345:0:6: ++%5LA: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-16385:0:-1: ++# BZ12701 %*5LA: +0X8P-16385:0:-1: ++%5LA: +0X2.3456789ABCDEF01P012345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF01P012345:0:6: ++%5LA: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%37LA: :0:-1: ++%*37LA: :0:-1: ++%37LA: -INFINITY:1:10:-inf: ++%*37LA: -INFINITY:0:10: ++%37LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383: ++%*37LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LA: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: -0X2.3456789ABCDEF01P+12345:0:28: ++%37LA: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: -0X2.3456789ABCDEF01P012345:0:28: ++%37LA: -0X8P-16385:1:12:-0x1p-16382: ++%*37LA: -0X8P-16385:0:12: ++%37LA: -0X0P+0:1:8:-0x0: ++%*37LA: -0X0P+0:0:8: ++%37LA: -0X0P0:1:7:-0x0: ++%*37LA: -0X0P0:0:7: ++%37LA: -NAN(09A_Zaz):1:14:-nan: ++%*37LA: -NAN(09A_Zaz):0:14: ++%37LA: -NAN():1:7:-nan: ++%*37LA: -NAN():0:7: ++%37LA: NAN():1:6:nan: ++%*37LA: NAN():0:6: ++%37LA: NAN(09A_Zaz):1:13:nan: ++%*37LA: NAN(09A_Zaz):0:13: ++%37LA: 0X0P0:1:6:0x0: ++%*37LA: 0X0P0:0:6: ++%37LA: 0X0P+0:1:7:0x0: ++%*37LA: 0X0P+0:0:7: ++%37LA: 0X8P-16385:1:11:0x1p-16382: ++%*37LA: 0X8P-16385:0:11: ++%37LA: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: 0X2.3456789ABCDEF01P012345:0:27: ++%37LA: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: 0X2.3456789ABCDEF01P+12345:0:27: ++%37LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA: INFINITY:1:9:inf: ++%*37LA: INFINITY:0:9: ++%37LA: +NAN():1:7:nan: ++%*37LA: +NAN():0:7: ++%37LA: +NAN(09A_Zaz):1:14:nan: ++%*37LA: +NAN(09A_Zaz):0:14: ++%37LA: +0X0P0:1:7:0x0: ++%*37LA: +0X0P0:0:7: ++%37LA: +0X0P+0:1:8:0x0: ++%*37LA: +0X0P+0:0:8: ++%37LA: +0X8P-16385:1:12:0x1p-16382: ++%*37LA: +0X8P-16385:0:12: ++%37LA: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: +0X2.3456789ABCDEF01P012345:0:28: ++%37LA: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: +0X2.3456789ABCDEF01P+12345:0:28: ++%37LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383: ++%*37LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383: ++%*37LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LA: +INFINITY:1:10:inf: ++%*37LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..61a9c901c205f897 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383: ++%*Le:-1.18973149535723176502126385303097021e+4932:0:44: ++%Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383: ++%*Le:-1.18973149535723176502126385303097021e4932:0:43: ++%Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*Le:-3.619058724505602958194804115432455e+3716:0:42: ++%Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*Le:-3.619058724505602958194804115432455e03716:0:42: ++%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*Le:3.36210314311209350626267781732175260e-4932:0:43: ++%Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:3.619058724505602958194804115432455e03716:0:41: ++%Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:3.619058724505602958194804115432455e+3716:0:41: ++%Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383: ++%*Le:1.18973149535723176502126385303097021e4932:0:42: ++%Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383: ++%*Le:1.18973149535723176502126385303097021e+4932:0:43: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:+3.619058724505602958194804115432455e03716:0:42: ++%Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:+3.619058724505602958194804115432455e+3716:0:42: ++%Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*Le:+1.18973149535723176502126385303097021e4932:0:43: ++%Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*Le:+1.18973149535723176502126385303097021e+4932:0:44: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%*1Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%1Le:-1.18973149535723176502126385303097021e4932:0:-1: ++%*1Le:-1.18973149535723176502126385303097021e4932:0:-1: ++%1Le:-3.619058724505602958194804115432455e+3716:0:-1: ++%*1Le:-3.619058724505602958194804115432455e+3716:0:-1: ++%1Le:-3.619058724505602958194804115432455e03716:0:-1: ++%*1Le:-3.619058724505602958194804115432455e03716:0:-1: ++%1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1Le:3.36210314311209350626267781732175260e-4932:0:1: ++%1Le:3.619058724505602958194804115432455e03716:1:1:0x1.8p1: ++%*1Le:3.619058724505602958194804115432455e03716:0:1: ++%1Le:3.619058724505602958194804115432455e+3716:1:1:0x1.8p1: ++%*1Le:3.619058724505602958194804115432455e+3716:0:1: ++%1Le:1.18973149535723176502126385303097021e4932:1:1:0x1: ++%*1Le:1.18973149535723176502126385303097021e4932:0:1: ++%1Le:1.18973149535723176502126385303097021e+4932:1:1:0x1: ++%*1Le:1.18973149535723176502126385303097021e+4932:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:+3.619058724505602958194804115432455e03716:0:-1: ++%*1Le:+3.619058724505602958194804115432455e03716:0:-1: ++%1Le:+3.619058724505602958194804115432455e+3716:0:-1: ++%*1Le:+3.619058724505602958194804115432455e+3716:0:-1: ++%1Le:+1.18973149535723176502126385303097021e4932:0:-1: ++%*1Le:+1.18973149535723176502126385303097021e4932:0:-1: ++%1Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%*1Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.18973149535723176502126385303097021e+4932:1:2:-0x1: ++%*2Le:-1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:-1.18973149535723176502126385303097021e4932:1:2:-0x1: ++%*2Le:-1.18973149535723176502126385303097021e4932:0:2: ++%2Le:-3.619058724505602958194804115432455e+3716:1:2:-0x1.8p1: ++%*2Le:-3.619058724505602958194804115432455e+3716:0:2: ++%2Le:-3.619058724505602958194804115432455e03716:1:2:-0x1.8p1: ++%*2Le:-3.619058724505602958194804115432455e03716:0:2: ++%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2Le:-3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:3.619058724505602958194804115432455e03716:1:2:0x1.8p1: ++%*2Le:3.619058724505602958194804115432455e03716:0:2: ++%2Le:3.619058724505602958194804115432455e+3716:1:2:0x1.8p1: ++%*2Le:3.619058724505602958194804115432455e+3716:0:2: ++%2Le:1.18973149535723176502126385303097021e4932:1:2:0x1: ++%*2Le:1.18973149535723176502126385303097021e4932:0:2: ++%2Le:1.18973149535723176502126385303097021e+4932:1:2:0x1: ++%*2Le:1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:+3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:+3.619058724505602958194804115432455e03716:1:2:0x1.8p1: ++%*2Le:+3.619058724505602958194804115432455e03716:0:2: ++%2Le:+3.619058724505602958194804115432455e+3716:1:2:0x1.8p1: ++%*2Le:+3.619058724505602958194804115432455e+3716:0:2: ++%2Le:+1.18973149535723176502126385303097021e4932:1:2:0x1: ++%*2Le:+1.18973149535723176502126385303097021e4932:0:2: ++%2Le:+1.18973149535723176502126385303097021e+4932:1:2:0x1: ++%*2Le:+1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.18973149535723176502126385303097021e+4932:1:3:-0x1: ++%*3Le:-1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:-1.18973149535723176502126385303097021e4932:1:3:-0x1: ++%*3Le:-1.18973149535723176502126385303097021e4932:0:3: ++%3Le:-3.619058724505602958194804115432455e+3716:1:3:-0x1.8p1: ++%*3Le:-3.619058724505602958194804115432455e+3716:0:3: ++%3Le:-3.619058724505602958194804115432455e03716:1:3:-0x1.8p1: ++%*3Le:-3.619058724505602958194804115432455e03716:0:3: ++%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3Le:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666p1: ++%*3Le:3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:3.619058724505602958194804115432455e03716:1:3:0x1.ccccccccccccccccp1: ++%*3Le:3.619058724505602958194804115432455e03716:0:3: ++%3Le:3.619058724505602958194804115432455e+3716:1:3:0x1.ccccccccccccccccp1: ++%*3Le:3.619058724505602958194804115432455e+3716:0:3: ++%3Le:1.18973149535723176502126385303097021e4932:1:3:0x1.199999999999999a: ++%*3Le:1.18973149535723176502126385303097021e4932:0:3: ++%3Le:1.18973149535723176502126385303097021e+4932:1:3:0x1.199999999999999a: ++%*3Le:1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3Le:+3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:+3.619058724505602958194804115432455e03716:1:3:0x1.8p1: ++%*3Le:+3.619058724505602958194804115432455e03716:0:3: ++%3Le:+3.619058724505602958194804115432455e+3716:1:3:0x1.8p1: ++%*3Le:+3.619058724505602958194804115432455e+3716:0:3: ++%3Le:+1.18973149535723176502126385303097021e4932:1:3:0x1: ++%*3Le:+1.18973149535723176502126385303097021e4932:0:3: ++%3Le:+1.18973149535723176502126385303097021e+4932:1:3:0x1: ++%*3Le:+1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.18973149535723176502126385303097021e+4932:1:4:-0x1.199999999999999a: ++%*4Le:-1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:-1.18973149535723176502126385303097021e4932:1:4:-0x1.199999999999999a: ++%*4Le:-1.18973149535723176502126385303097021e4932:0:4: ++%4Le:-3.619058724505602958194804115432455e+3716:1:4:-0x1.ccccccccccccccccp1: ++%*4Le:-3.619058724505602958194804115432455e+3716:0:4: ++%4Le:-3.619058724505602958194804115432455e03716:1:4:-0x1.ccccccccccccccccp1: ++%*4Le:-3.619058724505602958194804115432455e03716:0:4: ++%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1: ++%*4Le:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ap1: ++%*4Le:3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:3.619058724505602958194804115432455e03716:1:4:0x1.ce147ae147ae147ap1: ++%*4Le:3.619058724505602958194804115432455e03716:0:4: ++%4Le:3.619058724505602958194804115432455e+3716:1:4:0x1.ce147ae147ae147ap1: ++%*4Le:3.619058724505602958194804115432455e+3716:0:4: ++%4Le:1.18973149535723176502126385303097021e4932:1:4:0x1.2e147ae147ae147a: ++%*4Le:1.18973149535723176502126385303097021e4932:0:4: ++%4Le:1.18973149535723176502126385303097021e+4932:1:4:0x1.2e147ae147ae147a: ++%*4Le:1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1: ++%*4Le:+3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:+3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1: ++%*4Le:+3.619058724505602958194804115432455e03716:0:4: ++%4Le:+3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1: ++%*4Le:+3.619058724505602958194804115432455e+3716:0:4: ++%4Le:+1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a: ++%*4Le:+1.18973149535723176502126385303097021e4932:0:4: ++%4Le:+1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a: ++%*4Le:+1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++# BZ12701 %*40Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%40Le:-1.18973149535723176502126385303097021e4932:1:40:-0x1.73ca850660e6e6c4p13: ++%*40Le:-1.18973149535723176502126385303097021e4932:0:40: ++%40Le:-3.619058724505602958194804115432455e+3716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40Le:-3.619058724505602958194804115432455e+3716:0:40: ++%40Le:-3.619058724505602958194804115432455e03716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40Le:-3.619058724505602958194804115432455e03716:0:40: ++# BZ12701 %40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bcep-12: ++%*40Le:3.36210314311209350626267781732175260e-4932:0:40: ++%40Le:3.619058724505602958194804115432455e03716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40Le:3.619058724505602958194804115432455e03716:0:40: ++%40Le:3.619058724505602958194804115432455e+3716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40Le:3.619058724505602958194804115432455e+3716:0:40: ++%40Le:1.18973149535723176502126385303097021e4932:1:40:0x1.047ec1b6d6390a5cp163: ++%*40Le:1.18973149535723176502126385303097021e4932:0:40: ++%40Le:1.18973149535723176502126385303097021e+4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40Le:1.18973149535723176502126385303097021e+4932:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:+3.619058724505602958194804115432455e03716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40Le:+3.619058724505602958194804115432455e03716:0:40: ++%40Le:+3.619058724505602958194804115432455e+3716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40Le:+3.619058724505602958194804115432455e+3716:0:40: ++%40Le:+1.18973149535723176502126385303097021e4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40Le:+1.18973149535723176502126385303097021e4932:0:40: ++# BZ12701 %40Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++# BZ12701 %*40Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383: ++%*48Le:-1.18973149535723176502126385303097021e+4932:0:44: ++%48Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383: ++%*48Le:-1.18973149535723176502126385303097021e4932:0:43: ++%48Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:-3.619058724505602958194804115432455e+3716:0:42: ++%48Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:-3.619058724505602958194804115432455e03716:0:42: ++%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48Le:3.36210314311209350626267781732175260e-4932:0:43: ++%48Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:3.619058724505602958194804115432455e03716:0:41: ++%48Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:3.619058724505602958194804115432455e+3716:0:41: ++%48Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383: ++%*48Le:1.18973149535723176502126385303097021e4932:0:42: ++%48Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le:1.18973149535723176502126385303097021e+4932:0:43: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:+3.619058724505602958194804115432455e03716:0:42: ++%48Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:+3.619058724505602958194804115432455e+3716:0:42: ++%48Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le:+1.18973149535723176502126385303097021e4932:0:43: ++%48Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le:+1.18973149535723176502126385303097021e+4932:0:44: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.18973149535723176502126385303097021e+4932:1:4:-0x1: ++%*3Le: -1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: -1.18973149535723176502126385303097021e4932:1:4:-0x1: ++%*3Le: -1.18973149535723176502126385303097021e4932:0:4: ++%3Le: -3.619058724505602958194804115432455e+3716:1:4:-0x1.8p1: ++%*3Le: -3.619058724505602958194804115432455e+3716:0:4: ++%3Le: -3.619058724505602958194804115432455e03716:1:4:-0x1.8p1: ++%*3Le: -3.619058724505602958194804115432455e03716:0:4: ++%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3Le: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1: ++%*3Le: 3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: 3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1: ++%*3Le: 3.619058724505602958194804115432455e03716:0:4: ++%3Le: 3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1: ++%*3Le: 3.619058724505602958194804115432455e+3716:0:4: ++%3Le: 1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a: ++%*3Le: 1.18973149535723176502126385303097021e4932:0:4: ++%3Le: 1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a: ++%*3Le: 1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3Le: +3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: +3.619058724505602958194804115432455e03716:1:4:0x1.8p1: ++%*3Le: +3.619058724505602958194804115432455e03716:0:4: ++%3Le: +3.619058724505602958194804115432455e+3716:1:4:0x1.8p1: ++%*3Le: +3.619058724505602958194804115432455e+3716:0:4: ++%3Le: +1.18973149535723176502126385303097021e4932:1:4:0x1: ++%*3Le: +1.18973149535723176502126385303097021e4932:0:4: ++%3Le: +1.18973149535723176502126385303097021e+4932:1:4:0x1: ++%*3Le: +1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.18973149535723176502126385303097021e+4932:1:45:-0x1.fffffffffffffffep16383: ++%*48Le: -1.18973149535723176502126385303097021e+4932:0:45: ++%48Le: -1.18973149535723176502126385303097021e4932:1:44:-0x1.fffffffffffffffep16383: ++%*48Le: -1.18973149535723176502126385303097021e4932:0:44: ++%48Le: -3.619058724505602958194804115432455e+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: -3.619058724505602958194804115432455e+3716:0:43: ++%48Le: -3.619058724505602958194804115432455e03716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: -3.619058724505602958194804115432455e03716:0:43: ++%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48Le: -3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le: 3.36210314311209350626267781732175260e-4932:0:44: ++%48Le: 3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: 3.619058724505602958194804115432455e03716:0:42: ++%48Le: 3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: 3.619058724505602958194804115432455e+3716:0:42: ++%48Le: 1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le: 1.18973149535723176502126385303097021e4932:0:43: ++%48Le: 1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le: 1.18973149535723176502126385303097021e+4932:0:44: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48Le: +3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: +3.619058724505602958194804115432455e03716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: +3.619058724505602958194804115432455e03716:0:43: ++%48Le: +3.619058724505602958194804115432455e+3716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: +3.619058724505602958194804115432455e+3716:0:43: ++%48Le: +1.18973149535723176502126385303097021e4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le: +1.18973149535723176502126385303097021e4932:0:44: ++%48Le: +1.18973149535723176502126385303097021e+4932:1:45:0x1.fffffffffffffffep16383: ++%*48Le: +1.18973149535723176502126385303097021e+4932:0:45: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..2362eab7e1e3702b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383: ++%*LE:-1.18973149535723176502126385303097021E+4932:0:44: ++%LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383: ++%*LE:-1.18973149535723176502126385303097021E4932:0:43: ++%LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*LE:-3.619058724505602958194804115432455E+3716:0:42: ++%LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*LE:-3.619058724505602958194804115432455E03716:0:42: ++%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382: ++%*LE:3.36210314311209350626267781732175260E-4932:0:43: ++%LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:3.619058724505602958194804115432455E03716:0:41: ++%LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:3.619058724505602958194804115432455E+3716:0:41: ++%LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383: ++%*LE:1.18973149535723176502126385303097021E4932:0:42: ++%LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383: ++%*LE:1.18973149535723176502126385303097021E+4932:0:43: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*LE:+3.36210314311209350626267781732175260E-4932:0:44: ++%LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:+3.619058724505602958194804115432455E03716:0:42: ++%LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:+3.619058724505602958194804115432455E+3716:0:42: ++%LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*LE:+1.18973149535723176502126385303097021E4932:0:43: ++%LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*LE:+1.18973149535723176502126385303097021E+4932:0:44: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%*1LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%1LE:-1.18973149535723176502126385303097021E4932:0:-1: ++%*1LE:-1.18973149535723176502126385303097021E4932:0:-1: ++%1LE:-3.619058724505602958194804115432455E+3716:0:-1: ++%*1LE:-3.619058724505602958194804115432455E+3716:0:-1: ++%1LE:-3.619058724505602958194804115432455E03716:0:-1: ++%*1LE:-3.619058724505602958194804115432455E03716:0:-1: ++%1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:3.36210314311209350626267781732175260E-4932:1:1:0x1.8p1: ++%*1LE:3.36210314311209350626267781732175260E-4932:0:1: ++%1LE:3.619058724505602958194804115432455E03716:1:1:0x1.8p1: ++%*1LE:3.619058724505602958194804115432455E03716:0:1: ++%1LE:3.619058724505602958194804115432455E+3716:1:1:0x1.8p1: ++%*1LE:3.619058724505602958194804115432455E+3716:0:1: ++%1LE:1.18973149535723176502126385303097021E4932:1:1:0x1: ++%*1LE:1.18973149535723176502126385303097021E4932:0:1: ++%1LE:1.18973149535723176502126385303097021E+4932:1:1:0x1: ++%*1LE:1.18973149535723176502126385303097021E+4932:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%*1LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%1LE:+3.619058724505602958194804115432455E03716:0:-1: ++%*1LE:+3.619058724505602958194804115432455E03716:0:-1: ++%1LE:+3.619058724505602958194804115432455E+3716:0:-1: ++%*1LE:+3.619058724505602958194804115432455E+3716:0:-1: ++%1LE:+1.18973149535723176502126385303097021E4932:0:-1: ++%*1LE:+1.18973149535723176502126385303097021E4932:0:-1: ++%1LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%*1LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.18973149535723176502126385303097021E+4932:1:2:-0x1: ++%*2LE:-1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:-1.18973149535723176502126385303097021E4932:1:2:-0x1: ++%*2LE:-1.18973149535723176502126385303097021E4932:0:2: ++%2LE:-3.619058724505602958194804115432455E+3716:1:2:-0x1.8p1: ++%*2LE:-3.619058724505602958194804115432455E+3716:0:2: ++%2LE:-3.619058724505602958194804115432455E03716:1:2:-0x1.8p1: ++%*2LE:-3.619058724505602958194804115432455E03716:0:2: ++%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2LE:-3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1: ++%*2LE:3.36210314311209350626267781732175260E-4932:0:2: ++%2LE:3.619058724505602958194804115432455E03716:1:2:0x1.8p1: ++%*2LE:3.619058724505602958194804115432455E03716:0:2: ++%2LE:3.619058724505602958194804115432455E+3716:1:2:0x1.8p1: ++%*2LE:3.619058724505602958194804115432455E+3716:0:2: ++%2LE:1.18973149535723176502126385303097021E4932:1:2:0x1: ++%*2LE:1.18973149535723176502126385303097021E4932:0:2: ++%2LE:1.18973149535723176502126385303097021E+4932:1:2:0x1: ++%*2LE:1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1: ++%*2LE:+3.36210314311209350626267781732175260E-4932:0:2: ++%2LE:+3.619058724505602958194804115432455E03716:1:2:0x1.8p1: ++%*2LE:+3.619058724505602958194804115432455E03716:0:2: ++%2LE:+3.619058724505602958194804115432455E+3716:1:2:0x1.8p1: ++%*2LE:+3.619058724505602958194804115432455E+3716:0:2: ++%2LE:+1.18973149535723176502126385303097021E4932:1:2:0x1: ++%*2LE:+1.18973149535723176502126385303097021E4932:0:2: ++%2LE:+1.18973149535723176502126385303097021E+4932:1:2:0x1: ++%*2LE:+1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.18973149535723176502126385303097021E+4932:1:3:-0x1: ++%*3LE:-1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:-1.18973149535723176502126385303097021E4932:1:3:-0x1: ++%*3LE:-1.18973149535723176502126385303097021E4932:0:3: ++%3LE:-3.619058724505602958194804115432455E+3716:1:3:-0x1.8p1: ++%*3LE:-3.619058724505602958194804115432455E+3716:0:3: ++%3LE:-3.619058724505602958194804115432455E03716:1:3:-0x1.8p1: ++%*3LE:-3.619058724505602958194804115432455E03716:0:3: ++%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3LE:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:3.36210314311209350626267781732175260E-4932:1:3:0x1.a666666666666666p1: ++%*3LE:3.36210314311209350626267781732175260E-4932:0:3: ++%3LE:3.619058724505602958194804115432455E03716:1:3:0x1.ccccccccccccccccp1: ++%*3LE:3.619058724505602958194804115432455E03716:0:3: ++%3LE:3.619058724505602958194804115432455E+3716:1:3:0x1.ccccccccccccccccp1: ++%*3LE:3.619058724505602958194804115432455E+3716:0:3: ++%3LE:1.18973149535723176502126385303097021E4932:1:3:0x1.199999999999999a: ++%*3LE:1.18973149535723176502126385303097021E4932:0:3: ++%3LE:1.18973149535723176502126385303097021E+4932:1:3:0x1.199999999999999a: ++%*3LE:1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+3.36210314311209350626267781732175260E-4932:1:3:0x1.8p1: ++%*3LE:+3.36210314311209350626267781732175260E-4932:0:3: ++%3LE:+3.619058724505602958194804115432455E03716:1:3:0x1.8p1: ++%*3LE:+3.619058724505602958194804115432455E03716:0:3: ++%3LE:+3.619058724505602958194804115432455E+3716:1:3:0x1.8p1: ++%*3LE:+3.619058724505602958194804115432455E+3716:0:3: ++%3LE:+1.18973149535723176502126385303097021E4932:1:3:0x1: ++%*3LE:+1.18973149535723176502126385303097021E4932:0:3: ++%3LE:+1.18973149535723176502126385303097021E+4932:1:3:0x1: ++%*3LE:+1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.18973149535723176502126385303097021E+4932:1:4:-0x1.199999999999999a: ++%*4LE:-1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:-1.18973149535723176502126385303097021E4932:1:4:-0x1.199999999999999a: ++%*4LE:-1.18973149535723176502126385303097021E4932:0:4: ++%4LE:-3.619058724505602958194804115432455E+3716:1:4:-0x1.ccccccccccccccccp1: ++%*4LE:-3.619058724505602958194804115432455E+3716:0:4: ++%4LE:-3.619058724505602958194804115432455E03716:1:4:-0x1.ccccccccccccccccp1: ++%*4LE:-3.619058724505602958194804115432455E03716:0:4: ++%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1: ++%*4LE:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:3.36210314311209350626267781732175260E-4932:1:4:0x1.ae147ae147ae147Ap1: ++%*4LE:3.36210314311209350626267781732175260E-4932:0:4: ++%4LE:3.619058724505602958194804115432455E03716:1:4:0x1.ce147ae147ae147ap1: ++%*4LE:3.619058724505602958194804115432455E03716:0:4: ++%4LE:3.619058724505602958194804115432455E+3716:1:4:0x1.ce147ae147ae147ap1: ++%*4LE:3.619058724505602958194804115432455E+3716:0:4: ++%4LE:1.18973149535723176502126385303097021E4932:1:4:0x1.2e147ae147ae147a: ++%*4LE:1.18973149535723176502126385303097021E4932:0:4: ++%4LE:1.18973149535723176502126385303097021E+4932:1:4:0x1.2e147ae147ae147a: ++%*4LE:1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1: ++%*4LE:+3.36210314311209350626267781732175260E-4932:0:4: ++%4LE:+3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1: ++%*4LE:+3.619058724505602958194804115432455E03716:0:4: ++%4LE:+3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1: ++%*4LE:+3.619058724505602958194804115432455E+3716:0:4: ++%4LE:+1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a: ++%*4LE:+1.18973149535723176502126385303097021E4932:0:4: ++%4LE:+1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a: ++%*4LE:+1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++# BZ12701 %*40LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%40LE:-1.18973149535723176502126385303097021E4932:1:40:-0x1.73CA850660E6E6C4p13: ++%*40LE:-1.18973149535723176502126385303097021E4932:0:40: ++%40LE:-3.619058724505602958194804115432455E+3716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40LE:-3.619058724505602958194804115432455E+3716:0:40: ++%40LE:-3.619058724505602958194804115432455E03716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40LE:-3.619058724505602958194804115432455E03716:0:40: ++# BZ12701 %40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:3.36210314311209350626267781732175260E-4932:1:40:0x1.608ac4df6a146bcep-12: ++%*40LE:3.36210314311209350626267781732175260E-4932:0:40: ++%40LE:3.619058724505602958194804115432455E03716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40LE:3.619058724505602958194804115432455E03716:0:40: ++%40LE:3.619058724505602958194804115432455E+3716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40LE:3.619058724505602958194804115432455E+3716:0:40: ++%40LE:1.18973149535723176502126385303097021E4932:1:40:0x1.047ec1b6d6390a5cp163: ++%*40LE:1.18973149535723176502126385303097021E4932:0:40: ++%40LE:1.18973149535723176502126385303097021E+4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40LE:1.18973149535723176502126385303097021E+4932:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++# BZ12701 %*40LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%40LE:+3.619058724505602958194804115432455E03716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40LE:+3.619058724505602958194804115432455E03716:0:40: ++%40LE:+3.619058724505602958194804115432455E+3716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40LE:+3.619058724505602958194804115432455E+3716:0:40: ++%40LE:+1.18973149535723176502126385303097021E4932:1:40:0x1.73CA850660E6E6C4p13: ++%*40LE:+1.18973149535723176502126385303097021E4932:0:40: ++# BZ12701 %40LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++# BZ12701 %*40LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383: ++%*48LE:-1.18973149535723176502126385303097021E+4932:0:44: ++%48LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383: ++%*48LE:-1.18973149535723176502126385303097021E4932:0:43: ++%48LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:-3.619058724505602958194804115432455E+3716:0:42: ++%48LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:-3.619058724505602958194804115432455E03716:0:42: ++%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382: ++%*48LE:3.36210314311209350626267781732175260E-4932:0:43: ++%48LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:3.619058724505602958194804115432455E03716:0:41: ++%48LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:3.619058724505602958194804115432455E+3716:0:41: ++%48LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383: ++%*48LE:1.18973149535723176502126385303097021E4932:0:42: ++%48LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE:1.18973149535723176502126385303097021E+4932:0:43: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*48LE:+3.36210314311209350626267781732175260E-4932:0:44: ++%48LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:+3.619058724505602958194804115432455E03716:0:42: ++%48LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:+3.619058724505602958194804115432455E+3716:0:42: ++%48LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE:+1.18973149535723176502126385303097021E4932:0:43: ++%48LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE:+1.18973149535723176502126385303097021E+4932:0:44: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.18973149535723176502126385303097021E+4932:1:4:-0x1: ++%*3LE: -1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: -1.18973149535723176502126385303097021E4932:1:4:-0x1: ++%*3LE: -1.18973149535723176502126385303097021E4932:0:4: ++%3LE: -3.619058724505602958194804115432455E+3716:1:4:-0x1.8p1: ++%*3LE: -3.619058724505602958194804115432455E+3716:0:4: ++%3LE: -3.619058724505602958194804115432455E03716:1:4:-0x1.8p1: ++%*3LE: -3.619058724505602958194804115432455E03716:0:4: ++%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3LE: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1: ++%*3LE: 3.36210314311209350626267781732175260E-4932:0:4: ++%3LE: 3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1: ++%*3LE: 3.619058724505602958194804115432455E03716:0:4: ++%3LE: 3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1: ++%*3LE: 3.619058724505602958194804115432455E+3716:0:4: ++%3LE: 1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a: ++%*3LE: 1.18973149535723176502126385303097021E4932:0:4: ++%3LE: 1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a: ++%*3LE: 1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +3.36210314311209350626267781732175260E-4932:1:4:0x1.8p1: ++%*3LE: +3.36210314311209350626267781732175260E-4932:0:4: ++%3LE: +3.619058724505602958194804115432455E03716:1:4:0x1.8p1: ++%*3LE: +3.619058724505602958194804115432455E03716:0:4: ++%3LE: +3.619058724505602958194804115432455E+3716:1:4:0x1.8p1: ++%*3LE: +3.619058724505602958194804115432455E+3716:0:4: ++%3LE: +1.18973149535723176502126385303097021E4932:1:4:0x1: ++%*3LE: +1.18973149535723176502126385303097021E4932:0:4: ++%3LE: +1.18973149535723176502126385303097021E+4932:1:4:0x1: ++%*3LE: +1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.18973149535723176502126385303097021E+4932:1:45:-0x1.fffffffffffffffep16383: ++%*48LE: -1.18973149535723176502126385303097021E+4932:0:45: ++%48LE: -1.18973149535723176502126385303097021E4932:1:44:-0x1.fffffffffffffffep16383: ++%*48LE: -1.18973149535723176502126385303097021E4932:0:44: ++%48LE: -3.619058724505602958194804115432455E+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: -3.619058724505602958194804115432455E+3716:0:43: ++%48LE: -3.619058724505602958194804115432455E03716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: -3.619058724505602958194804115432455E03716:0:43: ++%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48LE: -3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*48LE: 3.36210314311209350626267781732175260E-4932:0:44: ++%48LE: 3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: 3.619058724505602958194804115432455E03716:0:42: ++%48LE: 3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: 3.619058724505602958194804115432455E+3716:0:42: ++%48LE: 1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE: 1.18973149535723176502126385303097021E4932:0:43: ++%48LE: 1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE: 1.18973149535723176502126385303097021E+4932:0:44: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +3.36210314311209350626267781732175260E-4932:1:45:0x1p-16382: ++%*48LE: +3.36210314311209350626267781732175260E-4932:0:45: ++%48LE: +3.619058724505602958194804115432455E03716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: +3.619058724505602958194804115432455E03716:0:43: ++%48LE: +3.619058724505602958194804115432455E+3716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: +3.619058724505602958194804115432455E+3716:0:43: ++%48LE: +1.18973149535723176502126385303097021E4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE: +1.18973149535723176502126385303097021E4932:0:44: ++%48LE: +1.18973149535723176502126385303097021E+4932:1:45:0x1.fffffffffffffffep16383: ++%*48LE: +1.18973149535723176502126385303097021E+4932:0:45: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..7c06a3260a0496ba +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1: ++%*1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1: ++%1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0: ++%*1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1: ++%1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1: ++%*1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1: ++%1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0: ++%*1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0: ++%*2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1: ++%*2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0: ++%*2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1: ++%*2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5: ++%*2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1: ++%*2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3: ++%*2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1: ++%*2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1: ++%*2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0: ++%*2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1: ++%*2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0: ++%*2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1: ++%*3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3: ++%*3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1: ++%*3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5: ++%*3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8: ++%*3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5: ++%*3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6: ++%*3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3: ++%*3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5: ++%*3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1: ++%*3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3: ++%*3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1: ++%*3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4935Lf::0:-1: ++%*4935Lf::0:-1: ++%4935Lf:-infinity:1:9:-inf: ++%*4935Lf:-infinity:0:9: ++%4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383: ++%*4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383: ++%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:-0.0:1:4:-0x0: ++%*4935Lf:-0.0:0:4: ++%4935Lf:-0:1:2:-0x0: ++%*4935Lf:-0:0:2: ++%4935Lf:-nan(09A_Zaz):1:13:-nan: ++%*4935Lf:-nan(09A_Zaz):0:13: ++%4935Lf:-nan():1:6:-nan: ++%*4935Lf:-nan():0:6: ++%4935Lf:nan():1:5:nan: ++%*4935Lf:nan():0:5: ++%4935Lf:nan(09A_Zaz):1:12:nan: ++%*4935Lf:nan(09A_Zaz):0:12: ++%4935Lf:0:1:1:0x0: ++%*4935Lf:0:0:1: ++%4935Lf:0.0:1:3:0x0: ++%*4935Lf:0.0:0:3: ++%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383: ++%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:infinity:1:8:inf: ++%*4935Lf:infinity:0:8: ++%4935Lf:+nan():1:6:nan: ++%*4935Lf:+nan():0:6: ++%4935Lf:+nan(09A_Zaz):1:13:nan: ++%*4935Lf:+nan(09A_Zaz):0:13: ++%4935Lf:+0:1:2:0x0: ++%*4935Lf:+0:0:2: ++%4935Lf:+0.0:1:4:0x0: ++%*4935Lf:+0.0:0:4: ++%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383: ++%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:+infinity:1:9:inf: ++%*4935Lf:+infinity:0:9: ++%5000Lf::0:-1: ++%*5000Lf::0:-1: ++%5000Lf:-infinity:1:9:-inf: ++%*5000Lf:-infinity:0:9: ++%5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:-0.0:1:4:-0x0: ++%*5000Lf:-0.0:0:4: ++%5000Lf:-0:1:2:-0x0: ++%*5000Lf:-0:0:2: ++%5000Lf:-nan(09A_Zaz):1:13:-nan: ++%*5000Lf:-nan(09A_Zaz):0:13: ++%5000Lf:-nan():1:6:-nan: ++%*5000Lf:-nan():0:6: ++%5000Lf:nan():1:5:nan: ++%*5000Lf:nan():0:5: ++%5000Lf:nan(09A_Zaz):1:12:nan: ++%*5000Lf:nan(09A_Zaz):0:12: ++%5000Lf:0:1:1:0x0: ++%*5000Lf:0:0:1: ++%5000Lf:0.0:1:3:0x0: ++%*5000Lf:0.0:0:3: ++%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%5000Lf:infinity:1:8:inf: ++%*5000Lf:infinity:0:8: ++%5000Lf:+nan():1:6:nan: ++%*5000Lf:+nan():0:6: ++%5000Lf:+nan(09A_Zaz):1:13:nan: ++%*5000Lf:+nan(09A_Zaz):0:13: ++%5000Lf:+0:1:2:0x0: ++%*5000Lf:+0:0:2: ++%5000Lf:+0.0:1:4:0x0: ++%*5000Lf:+0.0:0:4: ++%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf:+infinity:1:9:inf: ++%*5000Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1: ++%*3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3: ++%*3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1: ++%*3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5: ++%*3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8: ++%*3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5: ++%*3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6: ++%*3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3: ++%*3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5: ++%*3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1: ++%*3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3: ++%*3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1: ++%*3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%5000Lf: :0:-1: ++%*5000Lf: :0:-1: ++%5000Lf: -infinity:1:10:-inf: ++%*5000Lf: -infinity:0:10: ++%5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383: ++%*5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383: ++%*5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: -0.0:1:5:-0x0: ++%*5000Lf: -0.0:0:5: ++%5000Lf: -0:1:3:-0x0: ++%*5000Lf: -0:0:3: ++%5000Lf: -nan(09A_Zaz):1:14:-nan: ++%*5000Lf: -nan(09A_Zaz):0:14: ++%5000Lf: -nan():1:7:-nan: ++%*5000Lf: -nan():0:7: ++%5000Lf: nan():1:6:nan: ++%*5000Lf: nan():0:6: ++%5000Lf: nan(09A_Zaz):1:13:nan: ++%*5000Lf: nan(09A_Zaz):0:13: ++%5000Lf: 0:1:2:0x0: ++%*5000Lf: 0:0:2: ++%5000Lf: 0.0:1:4:0x0: ++%*5000Lf: 0.0:0:4: ++%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf: infinity:1:9:inf: ++%*5000Lf: infinity:0:9: ++%5000Lf: +nan():1:7:nan: ++%*5000Lf: +nan():0:7: ++%5000Lf: +nan(09A_Zaz):1:14:nan: ++%*5000Lf: +nan(09A_Zaz):0:14: ++%5000Lf: +0:1:3:0x0: ++%*5000Lf: +0:0:3: ++%5000Lf: +0.0:1:5:0x0: ++%*5000Lf: +0.0:0:5: ++%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383: ++%*5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383: ++%*5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000Lf: +infinity:1:10:inf: ++%*5000Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..1612fc41c412479e +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1: ++%*1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1: ++%1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0: ++%*1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1: ++%1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1: ++%*1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1: ++%1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0: ++%*1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0: ++%*2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1: ++%*2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0: ++%*2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1: ++%*2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5: ++%*2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1: ++%*2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3: ++%*2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1: ++%*2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1: ++%*2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0: ++%*2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1: ++%*2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0: ++%*2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1: ++%*3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3: ++%*3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1: ++%*3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5: ++%*3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8: ++%*3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5: ++%*3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6: ++%*3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3: ++%*3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5: ++%*3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1: ++%*3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3: ++%*3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1: ++%*3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4935LF::0:-1: ++%*4935LF::0:-1: ++%4935LF:-INFINITY:1:9:-inf: ++%*4935LF:-INFINITY:0:9: ++%4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383: ++%*4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383: ++%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:-0.0:1:4:-0x0: ++%*4935LF:-0.0:0:4: ++%4935LF:-0:1:2:-0x0: ++%*4935LF:-0:0:2: ++%4935LF:-NAN(09A_Zaz):1:13:-nan: ++%*4935LF:-NAN(09A_Zaz):0:13: ++%4935LF:-NAN():1:6:-nan: ++%*4935LF:-NAN():0:6: ++%4935LF:NAN():1:5:nan: ++%*4935LF:NAN():0:5: ++%4935LF:NAN(09A_Zaz):1:12:nan: ++%*4935LF:NAN(09A_Zaz):0:12: ++%4935LF:0:1:1:0x0: ++%*4935LF:0:0:1: ++%4935LF:0.0:1:3:0x0: ++%*4935LF:0.0:0:3: ++%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383: ++%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:INFINITY:1:8:inf: ++%*4935LF:INFINITY:0:8: ++%4935LF:+NAN():1:6:nan: ++%*4935LF:+NAN():0:6: ++%4935LF:+NAN(09A_Zaz):1:13:nan: ++%*4935LF:+NAN(09A_Zaz):0:13: ++%4935LF:+0:1:2:0x0: ++%*4935LF:+0:0:2: ++%4935LF:+0.0:1:4:0x0: ++%*4935LF:+0.0:0:4: ++%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383: ++%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:+INFINITY:1:9:inf: ++%*4935LF:+INFINITY:0:9: ++%5000LF::0:-1: ++%*5000LF::0:-1: ++%5000LF:-INFINITY:1:9:-inf: ++%*5000LF:-INFINITY:0:9: ++%5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:-0.0:1:4:-0x0: ++%*5000LF:-0.0:0:4: ++%5000LF:-0:1:2:-0x0: ++%*5000LF:-0:0:2: ++%5000LF:-NAN(09A_Zaz):1:13:-nan: ++%*5000LF:-NAN(09A_Zaz):0:13: ++%5000LF:-NAN():1:6:-nan: ++%*5000LF:-NAN():0:6: ++%5000LF:NAN():1:5:nan: ++%*5000LF:NAN():0:5: ++%5000LF:NAN(09A_Zaz):1:12:nan: ++%*5000LF:NAN(09A_Zaz):0:12: ++%5000LF:0:1:1:0x0: ++%*5000LF:0:0:1: ++%5000LF:0.0:1:3:0x0: ++%*5000LF:0.0:0:3: ++%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%5000LF:INFINITY:1:8:inf: ++%*5000LF:INFINITY:0:8: ++%5000LF:+NAN():1:6:nan: ++%*5000LF:+NAN():0:6: ++%5000LF:+NAN(09A_Zaz):1:13:nan: ++%*5000LF:+NAN(09A_Zaz):0:13: ++%5000LF:+0:1:2:0x0: ++%*5000LF:+0:0:2: ++%5000LF:+0.0:1:4:0x0: ++%*5000LF:+0.0:0:4: ++%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF:+INFINITY:1:9:inf: ++%*5000LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1: ++%*3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3: ++%*3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1: ++%*3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5: ++%*3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8: ++%*3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5: ++%*3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6: ++%*3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3: ++%*3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5: ++%*3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1: ++%*3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3: ++%*3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1: ++%*3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%5000LF: :0:-1: ++%*5000LF: :0:-1: ++%5000LF: -INFINITY:1:10:-inf: ++%*5000LF: -INFINITY:0:10: ++%5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383: ++%*5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383: ++%*5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: -0.0:1:5:-0x0: ++%*5000LF: -0.0:0:5: ++%5000LF: -0:1:3:-0x0: ++%*5000LF: -0:0:3: ++%5000LF: -NAN(09A_Zaz):1:14:-nan: ++%*5000LF: -NAN(09A_Zaz):0:14: ++%5000LF: -NAN():1:7:-nan: ++%*5000LF: -NAN():0:7: ++%5000LF: NAN():1:6:nan: ++%*5000LF: NAN():0:6: ++%5000LF: NAN(09A_Zaz):1:13:nan: ++%*5000LF: NAN(09A_Zaz):0:13: ++%5000LF: 0:1:2:0x0: ++%*5000LF: 0:0:2: ++%5000LF: 0.0:1:4:0x0: ++%*5000LF: 0.0:0:4: ++%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF: INFINITY:1:9:inf: ++%*5000LF: INFINITY:0:9: ++%5000LF: +NAN():1:7:nan: ++%*5000LF: +NAN():0:7: ++%5000LF: +NAN(09A_Zaz):1:14:nan: ++%*5000LF: +NAN(09A_Zaz):0:14: ++%5000LF: +0:1:3:0x0: ++%*5000LF: +0:0:3: ++%5000LF: +0.0:1:5:0x0: ++%*5000LF: +0.0:0:5: ++%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383: ++%*5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383: ++%*5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000LF: +INFINITY:1:10:inf: ++%*5000LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..af43cfe2cde3b19a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*Lg:-0xf.fffffffffffffffp+16380:0:27: ++%Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*Lg:-0x7.fffffffffffffff8p16381:0:27: ++%Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:-0x2.3456789abcdef01p+12345:0:27: ++%Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:-0x2.3456789abcdef01p012345:0:27: ++%Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*Lg:-0x8p-16385:0:11: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-16385:1:10:0x1p-16382: ++%*Lg:0x8p-16385:0:10: ++%Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:0x2.3456789abcdef01p012345:0:26: ++%Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:0x2.3456789abcdef01p+12345:0:26: ++%Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*Lg:0x7.fffffffffffffff8p16381:0:26: ++%Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*Lg:0xf.fffffffffffffffp+16380:0:26: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-16385:1:11:0x1p-16382: ++%*Lg:+0x8p-16385:0:11: ++%Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:+0x2.3456789abcdef01p012345:0:27: ++%Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:+0x2.3456789abcdef01p+12345:0:27: ++%Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*Lg:+0x7.fffffffffffffff8p16381:0:27: ++%Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*Lg:+0xf.fffffffffffffffp+16380:0:27: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.fffffffffffffffp+16380:0:-1: ++%*1Lg:-0xf.fffffffffffffffp+16380:0:-1: ++%1Lg:-0x7.fffffffffffffff8p16381:0:-1: ++%*1Lg:-0x7.fffffffffffffff8p16381:0:-1: ++%1Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%*1Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%1Lg:-0x2.3456789abcdef01p012345:0:-1: ++%*1Lg:-0x2.3456789abcdef01p012345:0:-1: ++%1Lg:-0x8p-16385:0:-1: ++%*1Lg:-0x8p-16385:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-16385:1:1:0x0: ++%*1Lg:0x8p-16385:0:1: ++%1Lg:0x2.3456789abcdef01p012345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef01p012345:0:1: ++%1Lg:0x2.3456789abcdef01p+12345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef01p+12345:0:1: ++%1Lg:0x7.fffffffffffffff8p16381:1:1:0x0: ++%*1Lg:0x7.fffffffffffffff8p16381:0:1: ++%1Lg:0xf.fffffffffffffffp+16380:1:1:0x0: ++%*1Lg:0xf.fffffffffffffffp+16380:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-16385:0:-1: ++%*1Lg:+0x8p-16385:0:-1: ++%1Lg:+0x2.3456789abcdef01p012345:0:-1: ++%*1Lg:+0x2.3456789abcdef01p012345:0:-1: ++%1Lg:+0x2.3456789abcdef01p+12345:0:-1: ++%*1Lg:+0x2.3456789abcdef01p+12345:0:-1: ++%1Lg:+0x7.fffffffffffffff8p16381:0:-1: ++%*1Lg:+0x7.fffffffffffffff8p16381:0:-1: ++%1Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%*1Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.fffffffffffffffp+16380:1:2:-0x0: ++%*2Lg:-0xf.fffffffffffffffp+16380:0:2: ++%2Lg:-0x7.fffffffffffffff8p16381:1:2:-0x0: ++%*2Lg:-0x7.fffffffffffffff8p16381:0:2: ++%2Lg:-0x2.3456789abcdef01p+12345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef01p+12345:0:2: ++%2Lg:-0x2.3456789abcdef01p012345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef01p012345:0:2: ++%2Lg:-0x8p-16385:1:2:-0x0: ++%*2Lg:-0x8p-16385:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-16385:0:-1: ++# BZ12701 %*2Lg:0x8p-16385:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %2Lg:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*2Lg:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %2Lg:0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*2Lg:0xf.fffffffffffffffp+16380:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-16385:1:2:0x0: ++%*2Lg:+0x8p-16385:0:2: ++%2Lg:+0x2.3456789abcdef01p012345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef01p012345:0:2: ++%2Lg:+0x2.3456789abcdef01p+12345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef01p+12345:0:2: ++%2Lg:+0x7.fffffffffffffff8p16381:1:2:0x0: ++%*2Lg:+0x7.fffffffffffffff8p16381:0:2: ++%2Lg:+0xf.fffffffffffffffp+16380:1:2:0x0: ++%*2Lg:+0xf.fffffffffffffffp+16380:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %3Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3Lg:-0x8p-16385:0:-1: ++# BZ12701 %*3Lg:-0x8p-16385:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-16385:1:3:0x1p3: ++%*3Lg:0x8p-16385:0:3: ++%3Lg:0x2.3456789abcdef01p012345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef01p012345:0:3: ++%3Lg:0x2.3456789abcdef01p+12345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef01p+12345:0:3: ++%3Lg:0x7.fffffffffffffff8p16381:1:3:0x1.cp2: ++%*3Lg:0x7.fffffffffffffff8p16381:0:3: ++%3Lg:0xf.fffffffffffffffp+16380:1:3:0x1.ep3: ++%*3Lg:0xf.fffffffffffffffp+16380:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-16385:0:-1: ++# BZ12701 %*3Lg:+0x8p-16385:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3Lg:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3: ++%*4Lg:-0xf.fffffffffffffffp+16380:0:4: ++%4Lg:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2: ++%*4Lg:-0x7.fffffffffffffff8p16381:0:4: ++%4Lg:-0x2.3456789abcdef01p+12345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef01p+12345:0:4: ++%4Lg:-0x2.3456789abcdef01p012345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef01p012345:0:4: ++%4Lg:-0x8p-16385:1:4:-0x1p3: ++%*4Lg:-0x8p-16385:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-16385:0:-1: ++# BZ12701 %*4Lg:0x8p-16385:0:-1: ++%4Lg:0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef01p012345:0:4: ++%4Lg:0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef01p+12345:0:4: ++%4Lg:0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4Lg:0x7.fffffffffffffff8p16381:0:4: ++%4Lg:0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4Lg:0xf.fffffffffffffffp+16380:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-16385:1:4:0x1p3: ++%*4Lg:+0x8p-16385:0:4: ++%4Lg:+0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef01p012345:0:4: ++%4Lg:+0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef01p+12345:0:4: ++%4Lg:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4Lg:+0x7.fffffffffffffff8p16381:0:4: ++%4Lg:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4Lg:+0xf.fffffffffffffffp+16380:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3: ++%*5Lg:-0xf.fffffffffffffffp+16380:0:5: ++%5Lg:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2: ++%*5Lg:-0x7.fffffffffffffff8p16381:0:5: ++%5Lg:-0x2.3456789abcdef01p+12345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef01p+12345:0:5: ++%5Lg:-0x2.3456789abcdef01p012345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef01p012345:0:5: ++# BZ12701 %5Lg:-0x8p-16385:0:-1: ++# BZ12701 %*5Lg:-0x8p-16385:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-16385:0:-1: ++# BZ12701 %*5Lg:0x8p-16385:0:-1: ++%5Lg:0x2.3456789abcdef01p012345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef01p012345:0:5: ++%5Lg:0x2.3456789abcdef01p+12345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef01p+12345:0:5: ++%5Lg:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2: ++%*5Lg:0x7.fffffffffffffff8p16381:0:5: ++%5Lg:0xf.fffffffffffffffp+16380:1:5:0x1.fep3: ++%*5Lg:0xf.fffffffffffffffp+16380:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-16385:0:-1: ++# BZ12701 %*5Lg:+0x8p-16385:0:-1: ++%5Lg:+0x2.3456789abcdef01p012345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef01p012345:0:5: ++%5Lg:+0x2.3456789abcdef01p+12345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef01p+12345:0:5: ++%5Lg:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2: ++%*5Lg:+0x7.fffffffffffffff8p16381:0:5: ++%5Lg:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3: ++%*5Lg:+0xf.fffffffffffffffp+16380:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3: ++%*6Lg:-0xf.fffffffffffffffp+16380:0:6: ++%6Lg:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2: ++%*6Lg:-0x7.fffffffffffffff8p16381:0:6: ++%6Lg:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef01p+12345:0:6: ++%6Lg:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %6Lg:-0x8p-16385:0:-1: ++# BZ12701 %*6Lg:-0x8p-16385:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-16385:1:6:0x1p2: ++%*6Lg:0x8p-16385:0:6: ++%6Lg:0x2.3456789abcdef01p012345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef01p012345:0:6: ++%6Lg:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef01p+12345:0:6: ++%6Lg:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2: ++%*6Lg:0x7.fffffffffffffff8p16381:0:6: ++%6Lg:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3: ++%*6Lg:0xf.fffffffffffffffp+16380:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-16385:0:-1: ++# BZ12701 %*6Lg:+0x8p-16385:0:-1: ++%6Lg:+0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef01p012345:0:6: ++%6Lg:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef01p+12345:0:6: ++%6Lg:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*6Lg:+0x7.fffffffffffffff8p16381:0:6: ++%6Lg:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*6Lg:+0xf.fffffffffffffffp+16380:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%22Lg::0:-1: ++%*22Lg::0:-1: ++%22Lg:-infinity:1:9:-inf: ++%*22Lg:-infinity:0:9: ++# BZ12701 %22Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %22Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%22Lg:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22Lg:-0x2.3456789abcdef01p012345:0:22: ++%22Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*22Lg:-0x8p-16385:0:11: ++%22Lg:-0x0p+0:1:7:-0x0: ++%*22Lg:-0x0p+0:0:7: ++%22Lg:-0x0p0:1:6:-0x0: ++%*22Lg:-0x0p0:0:6: ++%22Lg:-nan(09A_Zaz):1:13:-nan: ++%*22Lg:-nan(09A_Zaz):0:13: ++%22Lg:-nan():1:6:-nan: ++%*22Lg:-nan():0:6: ++%22Lg:nan():1:5:nan: ++%*22Lg:nan():0:5: ++%22Lg:nan(09A_Zaz):1:12:nan: ++%*22Lg:nan(09A_Zaz):0:12: ++%22Lg:0x0p0:1:5:0x0: ++%*22Lg:0x0p0:0:5: ++%22Lg:0x0p+0:1:6:0x0: ++%*22Lg:0x0p+0:0:6: ++%22Lg:0x8p-16385:1:10:0x1p-16382: ++%*22Lg:0x8p-16385:0:10: ++%22Lg:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22Lg:0x2.3456789abcdef01p012345:0:22: ++%22Lg:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22Lg:0x2.3456789abcdef01p+12345:0:22: ++%22Lg:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3: ++%*22Lg:0x7.fffffffffffffff8p16381:0:22: ++%22Lg:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4: ++%*22Lg:0xf.fffffffffffffffp+16380:0:22: ++%22Lg:infinity:1:8:inf: ++%*22Lg:infinity:0:8: ++%22Lg:+nan():1:6:nan: ++%*22Lg:+nan():0:6: ++%22Lg:+nan(09A_Zaz):1:13:nan: ++%*22Lg:+nan(09A_Zaz):0:13: ++%22Lg:+0x0p0:1:6:0x0: ++%*22Lg:+0x0p0:0:6: ++%22Lg:+0x0p+0:1:7:0x0: ++%*22Lg:+0x0p+0:0:7: ++%22Lg:+0x8p-16385:1:11:0x1p-16382: ++%*22Lg:+0x8p-16385:0:11: ++%22Lg:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22Lg:+0x2.3456789abcdef01p012345:0:22: ++# BZ12701 %22Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %22Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22Lg:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%22Lg:+infinity:1:9:inf: ++%*22Lg:+infinity:0:9: ++%37Lg::0:-1: ++%*37Lg::0:-1: ++%37Lg:-infinity:1:9:-inf: ++%*37Lg:-infinity:0:9: ++%37Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37Lg:-0xf.fffffffffffffffp+16380:0:27: ++%37Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*37Lg:-0x7.fffffffffffffff8p16381:0:27: ++%37Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:-0x2.3456789abcdef01p+12345:0:27: ++%37Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:-0x2.3456789abcdef01p012345:0:27: ++%37Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*37Lg:-0x8p-16385:0:11: ++%37Lg:-0x0p+0:1:7:-0x0: ++%*37Lg:-0x0p+0:0:7: ++%37Lg:-0x0p0:1:6:-0x0: ++%*37Lg:-0x0p0:0:6: ++%37Lg:-nan(09A_Zaz):1:13:-nan: ++%*37Lg:-nan(09A_Zaz):0:13: ++%37Lg:-nan():1:6:-nan: ++%*37Lg:-nan():0:6: ++%37Lg:nan():1:5:nan: ++%*37Lg:nan():0:5: ++%37Lg:nan(09A_Zaz):1:12:nan: ++%*37Lg:nan(09A_Zaz):0:12: ++%37Lg:0x0p0:1:5:0x0: ++%*37Lg:0x0p0:0:5: ++%37Lg:0x0p+0:1:6:0x0: ++%*37Lg:0x0p+0:0:6: ++%37Lg:0x8p-16385:1:10:0x1p-16382: ++%*37Lg:0x8p-16385:0:10: ++%37Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:0x2.3456789abcdef01p012345:0:26: ++%37Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:0x2.3456789abcdef01p+12345:0:26: ++%37Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*37Lg:0x7.fffffffffffffff8p16381:0:26: ++%37Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*37Lg:0xf.fffffffffffffffp+16380:0:26: ++%37Lg:infinity:1:8:inf: ++%*37Lg:infinity:0:8: ++%37Lg:+nan():1:6:nan: ++%*37Lg:+nan():0:6: ++%37Lg:+nan(09A_Zaz):1:13:nan: ++%*37Lg:+nan(09A_Zaz):0:13: ++%37Lg:+0x0p0:1:6:0x0: ++%*37Lg:+0x0p0:0:6: ++%37Lg:+0x0p+0:1:7:0x0: ++%*37Lg:+0x0p+0:0:7: ++%37Lg:+0x8p-16385:1:11:0x1p-16382: ++%*37Lg:+0x8p-16385:0:11: ++%37Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:+0x2.3456789abcdef01p012345:0:27: ++%37Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:+0x2.3456789abcdef01p+12345:0:27: ++%37Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37Lg:+0x7.fffffffffffffff8p16381:0:27: ++%37Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37Lg:+0xf.fffffffffffffffp+16380:0:27: ++%37Lg:+infinity:1:9:inf: ++%*37Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3: ++%*5Lg: -0xf.fffffffffffffffp+16380:0:6: ++%5Lg: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2: ++%*5Lg: -0x7.fffffffffffffff8p16381:0:6: ++%5Lg: -0x2.3456789abcdef01p+12345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef01p+12345:0:6: ++%5Lg: -0x2.3456789abcdef01p012345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %5Lg: -0x8p-16385:0:-1: ++# BZ12701 %*5Lg: -0x8p-16385:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-16385:0:-1: ++# BZ12701 %*5Lg: 0x8p-16385:0:-1: ++%5Lg: 0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef01p012345:0:6: ++%5Lg: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef01p+12345:0:6: ++%5Lg: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*5Lg: 0x7.fffffffffffffff8p16381:0:6: ++%5Lg: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*5Lg: 0xf.fffffffffffffffp+16380:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-16385:0:-1: ++# BZ12701 %*5Lg: +0x8p-16385:0:-1: ++%5Lg: +0x2.3456789abcdef01p012345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef01p012345:0:6: ++%5Lg: +0x2.3456789abcdef01p+12345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef01p+12345:0:6: ++%5Lg: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2: ++%*5Lg: +0x7.fffffffffffffff8p16381:0:6: ++%5Lg: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3: ++%*5Lg: +0xf.fffffffffffffffp+16380:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%37Lg: :0:-1: ++%*37Lg: :0:-1: ++%37Lg: -infinity:1:10:-inf: ++%*37Lg: -infinity:0:10: ++%37Lg: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37Lg: -0xf.fffffffffffffffp+16380:0:28: ++%37Lg: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383: ++%*37Lg: -0x7.fffffffffffffff8p16381:0:28: ++%37Lg: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: -0x2.3456789abcdef01p+12345:0:28: ++%37Lg: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: -0x2.3456789abcdef01p012345:0:28: ++%37Lg: -0x8p-16385:1:12:-0x1p-16382: ++%*37Lg: -0x8p-16385:0:12: ++%37Lg: -0x0p+0:1:8:-0x0: ++%*37Lg: -0x0p+0:0:8: ++%37Lg: -0x0p0:1:7:-0x0: ++%*37Lg: -0x0p0:0:7: ++%37Lg: -nan(09A_Zaz):1:14:-nan: ++%*37Lg: -nan(09A_Zaz):0:14: ++%37Lg: -nan():1:7:-nan: ++%*37Lg: -nan():0:7: ++%37Lg: nan():1:6:nan: ++%*37Lg: nan():0:6: ++%37Lg: nan(09A_Zaz):1:13:nan: ++%*37Lg: nan(09A_Zaz):0:13: ++%37Lg: 0x0p0:1:6:0x0: ++%*37Lg: 0x0p0:0:6: ++%37Lg: 0x0p+0:1:7:0x0: ++%*37Lg: 0x0p+0:0:7: ++%37Lg: 0x8p-16385:1:11:0x1p-16382: ++%*37Lg: 0x8p-16385:0:11: ++%37Lg: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: 0x2.3456789abcdef01p012345:0:27: ++%37Lg: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: 0x2.3456789abcdef01p+12345:0:27: ++%37Lg: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37Lg: 0x7.fffffffffffffff8p16381:0:27: ++%37Lg: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37Lg: 0xf.fffffffffffffffp+16380:0:27: ++%37Lg: infinity:1:9:inf: ++%*37Lg: infinity:0:9: ++%37Lg: +nan():1:7:nan: ++%*37Lg: +nan():0:7: ++%37Lg: +nan(09A_Zaz):1:14:nan: ++%*37Lg: +nan(09A_Zaz):0:14: ++%37Lg: +0x0p0:1:7:0x0: ++%*37Lg: +0x0p0:0:7: ++%37Lg: +0x0p+0:1:8:0x0: ++%*37Lg: +0x0p+0:0:8: ++%37Lg: +0x8p-16385:1:12:0x1p-16382: ++%*37Lg: +0x8p-16385:0:12: ++%37Lg: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: +0x2.3456789abcdef01p012345:0:28: ++%37Lg: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: +0x2.3456789abcdef01p+12345:0:28: ++%37Lg: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383: ++%*37Lg: +0x7.fffffffffffffff8p16381:0:28: ++%37Lg: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383: ++%*37Lg: +0xf.fffffffffffffffp+16380:0:28: ++%37Lg: +infinity:1:10:inf: ++%*37Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..a274698774017b4b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LG:-0X2.3456789ABCDEF01P+12345:0:27: ++%LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LG:-0X2.3456789ABCDEF01P012345:0:27: ++%LG:-0X8P-16385:1:11:-0x1p-16382: ++%*LG:-0X8P-16385:0:11: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-16385:1:10:0x1p-16382: ++%*LG:0X8P-16385:0:10: ++%LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:0X2.3456789ABCDEF01P012345:0:26: ++%LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:0X2.3456789ABCDEF01P+12345:0:26: ++%LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-16385:1:11:0x1p-16382: ++%*LG:+0X8P-16385:0:11: ++%LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:+0X2.3456789ABCDEF01P012345:0:27: ++%LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:+0X2.3456789ABCDEF01P+12345:0:27: ++%LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%1LG:-0X2.3456789ABCDEF01P012345:0:-1: ++%*1LG:-0X2.3456789ABCDEF01P012345:0:-1: ++%1LG:-0X8P-16385:0:-1: ++%*1LG:-0X8P-16385:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-16385:1:1:0x0: ++%*1LG:0X8P-16385:0:1: ++%1LG:0X2.3456789ABCDEF01P012345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF01P012345:0:1: ++%1LG:0X2.3456789ABCDEF01P+12345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF01P+12345:0:1: ++%1LG:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFFFF8P16381:0:1: ++%1LG:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFFFFP+16380:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-16385:0:-1: ++%*1LG:+0X8P-16385:0:-1: ++%1LG:+0X2.3456789ABCDEF01P012345:0:-1: ++%*1LG:+0X2.3456789ABCDEF01P012345:0:-1: ++%1LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LG:-0X2.3456789ABCDEF01P+12345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF01P+12345:0:2: ++%2LG:-0X2.3456789ABCDEF01P012345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF01P012345:0:2: ++%2LG:-0X8P-16385:1:2:-0x0: ++%*2LG:-0X8P-16385:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-16385:0:-1: ++# BZ12701 %*2LG:0X8P-16385:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-16385:1:2:0x0: ++%*2LG:+0X8P-16385:0:2: ++%2LG:+0X2.3456789ABCDEF01P012345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF01P012345:0:2: ++%2LG:+0X2.3456789ABCDEF01P+12345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF01P+12345:0:2: ++%2LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LG:-0X8P-16385:0:-1: ++# BZ12701 %*3LG:-0X8P-16385:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-16385:1:3:0x1p3: ++%*3LG:0X8P-16385:0:3: ++%3LG:0X2.3456789ABCDEF01P012345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF01P012345:0:3: ++%3LG:0X2.3456789ABCDEF01P+12345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF01P+12345:0:3: ++%3LG:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFFFF8P16381:0:3: ++%3LG:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFFFFP+16380:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-16385:0:-1: ++# BZ12701 %*3LG:+0X8P-16385:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF01P012345:0:4: ++%4LG:-0X8P-16385:1:4:-0x1p3: ++%*4LG:-0X8P-16385:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-16385:0:-1: ++# BZ12701 %*4LG:0X8P-16385:0:-1: ++%4LG:0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF01P012345:0:4: ++%4LG:0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-16385:1:4:0x1p3: ++%*4LG:+0X8P-16385:0:4: ++%4LG:+0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF01P012345:0:4: ++%4LG:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF01P012345:0:5: ++# BZ12701 %5LG:-0X8P-16385:0:-1: ++# BZ12701 %*5LG:-0X8P-16385:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-16385:0:-1: ++# BZ12701 %*5LG:0X8P-16385:0:-1: ++%5LG:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF01P012345:0:5: ++%5LG:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-16385:0:-1: ++# BZ12701 %*5LG:+0X8P-16385:0:-1: ++%5LG:+0X2.3456789ABCDEF01P012345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF01P012345:0:5: ++%5LG:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %6LG:-0X8P-16385:0:-1: ++# BZ12701 %*6LG:-0X8P-16385:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-16385:1:6:0x1p2: ++%*6LG:0X8P-16385:0:6: ++%6LG:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF01P012345:0:6: ++%6LG:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-16385:0:-1: ++# BZ12701 %*6LG:+0X8P-16385:0:-1: ++%6LG:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF01P012345:0:6: ++%6LG:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%22LG::0:-1: ++%*22LG::0:-1: ++%22LG:-INFINITY:1:9:-inf: ++%*22LG:-INFINITY:0:9: ++# BZ12701 %22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%22LG:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22LG:-0X2.3456789ABCDEF01P012345:0:22: ++%22LG:-0X8P-16385:1:11:-0x1p-16382: ++%*22LG:-0X8P-16385:0:11: ++%22LG:-0X0P+0:1:7:-0x0: ++%*22LG:-0X0P+0:0:7: ++%22LG:-0X0P0:1:6:-0x0: ++%*22LG:-0X0P0:0:6: ++%22LG:-NAN(09A_Zaz):1:13:-nan: ++%*22LG:-NAN(09A_Zaz):0:13: ++%22LG:-NAN():1:6:-nan: ++%*22LG:-NAN():0:6: ++%22LG:NAN():1:5:nan: ++%*22LG:NAN():0:5: ++%22LG:NAN(09A_Zaz):1:12:nan: ++%*22LG:NAN(09A_Zaz):0:12: ++%22LG:0X0P0:1:5:0x0: ++%*22LG:0X0P0:0:5: ++%22LG:0X0P+0:1:6:0x0: ++%*22LG:0X0P+0:0:6: ++%22LG:0X8P-16385:1:10:0x1p-16382: ++%*22LG:0X8P-16385:0:10: ++%22LG:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LG:0X2.3456789ABCDEF01P012345:0:22: ++%22LG:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LG:0X2.3456789ABCDEF01P+12345:0:22: ++%22LG:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3: ++%*22LG:0X7.FFFFFFFFFFFFFFF8P16381:0:22: ++%22LG:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4: ++%*22LG:0XF.FFFFFFFFFFFFFFFP+16380:0:22: ++%22LG:INFINITY:1:8:inf: ++%*22LG:INFINITY:0:8: ++%22LG:+NAN():1:6:nan: ++%*22LG:+NAN():0:6: ++%22LG:+NAN(09A_Zaz):1:13:nan: ++%*22LG:+NAN(09A_Zaz):0:13: ++%22LG:+0X0P0:1:6:0x0: ++%*22LG:+0X0P0:0:6: ++%22LG:+0X0P+0:1:7:0x0: ++%*22LG:+0X0P+0:0:7: ++%22LG:+0X8P-16385:1:11:0x1p-16382: ++%*22LG:+0X8P-16385:0:11: ++%22LG:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22LG:+0X2.3456789ABCDEF01P012345:0:22: ++# BZ12701 %22LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%22LG:+INFINITY:1:9:inf: ++%*22LG:+INFINITY:0:9: ++%37LG::0:-1: ++%*37LG::0:-1: ++%37LG:-INFINITY:1:9:-inf: ++%*37LG:-INFINITY:0:9: ++%37LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*37LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:-0X2.3456789ABCDEF01P+12345:0:27: ++%37LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:-0X2.3456789ABCDEF01P012345:0:27: ++%37LG:-0X8P-16385:1:11:-0x1p-16382: ++%*37LG:-0X8P-16385:0:11: ++%37LG:-0X0P+0:1:7:-0x0: ++%*37LG:-0X0P+0:0:7: ++%37LG:-0X0P0:1:6:-0x0: ++%*37LG:-0X0P0:0:6: ++%37LG:-NAN(09A_Zaz):1:13:-nan: ++%*37LG:-NAN(09A_Zaz):0:13: ++%37LG:-NAN():1:6:-nan: ++%*37LG:-NAN():0:6: ++%37LG:NAN():1:5:nan: ++%*37LG:NAN():0:5: ++%37LG:NAN(09A_Zaz):1:12:nan: ++%*37LG:NAN(09A_Zaz):0:12: ++%37LG:0X0P0:1:5:0x0: ++%*37LG:0X0P0:0:5: ++%37LG:0X0P+0:1:6:0x0: ++%*37LG:0X0P+0:0:6: ++%37LG:0X8P-16385:1:10:0x1p-16382: ++%*37LG:0X8P-16385:0:10: ++%37LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:0X2.3456789ABCDEF01P012345:0:26: ++%37LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:0X2.3456789ABCDEF01P+12345:0:26: ++%37LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*37LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%37LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*37LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%37LG:INFINITY:1:8:inf: ++%*37LG:INFINITY:0:8: ++%37LG:+NAN():1:6:nan: ++%*37LG:+NAN():0:6: ++%37LG:+NAN(09A_Zaz):1:13:nan: ++%*37LG:+NAN(09A_Zaz):0:13: ++%37LG:+0X0P0:1:6:0x0: ++%*37LG:+0X0P0:0:6: ++%37LG:+0X0P+0:1:7:0x0: ++%*37LG:+0X0P+0:0:7: ++%37LG:+0X8P-16385:1:11:0x1p-16382: ++%*37LG:+0X8P-16385:0:11: ++%37LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:+0X2.3456789ABCDEF01P012345:0:27: ++%37LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:+0X2.3456789ABCDEF01P+12345:0:27: ++%37LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG:+INFINITY:1:9:inf: ++%*37LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %5LG: -0X8P-16385:0:-1: ++# BZ12701 %*5LG: -0X8P-16385:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-16385:0:-1: ++# BZ12701 %*5LG: 0X8P-16385:0:-1: ++%5LG: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF01P012345:0:6: ++%5LG: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-16385:0:-1: ++# BZ12701 %*5LG: +0X8P-16385:0:-1: ++%5LG: +0X2.3456789ABCDEF01P012345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF01P012345:0:6: ++%5LG: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%37LG: :0:-1: ++%*37LG: :0:-1: ++%37LG: -INFINITY:1:10:-inf: ++%*37LG: -INFINITY:0:10: ++%37LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383: ++%*37LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LG: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: -0X2.3456789ABCDEF01P+12345:0:28: ++%37LG: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: -0X2.3456789ABCDEF01P012345:0:28: ++%37LG: -0X8P-16385:1:12:-0x1p-16382: ++%*37LG: -0X8P-16385:0:12: ++%37LG: -0X0P+0:1:8:-0x0: ++%*37LG: -0X0P+0:0:8: ++%37LG: -0X0P0:1:7:-0x0: ++%*37LG: -0X0P0:0:7: ++%37LG: -NAN(09A_Zaz):1:14:-nan: ++%*37LG: -NAN(09A_Zaz):0:14: ++%37LG: -NAN():1:7:-nan: ++%*37LG: -NAN():0:7: ++%37LG: NAN():1:6:nan: ++%*37LG: NAN():0:6: ++%37LG: NAN(09A_Zaz):1:13:nan: ++%*37LG: NAN(09A_Zaz):0:13: ++%37LG: 0X0P0:1:6:0x0: ++%*37LG: 0X0P0:0:6: ++%37LG: 0X0P+0:1:7:0x0: ++%*37LG: 0X0P+0:0:7: ++%37LG: 0X8P-16385:1:11:0x1p-16382: ++%*37LG: 0X8P-16385:0:11: ++%37LG: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: 0X2.3456789ABCDEF01P012345:0:27: ++%37LG: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: 0X2.3456789ABCDEF01P+12345:0:27: ++%37LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG: INFINITY:1:9:inf: ++%*37LG: INFINITY:0:9: ++%37LG: +NAN():1:7:nan: ++%*37LG: +NAN():0:7: ++%37LG: +NAN(09A_Zaz):1:14:nan: ++%*37LG: +NAN(09A_Zaz):0:14: ++%37LG: +0X0P0:1:7:0x0: ++%*37LG: +0X0P0:0:7: ++%37LG: +0X0P+0:1:8:0x0: ++%*37LG: +0X0P+0:0:8: ++%37LG: +0X8P-16385:1:12:0x1p-16382: ++%*37LG: +0X8P-16385:0:12: ++%37LG: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: +0X2.3456789ABCDEF01P012345:0:28: ++%37LG: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: +0X2.3456789ABCDEF01P+12345:0:28: ++%37LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383: ++%*37LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383: ++%*37LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LG: +INFINITY:1:10:inf: ++%*37LG: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..7e8c1d66a64e772e +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c +@@ -0,0 +1,33 @@ ++/* Test skeleton for formatted scanf input for ldbl-96 conversions. ++ Copyright (C) 2025 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++ ++#undef compare_real ++#define compare_real(x, y) \ ++({ \ ++ ieee_long_double_shape_type ux = { .value = x }, uy = { .value = y }; \ ++ (ux.parts.lsw == uy.parts.lsw && ux.parts.msw == uy.parts.msw \ ++ && ux.parts.sign_exponent == uy.parts.sign_exponent); \ ++}) ++ ++typedef long double type_t; ++ ++#include "tst-scanf-format-skeleton.c" diff --git a/SOURCES/glibc-RHEL-84324.patch b/SOURCES/glibc-RHEL-84325.patch similarity index 92% rename from SOURCES/glibc-RHEL-84324.patch rename to SOURCES/glibc-RHEL-84325.patch index d2da81f..d1e3bcb 100644 --- a/SOURCES/glibc-RHEL-84324.patch +++ b/SOURCES/glibc-RHEL-84325.patch @@ -14,10 +14,10 @@ Date: Tue Oct 5 14:52:05 2021 -0400 Reviewed-by: Adhemerval Zanella diff --git a/rt/tst-cpuclock2.c b/rt/tst-cpuclock2.c -index eebc3609d0aa88da..32a1b75c2f3f5d18 100644 +index 6981b00376aca030..90ff101841ce8b43 100644 --- a/rt/tst-cpuclock2.c +++ b/rt/tst-cpuclock2.c -@@ -62,22 +62,9 @@ chew_cpu (void *arg) +@@ -64,22 +64,9 @@ chew_cpu (void *arg) return NULL; } @@ -42,7 +42,7 @@ index eebc3609d0aa88da..32a1b75c2f3f5d18 100644 { const struct timespec sleeptime = { .tv_nsec = 100000000 }; int e = clock_nanosleep (clock, 0, &sleeptime, NULL); -@@ -85,13 +72,13 @@ test_nanosleep (clockid_t clock, const char *which, +@@ -87,13 +74,13 @@ test_nanosleep (clockid_t clock, const char *which, { printf ("clock_nanosleep not supported for %s CPU clock: %s\n", which, strerror (e)); @@ -58,7 +58,7 @@ index eebc3609d0aa88da..32a1b75c2f3f5d18 100644 } struct timespec after; -@@ -100,16 +87,7 @@ test_nanosleep (clockid_t clock, const char *which, +@@ -102,16 +89,7 @@ test_nanosleep (clockid_t clock, const char *which, printf ("clock_gettime on %s CPU clock %lx => %s\n", which, (unsigned long int) clock, strerror (errno)); *bad = 1; @@ -76,7 +76,7 @@ index eebc3609d0aa88da..32a1b75c2f3f5d18 100644 } struct timespec sleeptimeabs = sleeptime; -@@ -126,7 +104,7 @@ test_nanosleep (clockid_t clock, const char *which, +@@ -128,7 +106,7 @@ test_nanosleep (clockid_t clock, const char *which, printf ("absolute clock_nanosleep on %s CPU clock: %s\n", which, strerror (e)); *bad = 1; @@ -85,7 +85,7 @@ index eebc3609d0aa88da..32a1b75c2f3f5d18 100644 } struct timespec afterabs; -@@ -135,28 +113,10 @@ test_nanosleep (clockid_t clock, const char *which, +@@ -137,28 +115,10 @@ test_nanosleep (clockid_t clock, const char *which, printf ("clock_gettime on %s CPU clock %lx => %s\n", which, (unsigned long int) clock, strerror (errno)); *bad = 1; @@ -116,7 +116,7 @@ index eebc3609d0aa88da..32a1b75c2f3f5d18 100644 } -@@ -290,37 +250,12 @@ do_test (void) +@@ -292,37 +252,12 @@ do_test (void) printf ("self thread after sleep => %ju.%.9ju\n", (uintmax_t) me_after.tv_sec, (uintmax_t) me_after.tv_nsec); diff --git a/SOURCES/wrap-find-debuginfo.sh b/SOURCES/wrap-find-debuginfo.sh index 4cbb01b..59c7356 100644 --- a/SOURCES/wrap-find-debuginfo.sh +++ b/SOURCES/wrap-find-debuginfo.sh @@ -40,21 +40,13 @@ trap cleanup 0 sysroot_path="$1" shift +# Resolve symbolic link, so that the activities below only alter the +# file it points to. +ldso_path="$(readlink -f "$sysroot_path/$1")" +shift script_path="$1" shift -# See ldso_path setting in glibc.spec. -ldso_path= -for ldso_candidate in `find "$sysroot_path" -maxdepth 2 \ - -regextype posix-extended -regex '.*/ld(-.*|64|)\.so\.[0-9]+$' -type f` ; do - if test -z "$ldso_path" ; then - ldso_path="$ldso_candidate" - else - echo "error: multiple ld.so candidates: $ldso_path, $ldso_candidate" - exit 1 - fi -done - # libc.so.6 always uses this name, so it is simpler to locate. libc_path=`find "$sysroot_path" -name libc.so.6` diff --git a/SPECS/glibc.spec b/SPECS/glibc.spec index 2b477dd..4804222 100644 --- a/SPECS/glibc.spec +++ b/SPECS/glibc.spec @@ -157,7 +157,7 @@ end \ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 125%{?dist}.8 +Release: 168%{?dist}.14 # In general, GPLv2+ is used by programs, LGPLv2+ is used for # libraries. @@ -199,6 +199,75 @@ Source11: parse-SUPPORTED.py Source12: ChangeLog.old Source13: nscd-sysusers.conf +# glibc_ldso: ABI-specific program interpreter name. Used for debuginfo +# extraction (wrap-find-debuginfo.sh) and smoke testing ($run_ldso below). +# +# glibc_has_libnldbl: -lnldbl is supported for long double as double. +# +# glibc_has_libmvec: libmvec is available. +# +# glibc_rtld_early_cflags: The ABI baseline for architectures with +# potentially a later baseline. The --with-rtld-early-cflags= +# configure option is passed to the main glibc build if this macro is +# defined. +%ifarch %{ix86} +%global glibc_ldso /lib/ld-linux.so.2 +%global glibc_has_libnldbl 0 +%global glibc_has_libmvec 0 +%endif +%ifarch aarch64 +%global glibc_ldso /lib/ld-linux-aarch64.so.1 +%global glibc_has_libnldbl 0 +%global glibc_has_libmvec 0 +%endif +%ifarch ppc +%global glibc_ldso /lib/ld.so.1 +%global glibc_has_libnldbl 1 +%global glibc_has_libmvec 0 +%endif +%ifarch ppc64 +%global glibc_ldso /lib64/ld64.so.1 +%global glibc_has_libnldbl 1 +%global glibc_has_libmvec 0 +%endif +%ifarch ppc64le +%global glibc_ldso /lib64/ld64.so.2 +%global glibc_has_libnldbl 1 +%global glibc_has_libmvec 0 +%define glibc_rtld_early_cflags -mcpu=power8 +%endif +%ifarch riscv64 +%global glibc_ldso /lib/ld-linux-riscv64-lp64d.so.1 +%global glibc_has_libnldbl 0 +%global glibc_has_libmvec 0 +%endif +%ifarch s390 +%global glibc_ldso /lib/ld.so.1 +%global glibc_has_libnldbl 1 +%global glibc_has_libmvec 0 +%define glibc_rtld_early_cflags -march=z13 +%endif +%ifarch s390x +%global glibc_ldso /lib/ld64.so.1 +%global glibc_has_libnldbl 1 +%global glibc_has_libmvec 0 +%define glibc_rtld_early_cflags -march=z13 +%endif +%ifarch x86_64 x86_64_v2 x86_64_v3 x86_64_v4 +%global glibc_ldso /lib64/ld-linux-x86-64.so.2 +%global glibc_has_libnldbl 0 +%global glibc_has_libmvec 1 +%define glibc_rtld_early_cflags -march=x86-64 +%endif + +# This is necessary to enable source RPM building under noarch, as +# used by some build environments. +%ifarch noarch +%global glibc_ldso /lib/ld.so +%global glibc_has_libnldbl 0 +%global glibc_has_libmvec 0 +%endif + ###################################################################### # Activate the wrapper script for debuginfo generation, by rewriting # the definition of __debug_install_post. @@ -210,7 +279,7 @@ local original = rpm.expand("%{macrobody:__debug_install_post}") -- Avoid embedded newlines that confuse the macro definition. original = original:match("^%s*(.-)%s*$"):gsub("\\\n", "") rpm.define("__debug_install_post bash " .. wrapper - .. " " .. sysroot .. " " .. original) + .. " " .. sysroot .. " %{_prefix}/%{glibc_ldso} " .. original) } # sysroot package support. These contain arch-specific packages, so @@ -869,39 +938,252 @@ Patch630: glibc-RHEL-46979-1.patch Patch631: glibc-RHEL-46979-2.patch Patch632: glibc-RHEL-46979-3.patch Patch633: glibc-RHEL-46979-4.patch -Patch634: glibc-RHEL-49489-3.patch -Patch635: glibc-RHEL-49489-4.patch -Patch636: glibc-RHEL-69003.patch -Patch637: glibc-RHEL-78939-1.patch -Patch638: glibc-RHEL-78939-2.patch -Patch639: glibc-RHEL-78939-3.patch -Patch640: glibc-RHEL-78939-4.patch -Patch641: glibc-RHEL-78939-5.patch -Patch642: glibc-RHEL-78939-6.patch -Patch643: glibc-RHEL-78939-7.patch -Patch644: glibc-RHEL-78939-8.patch -Patch645: glibc-RHEL-78939-9.patch -Patch646: glibc-RHEL-78939-10.patch -Patch647: glibc-RHEL-70707-1.patch -Patch648: glibc-RHEL-70707-2.patch -Patch649: glibc-RHEL-70707-3.patch -Patch650: glibc-RHEL-70707-4.patch -Patch651: glibc-RHEL-84324.patch -Patch652: glibc-RHEL-83294-1.patch -Patch653: glibc-RHEL-83294-2.patch -Patch654: glibc-RHEL-83294-3.patch -Patch655: glibc-RHEL-65285-1.patch -Patch656: glibc-RHEL-65285-2.patch -Patch657: glibc-RHEL-65285-3.patch -Patch658: glibc-RHEL-65285-4.patch -Patch659: glibc-RHEL-65285-5.patch -Patch660: glibc-RHEL-83524.patch +Patch634: glibc-RHEL-59494-1.patch +Patch635: glibc-RHEL-59494-2.patch +Patch636: glibc-RHEL-59494-3.patch +Patch637: glibc-RHEL-41189.patch +Patch638: glibc-RHEL-46728.patch +Patch639: glibc-RHEL-46734.patch +Patch640: glibc-RHEL-46735.patch +Patch641: glibc-RHEL-60466-1.patch +Patch642: glibc-RHEL-60466-2.patch +Patch643: glibc-RHEL-46739-1.patch +Patch644: glibc-RHEL-46739-2.patch +Patch645: glibc-RHEL-46739-3.patch +Patch646: glibc-RHEL-46739-4.patch +Patch647: glibc-RHEL-46739-5.patch +Patch648: glibc-RHEL-46739-6.patch +Patch649: glibc-RHEL-46739-7.patch +Patch650: glibc-RHEL-46739-8.patch +Patch651: glibc-RHEL-46739-9.patch +Patch652: glibc-RHEL-46739-10.patch +Patch653: glibc-RHEL-46739-11.patch +Patch654: glibc-RHEL-50545-1.patch +Patch655: glibc-RHEL-50545-2.patch +Patch656: glibc-RHEL-50545-3.patch +Patch657: glibc-RHEL-50545-4.patch +Patch658: glibc-RHEL-50545-5.patch +Patch659: glibc-RHEL-50545-6.patch +Patch660: glibc-RHEL-50545-7.patch +Patch661: glibc-RHEL-50545-8.patch +Patch662: glibc-RHEL-50545-9.patch +Patch663: glibc-RHEL-50545-10.patch +Patch664: glibc-RHEL-50545-11.patch +Patch665: glibc-RHEL-50545-12.patch +Patch666: glibc-RHEL-50545-13.patch +Patch667: glibc-RHEL-50545-14.patch +Patch668: glibc-RHEL-50662-1.patch +Patch669: glibc-RHEL-50662-2.patch +Patch670: glibc-RHEL-50662-3.patch +Patch671: glibc-RHEL-50662-4.patch +Patch672: glibc-RHEL-50662-5.patch +Patch673: glibc-RHEL-50662-6.patch +Patch674: glibc-RHEL-46724.patch +Patch675: glibc-RHEL-66253-1.patch +Patch676: glibc-RHEL-66253-2.patch +Patch677: glibc-RHEL-66253-3.patch +Patch678: glibc-RHEL-46733-1.patch +Patch679: glibc-RHEL-46733-2.patch +Patch680: glibc-RHEL-46733-3.patch +Patch681: glibc-RHEL-54413.patch +Patch682: glibc-RHEL-46736-1.patch +Patch683: glibc-RHEL-46736-2.patch +Patch684: glibc-RHEL-46736-3.patch +Patch685: glibc-RHEL-46736-4.patch +Patch686: glibc-RHEL-46736-5.patch +Patch687: glibc-RHEL-46736-6.patch +Patch688: glibc-RHEL-46736-7.patch +Patch689: glibc-RHEL-46736-8.patch +Patch690: glibc-RHEL-46736-9.patch +Patch691: glibc-RHEL-46736-10.patch +Patch692: glibc-RHEL-46736-11.patch +Patch693: glibc-RHEL-50548-1.patch +Patch694: glibc-RHEL-50548-2.patch +Patch695: glibc-RHEL-50548-3.patch +Patch696: glibc-RHEL-46725-1.patch +Patch697: glibc-RHEL-46725-2.patch +Patch698: glibc-RHEL-46725-3.patch +Patch699: glibc-RHEL-46725-4.patch +Patch700: glibc-RHEL-46725-5.patch +Patch701: glibc-RHEL-46725-6.patch +Patch702: glibc-RHEL-46725-7.patch +Patch703: glibc-RHEL-46725-8.patch +Patch704: glibc-RHEL-46725-9.patch +Patch705: glibc-RHEL-46725-10.patch +Patch706: glibc-RHEL-46725-11.patch +Patch707: glibc-RHEL-46725-12.patch +Patch708: glibc-RHEL-1915-1.patch +Patch709: glibc-RHEL-1915-2.patch +Patch710: glibc-RHEL-1915-3.patch +Patch711: glibc-RHEL-1915-4.patch +Patch712: glibc-RHEL-1915-5.patch +Patch713: glibc-RHEL-1915-6.patch +Patch714: glibc-RHEL-1915-7.patch +Patch715: glibc-RHEL-1915-8.patch +Patch716: glibc-RHEL-1915-9.patch +Patch717: glibc-RHEL-47467.patch +Patch718: glibc-RHEL-56032.patch +Patch719: glibc-RHEL-67692-1.patch +Patch720: glibc-RHEL-67692-2.patch +Patch721: glibc-RHEL-67692-3.patch +Patch722: glibc-RHEL-67692-4.patch +Patch723: glibc-RHEL-46738-1.patch +Patch724: glibc-RHEL-46738-2.patch +Patch725: glibc-RHEL-46738-3.patch +Patch726: glibc-RHEL-46738-4.patch +Patch727: glibc-RHEL-65356-1.patch +Patch728: glibc-RHEL-65356-2.patch +Patch729: glibc-RHEL-38225-1.patch +Patch730: glibc-RHEL-38225-2.patch +Patch731: glibc-RHEL-54250.patch +Patch732: glibc-RHEL-56743.patch +Patch733: glibc-RHEL-57586.patch +Patch734: glibc-RHEL-56539.patch +Patch735: glibc-RHEL-56540-1.patch +Patch736: glibc-RHEL-56540-2.patch +Patch737: glibc-RHEL-56540-3.patch +Patch738: glibc-RHEL-58671.patch +Patch739: glibc-RHEL-46740.patch +Patch740: glibc-RHEL-65910.patch +Patch741: glibc-RHEL-69028.patch +Patch742: glibc-RHEL-70395-1.patch +Patch743: glibc-RHEL-70395-2.patch +Patch744: glibc-RHEL-68850-1.patch +Patch745: glibc-RHEL-68850-2.patch +Patch746: glibc-RHEL-61568.patch +Patch747: glibc-RHEL-58979.patch +Patch748: glibc-RHEL-65354.patch +Patch749: glibc-RHEL-56542-1.patch +Patch750: glibc-RHEL-56542-2.patch +Patch751: glibc-RHEL-56542-3.patch +Patch752: glibc-RHEL-56542-4.patch +Patch753: glibc-RHEL-56542-5.patch +Patch754: glibc-RHEL-56542-6.patch +Patch755: glibc-RHEL-56542-7.patch +Patch756: glibc-RHEL-56542-8.patch +Patch757: glibc-RHEL-56542-9.patch +Patch758: glibc-RHEL-65358-1.patch +Patch759: glibc-RHEL-65358-2.patch +Patch760: glibc-RHEL-65358-3.patch +Patch761: glibc-RHEL-65358-4.patch +Patch762: glibc-RHEL-65358-5.patch +Patch763: glibc-RHEL-58989-1.patch +Patch764: glibc-RHEL-58989-2.patch +Patch765: glibc-RHEL-62716-1.patch +Patch766: glibc-RHEL-62716-2.patch +Patch767: glibc-RHEL-68857.patch +Patch768: glibc-RHEL-69633-1.patch +Patch769: glibc-RHEL-69633-2.patch +Patch770: glibc-RHEL-58987-1.patch +Patch771: glibc-RHEL-58987-2.patch +Patch772: glibc-RHEL-61559-1.patch +Patch773: glibc-RHEL-61559-2.patch +Patch774: glibc-RHEL-61559-3.patch +Patch775: glibc-RHEL-61559-4.patch +Patch776: glibc-RHEL-50550.patch +Patch777: glibc-RHEL-65359-1.patch +Patch778: glibc-RHEL-65359-2.patch +Patch779: glibc-RHEL-65359-3.patch +Patch780: glibc-RHEL-65359-4.patch +Patch781: glibc-RHEL-75810.patch +Patch782: glibc-RHEL-46761-1.patch +Patch783: glibc-RHEL-46761-2.patch +Patch784: glibc-RHEL-46761-3.patch +Patch785: glibc-RHEL-46761-4.patch +Patch786: glibc-RHEL-75810-2.patch +Patch787: glibc-RHEL-75810-3.patch +Patch788: glibc-RHEL-46761-5.patch +Patch789: glibc-RHEL-75938.patch +Patch790: glibc-RHEL-67592-1.patch +Patch791: glibc-RHEL-67592-2.patch +Patch792: glibc-RHEL-67592-3.patch +Patch793: glibc-RHEL-67592-4.patch +Patch794: glibc-RHEL-2419-1.patch +Patch795: glibc-RHEL-2419-2.patch +Patch796: glibc-RHEL-2419-3.patch +Patch797: glibc-RHEL-2419-4.patch +Patch798: glibc-RHEL-2419-5.patch +Patch799: glibc-RHEL-2419-6.patch +Patch800: glibc-RHEL-2419-7.patch +Patch801: glibc-RHEL-2419-8.patch +Patch802: glibc-RHEL-2419-9.patch +Patch803: glibc-RHEL-2419-10.patch +Patch804: glibc-RHEL-46738-5.patch +Patch805: glibc-RHEL-46761-6.patch +Patch806: glibc-RHEL-24740-1.patch +Patch807: glibc-RHEL-24740-2.patch +Patch808: glibc-RHEL-24740-3.patch +Patch809: glibc-RHEL-71547.patch +Patch810: glibc-RHEL-46729.patch +Patch811: glibc-RHEL-61569-1.patch +Patch812: glibc-RHEL-61569-2.patch +Patch813: glibc-RHEL-83581.patch +Patch814: glibc-RHEL-83525.patch +Patch815: glibc-RHEL-83528-1.patch +Patch816: glibc-RHEL-83528-2.patch +Patch817: glibc-RHEL-80088-1.patch +Patch818: glibc-RHEL-80088-2.patch +Patch819: glibc-RHEL-80088-3.patch +Patch820: glibc-RHEL-80088-4.patch +Patch821: glibc-RHEL-80088-5.patch +Patch822: glibc-RHEL-84325.patch +Patch823: glibc-RHEL-83968.patch +Patch824: glibc-RHEL-83980-1.patch +Patch825: glibc-RHEL-83980-2.patch +Patch826: glibc-RHEL-83980-3.patch +Patch827: glibc-RHEL-83980-4.patch +Patch828: glibc-RHEL-83970-1.patch +Patch829: glibc-RHEL-83970-2.patch +Patch830: glibc-RHEL-83970-3.patch +Patch831: glibc-RHEL-83970-4.patch +Patch832: glibc-RHEL-83970-5.patch +Patch833: glibc-RHEL-83970-6.patch +Patch834: glibc-RHEL-83970-7.patch +Patch835: glibc-RHEL-83970-8.patch +Patch836: glibc-RHEL-83984-1.patch +Patch837: glibc-RHEL-83984-2.patch +Patch838: glibc-RHEL-83984-3.patch +Patch839: glibc-RHEL-83984-4.patch +Patch840: glibc-RHEL-83984-5.patch +Patch841: glibc-RHEL-83984-6.patch +Patch842: glibc-RHEL-83984-7.patch +Patch843: glibc-RHEL-83984-8.patch +Patch844: glibc-RHEL-84306-1.patch +Patch845: glibc-RHEL-84306-2.patch +Patch846: glibc-RHEL-84306-3.patch +Patch847: glibc-RHEL-84306-4.patch +Patch848: glibc-RHEL-84306-5.patch +Patch849: glibc-RHEL-84306-6.patch +Patch850: glibc-RHEL-84306-7.patch +Patch851: glibc-RHEL-84306-8.patch +Patch852: glibc-RHEL-84306-9.patch +Patch853: glibc-RHEL-84306-10.patch +Patch854: glibc-RHEL-84306-11.patch +Patch855: glibc-RHEL-84306-12.patch +Patch856: glibc-RHEL-84306-13.patch +Patch857: glibc-RHEL-84306-14.patch +Patch858: glibc-RHEL-84306-15.patch +Patch859: glibc-RHEL-83982-1.patch +Patch860: glibc-RHEL-83982-2.patch +Patch861: glibc-RHEL-83982-3.patch ############################################################################## # Continued list of core "glibc" package information: ############################################################################## Obsoletes: glibc-profile < 2.4 Provides: ldconfig +Provides: /sbin/ldconfig +Provides: /usr/sbin/ldconfig +# Historic file paths provided for backwards compatibility. +Provides: %{glibc_ldso} +Provides: /%{_lib}/libanl.so.1 +Provides: /%{_lib}/libc.so.6 +Provides: /%{_lib}/libdl.so.2 +Provides: /%{_lib}/libm.so.6 +Provides: /%{_lib}/libpthread.so.0 +Provides: /%{_lib}/libresolv.so.2 +Provides: /%{_lib}/librt.so.1 +Provides: /%{_lib}/libutil.so.1 # The dynamic linker supports DT_GNU_HASH Provides: rtld(GNU_HASH) @@ -1935,17 +2217,20 @@ build # distribution that supports multiple installed glibc versions. %define glibc_sysroot $RPM_BUILD_ROOT -# Remove existing file lists. -find . -type f -name '*.filelist' -exec rm -rf {} \; - -# Reload compiler and build options that were used during %%build. -GCC=`cat Gcc` +# Create symbolic links for Features/UsrMove (aka UsrMerge, MoveToUsr). +# See below: Remove UsrMove symbolic links. +usrmove_file_names="bin lib lib64 sbin" +for d in $usrmove_file_names ; do + mkdir -p "%{glibc_sysroot}/usr/$d" + ln -s "usr/$d" "%{glibc_sysroot}/$d" +done %ifarch riscv64 -# RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d. +# RISC-V ABI wants to install everything in /usr/lib64/lp64d. +# Make these be symlinks to /usr/lib64. See: # Make these be symlinks to /lib64 or /usr/lib64 respectively. See: # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ -for d in %{glibc_sysroot}%{_libdir} %{glibc_sysroot}/%{_lib}; do +for d in %{glibc_sysroot}%{_libdir}; do mkdir -p $d (cd $d && ln -sf . lp64d) done @@ -1961,6 +2246,16 @@ popd # via hardlinks, so we must group them ourselves. hardlink -c %{glibc_sysroot}/usr/lib/locale +%if %{glibc_autorequires} +mkdir -p %{glibc_sysroot}/%{_rpmconfigdir} %{glibc_sysroot}/%{_fileattrsdir} +sed < %{SOURCE3} \ + -e s/@VERSION@/%{version}/ \ + -e s/@RELEASE@/%{baserelease}/ \ + -e s/@SYMVER@/%{glibc_autorequires_symver}/ \ + > %{glibc_sysroot}/%{_rpmconfigdir}/glibc.req +cp %{SOURCE4} %{glibc_sysroot}/%{_fileattrsdir}/glibc.attr +%endif + # install_different: # Install all core libraries into DESTDIR/SUBDIR. Either the file is # installed as a copy or a symlink to the default install (if it is the @@ -1996,7 +2291,7 @@ install_different() libbase=${lib#*/} # Take care that `libbaseso' has a * that needs expanding so # take care with quoting. - libbaseso=$(basename %{glibc_sysroot}/%{_lib}/${libbase}.so.*) + libbaseso=$(basename %{glibc_sysroot}/%{_libdir}/${libbase}.so.*) # Only install if different from default build library. if cmp -s ${lib}.so ../build-%{target}/${lib}.so; then ln -sf "$subdir_up"/$libbaseso $libdestdir/$libbaseso @@ -2022,11 +2317,10 @@ install -p -D -m 0644 %{SOURCE13} ${RPM_BUILD_ROOT}%{_sysusersdir}/nscd.conf # XXX: This looks like a bug in glibc that accidentally installed these # wrong files. We probably don't need this today. rm -f %{glibc_sysroot}/%{_libdir}/libNoVersion* -rm -f %{glibc_sysroot}/%{_lib}/libNoVersion* # Remove the old nss modules. -rm -f %{glibc_sysroot}/%{_lib}/libnss1-* -rm -f %{glibc_sysroot}/%{_lib}/libnss-*.so.1 +rm -f %{glibc_sysroot}%{_libdir}/libnss1-* +rm -f %{glibc_sysroot}%{_libdir}/libnss-*.so.1 # This statically linked binary is no longer necessary in a world where # the default Fedora install uses an initramfs, and further we have rpm-ostree @@ -2200,13 +2494,6 @@ mkdir -p %{glibc_sysroot}/var/{db,run}/nscd touch %{glibc_sysroot}/var/{db,run}/nscd/{passwd,group,hosts,services} touch %{glibc_sysroot}/var/run/nscd/{socket,nscd.pid} -# Move libpcprofile.so and libmemusage.so into the proper library directory. -# They can be moved without any real consequences because users would not use -# them directly. -mkdir -p %{glibc_sysroot}%{_libdir} -mv -f %{glibc_sysroot}/%{_lib}/lib{pcprofile,memusage}.so \ - %{glibc_sysroot}%{_libdir} - # Disallow linking against libc_malloc_debug. rm %{glibc_sysroot}%{_libdir}/libc_malloc_debug.so @@ -2232,7 +2519,14 @@ done # that have old linker scripts that reference this file. We ship this only # in compat-libpthread-nonshared sub-package. ############################################################################## -ar cr %{glibc_sysroot}%{_prefix}/%{_lib}/libpthread_nonshared.a +ar cr %{glibc_sysroot}%{_libdir}/libpthread_nonshared.a + +# Remove UsrMove symbolic links. +# These should not end in the packaged contents. +# They are part of the filesystem package. +for d in $usrmove_file_names ; do + rm "%{glibc_sysroot}/$d" +done ############################################################################### # Sysroot package creation. @@ -2294,365 +2588,83 @@ popd # installed files. ############################################################################## -############################################################################## -# Build the file lists used for describing the package and subpackages. -############################################################################## -# There are several main file lists (and many more for -# the langpack sub-packages (langpack-${lang}.filelist)): -# * master.filelist -# - Master file list from which all other lists are built. -# * glibc.filelist -# - Files for the glibc packages. -# * common.filelist -# - Flies for the common subpackage. -# * utils.filelist -# - Files for the utils subpackage. -# * nscd.filelist -# - Files for the nscd subpackage. -# * devel.filelist -# - Files for the devel subpackage. -# * doc.filelist -# - Files for the documentation subpackage. -# * headers.filelist -# - Files for the headers subpackage. -# * static.filelist -# - Files for the static subpackage. -# * libnsl.filelist -# - Files for the libnsl subpackage -# * nss_db.filelist -# * nss_hesiod.filelist -# - File lists for nss_* NSS module subpackages. -# * nss-devel.filelist -# - File list with the .so symbolic links for NSS packages. -# * compat-libpthread-nonshared.filelist. -# - File list for compat-libpthread-nonshared subpackage. +# Placement of files in subpackages is mostly controlled by the +# %%files section below. There are some exceptions where a subset of +# files are put in one package and need to be elided from another +# package, and it's not possible to do this easily using explicit file +# lists or directory matching. For these exceptions. .filelist file +# are created. -# Create the main file lists. This way we can append to any one of them later -# wihtout having to create it. Note these are removed at the start of the -# install phase. -touch master.filelist -touch glibc.filelist -touch common.filelist -touch utils.filelist -touch gconv.filelist -touch nscd.filelist -touch devel.filelist -touch doc.filelist -touch headers.filelist -touch static.filelist -touch libnsl.filelist -touch nss_db.filelist -touch nss_hesiod.filelist -touch nss-devel.filelist -touch compat-libpthread-nonshared.filelist +# Make the sorting below more consistent. +export LC_ALL=C -############################################################################### -# Master file list, excluding a few things. -############################################################################### -{ - # List all files or links that we have created during install. - # Files with 'etc' are configuration files, likewise 'gconv-modules' - # and 'gconv-modules.cache' are caches, and we exclude them. - find %{glibc_sysroot} \( -type f -o -type l \) \ - \( \ - -name etc -printf "%%%%config " -o \ - -name gconv-modules.cache \ - -printf "%%%%verify(not md5 size mtime) " -o \ - -name gconv-modules* \ - -printf "%%%%verify(not md5 size mtime) %%%%config(noreplace) " \ - , \ - ! -path "*/lib/debug/*" -printf "/%%P\n" \) - # List all directories with a %%dir prefix. We omit the info directory and - # all directories in (and including) /usr/share/locale. - find %{glibc_sysroot} -type d \ - \( -path '*%{_prefix}/share/locale' -prune -o \ - \( -path '*%{_prefix}/share/*' \ -%if %{with docs} - ! -path '*%{_infodir}' -o \ -%endif - -path "*%{_prefix}/include/*" \ - \) -printf "%%%%dir /%%P\n" \) -} | { - # Also remove the *.mo entries. We will add them to the - # language specific sub-packages. - # libnss_ files go into subpackages related to NSS modules. - # and .*/share/i18n/charmaps/.*), they go into the sub-package - # "locale-source". /sys-root/ files are put into the sysroot package. - sed -e '\,.*/share/locale/\([^/_]\+\).*/LC_MESSAGES/.*\.mo,d' \ - -e '\,.*/share/i18n/locales/.*,d' \ - -e '\,.*/share/i18n/charmaps/.*,d' \ - -e '\,.*/etc/\(localtime\|nsswitch.conf\|ld\.so\.conf\|ld\.so\.cache\|default\|rpc\|gai\.conf\),d' \ - -e '\,.*/%{_libdir}/lib\(pcprofile\|memusage\)\.so,d' \ - -e '\,.*/bin/\(memusage\|mtrace\|xtrace\|pcprofiledump\),d' \ - -e '\,.*/sys-root,d' -} | sort > master.filelist +# `make_sysroot_filelist PATH FIND-ARGS LIST` writes %%files section +# lines for files and directories in the sysroot under PATH to the +# file LIST, with FIND-ARGS passed to the find command. The output is +# passed through sort. +make_sysroot_filelist () { + ( + find "%{glibc_sysroot}$1" \( -type f -o -type l \) $2 \ + -printf "$1/%%P\n" || true + find "%{glibc_sysroot}$1" -type d $2 -printf "%%%%dir $1/%%P\n" || true + ) | sort > "$3" +} -# The master file list is now used by each subpackage to list their own -# files. We go through each package and subpackage now and create their lists. -# Each subpackage picks the files from the master list that they need. -# The order of the subpackage list generation does not matter. +# `remove_from_filelist FILE1 FILE2` removes the lines from FILE1 +# which are also in FILE2. The lines must not contain tabs, and the +# file is sorted as a side effect. The input files must be sorted +# according to the sort command. +remove_from_filelist () { + comm -23 "$1" "$2" > "$1.tmp" + mv "$1.tmp" "$1" +} -# Make the master file list read-only after this point to avoid accidental -# modification. -chmod 0444 master.filelist - -############################################################################### -# glibc -############################################################################### - -# Add all files with the following exceptions: -# - The info files '%{_infodir}/dir' -# - The partial (lib*_p.a) static libraries, include files. -# - The static files, objects, unversioned DSOs, and nscd. -# - The bin, locale, some sbin, and share. -# - We want iconvconfig in the main package and we do this by using -# a double negation of -v and [^i] so it removes all files in -# sbin *but* iconvconfig. -# - All the libnss files (we add back the ones we want later). -# - All bench test binaries. -# - The aux-cache, since it's handled specially in the files section. -# - Extra gconv modules. We add the required modules later. -cat master.filelist \ - | grep -v \ - -e '%{_infodir}' \ - -e '%{_libdir}/lib.*_p.a' \ - -e '%{_prefix}/include' \ - -e '%{_libdir}/lib.*\.a' \ - -e '%{_libdir}/.*\.o' \ - -e '%{_libdir}/lib.*\.so' \ - -e '%{_libdir}/gconv/.*\.so$' \ - -e '%{_libdir}/gconv/gconv-modules.d/gconv-modules-extra\.conf$' \ - -e 'nscd' \ - -e '%{_prefix}/bin' \ - -e '%{_prefix}/lib/locale' \ - -e '%{_prefix}/sbin/[^i]' \ - -e '%{_prefix}/share' \ - -e '/var/db/Makefile' \ - -e '/libnss_.*\.so[0-9.]*$' \ - -e '/libnsl' \ - -e 'glibc-benchtests' \ - -e 'aux-cache' \ - > glibc.filelist - -# Add specific files: -# - The nss_files, nss_compat, and nss_db files. -# - The libmemusage.so and libpcprofile.so used by utils. -for module in compat files dns; do - cat master.filelist \ - | grep -E \ - -e "/libnss_$module(\.so\.[0-9.]+|-[0-9.]+\.so)$" \ - >> glibc.filelist -done -grep -e "libmemusage.so" -e "libpcprofile.so" master.filelist >> glibc.filelist - -############################################################################### -# glibc-gconv-extra -############################################################################### - -grep -e "gconv-modules-extra.conf" master.filelist > gconv.filelist - -# Put the essential gconv modules into the main package. -GconvBaseModules="ANSI_X3.110 ISO8859-15 ISO8859-1 CP1252" -GconvBaseModules="$GconvBaseModules UNICODE UTF-16 UTF-32 UTF-7" -%ifarch s390 s390x -GconvBaseModules="$GconvBaseModules ISO-8859-1_CP037_Z900 UTF8_UTF16_Z9" -GconvBaseModules="$GconvBaseModules UTF16_UTF32_Z9 UTF8_UTF32_Z9" -%endif -GconvAllModules=$(cat master.filelist | - sed -n 's|%{_libdir}/gconv/\(.*\)\.so|\1|p') - -# Put the base modules into glibc and the rest into glibc-gconv-extra -for conv in $GconvAllModules; do - if echo $GconvBaseModules | grep -q $conv; then - grep -E -e "%{_libdir}/gconv/$conv.so$" \ - master.filelist >> glibc.filelist - else - grep -E -e "%{_libdir}/gconv/$conv.so$" \ - master.filelist >> gconv.filelist - fi -done - -############################################################################### -# glibc-devel -############################################################################### - -# Static libraries that land in glibc-devel, not glibc-static. -devel_static_library_pattern='/lib\(\(c\|nldbl\|mvec\)_nonshared\|g\|ieee\|mcheck\|pthread\|dl\|rt\|util\|anl\)\.a$' -# Static libraries neither in glibc-devel nor in glibc-static. -other_static_library_pattern='/libpthread_nonshared\.a' - -grep '%{_libdir}/lib.*\.a' master.filelist \ - | grep "$devel_static_library_pattern" \ - | grep -v "$other_static_library_pattern" \ - > devel.filelist - -# Put all of the object files and *.so (not the versioned ones) into the -# devel package. -grep '%{_libdir}/.*\.o' < master.filelist >> devel.filelist -grep '%{_libdir}/lib.*\.so' < master.filelist >> devel.filelist -# The exceptions are: -# - libmemusage.so and libpcprofile.so in glibc used by utils. -# - libnss_*.so which are in nss-devel. -sed -i -e '\,libmemusage.so,d' \ - -e '\,libpcprofile.so,d' \ - -e '\,/libnss_[a-z]*\.so$,d' \ - devel.filelist - -%if %{glibc_autorequires} -mkdir -p %{glibc_sysroot}/%{_rpmconfigdir} %{glibc_sysroot}/%{_fileattrsdir} -sed < %{SOURCE4} \ - -e s/@VERSION@/%{version}/ \ - -e s/@RELEASE@/%{release}/ \ - -e s/@SYMVER@/%{glibc_autorequires_symver}/ \ - > %{glibc_sysroot}/%{_rpmconfigdir}/glibc.req -cp %{SOURCE5} %{glibc_sysroot}/%{_fileattrsdir}/glibc.attr -%endif - -############################################################################### -# glibc-doc -############################################################################### - -%if %{with docs} -# Put the info files into the doc file list, but exclude the generated dir. -grep '%{_infodir}' master.filelist | grep -v '%{_infodir}/dir' > doc.filelist -grep '%{_docdir}' master.filelist >> doc.filelist -%endif - -############################################################################### -# glibc-headers -############################################################################### +# `split_sysroot_file_list DIR FIND-ARGS REGEXP MAIN-LIST EXCEPTIONS-LIST` +# creates a list of files in the sysroot subdirectory # DIR. +# Files and directories are enumerated with the find command, +# passing FIND-ARGS as an extra argument. Those output paths that +# match REGEXP (an POSIX extended regular expression; all whitespace +# in it is removed before matching) are put into EXCEPTIONS-LIST. The +# remaining files are put into MAIN-LIST. +split_sysroot_file_list () { + make_sysroot_filelist "$1" "$2" "$4" + grep -E -e "$(printf %%s "$3" | tr -d '[:space:]')" < "$4" > "$5" + remove_from_filelist "$4" "$5" +} +# glibc-devel historically contains a subset of the files in +# /usr/include/gnu. The remaining headers are in glibc-headers-*. +# The -regex clause skips /usr/include, which is owned by the +# filesystem package. The x86_64 exception is required because there +# are headers that should be part of the glibc32 package only. %if %{need_headers_package} -# The glibc-headers package includes only common files which are identical -# across all multilib packages. We must keep gnu/stubs.h and gnu/lib-names.h -# in the glibc-headers package, but the -32, -64, -64-v1, and -64-v2 versions -# go into glibc-devel. -grep '%{_prefix}/include/gnu/stubs-.*\.h$' < master.filelist >> devel.filelist || : -grep '%{_prefix}/include/gnu/lib-names-.*\.h$' < master.filelist >> devel.filelist || : -# Put the include files into headers file list. -grep '%{_prefix}/include' < master.filelist \ - | egrep -v '%{_prefix}/include/gnu/stubs-.*\.h$' \ - | egrep -v '%{_prefix}/include/gnu/lib-names-.*\.h$' \ - > headers.filelist -%else -# If there is no glibc-headers package, all header files go into the -# glibc-devel package. -grep '%{_prefix}/include' < master.filelist >> devel.filelist +split_sysroot_file_list \ + %{_includedir} '( + ! -regex .*%{_includedir}$ +%ifarch x86_64 + ! -regex .*%{_includedir}/gnu/.*-32\.h$ +%endif + )' \ + '%{_includedir}/gnu/(stubs|lib-names)-.*\.h$' \ + headers.filelist devel.filelist %endif -############################################################################### -# glibc-static -############################################################################### - -# Put the rest of the static files into the static package. -grep '%{_libdir}/lib.*\.a' < master.filelist \ - | grep -v "$devel_static_library_pattern" \ - | grep -v "$other_static_library_pattern" \ - > static.filelist - -############################################################################### -# glibc-common -############################################################################### - -# All of the bin and certain sbin files go into the common package except -# iconvconfig which needs to go in glibc. Likewise nscd is excluded because -# it goes in nscd. The iconvconfig binary is kept in the main glibc package -# because we use it in the post-install scriptlet to rebuild the -# gconv-modules.cache. The makedb binary is in nss_db. -grep '%{_prefix}/bin' master.filelist \ - | grep -v '%{_prefix}/bin/makedb' \ - >> common.filelist -grep '%{_prefix}/sbin' master.filelist \ - | grep -v '%{_prefix}/sbin/iconvconfig' \ - | grep -v 'nscd' >> common.filelist -# All of the files under share go into the common package since they should be -# multilib-independent. -# Exceptions: -# - The actual share directory, not owned by us. -# - The info files which go into doc, and the info directory. -# - All documentation files, which go into doc. -grep '%{_prefix}/share' master.filelist \ - | grep -v \ - -e '%{_prefix}/share/info/libc.info.*' \ - -e '%%dir %{prefix}/share/info' \ - -e '%%dir %{prefix}/share' \ - -e '%{_docdir}' \ - >> common.filelist - -############################################################################### -# nscd -############################################################################### - -# The nscd binary must go into the nscd subpackage. -echo '%{_prefix}/sbin/nscd' > nscd.filelist - -############################################################################### -# glibc-utils -############################################################################### - -# Add the utils scripts and programs to the utils subpackage. -cat > utils.filelist < nss_$module.filelist -done -grep -E "%{_prefix}/bin/makedb$" master.filelist >> nss_db.filelist - -############################################################################### -# nss-devel -############################################################################### - -# Symlinks go into the nss-devel package (instead of the main devel -# package). -grep '/libnss_[a-z]*\.so$' master.filelist > nss-devel.filelist - -############################################################################### -# libnsl -############################################################################### - -# Prepare the libnsl-related file lists. -grep -E '/libnsl\.so\.[0-9]+$' master.filelist > libnsl.filelist -test $(wc -l < libnsl.filelist) -eq 1 - -%if %{with benchtests} -############################################################################### -# glibc-benchtests -############################################################################### - -# List of benchmarks. -find build-%{target}/benchtests -type f -executable | while read b; do - echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)" -done >> benchtests.filelist -# ... and the makefile. -for b in %{SOURCE2} %{SOURCE3}; do - echo "%{_prefix}/libexec/glibc-benchtests/$(basename $b)" >> benchtests.filelist -done -# ... and finally, the comparison scripts. -echo "%{_prefix}/libexec/glibc-benchtests/benchout.schema.json" >> benchtests.filelist -echo "%{_prefix}/libexec/glibc-benchtests/compare_bench.py*" >> benchtests.filelist -echo "%{_prefix}/libexec/glibc-benchtests/import_bench.py*" >> benchtests.filelist -echo "%{_prefix}/libexec/glibc-benchtests/validate_benchout.py*" >> benchtests.filelist -%endif - -############################################################################### -# compat-libpthread-nonshared -############################################################################### -echo "%{_libdir}/libpthread_nonshared.a" >> compat-libpthread-nonshared.filelist +# The primary gconv converters are in the glibc package, the rest goes +# into glibc-gconv-extra. The Z9 and Z900 subpatterns are for +# s390x-specific converters. The -name clause skips over files +# that are not loadable gconv modules. +split_sysroot_file_list \ + %{_libdir}/gconv '-name *.so' \ + 'gconv/ + (ANSI_X3\.110 + |CP1252 + |ISO8859-15? + |UNICODE + |UTF-[0-9]+ + |ISO-8859-1_CP037_Z900 + |UTF(8|16)_UTF(16|32)_Z9 + )\.so$' \ + gconv-extra.filelist glibc.filelist ############################################################################## # Run the glibc testsuite @@ -2722,18 +2734,12 @@ fi echo ====================TESTING END===================== PLTCMD='/^Relocation section .*\(\.rela\?\.plt\|\.rela\.IA_64\.pltoff\)/,/^$/p' echo ====================PLT RELOCS LD.SO================ -readelf -Wr %{glibc_sysroot}/%{_lib}/ld-*.so | sed -n -e "$PLTCMD" +readelf -Wr %{glibc_sysroot}%{_libdir}/ld-*.so | sed -n -e "$PLTCMD" echo ====================PLT RELOCS LIBC.SO============== -readelf -Wr %{glibc_sysroot}/%{_lib}/libc-*.so | sed -n -e "$PLTCMD" +readelf -Wr %{glibc_sysroot}%{_libdir}/libc-*.so | sed -n -e "$PLTCMD" echo ====================PLT RELOCS END================== -# Obtain a way to run the dynamic loader. Avoid matching the symbolic -# link and then pick the first loader (although there should be only -# one). Use -maxdepth 2 to avoid descending into the /sys-root/ -# sub-tree. See wrap-find-debuginfo.sh. -ldso_path="$(find %{glibc_sysroot}/ -maxdepth 2 -regextype posix-extended \ - -regex '.*/ld(-.*|64|)\.so\.[0-9]+$' -type f | LC_ALL=C sort | head -n1)" -run_ldso="$ldso_path --library-path %{glibc_sysroot}/%{_lib}" +run_ldso="%{glibc_sysroot}/%{_prefix}%{glibc_ldso} --library-path %{glibc_sysroot}/%{_libdir}" # Show the auxiliary vector as seen by the new library # (even if we do not perform the valgrind test). @@ -2959,17 +2965,45 @@ update_gconv_modules_cache () %systemd_postun_with_restart nscd.service %files -f glibc.filelist -%dir %{_prefix}/%{_lib}/audit +%{_sbindir}/ldconfig +%{_sbindir}/iconvconfig +%{_libexecdir}/getconf +%{_prefix}%{glibc_ldso} +%{_libdir}/libBrokenLocale.so.1 +%{_libdir}/libSegFault.so +%{_libdir}/libanl.so.1 +%{_libdir}/libc.so.6 +%{_libdir}/libc_malloc_debug.so.0 +%{_libdir}/libdl.so.2 +%{_libdir}/libm.so.6 +%{_libdir}/libmemusage.so +%{_libdir}/libnss_compat.so.2 +%{_libdir}/libnss_dns.so.2 +%{_libdir}/libnss_files.so.2 +%{_libdir}/libpcprofile.so +%{_libdir}/libpthread.so.0 +%{_libdir}/libresolv.so.2 +%{_libdir}/librt.so.1 +%{_libdir}/libthread_db.so.1 +%{_libdir}/libutil.so.1 +%{_libdir}/audit +%if %{glibc_has_libmvec} +%{_libdir}/libmvec.so.1 +%endif %if %{buildpower10} -%dir /%{_libdir}/glibc-hwcaps/power10 +%{_libdir}/glibc-hwcaps %endif %verify(not md5 size mtime link) %config(noreplace) /etc/nsswitch.conf %verify(not md5 size mtime) %config(noreplace) /etc/ld.so.conf %verify(not md5 size mtime) %config(noreplace) /etc/rpc %dir /etc/ld.so.conf.d -%dir %{_prefix}/libexec/getconf %dir %{_libdir}/gconv %dir %{_libdir}/gconv/gconv-modules.d +%verify(not md5 size mtime) %config(noreplace) %{_libdir}/gconv/gconv-modules +%verify(not md5 size mtime) %{_libdir}/gconv/gconv-modules.cache +%ifarch s390x +%verify(not md5 size mtime) %config(noreplace) %{_libdir}/gconv/gconv-modules.d/gconv-modules-s390.conf +%endif %dir %attr(0700,root,root) /var/cache/ldconfig %attr(0600,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/cache/ldconfig/aux-cache %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/ld.so.cache @@ -2978,10 +3012,31 @@ update_gconv_modules_cache () %{!?_licensedir:%global license %%doc} %license COPYING COPYING.LIB LICENSES -%files -f common.filelist common +%files common +%{_bindir}/catchsegv +%{_bindir}/gencat +%{_bindir}/getconf +%{_bindir}/getent +%{_bindir}/iconv +%{_bindir}/ld.so +%{_bindir}/ldd +%{_bindir}/locale +%{_bindir}/localedef +%{_bindir}/pldd +%{_bindir}/sotruss +%{_bindir}/sprof +%{_bindir}/tzselect +%{_bindir}/zdump +%{_sbindir}/zic +%dir %{_datarootdir}/i18n +%dir %{_datarootdir}/i18n/locales +%dir %{_datarootdir}/i18n/charmaps %dir %{_prefix}/lib/locale -%dir %{_prefix}/lib/locale/C.utf8 -%{_prefix}/lib/locale/C.utf8/* +%{_datarootdir}/locale/locale.alias +%{_prefix}/lib/locale/C.utf8 +%ifarch %{ix86} +%{_bindir}/lddlibc4 +%endif %files all-langpacks %{_prefix}/lib/locale/locale-archive @@ -2989,37 +3044,78 @@ update_gconv_modules_cache () %{_prefix}/share/locale/*/LC_MESSAGES/libc.mo %files locale-source -%dir %{_prefix}/share/i18n/locales -%{_prefix}/share/i18n/locales/* -%dir %{_prefix}/share/i18n/charmaps -%{_prefix}/share/i18n/charmaps/* +%{_datarootdir}/i18n/locales +%{_datarootdir}/i18n/charmaps +%if %{need_headers_package} %files -f devel.filelist devel +%else +%files devel +%{_includedir}/* +%endif %if %{glibc_autorequires} %attr(0755,root,root) %{_rpmconfigdir}/glibc.req %{_fileattrsdir}/glibc.attr %endif - -%if %{with docs} -%files -f doc.filelist doc +%{_libdir}/*.o +%{_libdir}/libBrokenLocale.so +%{_libdir}/libanl.a +%{_libdir}/libanl.so +%{_libdir}/libc.so +%{_libdir}/libc_nonshared.a +%{_libdir}/libdl.a +%{_libdir}/libg.a +%{_libdir}/libm.so +%{_libdir}/libmcheck.a +%{_libdir}/libpthread.a +%{_libdir}/libresolv.so +%{_libdir}/librt.a +%{_libdir}/libthread_db.so +%{_libdir}/libutil.a +%if %{glibc_has_libnldbl} +%{_libdir}/libnldbl_nonshared.a +%endif +%if %{glibc_has_libmvec} +%{_libdir}/libmvec.so %endif -%files -f static.filelist static +%if %{with docs} +%files doc +%{_datarootdir}/doc +%{_infodir}/*.info* +%endif + +%files static +%{_libdir}/libBrokenLocale.a +%{_libdir}/libc.a +%{_libdir}/libm.a +%{_libdir}/libresolv.a +%if %{glibc_has_libmvec} +%{_libdir}/libm-%{version}.a +%{_libdir}/libmvec.a +%endif %if %{need_headers_package} %files -f headers.filelist -n %{headers_package_name} %endif -%files -f utils.filelist utils +%files utils +%{_bindir}/memusage +%{_bindir}/memusagestat +%{_bindir}/mtrace +%{_bindir}/pcprofiledump +%{_bindir}/xtrace -%files -f gconv.filelist gconv-extra +%files -f gconv-extra.filelist gconv-extra +%verify(not md5 size mtime) %config(noreplace) %{_libdir}/gconv/gconv-modules.d/gconv-modules-extra.conf -%files -f nscd.filelist -n nscd +%files -n nscd +%{_sbindir}/nscd %config(noreplace) /etc/nscd.conf %dir %attr(0755,root,root) /var/run/nscd %dir %attr(0755,root,root) /var/db/nscd -/lib/systemd/system/nscd.service -/lib/systemd/system/nscd.socket +%{_prefix}/lib/systemd/system/nscd.service +%{_prefix}/lib/systemd/system/nscd.socket %{_tmpfilesdir}/nscd.conf %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/nscd.pid %attr(0666,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/nscd/socket @@ -3034,20 +3130,28 @@ update_gconv_modules_cache () %ghost %config(missingok,noreplace) /etc/sysconfig/nscd %{_sysusersdir}/nscd.conf -%files -f nss_db.filelist -n nss_db +%files -n nss_db +%{_bindir}/makedb +%{_libdir}/libnss_db.so.2 /var/db/Makefile -%files -f nss_hesiod.filelist -n nss_hesiod +%files -n nss_hesiod +%{_libdir}/libnss_hesiod.so.2 %doc hesiod/README.hesiod -%files -f nss-devel.filelist nss-devel +%files nss-devel +%{_libdir}/libnss_compat.so +%{_libdir}/libnss_db.so +%{_libdir}/libnss_hesiod.so -%files -f libnsl.filelist -n libnsl -/%{_lib}/libnsl.so.1 +%files -n libnsl +%{_libdir}/libnsl.so.1 %if %{with benchtests} -%files benchtests -f benchtests.filelist +%files benchtests +%{_libexecdir}/glibc-benchtests %endif -%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared +%files -n compat-libpthread-nonshared +%{_libdir}/libpthread_nonshared.a %if %{without bootstrap} %files -n sysroot-%{_arch}-%{sysroot_dist}-glibc @@ -3055,29 +3159,207 @@ update_gconv_modules_cache () %endif %changelog -* Thu Apr 3 2025 Florian Weimer - 2.34-125.8 -- Re-activate rseq acceleration for sched_getcpu (RHEL-83524) +* Tue Apr 8 2025 Florian Weimer - 2.34-168.14 +- Increase reliability of stdio-common/tst-setvbuf2 (RHEL-83982) -* Thu Apr 3 2025 Florian Weimer - 2.34-125.7 -- Adjust __rseq_size behavior to upstream (RHEL-65285) +* Wed Apr 2 2025 DJ Delorie - 2.34-168.13 +- Extend setvbuf testing (RHEL-83982) -* Fri Mar 28 2025 Arjun Shankar - 2.34-125.6 -- CVE-2025-0395: Fix a buffer overflow in assert (RHEL-83294) +* Wed Apr 2 2025 Florian Weimer - 2.34-168.12 +- Extend scanf testing (RHEL-84306) -* Fri Mar 28 2025 Arjun Shankar - 2.34-125.5 -- Make test tst-cpuclock2 run more reliably (RHEL-84324) +* Tue Apr 01 2025 Frédéric Bérat - 2.34-168.11 +- Fortify inet_ntop and inet_pton (RHEL-83984) -* Wed Feb 26 2025 Patsy Griffin - 2.34-125.4 -- stdlib: Make getenv thread-safe in more cases (RHEL-70707) +* Fri Mar 28 2025 Arjun Shankar - 2.34-168.10 +- Add sched_setattr, sched_getattr, pthread_gettid_np (RHEL-83970) -* Thu Feb 13 2025 Carlos O'Donell - 2.34-125.3 -- Fix missed wakeup in POSIX thread condition variables (RHEL-78939) +* Thu Mar 27 2025 Arjun Shankar - 2.34-168.9 +- Improve printf fortification against %n in writeable memory (RHEL-83980) -* Fri Dec 6 2024 DJ Delorie - 2.34-125.2 -- add GB18030-2022 charmap and tests (RHEL-69003) +* Fri Mar 21 2025 Arjun Shankar - 2.34-168.8 +- nptl: extend test coverage for sched_yield (RHEL-83968) -* Fri Sep 27 2024 Florian Weimer - 2.34-125.1 -- Remove some unused ppc64le string functions (RHEL-49489) +* Fri Mar 21 2025 Arjun Shankar - 2.34-168.7 +- Make test tst-cpuclock2 run more reliably (RHEL-84325) + +* Fri Mar 21 2025 Arjun Shankar - 2.34-168.6 +- nptl: Keep __rseq_size consistent (RHEL-80088) + +* Fri Mar 21 2025 Arjun Shankar - 2.34-168.5 +- assert: Add test for CVE-2025-0395 (RHEL-83528) + +* Thu Mar 20 2025 Patsy Griffin - 2.34-168.4 +- Use rseq area unconditionally in sched_getcpu (RHEL-83525) + +* Wed Mar 19 2025 Patsy Griffin - 2.34-168.3 +- tst-fopen-threaded: Only check EOF for failing read (RHEL-83581) + +* Wed Mar 05 2025 Frederic Berat - 2.34-168.2 +- Improve cpuset test coverage (RHEL-82118) + +* Wed Mar 05 2025 Frederic Berat - 2.34-168.1 +- Increase test coverage for standard IO APIs (RHEL-82259) + +* Thu Feb 13 2025 Florian Weimer - 2.34-168 +- Fix transliteration regression in iconv tool (RHEL-71547) + +* Thu Feb 13 2025 Florian Weimer - 2.34-167 +- POWER10 string function optimizations (RHEL-24740) + +* Tue Feb 11 2025 Arjun Shankar - 2.34-166 +- Revert: Backport: debug: Add regression tests for BZ 30932 (RHEL-46761) + +* Mon Feb 10 2025 Florian Weimer - 2.34-165 +- Hide internal struct _IO_FILE ABI change in installed header (RHEL-46738) + +* Fri Feb 7 2025 Carlos O'Donell - 2.34-164 +- Fix missed wakeup in POSIX thread condition variables (RHEL-2419) + +* Tue Feb 4 2025 DJ Delorie - 2.34-163 +- manual: sigaction's sa_flags field and SA_SIGINFO (RHEL-67592) + +* Wed Jan 29 2025 Patsy Griffin - 2.34-162 +- CVE-2025-0395: fix underallocation of abort_msg_s struct (RHEL-75938) + +* Tue Jan 28 2025 Frédéric Bérat - 2.34-161 +- Backport: debug: Add regression tests for BZ 30932 (RHEL-46761) + +* Mon Jan 27 2025 Florian Weimer - 2.34-160 +- Rebuild with gcc-11.5.0-2.el9 (RHEL-76359) + +* Fri Jan 24 2025 Florian Weimer - 2.34-159 +- setenv: Rework free(environ) compatibility support (RHEL-75810) + +* Thu Jan 23 2025 Florian Weimer - 2.34-158 +- Add tests extracted from upstream printf regression tests (RHEL-46761) + +* Thu Jan 23 2025 Florian Weimer - 2.34-157 +- Restore compatibility with environ/malloc usage pattern (RHEL-75810) + +* Thu Jan 23 2025 Florian Weimer - 2.34-156 +- Additional test for assert (RHEL-65359) + +* Thu Jan 23 2025 Florian Weimer - 2.34-155 +- Change utimensat to accept NULL pathname arguments (RHEL-50550) + +* Tue Jan 21 2025 Florian Weimer - 2.34-154 +- Add test for inheritance of thread affinity mask (RHEL-61559) + +* Mon Jan 20 2025 Florian Weimer - 2.34-153 +- Additional dynamic linker dependency sorting tests (RHEL-58987) + +* Fri Jan 10 2025 Frédéric Bérat - 2.34-152 +- Additional TLS test cases (RHEL-58989) +- Additional mremap test cases (RHEL-62716) +- Fix pthread_timedjoin_np error handling and increase test coverage (RHEL-68857) +- Avoid uninitialized result in sem_open when file does not exist (RHEL-69633) + +* Fri Jan 10 2025 Frédéric Bérat - 2.34-151 +- Lock all stdio streams during exit +- Support concurrent calls to exit (RHEL-65358) + +* Fri Jan 10 2025 Frédéric Bérat - 2.34-150 +- Backport test implementation to verify readdir behavior (RHEL-56542) +- Backport the deallocation attributes commit for opendir/fdopendir (RHEL-56543) +- Backport: Fix bug bz#27454 and test implementation to verify + fdopendir behavior (RHEL-56544) +- Backport test implementation to verify closedir behavior + (RHEL-56541) + +* Wed Jan 08 2025 Frédéric Bérat - 2.34-149 +- Backport: fix the glibc manual to handle spaces for @deftypefun + references. (RHEL-65356) +- Backport verbosity patches for glibc math (RHEL-38225) +- Backport getdelim test coverage improvements (RHEL-54250) +- Backport mkdirat mode test (RHEL-56743) +- Backport: cover the documentation coverage gap adding thread safety + annotations for clock_gettime and clock_getres (RHEL-57586) +- Backport test implementation to verify lstat behavior (RHEL-56539) +- Backport test implementation to verify rewinddir behavior + (RHEL-56540) +- Backport elf/tst-startup-errno test (RHEL-58671) +- Backport: Identify unsafe macros in the glibc documentation (RHEL-46740) +- Backport: testsuite fixes for rhel-57588, rhel-57589, and rhel-57590 (RHEL-65910) +- Backport new multi-threaded test for sem_getvalue (RHEL-69028) +- Backport pthread_getcpuclockid tests (RHEL-70395) +- Backport: Debug/tst-longjmp_chk3 needs to be enabled (RHEL-68850) +- Backport: Improve pthread_spin_trylock test coverage (RHEL-61568) +- Backport: Implement test to verify dynamic linker behaves correctly in case + of hash collision for the symbol name and symbol version. (RHEL-58979) +- Backport: Improve sem_trywait test coverage (RHEL-65354) + +* Thu Dec 19 2024 DJ Delorie - 2.34-148 +- Increase ungetc test coverage, guarantee single char pushback (RHEL-46738) + +* Mon Dec 16 2024 Florian Weimer - 2.34-147 +- Make getenv thread-safe in more cases (RHEL-67692) + +* Mon Dec 9 2024 Florian Weimer - 2.34-146 +- Use UsrMove path destination in the RPM files (RHEL-65334) + +* Thu Dec 5 2024 DJ Delorie - 2.34-145 +- add GB18030-2022 charmap and tests (RHEL-56032) + +* Mon Dec 2 2024 Florian Weimer - 2.34-144 +- Document struct link_map and interaction with dlinfo (RHEL-47467) + +* Wed Nov 20 2024 Patsy Griffin - 2.34-143 +- iconv: Support in-place conversions (RHEL-1915) + +* Mon Nov 18 2024 Florian Weimer - 2.34-142 +- Add printf function family tests (RHEL-46725) + +* Mon Nov 11 2024 Arjun Shankar - 2.34-141 +- Add error and FUSE based tests for fchmod (RHEL-50548) + +* Thu Nov 7 2024 Florian Weimer - 2.34-140 +- Add more tests for freopen (RHEL-46736) + +* Thu Nov 7 2024 Florian Weimer - 2.34-139 +- Add more tests of getline (RHEL-54413) + +* Thu Nov 7 2024 Florian Weimer - 2.34-138 +- Add fclose testcases (RHEL-46733) + +* Thu Nov 7 2024 Florian Weimer - 2.34-137 +- Fix memory leak after fdopen seek failure (RHEL-66253) + +* Thu Nov 7 2024 Florian Weimer - 2.34-136 +- Document rules for mixing stdio streams and file descriptors (RHEL-46724) + +* Wed Nov 06 2024 Patsy Griffin - 2.34-135 +- Support clearing options in /etc/resolv.conf, RES_OPTIONS with a - prefix +- Introduce the strict-error/RES_STRICTERR stub resolver option (RHEL-50662) + +* Wed Oct 23 2024 DJ Delorie - 2.34-134 +- Test Implementation to verify mkstemp behavior, + with FUSE support (RHEL-50545) + +* Mon Sep 30 2024 Arjun Shankar - 2.34-133 +- strtod: Fix subnormal rounding; do not set errno upon overflowing payload; + and add several new tests (RHEL-46739) + +* Fri Sep 27 2024 Florian Weimer - 2.34-132 +- Remove some unused ppc64le string functions (RHEL-60466) + +* Thu Sep 26 2024 Arjun Shankar - 2.34-131 +- Add new test for fread (RHEL-46735) + +* Thu Sep 26 2024 Arjun Shankar - 2.34-130 +- Add new test for fdopen (RHEL-46734) + +* Tue Sep 24 2024 DJ Delorie - 2.34-129 +- Add fgets testcases (RHEL-46728) + +* Tue Sep 24 2024 DJ Delorie - 2.34-128 +- manual: Add Descriptor-Relative Access section (RHEL-41189) + +* Tue Sep 24 2024 Florian Weimer - 2.34-127 +- Switch to upstream approach for building xtest during make check (RHEL-59494) + +* Thu Sep 19 2024 Florian Weimer - 2.34-126 +- Ensure that xtests can be built (RHEL-59494) * Thu Sep 5 2024 DJ Delorie - 2.34-125 - elf: Rework exception handling in the dynamic loader (RHEL-46979)